Replies: 1 comment 4 replies
-
Do we want to do API changes in patch releases? If not, we only need to release clients for minor releases. In that case, the major and minor version of the client align with the server version, while the patch version refers to fixes in the client itself. I think we ideally should have a stable API across a major release (if we ever release a new one, but that is another discussion). |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Given that we started generating some Horreum clients [1,2] to make the interaction with the server easier, we should set and plan the release cadence for the clients as well.
The only constraint between Horreum server and Horreum clients is the Openapi spec that is auto-generated from the Horreum server build.
Here my proposal:
Release cadence
I would propose to tie the release cadence for Horreum clients to the Horreum server, at least for Major and Minor releases (but I'd do that for patch as well).
This is making the process easier as every time we release Horreum, we will also release both clients. Moreover the versions will match, thus it will be easier for users to check if a client version is compatible or not with a specific instance of Horreum server.
Versioning convention
To make things easier, if we decide to release clients every time we release the server, I would propose to use exactly the same versioning scheme, i.e.,
x.y.z
that Horreum is currently using.For simplicity,
x.y
(in the server) ==x.y.0
(in the clients).Bug fixing
For Horreum clients bug fixing, if there is no need to release another Horreum release, we can handle them separately e.g.,
x.y.z.W
Conclusion
In summary, with this proposal, I am suggesting to release the clients every time we release the Horreum server.
If we need an ad-hoc client release, let's add
build-number
in the release of the client, e.g., of Horreum is version0.13.1
and we already have client0.13.1
, but we need a bug-fixing release, let's do as0.13.1.1
or0.13.1.2
.The
Major.Minor.Patch
will be coherent between the server and the clients.[1] https://github.com/Hyperfoil/horreum-client-python
[2] https://github.com/Hyperfoil/horreum-client-golang
Beta Was this translation helpful? Give feedback.
All reactions