-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Todos before a release
Arthur Schiwon edited this page Nov 27, 2024
·
62 revisions
Check list for a release (copy it to a ticket and then tick of the checkboxes):
# Beta phase (major releases)
* [ ] add app store release (https://apps.nextcloud.com/admin/core/nextcloudrelease/add/)
# RC phase (up to one week before the release date)
* [ ] get all the pending backports merged to the stable branches ([check the milestones accross the organisation](https://github.com/issues?utf8=✓&q=is%3Aopen+user%3Anextcloud+archived%3Afalse+milestone%3A%22Nextcloud+13.0.2%22+))
* when a PR requires development actions before merge, you may assign relevant persons
* if moving a PR'S milestone for the third time without activity, warn it will be closed next time
* when a PR's milestone was moved already three times without activity, close the PR
* [ ] create the RC packages using the release script (see README of release script)
* [ ] upload the RC packages to the `/server/prereleases` folder of the download server
* [ ] update the beta channel of the [updater_server](https://github.com/nextcloud/updater_server)
* [ ] test the updater_server on the internal updater server
* [ ] check that the enterprise patches apply properly (see release script repo)
* [ ] create releases from tags [on the server repo](https://github.com/nextcloud/server/tags). Tick "Set as a pre-release"!
* [ ] ask in the forums for help (use the [changelog generator script](https://github.com/nextcloud/github_helper#changelog-generator))
* [ ] prepare "What's new" server - [Example](https://github.com/nextcloud/changelog_server/pull/5)
* [ ] First RC of a major: branch-off the stableXX branch from the default branch (use the [brancher](https://github.com/nextcloud/github_helper/tree/master/brancher))
* [ ] First RC of a major: enable daily build of the stable channel on the builder VM.
* [ ] First RC of a major: add daily update path to client_updater
* [ ] First RC of a major: Update the Nextcloud database fields description spreadsheet (ping all "php" team leads to review/update https://cloud.nextcloud.com/f/5866090)
* [ ] First RC of a major: enable build dailies for stableXX
* [ ] **marketing** sent customer newsletter with security and release date information
* [ ] **marketing** prepare social media messages for the release next week for translation (deadline Wednesday 16:00 Berlin time)
* [ ] **sysadmin** deploy on productive instance
* [ ] **sysadmin** test update of try.nextcloud.com, schedule update on release date (please ping sysadmins)
# Release (~1 day before the planned release)
* [ ] create the final packages using the release script (see README of release script)
* [ ] upload the final packages to `/server/prereleases` folder of the download server
* [ ] inform server packagers in the corresponding Talk channel about the availability of the archives
* [ ] (maintenance only) provide the changelogs to Marketing person on duty (use the [changelog generator script](https://github.com/nextcloud/github_helper#changelog-generator))
* [ ] **marketing** update the changelog on the website (use the [changelog generator script](https://github.com/nextcloud/github_helper#changelog-generator))
* [ ] **marketing** prepare blog post, newsletter, social media messages (check the changelog for interesting features/fixes and possible screenshots)
* [ ] **sysadmin** deploy on productive instance
## T - 30 minutes
* [ ] copy the final packages to `/server/releases` folder of the download server
* [ ] update the stable channel of the [updater_server](https://github.com/nextcloud/updater_server)
* [ ] test the updater_server on the internal updater server
* [ ] update [wiki page](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule), next maintenance roughly 4 weeks later (be considerate of holidays, vacation, etc)
* [ ] merge `master` of updater_server to `production` ([oepn PR here](https://github.com/nextcloud/updater_server/compare/production...master?expand=1))
## T
* [ ] create releases from tags [on the server repo](https://github.com/nextcloud/server/tags)
* [ ] send https://cloud.nextcloud.com/f/5866090 to Marketing to update website
* [ ] **marketing** send newsletter
* [ ] **marketing** publish blog posts
* [ ] **marketing** post on social media
* [ ] **marketing** re-edit the release forum post to look good when pinned on top (major release only)
# Enterprise version
* [ ] fetch latest updater server version for customer updater server
* [ ] build and upload enterprise version
* [ ] update customer updater server with enterprise version
* [ ] for old releases: update the [changelogs on the portal](https://github.com/nextcloud-gmbh/portal.nextcloud.com/tree/main/content/Changelogs)
* [ ] on first major: schedule bumping staged rollout bumps to 70% and 100%
# Post processing (non-coding)
* [ ] update the milestones in all repos (use the [milestone updater](https://github.com/nextcloud/github_helper/tree/master/milestoneupdater) for this)
* [ ] update user content proxy of app store (see https://github.com/nextcloud/usercontent.apps.nextcloud.com)
* [ ] update security scanner
* [ ] update owncloud-migration config on update server
* [ ] update portal.nextcloud.com with newest enterprise release link
* [ ] check wikipedia pages for release information - update pages if necessary
* [ ] check wikimedia content for outdated media e.g. screenshots
* [ ] update documentation [min and max EOL versions config](https://github.com/nextcloud/documentation/blob/master/conf.py#L39-L40)
* [ ] update dependabot supported for server [stable branch configs](https://github.com/nextcloud/server/blob/master/.github/dependabot.yml)
* [ ] update dependabot supported for 3rdparty [stable branch configs](https://github.com/nextcloud/3rdparty/blob/master/.github/dependabot.yml)
* [ ] schedule a retrospective if applicable
# Post processing (major version)
* [ ] on minimum PHP version bump: update installer script on download server (see [repo](https://github.com/nextcloud/web-installer))
* [ ] on stable channel creation: update translation sync containers with new stable channels (translations & translations-app container)
* [ ] on stable channel creation: update config-convert repo and translations-documentation-sync container
* [ ] on stable channel creation/retirement: check [dependabot jobs](https://app.dependabot.com/accounts/nextcloud/repos/61813775)
* [ ] on stable channel creation: change stable symlink on documentation to newest one
* [ ] on stable channel creation/retirement: check the documentation build jobs for the current set of stable channels
* [ ] schedule bumping staged rollout bumps to 70% and 100%
* [ ] schedule a retrospective if applicable
* [ ] inform sysadmins to update demo instances
# Pulling a release
* [ ] inform server packagers in the corresponding Talk channel about pulling the release (ideally give them as much time as possible)
* [ ] inform in the forums about the pull and the outlook
* [ ] on the download server, move the packages from `/server/releases` back to `/server/prereleases`
* [ ] on the updater_server, revert the the configuration update (master, then prod)
* [ ] on the customer updater_server, revert the the configuration update (master, then prod)
* [ ] for portal.nextcloud.com revert the release link updates
Nextcloud is an open source project and an open company. That means it is yours to make a difference!
Enterprise? Public Sector or Education user? You may want to have a look into our Enterprise Support Subscriptions.