2.2 KiB
Releasing matrix-wysiwyg
Normally this would be done by the project owners.
Here are the steps we take:
1. Choose a version number
We use semantic versioning.
It can't be anything that has been pushed to any package repo before.
2. Add a changelog entry
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.
3. Set the version number
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 webto update .lock filesgit checkout -b version-X.Y.Zgit 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.
4. Create the packages
Web
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.
Android
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
Swift/iOS:
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>.