Generating a changelog
sfp's release command will automate generating a change log that will help the team to understand what are the constituent work items/commits that are part of the release and which artifacts where impacted and what was installed
Here is an example of the changelog that is generated by sfp\

The changelog is available as both as a markdown file and also as an associated json file that has the all the necessary information to render the change log accordingly for instance in a different tool
One can instruct the release command to generate the changelog by utilizing the below flags
-b, --branchname=<value> Repository branch in which the changelog files are located
--generatechangelog Create a release changelog
For eg in the below release command, the release command looks for exisiting releasechangelog.json
to understand the previous release deployed in the environment and it would append the changelog information to both releasechangelog.json
and Release-Changelog.md
file
sfp release -u prod \
-p releasedefn.yaml \
--npm --scope flxbl \
-v prod \
--generatechangelog --branchname changelog
Additional attributes to control changelog links for instance are available in the release definition
Identifying work items
Change log displays work item by identify attributes in commit message using a simple regex pattern as provided in the workItemFilters section of your release definition.
For instance, given a commit message with the following message , the work item BE-1836 is identified by the work item filter BE-[0-9]{2,5}`
fix/BE-1836: ⚡ added Config changes for Field type changes (#1629)
* fix: ⚡ added Config changes for Field type changes
sfp will identify the part BE-1836 and add a URL link to your work item tracking system by using the provided workItemUrl
attribute
Standalone Changelog Generation
You can generate changelogs independently using the sfp changelog:generate
command:
sfp changelog:generate \
--releasename "Release-2.0.0" \
--artifactdir artifacts \
--workitemfilter "(JIRA|TASK)-[0-9]{3,4}" \
--workitemurl "https://yourcompany.atlassian.net/browse" \
--branchname changelog \
--directory releases/changelogs
Command Attributes
-n, --releasename
Name of the release for changelog generation
Yes
-d, --artifactdir
Directory containing sfp artifacts (default: artifacts)
Yes
-w, --workitemfilter
Regex to search for work items in commit messages
Yes
-b, --branchname
Repository branch where changelog files are stored
Yes
--workitemurl
Base URL for work items (ID will be appended)
No
--directory
Directory to write changelog files
No
--limit
Limit number of releases to display in markdown
No
--showallartifacts
Show all artifacts including unchanged ones
No
--nopush
Create changelog locally without pushing to repository
No
--forcepush
Force push changes to the repository branch
No
Multiple Work Item Filters
You can specify multiple regex patterns by separating them with colons:
--workitemfilter "JIRA-[0-9]+:TASK-[0-9]+:BUG-[0-9]+"
This will match any of the patterns in your commit messages.
Last updated