- Minors and Patches will be released biweekly
- Release Candidates will be released after first .net release-candidate of an LTS version is available
- Majors will be release after a new .net LTS verison is available
For a Major release
- Release a Layer
- Update layers building on it
- Release updated layer
- Publish release announcement if all layers are updated and released
This is because all layers reference CI builds of the future branches before a major release. For minor releases there is no "sequence". If you have a patch or minor change for a layer, make a release as described below and don't update the version in other repositories, if not necessary. In this way, all packages reference the lowest possible patch of a major, which makes handling of the packages easier.
- Checkout dev and fetch + pull
- Check C# & NPM Dependencies
(main should only depend on released packages. So if you have updated a dependency and tested with a CI package on dev, update that now)- Package.json for Angular projects
- Directory.Builds.Targets for C# projects
- Rebuild your projects once and Push your changes
- If updates needed, create a Update packages to release versions commit to dev and push to origin
- Checkout main (fetch & pull)
- Merge origin/dev into main
- Command:
git merge origin/dev --no-ff - Use
--no-ffto get definitely a merge commit - Merge from origin to avoid a merge of an outdated local dev
- Merge commit should look like: Merge remote-tracking branch 'origin/dev'
- Command:
- Push to main
git push - Create Bump Version commit (message should be
Bump version x.y.z) by updating the corresponding file toMAJOR.MINOR.PATCHon dev (e.g.VERSION: 1.2.4afterTag/Release: 1.2.3was released, note the missing v here) and commit + pushPackage.jsonfor Angular projects (MORYX-Web -> moryx-web/projects/ngx-web-framework/package.json)VERSIONfile for C# projects
- Create Milestone for new Version
ProjectNameWithoutPrefix MAJOR.MINOR.PATCHon GitHub or GitLab
Note: This version must be identical to the new VERSION-file content
Github Repository Go to Releases -> Draft a new Release
- Verify that the Pipeline ran without issues and that a new package exists on the feeds
- release feeds for C# projects
- moryx-npm release feed for Angular projects
- Copy URL of the release in the repository to release Anouncements
- Checkout future
- Fetch + Pull
- Merge origin/dev to future (Keep future VERSION file)
git merge origin/dev- Getting a merge conflict here is a good sign
- If necessary, make a Minor release first and return here when you are done
- I.e., if you have unreleased changes on dev
- Verify that a Migration Guideline for the release exists under
/docs/migrations- If necessary, create a file
vX_tovY.md - Check if there were any breaking changes and list them in the file
Use a tool of your choice and compareorigin/devandorigin/futurebranch to view all changes - Add information about any breaking changes that require an application developer to change something in their code
Remember that another person should be able to update the packages in their project only using the Migration Guideline
- If necessary, create a file
- Checkout dev and fetch + pull
- Create branch
release/MAJOR(e.g.release/3) for the last Major and push it - Checkout
future(fetch & pull) - Check dependencies (dev should later only depend on CI or released packages)
- Package.json for Angular projects
- Directory.Builds.Targets for C# projects
- global.json for C# projects
- Rebuild you projects once and Push your changes
- Checkout
dev - Merge origin/future into dev
git merge origin/future
- Push dev
- Follow minor release instructions and return here when you are done
- Create Bump Version commit (message should be
Bump version x.y.z) by updating the corresponding file toMAJOR.0.0on future (e.g. VERSION: 2.0.0 after Tag/Release: 1.0.0 was released, note the missing v here) and commit + pushPackage.jsonfor Angular projectsVERSIONfile for C# projects
- Create Milestone for new MAJOR Version
MAJOR.0.0(for example 8.0.0) on GitHub or GitLab
