Skip to content

Commit daa8f85

Browse files
committed
[WIP] Update documentation for git migration
This change updates the documentation to account for the source code moving from Mercurial to Git. The following sections still need updating: * The try build steps need updating once we switch to `./mach try` thunderbird-development/fixing-a-bug/try-server.md * Landing a patch thunderbird-development/fixing-a-bug/landing-a-patch.md Closes #239
1 parent 7b3ab93 commit daa8f85

32 files changed

Lines changed: 314 additions & 539 deletions

.gitbook/assets/tb-channels.png

-20 KB
Loading

SUMMARY.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
* [Bug Types](thunderbird-development/fixing-a-bug/bug-triaging/bug-types.md)
3131
* [Garbage Collection](thunderbird-development/fixing-a-bug/bug-triaging/garbage-collection.md)
3232
* [Narrow the Scope](thunderbird-development/fixing-a-bug/bug-triaging/narrow-the-scope.md)
33-
* [Using Mercurial Bookmarks](thunderbird-development/fixing-a-bug/using-mercurial-bookmarks.md)
34-
* [Using Mercurial Queues](thunderbird-development/fixing-a-bug/using-mercurial-queues.md)
3533
* [Lint and Format Code](thunderbird-development/fixing-a-bug/lint-and-format-code.md)
3634
* [Using ESLint to Format Javascript Code](thunderbird-development/fixing-a-bug/using-eslint.md)
3735
* [Try Server](thunderbird-development/fixing-a-bug/try-server.md)

add-ons/mailextensions/experiments.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ Since Experiments directly interact with Thunderbird's core functions, it is nec
77
{% endhint %}
88

99
{% hint style="info" %}
10-
Thunderbird does contain a few useful features related to Experiments [whose documentation is no longer generated](https://bugzilla.mozilla.org/show\_bug.cgi?id=1556460#c23). Especially if you're writing an Experiment with complex interactions between the WebExtension and your Experiment, it may be helpful to read the documentation blocks within [ExtensionCommon.sys.mjs](https://searchfox.org/mozilla-central/source/toolkit/components/extensions/ExtensionCommon.sys.mjs) and possibly other modules in the same source code folder.
10+
Thunderbird does contain a few useful features related to Experiments [whose documentation is no longer generated](https://bugzilla.mozilla.org/show\_bug.cgi?id=1556460#c23). Especially if you're writing an Experiment with complex interactions between the WebExtension and your Experiment, it may be helpful to read the documentation blocks within [ExtensionCommon.sys.mjs](https://github.com/mozilla-firefox/firefox/blob/main/toolkit/components/extensions/ExtensionCommon.sys.mjs) and possibly other modules in the same source code folder.
1111
{% endhint %}
1212

1313
{% hint style="info" %}
1414
For reference, the parent implementations of all built-in APIs can be found in\
15-
[/comm/mail/components/extensions/parent](https://searchfox.org/comm-central/source/mail/components/extensions/parent).
15+
[/comm/mail/components/extensions/parent](https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/components/extensions/parent).
1616
{% endhint %}
1717

1818
{% hint style="danger" %}

add-ons/resources/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Useful resources for converting legacy extensions or for creating Experiments.
2929

3030
| | Description |
3131
| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32-
| [Searchfox](https://searchfox.org/) | An online viewer to search the Firefox code base ([_mozilla-central_](https://searchfox.org/mozilla-central/source/)) and the Thunderbird code base ([_comm-central_](https://searchfox.org/comm-central/source/)). |
32+
| [Searchfox](https://searchfox.org/) | An online viewer to search the Firefox code base ([_mozilla-central_](https://github.com/mozilla-firefox/firefox/blob/main/)) and the Thunderbird code base ([_comm-central_](https://github.com/thunderbird/thunderbird-desktop/blob/main/)). |
3333
| [Firefox Source Tree documentation](https://firefox-source-docs.mozilla.org/) | The current Firefox code documentation, which might be needed when converting legacy extensions. |
3434
| [Thunderbird Source Tree documentation](../../thunderbird-development/codebase-overview/) | The current Thunderbird code documentation, in addition to comments in [idl files on comm-central](https://searchfox.org/comm-central/search?q=\&path=\*.idl). This is still work in progress. |
3535
| [Archived XUL and XPCOM Documentation](https://udn.realityripple.com/docs/Mozilla) | <p>The archived Mozilla documentation includes information about internal components and functions used by legacy extensions. Please be aware, that those pages are not maintained and are potentially outdated. Some useful direct links:</p><ul><li><a href="https://udn.realityripple.com/docs/Mozilla/JavaScript_code_modules">Archived JavaScript Code Modules</a></li><li><a href="https://udn.realityripple.com/docs/Archive/Mozilla/XUL">Archived XUL Documentation</a></li><li><a href="https://udn.realityripple.com/docs/Mozilla/Tech/XPCOM/Reference/Interface">Archived XPCOM Interface Reference</a></li></ul> |

add-ons/updating/tb102/adapt-to-changes-in-thunderbird-92-102.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ The method to retrieve strings from the created bundle is slightly different, in
8181

8282
### calICalendar.\*
8383

84-
Since Thunderbird 96, [many calendar functions return Promises](https://searchfox.org/comm-central/source/calendar/base/public/calICalendar.idl). This includes:
84+
Since Thunderbird 96, [many calendar functions return Promises](https://github.com/thunderbird/thunderbird-desktop/blob/main/calendar/base/public/calICalendar.idl). This includes:
8585

8686
* `getItem()`
8787
* `addItem()`

add-ons/updating/tb115/adapt-to-changes-in-thunderbird-103-115.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ Removed in Thunderbird 115. Can be replaced as follows:
113113
* `OS.Constants.Sys.Name` -> `Services.appinfo.OS`
114114
* `OS.Constants.Path.profileDir` -> `PathUtils.profileDir`
115115
* `OS.Constants.Path.tmpDir`-> `PathUtils.tempDir`
116-
* `OS.File.*` -> [IOUtils.*](https://searchfox.org/comm-central/source/mozilla/dom/chrome-webidl/IOUtils.webidl)
117-
* `OS.Path.*` -> [PathUtils.*](https://searchfox.org/comm-central/source/mozilla/dom/chrome-webidl/PathUtils.webidl)
116+
* `OS.File.*` -> [IOUtils.*](https://github.com/thunderbird/thunderbird-desktop/blob/main/mozilla/dom/chrome-webidl/IOUtils.webidl)
117+
* `OS.Path.*` -> [PathUtils.*](https://github.com/thunderbird/thunderbird-desktop/blob/main/mozilla/dom/chrome-webidl/PathUtils.webidl)
118118

119119
## Changed API
120120

add-ons/updating/tb68/changes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ In order to use HTML elements in a XUL file, you must load the HTML namespace in
5555
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
5656
```
5757

58-
The following list also includes deprecated elements, which could still be used but Thunderbird has already started to purge their usage. In that case you must update your overlay files which are overlaying such elements, otherwise your overlay will not be applied. Check [SearchFox](https://searchfox.org/comm-central/source) for the current state of the files you are overlaying.
58+
The following list also includes deprecated elements, which could still be used but Thunderbird has already started to purge their usage. In that case you must update your overlay files which are overlaying such elements, otherwise your overlay will not be applied. Check [SearchFox](https://github.com/thunderbird/thunderbird-desktop/blob/main) for the current state of the files you are overlaying.
5959

6060
{% hint style="info" %}
6161
The replacements listed here might work in subtly different ways. Check your functionality!

add-ons/updating/tb91/changes.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ The levels `Info`, `Trace` and `Log` are actually identical.
158158

159159
Interface has been dropped in favor of an observer based approach. See&#x20;
160160

161-
* [https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#379-429](https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#379-429)
162-
* [https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#277](https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#277)
163-
* [https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#335](https://searchfox.org/comm-central/source/mail/base/content/msgHdrView.js#335)
161+
* [https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#379-429](https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#379-429)
162+
* [https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#277](https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#277)
163+
* [https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#335](https://github.com/thunderbird/thunderbird-desktop/blob/main/mail/base/content/msgHdrView.js#335)
164164

165165
### nsIMsgFolder.listFoldersWithFlags
166166

@@ -217,5 +217,5 @@ In Thunderbird 91, this is primarily affecting pages belonging to an Add-on, lik
217217
In practical terms, this means that you may need to update your experiments:
218218

219219
* **If you create frames in Thunderbird's UI**, these frames now need the appropriate attributes to load content in the right process. You can find an example of required changes in [the E10S compatibility commit for the CustomUI experiment](https://github.com/rsjtdrjgfuzkfg/thunderbird-experiments/commit/11232201ff437e7bb293efdcb93ecc3963a8328d#diff-41cf834ce8c3fae411d5f4c18abf8c024630074e616cf98307e582cea5362be7).
220-
* **If you exchange raw objects between WebExtension scopes / "child" experiment code and Thunderbird / "parent" experiment code**, you need to migrate to an indirect approach, usually based on explicit message passing. Depending on the complexity of your task, this can either happen through notifyTools, a custom experiment API or through custom experiment code directly using cross-process APIs (likely either [message managers](https://searchfox.org/mozilla-central/source/dom/chrome-webidl/MessageManager.webidl) or [actors](https://firefox-source-docs.mozilla.org/dom/ipc/jsactors.html)).
220+
* **If you exchange raw objects between WebExtension scopes / "child" experiment code and Thunderbird / "parent" experiment code**, you need to migrate to an indirect approach, usually based on explicit message passing. Depending on the complexity of your task, this can either happen through notifyTools, a custom experiment API or through custom experiment code directly using cross-process APIs (likely either [message managers](https://github.com/mozilla-firefox/firefox/blob/main/dom/chrome-webidl/MessageManager.webidl) or [actors](https://firefox-source-docs.mozilla.org/dom/ipc/jsactors.html)).
221221
* As a consequence, **if you load JavaScript modules in "child" experiment code**, you will now get separate instances of the JSM: each process has its own instance, and there could be multiple child processes. If you keep using JSMs from "child" code, you may furthermore need to manually unload these separate instances on API shutdown (`ExtensionAPI.onShutdown`), even if you use a catch-all unloading solution like CachingFix or the WindowListener API.

releases/cadence.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Thunderbird follows a release train model to ensure timely and predictable releases. This approach allows for regular feature rollouts, stability improvements, and bug fixes.
66

77
### General Release Cadence
8-
The general release cadence consists of 4-week cycles, with each branch corresponding to a specific release channel. Each branch, starting from comm-central, is based on the previous branch.
8+
The general release cadence consists of 4-week cycles, with each branch corresponding to a specific release channel. Each branch, starting from main, is based on the previous branch.
99

1010
![](../.gitbook/assets/tb-channels.png)
1111

@@ -15,35 +15,35 @@ The general release cadence consists of 4-week cycles, with each branch correspo
1515

1616
#### **Thunderbird Daily**
1717
- **Release Timeline**: A new major version of Thunderbird Daily begins every 4 weeks.
18-
- **Releases**: Thunderbird Daily is automatically released on a daily basis from comm-central.
18+
- **Releases**: Thunderbird Daily is automatically released on a daily basis from main.
1919

2020
#### **Thunderbird Beta**
2121
- **Release Timeline**:
2222
- A new major version of Thunderbird Beta begins every 4 weeks.
23-
- 4 weeks after Daily starts for a new version, comm-central is merged into comm-beta.
23+
- 4 weeks after Daily starts for a new version, main is merged into beta.
2424
- **Releases**: Thunderbird Beta for this version is released weekly for the next 3 weeks.
2525
- **Beta 1**: Includes the merged code.
2626
- **Beta 2 and above**: Include any new uplifts.
2727

2828
#### **Thunderbird Release**
2929
- **Release Timeline**:
3030
- A new major version of Thunderbird Release begins every 4 weeks.
31-
- 3 weeks after Beta starts for a new version, comm-beta is merged into comm-release.
31+
- 3 weeks after Beta starts for a new version, beta is merged into release.
3232
- 1 week after this merge, the monthly Thunderbird Release is published.
3333
- **Releases**: Thunderbird Release is released every 4 weeks, with point releases as needed every 2 weeks.
3434

3535
#### **Thunderbird ESR (Extended Support Release)**
36-
- **Release Timeline**: The code from comm-release is merged into comm-esr\<version\> once a year.
36+
- **Release Timeline**: The code from comm-release is merged into esr\<version\> once a year.
3737
- **Releases**: Thunderbird ESR is released every year, typically in July, with point releases as needed every 2 weeks.
3838

3939
---
4040

4141
### **Stabilization Milestones**
4242

4343
#### **Daily Soft Code Freeze**
44-
- A 1-week soft code freeze occurs for comm-central prior to merging into comm-beta.
44+
- A 1-week soft code freeze occurs for main prior to merging into beta.
4545
- During this time:
46-
- Risky code should not land in comm-central.
46+
- Risky code should not land in main.
4747
- Features controlled by a feature flag that were disabled in Daily should not be enabled.
4848

4949
#### **Pre-Merge Reviews**
@@ -63,7 +63,7 @@ The general release cadence consists of 4-week cycles, with each branch correspo
6363
| Thunderbird 136.0a1 starts | Jan 6 |
6464
| Thunderbird 136.0a1 soft code freeze | Jan 27–Feb 3 |
6565
| Thunderbird 136.0a1 pre-merge review | Jan 30 |
66-
| Thunderbird merge 136.0a1 central → beta | Feb 3 |
66+
| Thunderbird merge 136.0a1 main → beta | Feb 3 |
6767
| Thunderbird 136.0b1 | Feb 5 |
6868
| Thunderbird 136.0b2 | Feb 12 |
6969
| Thunderbird 136.0b3 | Feb 19 |

releases/channels.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
Thunderbird provides releases through four distinct channels, each serving a unique purpose. Below are the channels, their corresponding branches, and a summary of their purpose:
44

5-
- **Thunderbird Daily (comm-central)**: Where development and testing begin, and new features are developed.
6-
- **Thunderbird Beta (comm-beta)**: The monthly stabilization release.
7-
- **Thunderbird Release (comm-release)**: The official monthly release.
8-
- **Thunderbird ESR (comm-esr)**: The official annual extended support release.
5+
- **Thunderbird Daily (main branch)**: Where development and testing begin, and new features are developed.
6+
- **Thunderbird Beta (beta branch)**: The monthly stabilization release.
7+
- **Thunderbird Release (release branch)**: The official monthly release.
8+
- **Thunderbird ESR (esr### branch)**: The official annual extended support release.
99

1010
These four channels offer increasing levels of stability, increasing as code moves from Daily to Beta and being the highest in Release and ESR.

0 commit comments

Comments
 (0)