-
Notifications
You must be signed in to change notification settings - Fork 5
Automated Change Log
Periodically, we create releases of updated workspaces, by publishing new package versions in https://www.npmjs.com/org/sjcrh. These packages are used in portals and containers.
Release notes and/or change logs help inform customers of various feature enhancements and bug fixes. These release notes can also inform release test plans.
- encourage the tracking and generation of release notes at the time that features or fixes are coded
- minimize merge conflicts as related to editing the same release.txt or CHANGELOG.md file in multiple active branches
- avoid having to manually scan the commit history for relevant release notes
- maintain a consistent document structure for tracking change logs
The automation is coded in multiple places of the development workflow.
You can use one of the following methods to create entries in release.txt.
New notes can be entered manually into release.txt
in a strict format, using supported section heading such as Features
, Fixes
, DevOps
, and others.
Features
- something new
Fixes
- a bug fix for some issue
TODO: Instead of the strict format above, expect the simple unsectioned line entries with the short keywords described in the commit method below, like feat:
, fix:
, etc.
However, there is also automation to support commit keywords, such as feat:
and fix:
(note the space after the colon). These keywords may be used at the beginning of commit message line(s). This will put all detected commit lines under the corresponding section in release.txt
. This automation is coded in
-
build/setReleaseText.js
, as called by the next code below -
utils/hooks/commit-msg.sh
: must callnpm run sethooks
if you don't see.git/hooks/commit-msg
or../.git/modules/hooks/commit-msg
if proteinpaint is a submodule
TODO: Create a release.txt for each workspace in our monorepo. When multiple workspaces are affected by a change, the same release note will be copied to the release.txt of all affected workspace.
Update CHANGELOG.md, empty release.txt
When a PR is approved and merged, the Merge Change Log
workflow will detect if there are release.txt entries. If there are, those entries will be added to the Unreleased
section of CHANGELOG.md. This automation is coded in:
-
build/changeLogGenerator.js
, as called by the next code below github/workflows/CI-merge-change-log.yml
Change the Unreleased title to the new version number
In the Create Release
workflow, the new version number will replace the Unreleased
section title. Before triggering that workflow, the Unreleased
section of the CHANGELOG.md should be reviewed and edited for clarity and to fix typographical or grammatical errors. This automation is coded in:
-
build/ci-version-update.sh
, as called by the next code below github/workflows/CI-create-release.yml