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-cli
Publish 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 build
Generate 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 next
git push && git push --tags
Build the source files:
npm run build
Generate 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-package
1) Push CHANGELOGs and git tags to Github:
git push && git push --tags
Build the source files:
npm run build
Generate 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-package
git push && git push --tags