THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
It is useful for all committers if we can use the same day of the week for release candidates and syncing. This has often been a Wednesday, but is up to the member(s) of the release team managing this for any release - publicise it!
- Before freezing, the plugin portal for the upcoming release should exist and dev should point to it. Maybe move everything from the previous to the new release.
- Announce Announce the feature freeze date on dev@ using [NOTICE] emails a week and a day before branching - see / adapt example.
- Change the current milestone on all remaining open pull request to the next milestone (use bulk edit in the PR table).
- Create the delivery and release branches from master. Announce feature freeze and branching - see / adapt example.
- At the time of branching, update plugin center and update center redirects https://github.com/apache/netbeans-website/blob/master/netbeans.apache.org/src/content/.htaccess.
- Clone the update center on the NetBeans VM.
- Increment module spec versions on master for the next release using
ant increment-spec-versions
. This should be the first commit in master after branching. See PR after NB14 branch. - Add the metadata about the release to
netbeansrelease.json
, including a milestone forrc1
using the hash from the release branch (eg.git show
). This will be the last hash shared with any other branch. - Trigger a build for the release branch in the Jenkins NetBeansTLP job. A build may have started automatically but will likely not have picked up the latest metadata - if so, stop and restart.
- Once the build is complete, download the source and binary zip artefacts, and check build, fixes, etc. locally. Lock the Jenkins build to stop it being cleaned up, and announce the release candidate with links to the artefacts - see / adapt example.
- Over the following week, review and merge any inbound fixes to
delivery
. - As soon as there is any change in delivery, open two pull requests to sync branches - Sync delivery to releaseXXX for XX-rcN (see example) and Sync delivery to master after XX-rcN (see example)
- If there are no merged fixes and no open major / critical issues for this release, consider whether it's time to move to a vote. The release voting candidate must be built off the same git hash as the last release candidate - edit the existing milestone in
netbeansrelease.json
. - If / when ready to trigger another release candidate, check and merge the sync PR to
releaseXXX
. Add a milestone based on the git hash of the sync PR merge commit tonetbeansrelease.json
. - Repeat from step 6, making sure to merge the other sync PR to master after verifying and announcing the release candidate. Do not sync to master if there are problems with the release candidate build - fix in
delivery
and resync / rebuild.
...