v.Latest
Documentation
Contribution Releases
Loading last updated info...
On This Page
This page is out of date - check out the TinaCMS GitHub for the latest contribution information
Overarching Process
Tina has three main branches:
- master: The bleeding edge of tinacms
- next: A preview of the next release
- latest: The current stable release
The flow of changes therefore looks like:
fix-some-bug=>master=>next=>latest
The process happens over a week:
- On Monday
nextis merged intolatest; thenlatestis published to npmmasteris merged intonext; thennextis published to npm
- Any hot fixes for bugs will be cherry picked into
nextandlatestand the published accordingly. - Every pull request merged to
masterautomatically triggers acanaryrelease.
With this process:
- all accepted changes are available as
canaryreleases for early testing - critical fixes are published as soon as possible
- new features and minor fixes take ~1.5 weeks to be published
Steps to Release
The 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
lernato generate CHANGELOG files automatically from our commit messages. - Clean the CHANGELOGsLerna sometimes adds empty changelog entries. For example, if
react-tinacmsis changed thentinacmswill get get a patch update with only the dependency updated. Make sure to installlerna-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
@tinacmsorganization - Push CHANGELOGs and Git tags to GitHub:Let everyone know!
The exact commands vary slightly depending on the type of release being made.
Prerelease
- 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 - Push CHANGELOGs and Git tags to GitHub:
git push && git push --tags
Graduating Prereleases
- 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" - Publish to NPM:
lerna publish from-package - Push CHANGELOGs and Git tags to GitHub:
git push && git push --tags
Release
- 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 - Push CHANGELOGs and Git tags to GitHub:
git push && git push --tags