nextcloud / nextcloud/desktop

Release X.Y.0

Open
#2,601 2 comments 0 reactions 0 assignees View on GitHub
overview
Dominant language
C++
Stars
3.9k
Forks
1k
Avg merge
1d 17h
Merged PRs (30d)
123

Description

### :memo: TO DO

### :label: Tagging
- [ ] :warning: checks that the milestone associated with the release has no outstanding pending work to be done
- [ ] 🎯 Check the milestone for X.Y.0 to make sure every merged PR is included.
- [ ] Send a mail to marketing with a changelog and the expected release date no sooner than 7 days later
- [ ] :clock1: wait 7 days
- [ ] Bump [VERSION.cmake](https://github.com/nextcloud/desktop/blob/master/VERSION.cmake) to X.Y.0 (release to X.Y.0 and version to X.Y) in the *stable* branch
- [ ] Create tag from stable branch on the commit introducing the version bump
```
$ git checkout stable-X.Y
$ git pull
$ git tag -s -m "Release X.Y.0" vX.Y.0
$ git push origin vX.Y.0
```
```
git remote add releases git@github.com:nextcloud-releases/desktop.git
git push origin vX.Y.0
git push releases vX.Y.0
```
- [ ] :label: Create tag from corresponding stable branch in client-building. Steps to create the tag are the same as the above.

### :factory: Building: trigger the builds on brander and wait for them to succeed
- [ ] :penguin: Linux
- [ ] :apple: Mac OS one client
- [ ] :door: Windows MSI

### :test_tube: Testing: execute the feature release test plan for each build
#### :penguin: Linux
- [ ] update from last release candidate (meaning that you have an existing account configured with the release candidate and upgrade the installation via installer)
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] fresh installation
- [ ] configure a new account
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] configure a new account using selective sync
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] test important new feature from the release

#### :apple: Mac OS
- [ ] update from last release candidate (meaning that you have an existing account configured with the release candidate and upgrade the installation via installer)
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] fresh installation
- [ ] configure a new account
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] configure a new account using selective sync
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] test important new feature from the release

#### :apple: Mac OS VFS
- [ ] update from last release candidate (meaning that you have an existing account configured with the release candidate and upgrade the installation via installer)
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] fresh installation
- [ ] configure a new account
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] test important new feature from the release

#### :door: Windows
- [ ] update from last release candidate (meaning that you have an existing account configured with the release candidate and upgrade the installation via installer)
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] fresh installation
- [ ] configure a new account with VFS
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] configure a new account using selective sync
- [ ] upload/download/check activity/check integration to file browser
- [ ] check cpu usage during sync
- [ ] tray menu interaction
- [ ] test Talk notifications (receive notification, reply to a message)
- [ ] check cpu usage during sync
- [ ] test important new feature from the release

### :old_key: Signing
- [ ] Download the delta update file (.tbz) of the *mac OS* build.
- [ ] Download the delta update file (.tbz) of the *mac OS VFS* build.
> [!TIP]
> The .tbz file is required for automated upgrade. The link is located after the last mention of *Sharing succeeded* in the build logs. The file needs to be signed similarly to the .pkg file and uploaded everywhere.
- [ ] Sign binaries (`ssh -P 2200` to signing VM, then, `cat how-to-sign`, then `scp -P 2200` to download signatures)

### 🚀 Publishing
- [ ] Close the milestone for X.Y.0

#### :book: Changelog: create draft pre-release and release notes (click on ```Generate release notes```) at:
- [ ] [nextcloud/desktop/releases](https://github.com/nextcloud/desktop/releases)
> [!WARNING]
> Only add the release notes to [nextcloud/desktop/releases](https://github.com/nextcloud/desktop/releases).
> 🚨 For security reasons, the binaries are *only* uploaded to [nextcloud-releases/desktop/releases](https://github.com/nextcloud-releases/desktop/releases).
- [ ] [nextcloud-releases/desktop/releases](https://github.com/nextcloud-releases/desktop/releases) (copy the changelog from [nextcloud/desktop/releases](https://github.com/nextcloud/desktop/releases))
- [ ] be careful macOS VFS packages (so called one client) are wrongly named and should follow this pattern: `Nextcloud-x.y.0.pkg`

#### ⬆️ Upload binaries to:
- [ ] the draft pre-release at [nextcloud-releases/desktop/releases](https://github.com/nextcloud-releases/desktop/releases)
- [ ] [download.nextcloud.com](https://download.nextcloud.com) in the user home directory (so still private)

#### 📧 Marketing:
- [ ] notify Marketing that the release is ready.

#### 🔈 When marketing gives the go then publish the draft pre-releases created previously at:
- [ ] [nextcloud/desktop/releases](https://github.com/nextcloud/desktop/releases)
> [!CAUTION]
> 🚨 No binaries in [nextcloud/desktop/releases](https://github.com/nextcloud/desktop/releases)
- [ ] [nextcloud-releases/desktop/releases](https://github.com/nextcloud-releases/desktop/releases)
- [ ] Run the `publish_desktop.sh` script on download.nextcloud.com so that the binaries appear at [download.nextcloud.com/desktop/releases](https://download.nextcloud.com/desktop/releases)
- [ ] Ask sysadmin to update the `.htaccess` such that latest alias point toward the new release (for example https://download.nextcloud.com/desktop/releases/Windows/latest)

#### 🆕 Release via the updater server:
- In the [updater server config](https://github.com/nextcloud/client_updater_server/blob/8aca0826b0a617acc56a30f3095af7f16abd80f3/config/config.php#L24C1-L27C39) change the following values to serve the release:
- [ ] `$stableReleaseDate`
- [ ] `$fileProviderStableReleaseDate`
- [ ] `$stableVersion`
- [ ] `$fileProviderStableVersion`

> [!WARNING]
> The **mac update service** needs the `signature` and `length` values in order to work: the *sparkle:edSignature* and *length* values are printed right after the last mention of *Sharing succeeded* in the build log.

- 🍎 Under [`stable`](https://github.com/nextcloud/client_updater_server/blob/8aca0826b0a617acc56a30f3095af7f16abd80f3/config/config.php#L76), update the following values for [`macos`](https://github.com/nextcloud/client_updater_server/blob/8aca0826b0a617acc56a30f3095af7f16abd80f3/config/config.php#L99C111-L102C38) :
- [ ] `signature`
- [ ] `length`
- [ ] `fileProviderSignature`
- [ ] `fileProviderLength`

#### 🌐 Update the website and users:
- [ ] Ping marketing (Peter specifically via e-mail or chat) to change the [install-clients](https://nextcloud.com/install/#install-clients) page to update the link to the latest release on Nextcloud website.
- [ ] Ensure that desktop client links work on website and release packages are downloaded fine
- [ ] Also test links on portal and that release packages are downloaded fine

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.