Skip to content
Leigh McCulloch edited this page Jan 24, 2024 · 5 revisions

Soroban-wasmi is a fork of wasmi, used in the Soroban Environment.

Read more about Soroban at https://soroban.stellar.org.

Versioning

The soroban-wasmi crate is a fork of wasmi, and uses a unique versioning scheme when published to clearly communicate what version of wasmi the release is forked from, as well as linearly track releases made off of that fork point.

All releases should be assigned a name using the following scheme:

[wasmi version]-soroban.[X].[Y].[Z]

where:

  • wasmi version is the exact version of wasmi that the release was forked from.
  • X is the first protocol number the wasmi is being used in, e.g. protocol 20.
  • Y is the minor version, starting at 0, incremented for releases containing new features.
  • Z is the patch version, starting at 0, incremented for releases containing only bug fixes.

For example:

Update and Release Process

New Upstream

  1. Create a new branch based on an upstream wasmi branch, named soroban-wasmi-v[wasmi version]. e.g. soroban-wasmi-v0.31.1
  2. Change the default branch of the repo to the new branch.
  3. Rebase on-top of the new branch any changes from prior releases that should be carried forward.
  4. Make any new changes atop of the branch.
  5. Update the version in the file crates/wasmi/Cargo.toml using the versioning scheme above. e.g. 0.31.1-soroban.20.0.0
  6. Create a new GitHub Release, and:
    1. Name the release the version without a v prefix. e.g. 0.31.1-soroban.20.0.0
    2. Set the tag to the version with a v prefix. e.g. v0.31.1-soroban.20.0.0
    3. Click the Generate release notes button.
    4. Click the Publish release button.

Releasing changes without updating upstream

  1. Make any changes to the current default branch. e.g. soroban-wasmi-v0.31.1
  2. Update the version in the file crates/wasmi/Cargo.toml using the versioning scheme above. e.g. 0.31.1-soroban.20.0.1
  3. Create a new GitHub Release, and:
    1. Name the release the version without a v prefix. e.g. 0.31.1-soroban.20.0.1
    2. Set the tag to the version with a v prefix. e.g. v0.31.1-soroban.20.0.1
    3. Click the Generate release notes button.
    4. Click the Publish release button.
Clone this wiki locally