Tool to generate date-based versions
~/demo $ git log --oneline --decorate --graph --all
* 0dd0a2a (tag: v1.20200512.2.0, release/v1.20200512.2, master) fourth commit
* 39ccfc3 (tag: v1.20200512.1.0, release/v1.20200512.1) third commit
* 8d634ca (tag: v1.20200510.2.0, release/v1.20200510.2) second commit
| * 8b5c451 (tag: v1.20200510.1.1, release/v1.20200510.1) patch for first commit
|/
* 96fedff (tag: v1.20200510.1.0) first commit
`
This tool
Usage:
Call this function from the release pipeline.
- The new version will be calculated based on the previous version, the date and the patch flag.
- The commit will be tagged with the version.
- If the --patch flag is not provided, a release branch will be created.
- When you provide a scope through the --scopeTag argument. It will iterate through all the sub scope until it finds a matching tag. This is particularly useful in a monorepo where you would wand to maintain multiple scope. Example your release pipeline produces the following tag: release/v1.YearMonthDay.version and you wish to patch a package using a different tag pattern. You can achieve this by calling npx date-based-version --patch --scopedBranch=release/ and you will get the following tag: release/.
`
on master
npx date-based-version
on a release branch
npx date-based-version --patch
dry run (won't create branch or tag)
npx date-based-version --dry-run
scope tag by prefix (i.e. scope/v1.20200510.1.0)
npx date-based-version --scopeTag=scope
scope branch by prefix (i.e. scope/release/v1.20200510.1)
npx date-based-version --scopeBranch=scope
``