Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changelog generation #1014

Merged
merged 10 commits into from
Aug 9, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Docs section about release process
ba1ciu committed Aug 8, 2023

Unverified

This user has not yet uploaded their public signing key.
commit 1b512f496af7d8f9c25dae1a478842d9ad8442fb
4 changes: 4 additions & 0 deletions docs/.vitepress/config.js
Original file line number Diff line number Diff line change
@@ -170,6 +170,10 @@ export default withMermaid(
text: 'Architecture',
link: '/developers/architecture'
},
{
text: 'Release Life Cycle',
link: '/developers/release-life-cycle'
},
{
text: 'Plastic Credits',
link: '/developers/plastic-credits'
23 changes: 23 additions & 0 deletions docs/developers/release-life-cycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# EmpowerChain Release Life Cycle

## Versioning

For blockchain code versioning, we use standard [Semantic Versioning](https://semver.org/) schema, which is respected in a following way:
- **MAJOR** is incremented every time when there is a consensus-breaking change (software upgrade is being performed)
- **MINOR** is incremented when new funcionalities are being added in a non-consensus-breaking way or a major patch to current functionalities is being introduced
- **PATCH** is incremented on small hotfixes and bugfixes (non-consensus-breaking)

## Changelog

*empowerchain* repository contains a *chain/CHANGELOG.md* file, where all changes are being tracked. It's structurized based on a [Keep a changelog](https://keepachangelog.com/en/1.0.0/) format. GitHub Actions is in place that allows automatic changelog generation based on the commits. It accepts *base* and *new* version numbers, which it uses to pick the right changes.
Additionaly, every software upgrade has it's own *RELEASE_NOTES.md* in *chain/app/upgrades/MAJOR_VERSION/*, which is also created with the mentioned GitHub Action. Creating a new release should be done by performing steps below:

1. Agree on a commit on a main branch, which should become a release.
2. Run Changelog generation GitHub Action (it will create a PR with changelog update).
3. Modify automatically generated changelog as needed. Add important information about the upgrade if it's missing in the autogenerated part.
4. Merge PR.
5. Tag a resulting commit with a correct version.

After a commit on main is tagged with a version, release GitHub Action will run and create a new release.

6. Modify release description if needed (it's taken from *RELEASE_NOTES.md*).