From e4573a5ad4ec2bf5c3e0161de4547270b047545c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gianguido=20Sor=C3=A0?= Date: Mon, 18 Mar 2024 15:21:48 +0100 Subject: [PATCH] *: version compatibility notes (#2966) Add section in the `README.md` detailing how Charon versioning works, and how versions are compatible between themselves. category: docs ticket: none --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 0f5ed92a4..7eb4b73df 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,16 @@ There is always the [charon godocs](https://pkg.go.dev/github.com/obolnetwork/ch ## Project Status See [dvt.obol.tech](https://dvt.obol.tech/) for the latest status of the Obol Network including which upstream consensus clients and which downstream validators are supported. + +## Version compatibility + +Considering (semver)[https://semver.org] as the project's versioning scheme, two given versions of Charon are: + - **compatible** if their `MAJOR` number is the same, `MINOR` and `PATCH` numbers differ + - **incompatible** if their `MAJOR` number differs + +There are several reasons to justify a new `MAJOR` release, for example: + - a new Ethereum hardfork + - an old Ethereum hardfork is removed due to network inactivity + - modifications to the internal P2P network or consensus mechanism requiring deep changes to the codebase + +The `charon dkg` subcommand **is more restrictive** than this general compatibility promise; all peers should use matching`MAJOR` and`MINOR` versions of Charon for the DKG process, patch versions may differ though it is recommended to use the latest patch of any version.