This document describes how to create a new release of SBB Angular.
- See the TODO in file
bazel-additional-stamp.mjs - Update Angular packages to align with new angular major version.
- Update ng-update schematics.
- Update stackblitz assets.
- Update version range in packages.bzl
- Update the "How to update" guide.
- Check TODOs, @breaking-change annotations and @deprecated annotations.
- Check angular components commits to be considered for next major release in the sync issue.
- Create new route for previous release (e.g. angular-v13.app.sbb.ch) and deploy corresponding version.
- Update
src/angular/schematics/migration.json. There must be a function in index.ts that matches the function referenced via "factory" (e.g. if"factory": "./ng-update/index#updateToV18", there must be a function calledupdateToV18inindex.ts) - Github maintenance workflow
- Create new maintenance branch (e.g. 14.x).
- Edit TARGET_RELEASE in
.github/workflows/maintenance-tagging-workflow.yml. - Edit
baseBranchesproperty inrenovate.jsonto activate renovate on new branch.
The following steps create a release tag and generate a changelog:
- Check out the
mainor your desired release branch and ensure it's up-to-date. - Run
pnpm releaseto create a tag and to generate the changelog. - Check if the automatically updated
CHANGELOG.mdfile contains all the information relevant for the release. If everything worked well, continue with step 7. - If necessary, update the
CHANGELOG.mdfile. Afterwards, delete the tag created in step 3, e.g. by runninggit tag -d x.y.z. - Amend the modified
CHANGELOG.mdto the release commit by runninggit add CHANGELOG.md && git commit --amend) - Recreate the release tag:
git tag x.y.z. - Push the commit including the tags:
git push origin main --tags.
Open the SBB Angular Github page and click on "Releases".
Click on "Draft a new release". Select the corresponding tag from the list. Add the title, e.g. Release x.z.y and use the
corresponding section from CHANGELOG.md as the release description.
Next, update the docs before publishing this page.
Checkout the esta-apps-argocd repository and enter the new version number.
For ArgoCD, update clusters/maggie/applications/values.yaml.
If this was a major release, also update the LEGACY_VERSIONS in our ArgoCD repository.
After having committed the changes, sync the app using the ArgoCD GUI. Check if the docs was successfully published to https://angular.app.sbb.ch.
On the GitHub release page, click on "Publish release" to publish everything.
Update the internal blueprint esta-cloud-angular repo with the new sbb-angular version.
Consider creating an internal blog post, to inform about special changes. For major updates this is mandatory.