* add update policy * fix newlines * make list a list * Update docs/update-guide.md Co-authored-by: Mike Voronov <michail.vms@gmail.com> * pr fix --------- Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2.1 KiB
Marine Rust SDK update guide
Marine Rust SDK repo components
Here is the list of main components crucial from the update point of view:
- Marine Rust SDK - the interface crate that will be used by users
- Marine Rust SDK main - contains all export functions used by IT interpreter, as well as logger
Marine Rust SDK update policy
Versioning
All the crates in this repo have the same version, and all repository-local dependencies are strict (denoted by =x.y.z
notation).
Coupling with AquaVM
The marine-rs-sdk-main
crate uses #[no_mangle]
exports, and marine-rs-sdk
crate too -- by transitivity. That's why it is impossible to use two different versions of this marine-rs-sdk-main
when compiling a single binary, regardless of their versions. Also, there is a circular cross-repository dependency with AquaVM:
polyplets depends on marine-rs-sdk-main
, while marine-rs-sdk
depends on polyplets
. AquaVM repo also uses marine-rs-sdk
in several crates.
As a result, it is not enough just to update a minor or patch version of this repo - it also requires updating polyplets
to a version that uses marine-rs-sdk-main
with the same major and minor versions as marine-rs-sdk
.
The following update process should ensure that there is no semver-broken version is used:
- release new minor version
marine-rs-sdk@0.x.0
and so on - update AquaVM to
marine-rs-sdk@0.x.0
and so on, bump minor version forpolyplets
to0.y.0
- release
marine-rs-sdk@0.x.1
that usespolyplets@0.y.0
- update AquaVM to use
marine-rs-sdk@0.x.1
and so on, bump patch version onpoluplets
to0.y.1
- yank
marine-rs-sdk@0.x.0
and so on
This process WILL break build of the AquaVM between the steps 2-4, so the whole process should be completed without delays. mairne-rs-sdk@0.x.0
will contain different minor versions of marine-rs-sdk-main
so it should never be used -- therefore it is yanked.