Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Release documentation #8786

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

coreycb
Copy link
Collaborator

@coreycb coreycb commented Jan 31, 2025

This adds documentation that describes the release train model, feature flags, versioning system, merge process, and uplift process.

This adds documentation that describes the release train model,
feature flags, versioning system, merge process, and uplift
process.
Copy link
Member

@kewisch kewisch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r+wc, see comments below

docs/RELEASES.md Outdated
Risk to taking this patch (and alternatives if risky):
```
## Create K-9 Mail releases
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section describes the manual release process, mostly. I think it might be useful to keep in some form, let's say the apocalypse happens and GitHub actions are no longer available or certain steps fail, we'd know how to do it manually.

Otherwise I'd rather suggest this section describes how we trigger releases, what manual intervention is necessary, etc.

If you'd rather do this incrementally I'm fine with adding this section as long as we add a NOTE at the top of the section that we do things automatically now.

docs/RELEASES.md Outdated
### Release a stable version
When the team decides the `main` branch is stable enough and it's time to release a new stable version, create a new
maintenance branch (off `main`) using the desired version number with the last two digits dropped followed by `-MAINT`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might also be confusing as we don't use -MAINT in the new system any more. See former comment though.

@coreycb coreycb force-pushed the releases-doc branch 5 times, most recently from 421f243 to 36fb083 Compare February 6, 2025 15:42
Moves the manual releasing documentation back to the
RELEASING.md file and adds general steps for automated
releases to the RELEASES.md file.
Copy link
Member

@wmontwe wmontwe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coreycb Looks good, just added some comments for clarification and some tickets to add the missing parts.

- **Branch:** `main`
- **Purpose:** Active development of new features and improvements
- **Release Cadence:** Daily
- **Audience:** Developers and highly technical users who want to test the bleeding edge of Thunderbird. Nightly builds are unstable and not recommended for daily use.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be daily:

Suggested change
- **Audience:** Developers and highly technical users who want to test the bleeding edge of Thunderbird. Nightly builds are unstable and not recommended for daily use.
- **Audience:** Developers and highly technical users who want to test the bleeding edge of Thunderbird. Daily builds are unstable and not recommended for production use.

- **Purpose:** Active development of new features and improvements
- **Release Cadence:** Daily
- **Audience:** Developers and highly technical users who want to test the bleeding edge of Thunderbird. Nightly builds are unstable and not recommended for daily use.
- **Availability:** Daily builds are available on the Play Store internal channel. APKs are available on ftp.mozilla.org.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should link directly to the mobile folder at ftp.mozilla.org.


- On `main`, feature flags are enabled as soon as developers have completed all pull requests related to the feature.
- On `beta`, feature flags remain enabled unless the feature has not been fully completed and the developers would like to pause the feature.
- On `release`, feature flags are disabled until an explicit decision has been made to enable the feature for all users.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not there yet, i created a ticket for implementation: #8801

- Carrying forward main branch history to beta, and beta branch history to release.
- No branch history is lost.
- Git tags are retained in git log.
- Files/code that is unique per branch can remain that way (e.g. notes files such as changelog_master.xml, version codes).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a ticket to ensure this is the case for changelog_master.xml: #8802


### Uplift Process

1. The requestor creates a pull request to the respective target branch with the cherry-picked commits they intend to uplift.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the moment we have a script and a GitHub action that is used for uplifts. It depends on the task: uplift to beta and task: uplift to release labels to cherry-pick to the corresponding branch.

How would that fit into the process?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants