-
Notifications
You must be signed in to change notification settings - Fork 69
Open
Labels
ciGithub actions / e2e tests / build / etcGithub actions / e2e tests / build / etc
Description
Thoughts
- Version bumping is time consuming and feels automateable.
- The steps before it (test, build, lint) should be run in the CI - also when releasing.
- Releases span JS (npm) and RUST (cargo) repositories. Ideally, both are automated.
- Manual changelog editing is proven to be error-prone. Let's get rid of it. Conventional Commits seems like a better paradigm.
- Version bumps require commit, so probably require an automated PR - or we need a CLI that also commits. In any case, we can't have the CI bumping code without a PR.
Right now releasing a new version is too much manual work:
In browser
pnpm lint-fix- commit any changes (if they are there)
pnpm buildto build typescript files (don't skip this!)- make sure
atomic-serveris running onlocalhost. pnpm testpnpm test-e2e- Update the
package.jsonfiles forlib,rust, anddata-browserwith a new version number. Match the version number withatomic-data-rust - Check the changelog, make sure the headers are correct
- Now do the rust libraries
- Commit any changes, name it
vX.XX.XX pnpm publish -r- Choose a new version. Versions should match
atomic-data-rs. - This updates the
package.jsonfiles, creates a commit, tags it, pushes it to github, and publishes the builds to npm. - If this fails, try
pnpm version patchandpnpm publish - DONT run
pnpm npm publish, as it will not resolve workspace dependencies correctly.
- Choose a new version. Versions should match
In the rust crates
- Commit changes
- Make sure all tests run properly
- Test, build and update the
/browserversions (package.jsonfiles, see./browser/contributing.md) - Use
cargo workspaces version patch --no-git-commit(and maybe replacepatchwith theminor) to update allcargo.tomlfiles in one command. You'll need tocargo install cargo-workspacesif this command is not possible. - Publish to cargo:
cargo publish. Firstlib, thencliandserver. - Publish to
npm(seebrowser/contribute.md) - Update the
CHANGELOG.mdfiles (browser and root)
Solutions
cargo-releaseautomates bumping versions and publishing. I used it some time ago, for somereason removed it from the docs. I recall having some issues with it.release-plz, which creates PRs for releases. Written in rust, supports only rust.release-please, does the same, typescript, by google. Supports rust workspaces with a plugin, but also supports pnpm.
Metadata
Metadata
Assignees
Labels
ciGithub actions / e2e tests / build / etcGithub actions / e2e tests / build / etc