-
-
Couldn't load subscription status.
- Fork 452
Closed
Labels
Description
Summary (*)
Creating a release is still a very manual process.
The current Release process looks like this:
- Change Mage.php OpenMage Version
- create a locally signed commit for this (when we have 2FA enforced on the org, we may also allow signed by github)
- an example for this is cbeebfa
- Create Draft Release in Github for this Commit
- the tagging scheme is vx.y.z so for example v19.0.5
- Write/Link Changelog listing all merged PRs with Issue/PR IDs
- Check name of merged PRs if they are easy understandable for what was merged
- Rename if necessary
- you can use this page to see all the changes https://github.com/OpenMage/magento-lts/commits/1.9.4.x
- also gitk or any other git history visualizer can help
- Check if the PRs mentioned BC breaks, possible Issues or already noticed Bugs
- Check CI Run for version commit
- Publish Release if no Issues are appearing
after done for Version 19, do a merge upstream into the current next supported version(s), and repeat the release process there.
Remember to also check before Releasing, if there are any suspicious commits which are not related to any PullRequests
- git fetch --tags
- git merge v19.y.z
@Flyingmana did start to work on some tooling to make some things easier, which currently helps creating the changelog
https://github.com/Cotya/maintainer-tooling
This is currently basically a process which needs to be done in one go, which builds up on the work needed for it.
Proposed solution
- have a first step for release creation to start in a release branch like release-19.4.x (to reduce possible conflicts by PRs merged after starting to work on a new release)
- Fast-Forward the Release branch with the according main branch (fail if a fast-forward is not possible because of changes in the release branch not yet in the main branch)
- automatic update of version number
- automatic update of changelog using the generated log of https://github.com/Cotya/maintainer-tooling (might need some changes on the tooling end
- have this as part of a github action triggered by a manual dispatch and failing, when there is already a new release in progress
- have a lock file(?) needing to be removed manually before the next step can start, as the changelog needs to be checked manually again if something is missing or needs to be extended. Also this is the time where security fixes are merged into the public branch
- merge in downstream versions if not happened yet (should probably happen after changelog generation, as we currently just refer to the changes there via "includes all changes from version x.y.z)
- make sure the referenced changes have all BC breaks noted in the changelog
- have another github action for creating the (draft-)release and do some checks before and merging the release back into the main branches (or creating a PR if there is a merge conflict? merge conflict should not let the build fail here)
sreichel, tmotyl, Sdfendor, Sekiphp and addison74elidrissidev, sreichel and macoaure