mirror of
https://github.com/hexedtech/codemp.git
synced 2024-12-23 05:14:54 +01:00
2.3 KiB
2.3 KiB
Release flow
Releases on registries are automatically handled with GitHub Actions, which will only run on commits tagged as v[0-9]+.[0-9]+.[0-9]+
.
Every time a new tag matching that is pushed:
- builds and tests core library
- publishes core rust library on
crates.io
(which will rebuild main documentation) - builds codemp javascript bindings for windows, linux and macos and publishes it on
npm
- builds codemp python bindings for windows, linux and macos and publishes it on
PyPI
- builds codemp luajit bindings for windows, linux and macos and publishes it on both
LuaRocks
(source) and codemp.dev/releases (binary) - builds codemp java bindings for windows, linux and macos and publishes it on
Maven Central
Checklist
Before writing the tag, make sure all these steps have been followed:
do any required change in a branch named
release/vX.Y.Z
, for which a PR can then be opened
Cargo.toml
: bump versiondist/js/package.json
: make sureversion
matches with Cargo.toml (also checkoptionalDependencies
: all versions must be the same)dist/py/pyproject.toml
: make sureversion
matches with Cargo.tomldist/java/build.gradle
: make sureversion
matches with Cargo.tomldist/lua/codemp-X.Y.Z-1.rockspec
: make sureversion
matches with Cargo.toml- note that the rockspec file contains current version in its name so must be renamed
- note that rockspec versions have a fourth component: "revision". we don't use it so always set is as
1
- update
Cargo.lock
(basically delete it and re-runcargo build
. check diff before committing!) - make sure docs build without warning or errors (
cargo doc --features=serialize
) - make sure that core crate builds with
--release --features=js,py,java,lua
- make sure the version you're about to release is available (on all registries!)
- update last tag in "commits since last tag" badge (in README.md)
- commit all these changes (in
release/vX.Y.Z
branch), open a PR and have it approved and merged - generate a new tag with same version as the one specified in Cargo.toml. include changelog in its description
- use
git log <last-tag>..HEAD --oneline
to get a commit list, but don't just put it as-is! - remember to push the newly generated tag with (
git push --tags
)
- use