You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contributing/03-contribution-guideline.md
+10-12Lines changed: 10 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,19 +61,21 @@ We are generally open to write code in any language that fits best to the functi
61
61
62
62
### Artifacts
63
63
64
-
Artifacts are always produced by a CI process (Github Actions).
64
+
Artifacts are always produced by a CI process (i.e. Github Actions).
65
65
66
-
Docker images are published on the Github Container Registry of the metal-stack organization.
66
+
Container images and [OCI artifacts](https://github.com/opencontainers/image-spec)are published on the Github Container Registry of the metal-stack organization. Please consider using Github Actions workflows utilizing similar actions as the other repositories (e.g. [build-push-action](https://github.com/docker/build-push-action), ...)
67
67
68
-
Binary artifacts or OS images can be uploaded to `images.metal-stack.io` if necessary.
68
+
For OCI images, we usually utilize [oras](https://github.com/oras-project/oras) for pushing the artifact to the registry.
69
+
70
+
For signing artifacts we use [cosign](https://github.com/sigstore/cosign). The private key for signing artifacts is a CI secret called `COSIGN_PRIVATE_KEY`.
69
71
70
-
When building Docker images, please consider our build tool [docker-make](https://github.com/fi-ts/docker-make) or the specific [docker-make action](https://github.com/fi-ts/action-docker-make) respectively.
72
+
Binary artifacts or OS images can be uploaded to `images.metal-stack.io` if necessary.
71
73
72
74
### APIs
73
75
74
-
We are currently making use of [Swagger](https://swagger.io/) when we exposing traditional REST APIs for end-users. This helps us with being technology-agnostic as we can generate clients in almost any language using [go-swagger](https://goswagger.io/). Swagger additionally simplifies the documentation of our APIs.
76
+
The preferred way to implement an API is using [Connect RPC](https://connectrpc.com/), which is based on [grpc](https://grpc.io/). For working with the [Protobuf](https://protobuf.dev/) definitions, we utilize [buf](https://github.com/bufbuild/buf).
75
77
76
-
Most APIs though are not required to be user-facing but are of technical nature. These are preferred to be implemented using [grpc](https://grpc.io/).
78
+
The metal-api does still have a [Swagger-based](https://swagger.io/) API exposing traditional REST APIs for end-users. This API framework will become deprecated so it should not be used anymore for new projects.
77
79
78
80
#### Versioning
79
81
@@ -105,15 +107,11 @@ Development follows the official guide to:
105
107
106
108
-**Dependency Management** by using Go modules
107
109
-**Build and Test Automation** by using [GNU Make](https://man7.org/linux/man-pages/man1/make.1p.html).
108
-
-**End-user APIs** should consider using go-swagger and [Go-Restful](https://github.com/emicklei/go-restful)
109
-
**Technical APIs** should consider using [grpc](https://grpc.io/)
110
+
-**APIs** should consider using [buf](https://github.com/bufbuild/buf)
110
111
111
112
#### Libraries
112
113
113
-
metal-stack maintains several libraries that you should utilize in your project in order to unify common behavior. Some of these projects are:
metal-stack maintains libraries that you can utilize in your project in order to unify common behavior. The main project that does this is called [metal-lib](https://github.com/metal-stack/metal-lib).
117
115
118
116
#### Error Handling with Generated Swagger Clients
0 commit comments