Tina has three main branches:
The flow of changes therefore looks like:
fix-some-bug=>master=>next=>latest
The process happens over a week:
next is merged into latest; then latest is published to npmmaster is merged into next; then next is published to npmnext and latest
and the published accordingly.master automatically triggers a
canary release.With this process:
canary releases for early testingThe general release process looks like this:
Build the source files:
The source must be compiled, minified, and uglified in preparation for release.
Generate CHANGELOGs and Git tags:
We use lerna to generate CHANGELOG files automatically from our commit messages.
Clean the CHANGELOGs
Lerna sometimes adds empty changelog entries. For example, if react-tinacms is changed
then tinacms will get get a patch update with only the dependency updated. Make sure to install lerna-clean-changelog-cli:
npm i -g lerna-clean-changelogs-cliPublish to NPM:
You must have an NPM_TOKEN set locally that has access to the @tinacms organization
Push CHANGELOGs and Git tags to Github:
Let everyone know!
The exact commands vary slightly depending on the type of release being made.
Build the source files:
npm run buildGenerate CHANGELOGs and Git tags:
lerna version \
--conventional-commits \
--conventional-prerelease \
--no-push \
--allow-branch next \
-m "chore(publish): prerelease"Clean the CHANGELOGs
lcc ** && git commit -am "chore: clean changelogs"Publish to NPM:
lerna publish from-package --dist-tag nextgit push && git push --tagsBuild the source files:
npm run buildGenerate CHANGELOGs and Git tags:
lerna version \
--conventional-commits \
--conventional-graduate \
--no-push \
--allow-branch next \
-m "chore(publish): graduation"Clean the CHANGELOGs
lcc ** && git commit -am "chore: clean changelogs"1) Publish to NPM:
lerna publish from-package1) Push CHANGELOGs and Git tags to Github:
git push && git push --tagsBuild the source files:
npm run buildGenerate CHANGELOGs and Git tags:
lerna version \
--conventional-commits \
--no-push \
--allow-branch master \
-m "chore(publish): release"Clean the CHANGELOGs
lcc ** && git commit -am "chore: clean changelogs"Publish to NPM:
lerna publish from-packagegit push && git push --tags