Normally this would be done by the project owners.
Here are the steps we take:
We use semantic versioning.
It can't be anything that has been pushed to any package repo before.
Currently this is stored in CHANGELOG.md.
TODO: store the canonical version in the project root, and copy it to there so the NPM packaging can find it.
To change the current version, run the script:
./update_version.sh VERSION_NUMBER
This will change the version number across the Rust, Web and Android projects.
Then:
make web
to update .lock filesgit checkout -b version-X.Y.Z
git commit -a -m "Version X.Y.Z"
git push -u origin version-X.Y.Z
Get the PR reviewed and merged to main
.
A workflow will automatically add the tag on main with the version provided in the branch name.
This should be done automatically when a tag is uploaded, but you can also manually launch the github action which will package the code and upload it to NPM. It uses the version number it finds in package.json, which you updated above.
This should be done automatically when a tag is uploaded, but it can also be done manually from a local development environment.
- Copy the GPG secret keyring file to your machine
- Add the following Maven credentials to
~/.gradle/gradle.properties
mavenCentralUsername=xxx
mavenCentralPassword=xxx
signing.keyId=xxx
signing.password=xxx
signing.secretKeyRingFile=<path-to-keyring>
- Build and publish the artifact
cd platforms/android && ./gradlew publish closeAndReleaseRepository
When a tag is added the tool in platforms/ios/tools/release
will be run with the --version <version>
(where <version>
will be the provided tag).
This will build the binaries and create the new release on the swift package repo.
To manually make a release, first set the SWIFT_RELEASE_TOKEN
environment variable and then run swift run release --version <version>
.