Skip to content

Commit

Permalink
Update release process
Browse files Browse the repository at this point in the history
  • Loading branch information
paulinea committed Sep 13, 2023
1 parent c0c7805 commit ba8af59
Showing 1 changed file with 54 additions and 39 deletions.
93 changes: 54 additions & 39 deletions release/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ This file lists all the steps to follow when releasing a new version of ODS Andr

- [Prepare release](#prepare-release)
- [Release](#release)
* [Publish release to Maven Central](#publish-release-to-maven-central)
* [Publish release to GitHub](#publish-release-to-github)
* [Build unsigned APK and bundle for Google Play Store](#build-unsigned-apk-and-bundle-for-google-play-store)
* [Announce the new release on FoODS](#announce-the-new-release-on-foods)<br /><br />
* [Publish release to Maven Central](#publish-release-to-maven-central)
* [Publish release to GitHub](#publish-release-to-github)
* [Publish release to Google Play Store](#publish-release-to-google-play-store)
* [Announce the new release on GitHub & FoODS](#announce-the-new-release-on-github--foods)<br /><br />

## Prepare release

Expand All @@ -19,8 +19,8 @@ This file lists all the steps to follow when releasing a new version of ODS Andr
./gradlew prepareRelease -Pversion=X.Y.Z
```

This task performs the following changes to the project:
This task performs the following changes to the project:

- Update `version` project property in `gradle.properties`.
- Update version of ODS Android dependencies in various Markdown files.
- Update the changelog.
Expand All @@ -29,9 +29,9 @@ This file lists all the steps to follow when releasing a new version of ODS Andr

- Verify the changes mentioned above, then commit and push.

Please see [DEVELOP.md](../DEVELOP.md#documentation) to get more information about how to build and verify the documentation.
Once the Jekyll server is started, the documentation for version X.Y.Z should be available at http://127.0.0.1:4000/ods-android/X.Y.Z/.
Please see [DEVELOP.md](../DEVELOP.md#documentation) to get more information about how to build and verify the documentation.

Once the Jekyll server is started, the documentation for version X.Y.Z should be available at http://127.0.0.1:4000/ods-android/X.Y.Z/.

- Create a new pull request named `Prepare release X.Y.Z` on GitHub to merge your branch into `develop`.

Expand All @@ -49,36 +49,36 @@ This file lists all the steps to follow when releasing a new version of ODS Andr
./gradlew tagRelease
```

This task adds an `X.Y.Z` tag and push it to the remote repository.<br /><br />
This task adds an `X.Y.Z` tag and push it to the remote repository.<br /><br />

### Publish release to Maven Central

- Go to [GitHub Actions](https://github.com/Orange-OpenSource/ods-android/actions) and open the workflow launched by the tag creation.

- Click `Review deployments`, select `maven-central-release` and click `Approve and deploy`.

![Maven Central release deployment](images/maven_central_release_01.png)
![Maven Central release deployment](images/maven_central_release_01.png)

- Go to [Sonatype Nexus Repository Manager](https://oss.sonatype.org).

- Click `Staging Repositories` and verify the content of the ODS Android repository.

![Sonatype staging repositories](images/maven_central_release_02.png)
![Sonatype staging repositories](images/maven_central_release_02.png)

- Click `Close` if content is OK or `Drop` otherwise.

- Retrieve the Sonatype repository ID from either the repository name or URL.

![Sonatype repository ID](images/maven_central_release_03.png)
![Sonatype repository ID](images/maven_central_release_03.png)

- Launch the `testSonatypeRepository` Gradle task using the ID from the previous step:

```shell
./gradlew testSonatypeRepository -PsonatypeRepositoryId=<repository_id>
```

This task allows you to test the release before it is deployed to Maven Central and performs the following changes to the project:
This task allows you to test the release before it is deployed to Maven Central and performs the following changes to the project:

- Add Sonatype Maven repository.
- Remove all Android Studio modules except `app`.
- Replace project dependencies with module dependencies in `app`.<br /><br />
Expand All @@ -95,11 +95,11 @@ This file lists all the steps to follow when releasing a new version of ODS Andr

- Edit the new release draft.

![Edit GitHub release](images/github_release_01.png)
![Edit GitHub release](images/github_release_01.png)

- Set previous tag and click `Generate release notes` to automatically generate the release notes.

![Generate GitHub release notes](images/github_release_02.png)
![Generate GitHub release notes](images/github_release_02.png)

- Verify the release notes using the preview tab.

Expand All @@ -113,34 +113,49 @@ This file lists all the steps to follow when releasing a new version of ODS Andr

- Click `Integrations`, find the uploaded bundle in the `Artifacts` sections and click `Create release`.

![Create OMA Portal release](images/google_play_store_release_01.png)
![Create OMA Portal release](images/google_play_store_release_01.png)

- Progress through the various submission steps.

- When step is `Store submissions`, select `Closed beta with Google Groups`, set `Email addresses` to `[email protected]` and click `Go for store submission`.
![OMA Portal store submission](images/google_play_store_release_02.png)<br /><br />
![OMA Portal store submission](images/google_play_store_release_02.png)<br /><br />
### Announce the new release on GitHub & FoODS
- Go to [GitHub ods-android - Discussions > Announcements](https://github.com/Orange-OpenSource/ods-android/discussions/categories/announcements)
- Click to `New discussion`
- Set title to `ODS Android library X.Y.Z`
- Post a message with screenshots of new elements to announce the release
Here is an example of the v0.15.0 release announcement:
```markdown
**ODS Android library v0.15.0 is here!**
Be careful, this version includes several APIs change in the library in order to prepare the v1.0 release.

### New components

**- List item
**: It allows you to display a Checkbox, a Switch, a RadioButton, an Icon or a Caption text as trailing element. If this does not meet your needs, you can use another signature which accept any Composable as trailing.

<img width="441" alt="Capture d’écran 2023-09-13 à 15 06 07" src="https://github.com/Orange-OpenSource/ods-android/assets/17410558/7ff8f0e4-1dca-4f5b-9ce8-ee0b9f86cb1d">

<img width="442" alt="Capture d’écran 2023-09-13 à 15 06 32" src="https://github.com/Orange-OpenSource/ods-android/assets/17410558/17c6bed1-b565-4140-abf8-e1e7107cf59a">
<br/><br/>

**- Toggle text buttons group**:
<img width="443" alt="Capture d’écran 2023-09-13 à 15 03 34" src="https://github.com/Orange-OpenSource/ods-android/assets/17410558/95428f63-5ddd-457f-a9e7-c89d38d5e85f">

---
🗒️ Please review the [v0.15.0 release note](https://github.com/Orange-OpenSource/ods-android/releases/tag/0.15.0) for a complete list of changes since our previous release.

### Announce the new release on FoODS
📱 You can subscribe to the [Orange Design System Google group](https://groups.google.com/g/odsapp) in order to be able to install the [Demo app](https://play.google.com/apps/testing/com.orange.ods.app).
```
- Go to [Teams - FoODS: ODS Mobile Android](https://teams.microsoft.com/l/channel/19%3a62efff7aca9f4865a841076b4a6c428f%40thread.tacv2/4-ODS%2520Mobile%2520Android?groupId=a9581e9e-6775-46f5-9e4a-3ce57096e6be&tenantId=90c7a20a-f34b-40bf-bc48-b9253b6f5d20)
- Post a message with screenshots of new elements to announce the release.
As Microsoft Teams does not support pasting Markdown, open the text below in a Markdown editor that produces rich text, copy the rich text and paste it to Microsoft Teams. Finally edit the message to display the emojis and add newlines wherever needed.
> (rocket) Release X.Y.Z is available!
>
> **New components**
>- C8
>- C9
>
>**New module**
>- M1
>
>(page) [Release note](https://github.com/Orange-OpenSource/ods-android/releases/tag/X.Y.Z)
>
>(phone) [Demo app](https://play.google.com/apps/testing/com.orange.ods.app)
>
>Note: Please subscribe to the [Orange Design System Google group](https://groups.google.com/g/odsapp) in order to be able to install the demo app.
- Post a message with a link to the previously created GitHub announcement

0 comments on commit ba8af59

Please sign in to comment.