Skip to content

Commit 3f1e137

Browse files
authored
Deprecate Swagger in contribution guideline. (#167)
1 parent 5dd02e6 commit 3f1e137

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

docs/contributing/03-contribution-guideline.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,21 @@ We are generally open to write code in any language that fits best to the functi
6161

6262
### Artifacts
6363

64-
Artifacts are always produced by a CI process (Github Actions).
64+
Artifacts are always produced by a CI process (i.e. Github Actions).
6565

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), ...)
6767

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`.
6971

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.
7173

7274
### APIs
7375

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).
7577

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.
7779

7880
#### Versioning
7981

@@ -105,15 +107,11 @@ Development follows the official guide to:
105107

106108
- **Dependency Management** by using Go modules
107109
- **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)
110111

111112
#### Libraries
112113

113-
metal-stack maintains several libraries that you should utilize in your project in order to unify common behavior. Some of these projects are:
114-
115-
- [metal-go](https://github.com/metal-stack/metal-go)
116-
- [metal-lib](https://github.com/metal-stack/metal-lib)
114+
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).
117115

118116
#### Error Handling with Generated Swagger Clients
119117

0 commit comments

Comments
 (0)