Skip to content

Commit

Permalink
Nikola auto commit.
Browse files Browse the repository at this point in the history
Source commit: 8b5bc05
Nikola version: 8.2.4
  • Loading branch information
jfx2006 committed Dec 8, 2023
1 parent 8862b63 commit 9b73c86
Show file tree
Hide file tree
Showing 17 changed files with 647 additions and 45 deletions.
2 changes: 1 addition & 1 deletion dashboard/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<div class="dash-nav-dropdown-menu dropdown-menu">
<a href="../documentation/drivers/" class="dash-nav-dropdown-item dropdown-item">Overview</a>
<a href="../documentation/drivers/releasenotes/" class="dash-nav-dropdown-item dropdown-item">Release Notes</a>
<a href="../documentation/drivers/mergedayautomation/" class="dash-nav-dropdown-item dropdown-item">Merge Day Automation</a>
<a href="../documentation/drivers/merge_duty/" class="dash-nav-dropdown-item dropdown-item">Merge Duty</a>
<a href="../documentation/drivers/mergeday_email_templates/" class="dash-nav-dropdown-item dropdown-item">Merge Emails</a>
</div>
</li>
Expand Down
2 changes: 1 addition & 1 deletion documentation/developers/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
<div class="dash-nav-dropdown-menu dropdown-menu">
<a href="../drivers/" class="dash-nav-dropdown-item dropdown-item">Overview</a>
<a href="../drivers/releasenotes/" class="dash-nav-dropdown-item dropdown-item">Release Notes</a>
<a href="../drivers/mergedayautomation/" class="dash-nav-dropdown-item dropdown-item">Merge Day Automation</a>
<a href="../drivers/merge_duty/" class="dash-nav-dropdown-item dropdown-item">Merge Duty</a>
<a href="../drivers/mergeday_email_templates/" class="dash-nav-dropdown-item dropdown-item">Merge Emails</a>
</div>
</li>
Expand Down
12 changes: 3 additions & 9 deletions documentation/drivers/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<div class="dash-nav-dropdown-menu dropdown-menu">
<a href="." class="dash-nav-dropdown-item dropdown-item active">Overview <span class="sr-only">(active)</span></a>
<a href="releasenotes/" class="dash-nav-dropdown-item dropdown-item">Release Notes</a>
<a href="mergedayautomation/" class="dash-nav-dropdown-item dropdown-item">Merge Day Automation</a>
<a href="merge_duty/" class="dash-nav-dropdown-item dropdown-item">Merge Duty</a>
<a href="mergeday_email_templates/" class="dash-nav-dropdown-item dropdown-item">Merge Emails</a>
</div>
</li>
Expand Down Expand Up @@ -84,14 +84,8 @@ <h2>Triage</h2>
necessary.</p>
<p>To check the current blocking and wanted bugs for a release, we have a bug
tracking page here (NOT YET).</p>
<h2>Merge Repositories</h2>
<p>Merge Day happens every four weeks on a Monday and is the first step in a new
beta version. See
<a href="https://wiki.mozilla.org/Thunderbird/Release_Driving/Rapid_Release_Activities/Merge_Repositories">Merge Repositories</a>
for all of the details.</p>
<h2>Merge Day Automation</h2>
<p>This process is planned to replace the above. It is based on the Firefox Merge
process. See <a href="mergedayautomation">Merge Day Automation</a>.</p>
<h2>Merge Duty</h2>
<p>Happens over 3 weeks and is what drives the release trains. See <a href="merge_duty">Merge Duty</a>.</p>
<h2>Uplifts</h2>
<p>Bugs are fixed in comm-central. When a bug is present in a beta or release
version, the procedure for copying that fix to comm-beta or comm-esrXX is called
Expand Down
12 changes: 2 additions & 10 deletions documentation/drivers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,9 @@ necessary.
To check the current blocking and wanted bugs for a release, we have a bug
tracking page here (NOT YET).

# Merge Repositories
# Merge Duty

Merge Day happens every four weeks on a Monday and is the first step in a new
beta version. See
[Merge Repositories](https://wiki.mozilla.org/Thunderbird/Release_Driving/Rapid_Release_Activities/Merge_Repositories)
for all of the details.

# Merge Day Automation

This process is planned to replace the above. It is based on the Firefox Merge
process. See [Merge Day Automation](mergedayautomation).
Happens over 3 weeks and is what drives the release trains. See [Merge Duty](merge_duty).

# Uplifts

Expand Down
341 changes: 341 additions & 0 deletions documentation/drivers/merge_duty/index.html

Large diffs are not rendered by default.

261 changes: 261 additions & 0 deletions documentation/drivers/merge_duty/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
title: Merge Duty
slug: merge_duty
date: 2023-12-08 16:04:40 UTC
type: text

# Merge Duty

All code changes to Thunderbird land in the
[comm-central](https://hg.mozilla.org/comm-central) repository

- The `Daily` releases are built from that repo once a day.
- `Beta` releases are built from the [comm-beta](https://hg.mozilla.org/releases/comm-beta/)
repository
- `Release` is built from [comm-release](https://hg.mozilla.org/releases/comm-release/)
repository
- `Extended Support Releases` from the relevant ESR repo, such as
[comm-esr115](https://hg.mozilla.org/releases/comm-esr115/)

**The *merge* in *Merge Duty* refers to the `comm-beta-to-release` merge. All dates
referenced below are relative to *Merge Day*, which is 1 week before the
traditional Thunderbird merge-day, now known as *version bump day*.

## Email templates

See [Merge Email Templates](mergeday_email_templates) for the email templates.

## Overview of Procedure

- Prep work a week before the merge
- [Do migration no-op trial runs](#do-migration-no-op-trial-runs)
- On Merge day:
- [Merge beta to release](#merge-beta-to-release)
- On Version Bump day, one week later:
- [Merge central to beta](#merge-central-to-beta)
- [Tag central and bump versions](#tag-central-and-bump-versions)
- [Bump mozilla-esr](#bump-esr-version)
- [Bump Daily version in ShipIt](#bump-nightly-shipit)


## Trial runs, one week prior to merge

!!! important

Doing a no-op trial run of each migration ensures that the migrations themselves
work prior to Merge day.

#### General steps

1. Go to
[Treeherder](https://treeherder.mozilla.org/).
2. Select the repo depending on the merge you want to perform (comm-central,
comm-beta or comm-esrZZ).
3. On the latest push, click on the down arrow in the top right corner.
4. Select “Custom push action…”
5. Choose `merge-automation`
6. In Treeherder, you'll see a new push show up in Treeherder in the repo you
will be merging to. It can take a few minutes for the push and task to appear.
7. Click on the merge or bump tasks (not the Gecko decision task). A job details
panel will pop up and from there you'll find a link to the diff file in the
artifacts tab. Note: There will be a cron job that kicks off another bump task
with the same name, only one of them will contain the diff.

#### comm-beta->comm-release migration no-op trial run

1. Follow the [general steps](#general-steps) hopping on
[comm-beta](https://treeherder.mozilla.org/#/jobs?repo=comm-beta)
2. Insert the following payload and click submit.

```yaml
behavior: comm-beta-to-release
force-dry-run: true
push: true
```
#### comm-central->comm-beta migration no-op trial run
1. Follow the [general steps](#general-steps) hopping on
[comm-central](https://treeherder.mozilla.org/#/jobs?repo=comm-central)
2. Insert the following payload and click submit.
```yaml
behavior: comm-central-to-beta
force-dry-run: true
push: true
```
#### comm-esr bump no-op trial run
comm-esr branches evolve over time: comm-esr115 is the current esr, and that is
used in the discussion below; in the future, you may need to substitute a
different esr version number.
1. Follow the [general steps](#general-steps) hopping on
[comm-esr115](https://treeherder.mozilla.org/#/jobs?repo=comm-esr115)
2. Insert the following payload and click submit.
```yaml
behavior: comm-bump-esr115
force-dry-run: true
push: true
```
## Release Merge Day - part I
**When**: The release merge must happen after Firefox has merged mozilla-beta
to mozilla-release.
For date, see [Firefox Release Scheduling
calendar](https://calendar.google.com/calendar/embed?src=bW96aWxsYS5jb21fZGJxODRhbnI5aTh0Y25taGFiYXRzdHY1Y29AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ).
### Merge comm-beta to comm-release
1. Email [thunderbird-drivers](mailto:[email protected]) that the merge is beginning using the
template.
1. [Close
comm-beta](https://treestatus.mozilla-releng.net/static/ui/treestatus/show/comm-beta).
Check *“Remember this change to undo later”*. Please enter a good
message as the reason for the closure, such as “Mergeduty - closing
beta for \$VERSION RC week”.
2. Run the `comm-beta -> comm-release` [no-op trial
run](#do-migration-no-op-trial-runs) one more time and verify the diff looks
correct.
4. Submit a new task with `force-dry-run` set to false:
```yaml
behavior: comm-beta-to-release
force-dry-run: false
push: true
```

!!! warning

If an issue comes up during this phase, you may not be able to run
this command (or the no-op one) correctly. You may need to publicly
backout some tags/changesets to get back in a known state.

5. Upon successful run, ``comm-release`` should get a version bump,
branding changes, and two new tags. The first tag should be
in the form `RELEASE_xxx_END` - where the xxx is the previous major version.
The other tag should be in the form `RELEASE_yyy_BASE` - where the yyy is the
new major version.
2. At the same time `comm-beta` should get a tag in the form `RELEASE_xxx_BASE`
\- where the xxx is the previous major beta version.


### Email thunderbird-drivers

Reply to the first email that the merge is complete using the template.


## Release Merge Day - part II - a week after Merge day

**When**: The release merge must happen after Firefox has merged mozilla-central
to mozilla-beta.

### Merge central to beta

1. Email [thunderbird-drivers](mailto:[email protected]) and [tb-sheriffs](mailto:[email protected])
that the merge is beginning using the template.
2. Close `comm-central` in [TreeStatus](https://treestatus.mozilla-releng.net/static/ui/treestatus/show/comm-central).
1. Run the `comm-central -> comm-beta` [no-op trial
run](#do-migration-no-op-trial-runs) one more time, and verify the diff looks
correct.
3. Submit a new task with `force-dry-run` set to false:

```yaml
behavior: comm-central-to-beta
force-dry-run: false
push: true
```

5. Upon a successful run, `comm-beta` should get a version bump, branding changes,
and two new tags: `BETA_xxx_END` and `BETA_yyy_BASE`.

Click the first HG revision link (left side under date and timestamp) for the merge push to verify this.

2. Verify that `mail/locales/l10n-changesets.json` has revisions, not
`default`.

3. At the same time `comm-central` should get a new tag `BETA_xxx_BASE`.


!!! warning

The merge day automation may not be idempotent.
The merge automation task may fail and auto-retry (because of a worker
shutdown, for instance).
If the task retries after updating the state of the repo, it will update
the state of the repo again, pushing repeated commits.


### Re-opening beta

[Restore comm-beta tree](https://treestatus.mozilla-releng.net/static/ui/treestatus/show/comm-beta)
to its previous state (`approval-required`) so that **l10n bumper can run**.


### Tag comm-central and bump versions

**What happens**: A new tag is needed to specify the end of the nightly
cycle and bump versions in `comm-central`.

1. Follow the [general steps](#general-steps)
2. Insert the following payload and click submit.

```yaml
behavior: comm-bump-central
force-dry-run: false
push: true
```

3. Upon successful run, `comm-central` should get a version bump commit and a
new tag `NIGHTLY_xxx_END`.

### Bump ESR version

!!! note

You could have one ESR to bump, or two. If you are not sure, ask.

Run the comm-bump-esr115 [no-op trial run](#do-migration-no-op-trial-runs)
one more time, and verify the output.


Push your changes generated by the no-op trial run:

1. Follow the [general steps](#general-steps)
2. Insert the following payload and click submit.

```yaml
behavior: comm-bump-esr115
force-dry-run: false
push: true
```

!!! note

The esr version is currently hardcoded to the action; If necessary, an action for other esr
versions can be added to `taskcluster/ci/config.yml`.

3. Upon successful run, `mozilla-esr${VERSION}` should get a version bump commit.

### Reply to thunderbird-drivers that version bump completed

Reply to the migration request with the template.

### Bump Nightly version and release dates in ShipIt

In ShipIt, the Thunderbird nightly version is hard-coded, and must be updated
after the version bump on comm-central.

Follow these steps to bump the nightly version and release dates in ShipIt:

* Modify `api/src/shipit_api/common/config.py` and update the
`LATEST_THUNDERBIRD_NIGHTLY_VERSION` variable to be the new version of
comm-central.
* Create a pull request with the changes. [Example](https://github.com/mozilla-releng/shipit/pull/1004)
* In the pull request, @mention one of the Ship-It code owners to make sure
the request is seen. You can also say something in #releaseduty on Matrix.

If you are not familiar with Github's Fork & Pull workflow model,
see [here](https://reflectoring.io/github-fork-and-pull/) for an introduction.

14 changes: 7 additions & 7 deletions documentation/drivers/mergeday_email_templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
<meta property="og:description" content="The date and version numbers will be correct assuming this page is loaded
prior to starting the actual merge work. Proofread and verify prior to hitting
Send.
Announcement Email
Send this email the mo">
Comm-Beta/Comm-Central Announcement Email">
<meta property="og:type" content="article">
<meta property="article:published_time" content="2021-11-01T14:24:25Z">
<link href="../../../assets/css/tbrelease.css" rel="stylesheet" type="text/css">
Expand Down Expand Up @@ -52,7 +51,7 @@
<div class="dash-nav-dropdown-menu dropdown-menu">
<a href="../" class="dash-nav-dropdown-item dropdown-item">Overview</a>
<a href="../releasenotes/" class="dash-nav-dropdown-item dropdown-item">Release Notes</a>
<a href="../mergedayautomation/" class="dash-nav-dropdown-item dropdown-item">Merge Day Automation</a>
<a href="../merge_duty/" class="dash-nav-dropdown-item dropdown-item">Merge Duty</a>
<a href="." class="dash-nav-dropdown-item dropdown-item active">Merge Emails <span class="sr-only">(active)</span></a>
</div>
</li>
Expand All @@ -75,13 +74,14 @@
<p>The date and version numbers will be correct assuming this page is loaded
prior to starting the actual merge work. Proofread and verify prior to hitting
Send.</p>
<h2>Announcement Email</h2>
<h2>Comm-Beta/Comm-Central Announcement Email</h2>
<p><em>Send this email the morning of the merge.</em></p>
<hr>
<p><strong>Subject:</strong> Thunderbird merges &amp; version bumps for <span class="date today"></span> (c-c -&gt; <span class="milestone nightly"></span>
/ c-b -&gt; <span class="milestone beta"></span> / c-r -&gt; <span class="milestone release"></span>)</p>
<p><strong>Subject:</strong> Thunderbird beta merge &amp; version bumps for <span class="date today"></span> (c-c -&gt; <span class="milestone nightly"></span>
/ c-b -&gt; <span class="milestone beta"></span>)</p>
<p>Hello!</p>
<p>I’ll be doing the beta merge today. The Firefox merges <strong>have <span id="ff_merge_negate">not</span></strong> completed.</p>
<p>I'll be completing the Thunderbird beta merge today. The Firefox merges
<strong>have <span id="ff_merge_negate">not</span></strong> completed.</p>
<ul>
<li>comm-central is going to version <span class="milestone nightly"></span>
</li>
Expand Down
9 changes: 5 additions & 4 deletions documentation/drivers/mergeday_email_templates/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,19 @@ The date and version numbers will be correct assuming this page is loaded
prior to starting the actual merge work. Proofread and verify prior to hitting
Send.

# Announcement Email
# Comm-Beta/Comm-Central Announcement Email

_Send this email the morning of the merge._

---

**Subject:** Thunderbird merges & version bumps for {{% today %}} (c-c -> {{% milestone nightly %}}
/ c-b -> {{% milestone beta %}} / c-r -> {{% milestone release %}})
**Subject:** Thunderbird beta merge & version bumps for {{% today %}} (c-c -> {{% milestone nightly %}}
/ c-b -> {{% milestone beta %}})

Hello!

I’ll be doing the beta merge today. The Firefox merges **have <span id="ff_merge_negate">not</span>** completed.
I'll be completing the Thunderbird beta merge today. The Firefox merges
**have <span id="ff_merge_negate">not</span>** completed.

* comm-central is going to version {{% milestone nightly %}}
* comm-beta to {{% milestone beta %}}
Expand Down
Loading

0 comments on commit 9b73c86

Please sign in to comment.