diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
commit | 9e3c08db40b8916968b9f30096c7be3f00ce9647 (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/docs | |
parent | Initial commit. (diff) | |
download | thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.tar.xz thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/docs')
-rw-r--r-- | comm/docs/Makefile | 32 | ||||
-rw-r--r-- | comm/docs/README.md | 18 | ||||
-rw-r--r-- | comm/docs/_addons/bzlink.py | 63 | ||||
-rw-r--r-- | comm/docs/_static/custom_theme.css | 71 | ||||
-rw-r--r-- | comm/docs/_templates/breadcrumbs.html | 14 | ||||
-rw-r--r-- | comm/docs/conf.py | 69 | ||||
-rw-r--r-- | comm/docs/index.rst | 24 | ||||
-rw-r--r-- | comm/docs/l10n/fluent_migrations.md | 190 | ||||
-rw-r--r-- | comm/docs/l10n/index.md | 16 | ||||
-rw-r--r-- | comm/docs/l10n/testing_migrations.md | 39 | ||||
-rw-r--r-- | comm/docs/mots/index.rst | 630 | ||||
-rw-r--r-- | comm/docs/requirements.in | 4 | ||||
-rw-r--r-- | comm/docs/requirements.txt | 86 |
13 files changed, 1256 insertions, 0 deletions
diff --git a/comm/docs/Makefile b/comm/docs/Makefile new file mode 100644 index 0000000000..a9bc6a02c3 --- /dev/null +++ b/comm/docs/Makefile @@ -0,0 +1,32 @@ +# Minimal makefile for Sphinx documentation +# + +VENV = _venv + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= ./$(VENV)/bin/sphinx-build +SOURCEDIR = . +BUILDDIR = _build + + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +venv: Makefile + python -m venv --upgrade-deps $(VENV) + ./$(VENV)/bin/pip install -r requirements.txt + + +clean: + @rm -rf $(VENV) $(BUILDDIR) + + +.PHONY: help Makefile $(SPHINXBUILD) + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: $(SPHINXBUILD) + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/comm/docs/README.md b/comm/docs/README.md new file mode 100644 index 0000000000..4ffb083903 --- /dev/null +++ b/comm/docs/README.md @@ -0,0 +1,18 @@ +# Building documentation locally + +This process will improve over time. + +For now, manually create a Python virtual environment and install the +dependencies: + +```shell +make venv +``` + +The virtualenv will be created in **_venv**. + +Then to build the documentation: + +```shell +make html +``` diff --git a/comm/docs/_addons/bzlink.py b/comm/docs/_addons/bzlink.py new file mode 100644 index 0000000000..6bdbdac8c5 --- /dev/null +++ b/comm/docs/_addons/bzlink.py @@ -0,0 +1,63 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import re + +from docutils.nodes import Text, paragraph, reference +from sphinx.transforms import SphinxTransform + + +class ConvertBugsToLinks(SphinxTransform): + # Convert text entries in paragraphs that are in the style of "bug xxxxx" + # to a hyperlink that leads to the appropriate bugzilla bug link. + + default_priority = 400 + bz_url = "https://bugzilla.mozilla.org/show_bug.cgi?id={0}" + bz_reg = r"bug[' '][0-9]\d*" + + def apply(self): + def check_if_paragraph(o): + return isinstance(o, paragraph) + + def check_if_text(o): + return ( + not isinstance(o.parent, reference) + and isinstance(o, Text) + and re.search(self.bz_reg, o, re.IGNORECASE) + ) + + changed = True + while changed: + changed = self.textToReferences(check_if_paragraph, check_if_text) + return + + def textToReferences(self, check_if_paragraph, check_if_text): + # Analyses the document and replaces from the paragraph nodes + # the Text element(s) that contain bz_reg matching strings. + # Whevever the matching strings are more than one and + # a correction is made, the function returns True. + + for node in self.document.traverse(check_if_paragraph): + for text in node.traverse(check_if_text): + bugs = re.findall(self.bz_reg, text, re.IGNORECASE) + if len(bugs) == 0: + continue + bug = bugs[0] + txtparts = text.split(bug, 1) + new_ref = reference( + bug, + bug, + refuri=self.bz_url.format(bug.split()[1]), + ) + txt_0 = Text(txtparts[0]) + txt_1 = Text(txtparts[1]) + text.parent.replace(text, [txt_0, new_ref, txt_1]) + if len(bugs) > 1: + return True + return False + + +def setup(app): + app.add_transform(ConvertBugsToLinks) + return diff --git a/comm/docs/_static/custom_theme.css b/comm/docs/_static/custom_theme.css new file mode 100644 index 0000000000..c8e34c03ca --- /dev/null +++ b/comm/docs/_static/custom_theme.css @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* Increase the size of the content */ +.wy-nav-content { + max-width: 80% !important; +} + +/* Increase the size of the tables */ +table.docutils { + width: 90%; +} + +/* Override the default values for multiline text in a table */ +table.docutils td, table.docutils th +{ + font-size: 16px !important; +} + +.rst-content .line-block { + margin-bottom: 0px !important; +} + +/* Add the strikethrough feature */ +span.strikethrough { + text-decoration: line-through; +} + +/* Better control over the table on this page */ +.matcher-cookbook td { + white-space: break-spaces !important; +} + +.wy-table-responsive table td, .wy-table-responsive table th { + white-space: normal; +} + +img.center { + display: block; + margin: auto; +} + +img.border { + border: 1px solid black; + display: block; + margin: auto; +} + +.center { + text-align: center; +} + +/* Keyboard shortcuts styling */ +kbd { + background: linear-gradient(180deg,#f4f4f4,#d5d5d5); + background-color: #f4f4f4; + border: 1px solid #d5d5d5; + border-radius: 6px; + font-family: consolas,"Liberation Mono",courier,monospace; + font-size: .9rem; + font-weight: 700; + line-height: 2.3; + margin: 3px; + padding: 4px 6px 1px 6px; + white-space: nowrap; +} + +table.docutils { + width: 100%; +} diff --git a/comm/docs/_templates/breadcrumbs.html b/comm/docs/_templates/breadcrumbs.html new file mode 100644 index 0000000000..27bf66b65b --- /dev/null +++ b/comm/docs/_templates/breadcrumbs.html @@ -0,0 +1,14 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this file, + - You can obtain one at http://mozilla.org/MPL/2.0/. --> + +{%- extends "sphinx_rtd_theme/breadcrumbs.html" %} + +{% block breadcrumbs_aside %} +<li class="wy-breadcrumbs-aside"> + <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Thunderbird&component=General&short_desc=Documentation+issue+on+{{ pagename }}&comment=URL+=+https://thunderbird-source-docs.readthedocs.io/{{ pagename }}.html&bug_file_loc=https://thunderbird-source-docs.readthedocs.io/{{ pagename }}.html" rel="nofollow">Report an issue</a> / + {%- if show_source and has_source and sourcename %} + <a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a> + {%- endif %} +</li> +{% endblock %} diff --git a/comm/docs/conf.py b/comm/docs/conf.py new file mode 100644 index 0000000000..fc9c1fb9b3 --- /dev/null +++ b/comm/docs/conf.py @@ -0,0 +1,69 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Configuration file for the Sphinx documentation builder. + +import os +import sys + +# Set up Python environment to load build system packages. +OUR_DIR = os.path.dirname(__file__) +topsrcdir = os.path.normpath(os.path.join(OUR_DIR, "..")) + + +project = "Thunderbird Source Docs" +html_show_copyright = False +author = "Thunderbird Developers" + +EXTRA_PATHS = ("docs/_addons",) + +sys.path[:0] = [os.path.join(topsrcdir, p) for p in EXTRA_PATHS] + +sys.path.insert(0, OUR_DIR) + +extensions = [ + "myst_parser", + "sphinx.ext.autodoc", + "sphinx.ext.autosectionlabel", + "sphinx.ext.doctest", + "sphinx.ext.graphviz", + "sphinx.ext.napoleon", + "sphinx.ext.todo", + "bzlink", +] + +myst_enable_extensions = [ + "deflist", + "fieldlist", + "html_admonition", + "html_image", + "linkify", + "replacements", + "smartquotes", + "strikethrough", + "tasklist", +] + +myst_linkify_fuzzy_links = False +myst_heading_anchors = 2 + +templates_path = ["_templates"] +source_suffix = [".rst", ".md"] +exclude_patterns = [ + "_build", + "Thumbs.db", + ".DS_Store", + "_staging", + "_venv", + "README.md", +] + +html_theme = "sphinx_rtd_theme" +html_static_path = ["_static"] + +autosectionlabel_maxdepth = 1 + + +def setup(app): + app.add_css_file("custom_theme.css") diff --git a/comm/docs/index.rst b/comm/docs/index.rst new file mode 100644 index 0000000000..02be507b3f --- /dev/null +++ b/comm/docs/index.rst @@ -0,0 +1,24 @@ +.. Thunderbird documentation master file, created by + sphinx-quickstart on Thu Sep 15 02:19:30 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Thunderbird Source Tree Documentation +===================================== + +.. toctree:: + :caption: Project Information + :maxdepth: 1 + + mots/index + + l10n/index + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/comm/docs/l10n/fluent_migrations.md b/comm/docs/l10n/fluent_migrations.md new file mode 100644 index 0000000000..13639ca187 --- /dev/null +++ b/comm/docs/l10n/fluent_migrations.md @@ -0,0 +1,190 @@ +# Migrating Strings to Fluent Files + +Like [Firefox](https://firefox-source-docs.mozilla.org/l10n/migrations/index.html), +Thunderbird developers are working on migrating strings from legacy formats to +Fluent. The process is very similar to how migrations are done for Firefox. The +differences are detailed below. + +## Migration Recipes + +When part of Thunderbird’s UI is migrated to Fluent, a migration recipe should +be included in the same patch that adds new strings to .ftl files. Recipies are +stored in [comm-central](https://hg.mozilla.org/comm-central/file/tip/python/l10n/tb_fluent_migrations). +After a patch with migrations landed, it will be run for all locales as part of +the [Thunderbird Cross-Channel string quarantining process](cross_channel.md). + +Be sure to read [Migrating Legacy Formats](https://firefox-source-docs.mozilla.org/l10n/migrations/legacy.html) +along with the below example. + +The migration recipe’s filename should start with a reference to the associated +bug number, and include a brief description of the bug, e.g. `bug_1805746_calendar_view.py` +for the below example. + +### Example: Migrate Multiple DTD strings to Fluent + +Often, strings are migrated as part of ongoing UI work to convert XUL code +to HTML. Multiple DTD strings may convert to a single Fluent string with +attributes. It really depends on the document structure and what the UI changes +are doing. + +**Legacy strings are in `comm/calendar/locales/en-US/chrome/calendar/calendar.dtd`** + +```dtd +<!ENTITY calendar.day.button.tooltip "Switch to day view" > +<!ENTITY calendar.day.button.label "Day" > +``` + +**The (simplified) XUL code** + +```xml +<radio id="calendar-day-view-button" + label="&calendar.day.button.label;" + tooltiptext="&calendar.day.button.tooltip;" /> +``` + +**The new HTML** + +```html +<button id="calTabDay" data-l10n-id="calendar-view-toggle-day"></button> +``` + +**The new FTL string** + +```fluent +calendar-view-toggle-day = Day + .title = Switch to day view +``` + +**Renders as:** + +```html +<button id="calTabDay" title="Switch to day view">Day</button> +``` + +This case migrates two DTD strings, `calendar.day.button.label` and `calendar.day.button.tooltip` +to create a single FTL string, `calendar-view-toggle-day`, with one (`title`) +attribute. + +**The migration recipe:** + +```python +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + +from fluent.migratetb.helpers import transforms_from +from fluent.migratetb import COPY + +def migrate(ctx): + """Bug 1805746 - Update Calendar View selection part {index}.""" + target = reference = "calendar/calendar/calendar-widgets.ftl" + source = "calendar/chrome/calendar/calendar.dtd" + + ctx.add_transforms( + target, + reference, + transforms_from( + """ +calendar-view-toggle-day = { COPY(from_path, "calendar.day.button.label") } + .title = { COPY(from_path, "calendar.day.button.tooltip") } +""", + from_path=source, + ), + ) +``` + +Migrations are Python modules, and implement +a single `migrate(MigrationContext)` function. The `migrate()` function makes +calls into `MigrationContext.add_transforms()`. + +The `add_transforms()` function takes three arguments: +- `target_path`: Path to the target l10n file +- `reference_path`: Path to the reference (en-US) file +- A list of Transforms, the `source_path` (legacy translated strings file) is + set here + +```{note} +For Thunderbird migrations, the target and reference path are the same. +``` + +Transforms are rather dense AST nodes. See +[Transforms](https://firefox-source-docs.mozilla.org/l10n/migrations/overview.html#transforms) +for the exact details. + +There are some helper functions that simplify creating the ASTs. The above example uses the +`transforms_from()` helper function. It is equivalent to: + +```python +target = reference = "calendar/calendar/calendar-widgets.ftl" +source = "calendar/chrome/calendar/calendar.dtd" + +ctx.add_transforms( + target, + reference, + [ + FTL.Message( + id=FTL.Identifier("calendar-view-toggle-day"), + value=COPY(source, "calendar.day.button.label"), + attributes=[ + FTL.Attribute( + id=FTL.Identifier("title"), + value=COPY( + source, + "calendar.day.button.tooltip" + ) + ) + ] + ) + ] +) +``` + +`transforms_from()` allows copying reference FTL strings, and replacing the value +of each message with a `COPY` Transform that copies values from the DTD file at +`from_path`. + +There are other Transforms like `COPY`. See +[Migrating Legacy Formats](https://firefox-source-docs.mozilla.org/l10n/migrations/legacy.html) +for usage information. + +### Thunderbird migration helpers + +The `REPLACE` works with `transforms_from` if provided the extra context that +it needs. + +Starting with `aboutDialog.dtd` containing: + +```xml +<!ENTITY update.updateButton.label3 "Restart to update &brandShorterName;"> +``` + +```python +from fluent.migratetb.helpers import TERM_REFERENCE, transforms_from + +# This can't just be a straight up literal dict (eg: {"a":"b"}) because the +# validator fails... so make it a function call that returns a dict.. it works +about_replacements = dict({ + "&brandShorterName;": TERM_REFERENCE("brand-shorter-name"), +}) + + +def migrate(ctx): + """Bug 1816532 - Migrate aboutDialog.dtd strings to Fluent, part {index}""" + target = reference = "mail/messenger/aboutDialog.ftl" + source = "mail/chrome/messenger/aboutDialog.dtd" + + ctx.add_transforms( + target, + reference, + transforms_from( + """ +update-update-button = { REPLACE(source, "update.updateButton.label3", about_replacements) } + .accesskey = { COPY(source, "update.updateButton.accesskey") } +""", source=source, about_replacements=about_replacements)) +``` + +The resulting `aboutDialog.ftl` will get: + +```ftl +update-update-button = Restart to update { -brand-shorter-name } + .accesskey = R +``` diff --git a/comm/docs/l10n/index.md b/comm/docs/l10n/index.md new file mode 100644 index 0000000000..7b29d4a270 --- /dev/null +++ b/comm/docs/l10n/index.md @@ -0,0 +1,16 @@ +# Localization + +At Mozilla, localization refers to adapting the user interface and messages +to different cultural and regional needs. Localization is a broader term than +translation because it involves extensive research into the target culture, and +in result touches not only text and UI translation but also cultural adaptation +of icons, communication styles, colors, and UX. + +Questions about Thunderbird localization should be directed to the Localization +Coordinator. Contact information is on the +[Thunderbird Project page in Pontoon](https://pontoon.mozilla.org/projects/thunderbird/info/). + +```{toctree} +fluent_migrations +testing_migrations +``` diff --git a/comm/docs/l10n/testing_migrations.md b/comm/docs/l10n/testing_migrations.md new file mode 100644 index 0000000000..828b036c5a --- /dev/null +++ b/comm/docs/l10n/testing_migrations.md @@ -0,0 +1,39 @@ +# Testing Migration Recipes + +## During Development + +To test migration recipes during development, use the following mach command: + +```bash +./mach tb-fluent-migration-test comm/python/l10n/tb_fluent_migrations/bug_1805746_calendar_view.py +``` + +This will analyze your migration recipe to check that the migrate function exists, +and interacts correctly with the migration context. Once that passes, it clones +`comm-strings-quarantine` into `$OBJDIR/comm/python/l10n`, creates a reference +localization by adding your local Fluent strings to the ones in +`comm-strings-quarantine` (essentially the first part of the cross-channel +process). + +It then runs the migration recipe, both as dry run and as actual migration. +Finally it analyzes the commits, and checks if any migrations were actually run +and the bug number in the commit message matches the migration name. + +It will also show the diff between the migrated files and the reference, ignoring +blank lines. + +You can inspect the generated repository further by looking in +`$OBJDIR/comm/python/l10n/bug_1805746_calendar_view/en-US`. + +## During Review + +During l10n review, migration scripts will be run against all Thunderbird locales. +Any problems will be reported back to the author as part of the regular code +review process in Phabricator. + +```{tip} +Plan on extra review time for migration scripts in case changes are needed. + +Ask the Thunderbird L10n coordinator in [#maildev](https://matrix.to/#/#maildev:mozilla.org) +or your manager if you run into problems. +``` diff --git a/comm/docs/mots/index.rst b/comm/docs/mots/index.rst new file mode 100644 index 0000000000..e986b16aad --- /dev/null +++ b/comm/docs/mots/index.rst @@ -0,0 +1,630 @@ +.. + This file was automatically generated using `mots export`. + +.. + See https://mots.readthedocs.io/en/latest/#quick-start for quick start + documentation and how to modify this file. + + +========== +Governance +========== + +-------- +Overview +-------- +To add, remove, or update module information, see the `mots documentation <https://mots.readthedocs.io/en/latest/#adding-a-module>`_. + +Thunderbird operates under Mozilla's `module ownership governance system +<https://www.mozilla.org/hacking/module-ownership.html>`_. A module is a +discrete unit of code or activity. An owner is the person in charge of a +module or sub-module. A peer is a person whom the owner has appointed to +help them. A module may have multiple peers and, very occasionally, multiple +owners. + +The system is overseen by the owner and peers of the Module Ownership module. +For the modules that make up Thunderbird, oversight is provided by the +Thunderbird Council module. Owners may add and remove peers from their modules +as they wish, without reference to anyone else. + + +------- +Modules +------- + +Thunderbird Council - 2023 +~~~~~~~~~~~~~~~~~~~~~~~~~~ +The Thunderbird Council is the elected governing body for the Thunderbird +Project, including the code modules that develop the code in Thunderbird +product(s). It is the top-level module of the project, and Peers are members of +the Council. + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Berna Alp (ba) <https://people.mozilla.org/s?query=ba>`__ + * - Peer(s) + - + | `micah (micah) <https://people.mozilla.org/s?query=micah>`__ + | `Danny Colin (sdk) <https://people.mozilla.org/s?query=sdk>`__ + | `John Bieling (TbSync) <https://people.mozilla.org/s?query=TbSync>`__ + | `Ben Bucksch (BenB) <https://people.mozilla.org/s?query=BenB>`__ + | `Patrick Cloke (clokep) <https://people.mozilla.org/s?query=clokep>`__ + | `Philipp Kewisch (Fallen) <https://people.mozilla.org/s?query=Fallen>`__ + * - Excludes + - + | suite/\*\* + +Thunderbird Desktop +~~~~~~~~~~~~~~~~~~~ +Standalone Mail Application. + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) + - + | `Geoff Lankow (darktrojan) <https://people.mozilla.org/s?query=darktrojan>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Richard Marti (Paenglab) <https://people.mozilla.org/s?query=Paenglab>`__ + * - Owner(s) Emeritus + - Mark Banner, David Bienvenu, Scott MacGregor + * - Peer(s) Emeritus + - Blake Winton, Mike Conley, Kent James, Jorg K + * - Includes + - + | mail/\*\* + | python/\*\* + | other-licenses/\*\*/thunderbird/\*\* + | third_party/\*\* + | tools/\*\* + * - URL + - https://developer.thunderbird.net/ + * - Bugzilla Components + - Thunderbird + +Addon Support +============= +APIs to enable extensions, as well as their installation + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `John Bieling (TbSync) <https://people.mozilla.org/s?query=TbSync>`__ + * - Peer(s) + - + | `Geoff Lankow (darktrojan) <https://people.mozilla.org/s?query=darktrojan>`__ + | `Philipp Kewisch (Fallen) <https://people.mozilla.org/s?query=Fallen>`__ + * - Includes + - + | mail/components/extensions/\*\* + * - Bugzilla Components + - Thunderbird::Add-Ons Extensions API, Thunderbird::Add-Ons General + + +Build Config +============ +Build, CI, Release Engineering + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Rob Lemley (rjl) <https://people.mozilla.org/s?query=rjl>`__ + * - Peer(s) + - + | `Philipp Kewisch (Fallen) <https://people.mozilla.org/s?query=Fallen>`__ + * - Peer(s) Emeritus + - Mark Banner, Siddharth Agarwal, Justin Wood, Joshua Cranmer, Tom Prince + * - Includes + - + | build/\*\* + | mail/config/\*\* + | taskcluster/\*\* + * - Bugzilla Components + - Thunderbird::Build Config + + +Instant Messaging +================= +The chat and instant messaging component of Thunderbird + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Patrick Cloke (clokep) <https://people.mozilla.org/s?query=clokep>`__ + * - Peer(s) + - + | `Martin Giger (freaktechnik) <https://people.mozilla.org/s?query=freaktechnik>`__ + * - Owner(s) Emeritus + - Florian Quèze + * - Peer(s) Emeritus + - aleth, Benedikt Pfeifer + * - Includes + - + | mail/components/im/\*\* + | chat/\*\* + * - Bugzilla Components + - Thunderbird::Instant Messaging + + +Message Security +================ +OpenPGP and S/MIME message security + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Kai Engert (KaiE) <https://people.mozilla.org/s?query=KaiE>`__ + * - Peer(s) + - + | `Patrick Brunschwig (patrick) <https://people.mozilla.org/s?query=patrick>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Includes + - + | mail/extensions/openpgp/\*\* + | mail/extensions/smime/\*\* + + +Theme +===== +The interface of Thunderbird related to the OS and custom themes + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Richard Marti (Paenglab) <https://people.mozilla.org/s?query=Paenglab>`__ + * - Peer(s) + - + | `Alessandro Castellani (aleca) <https://people.mozilla.org/s?query=aleca>`__ + * - Peer(s) Emeritus + - Josiah Bruner (:JosiahOne), Blake Winton, Mike Conley + * - Includes + - + | mail/themes/\*\* + * - Bugzilla Components + - Thunderbird::Theme + + +UX (User Experience) +==================== +Usability and user journey, including User Interface and Accessibility + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Alessandro Castellani (aleca) <https://people.mozilla.org/s?query=aleca>`__ + * - Peer(s) + - + | `Richard Marti (Paenglab) <https://people.mozilla.org/s?query=Paenglab>`__ + | `Henry Wilkes (henry-x) <https://people.mozilla.org/s?query=henry-x>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - Blake Winton + * - Includes + - + | mail/branding/\*\* + * - Bugzilla Components + - Thunderbird::General + + +Calendar +~~~~~~~~ +Calendaring components + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Philipp Kewisch (Fallen) <https://people.mozilla.org/s?query=Fallen>`__ + * - Peer(s) + - + | `Geoff Lankow (darktrojan) <https://people.mozilla.org/s?query=darktrojan>`__ + * - Includes + - + | calendar/\*\* + * - Bugzilla Components + - Calendar + +User Interface (UI) +=================== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Richard Marti (Paenglab) <https://people.mozilla.org/s?query=Paenglab>`__ + * - Peer(s) + - + | `Alessandro Castellani (aleca) <https://people.mozilla.org/s?query=aleca>`__ + * - Includes + - + | calendar/base/content/\*\* + | calendar/base/themes/\*\* + * - Bugzilla Components + - Calendar::Calendar Frontend + + +Mail and News Core +~~~~~~~~~~~~~~~~~~ + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - Karsten Düsterloh (mnyromyr), Kai Engert, David Bienvenu (bienvenu), Mark Banner, Kent James + * - Includes + - + | mailnews/\*\* + * - Bugzilla Components + - MailNews Core::Backend, Thunderbird::Account Manager, Thunderbird::Migration, + MailNews Core::Account Manager, MailNews Core::Composition, MailNews + Core::Filters, MailNews Core::Internationalization, MailNews Core::Movemail, + MailNews Core::Networking, MailNews Core::Networking - POP, MailNews + Core::Printing, MailNews Core::Profile Migration, MailNews Core::Search, + MailNews Core::Security, MailNews Core::Simple MAPI + +Addressbook +=========== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Geoff Lankow (darktrojan) <https://people.mozilla.org/s?query=darktrojan>`__ + * - Peer(s) + - + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - David Bienvenu (bienvenu), Mark Banner, Mike Conley + * - Includes + - + | mailnews/addrbook/\*\* + * - Bugzilla Components + - MailNews Core::Address Book + + +Feeds +===== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Nobody (nobody) <https://people.mozilla.org/s?query=nobody>`__ + * - Peer(s) + - + | `alta88 (alta88) <https://people.mozilla.org/s?query=alta88>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Includes + - + | mailnews/extensions/newsblog/\*\* + * - Bugzilla Components + - MailNews Core::Feed Reader + + +GloDa +===== +Global message database + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Nobody (nobody) <https://people.mozilla.org/s?query=nobody>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - Jonathan Protzenko + * - Includes + - + | mailnews/db/gloda/\*\* + + +IMAP handling code +================== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `gene smith (gds) <https://people.mozilla.org/s?query=gds>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - Kent James + * - Includes + - + | mailnews/imap/\*\* + * - Bugzilla Components + - MailNews Core::Networking: IMAP + + +Import +====== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + * - Peer(s) + - + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - David Bienvenu (bienvenu), Mark Banner, Jorg K + * - Includes + - + | mailnews/import/\*\* + * - Bugzilla Components + - MailNews Core::Import + + +Localization +============ + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Nobody (nobody) <https://people.mozilla.org/s?query=nobody>`__ + * - Peer(s) + - + | `Philipp Kewisch (Fallen) <https://people.mozilla.org/s?query=Fallen>`__ + * - Peer(s) Emeritus + - Mark Banner + * - Includes + - + | calendar/locales/\*\* + | chat/locales/\*\* + | mail/locales/\*\* + * - Bugzilla Components + - MailNews Core::Localization + + +MIME Parser +=========== +RFC822 MIME Parser + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Nobody (nobody) <https://people.mozilla.org/s?query=nobody>`__ + * - Peer(s) + - + | `Jim Porter (squib) <https://people.mozilla.org/s?query=squib>`__ + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Owner(s) Emeritus + - David Bienvenu (bienvenu) + * - Peer(s) Emeritus + - Kai Engert, Jorg K + * - Includes + - + | mailnews/mime/\*\* + * - Bugzilla Components + - MailNews Core::MIME, MailNews Core::Attachments + + +Message Database +================ +MSF files + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Nobody (nobody) <https://people.mozilla.org/s?query=nobody>`__ + * - Peer(s) + - + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + * - Owner(s) Emeritus + - David Bienvenu (bienvenu) + * - Peer(s) Emeritus + - Kent James + * - Includes + - + | mailnews/db/\*\* + * - Bugzilla Components + - MailNews Core::Database + + +News +==== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Peer(s) Emeritus + - David Bienvenu (bienvenu) + * - Includes + - + | mailnews/news/\*\* + * - Bugzilla Components + - MailNews Core::Networking: NNTP + + +S/MIME +====== +S/MIME backend + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Kai Engert (KaiE) <https://people.mozilla.org/s?query=KaiE>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Includes + - + | mailnews/extensions/smime/\*\* + * - Bugzilla Components + - MailNews Core::Security: S/MIME + + +SMTP +==== +Code responsible for sending messages over SMTP. + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Ping Chen (rnons) <https://people.mozilla.org/s?query=rnons>`__ + * - Peer(s) + - + | `Ben Campbell (benc) <https://people.mozilla.org/s?query=benc>`__ + | `Neil Rashbrook (neil) <https://people.mozilla.org/s?query=neil>`__ + | `Aceman (aceman) <https://people.mozilla.org/s?query=aceman>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Includes + - + | mailnews/compose/\*\* + * - Bugzilla Components + - MailNews Core::Networking: SMTP + + +Unit Testing Infrastructure +=========================== + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Geoff Lankow (darktrojan) <https://people.mozilla.org/s?query=darktrojan>`__ + * - Peer(s) + - + | `Joshua Cranmer (jcranmer) <https://people.mozilla.org/s?query=jcranmer>`__ + | `Magnus Melin (mkmelin) <https://people.mozilla.org/s?query=mkmelin>`__ + * - Owner(s) Emeritus + - Mark Banner + * - Includes + - + | mailnews/test/\*\* + | mailnews/base/test/\*\* + * - Bugzilla Components + - MailNews Core::Testing Infrastructure + + +mots config +~~~~~~~~~~~ + + +.. list-table:: + :stub-columns: 1 + :widths: 30 70 + + * - Owner(s) + - + | `Rob Lemley (rjl) <https://people.mozilla.org/s?query=rjl>`__ + * - Includes + - + | mots.yaml diff --git a/comm/docs/requirements.in b/comm/docs/requirements.in new file mode 100644 index 0000000000..c1e8f3248e --- /dev/null +++ b/comm/docs/requirements.in @@ -0,0 +1,4 @@ +Sphinx>=5,<6 +sphinx_rtd_theme +myst-parser[linkify] +fluent.pygments>=1,<2 diff --git a/comm/docs/requirements.txt b/comm/docs/requirements.txt new file mode 100644 index 0000000000..025b2ee562 --- /dev/null +++ b/comm/docs/requirements.txt @@ -0,0 +1,86 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --resolver=backtracking requirements.in +# +alabaster==0.7.13 + # via sphinx +babel==2.11.0 + # via sphinx +certifi==2022.12.7 + # via requests +charset-normalizer==3.0.1 + # via requests +docutils==0.17.1 + # via + # myst-parser + # sphinx + # sphinx-rtd-theme +fluent-pygments==1.0 + # via -r requirements.in +fluent-syntax==0.18.1 + # via fluent-pygments +idna==3.4 + # via requests +imagesize==1.4.1 + # via sphinx +jinja2==3.1.2 + # via + # myst-parser + # sphinx +linkify-it-py==1.0.3 + # via myst-parser +markdown-it-py==2.1.0 + # via + # mdit-py-plugins + # myst-parser +markupsafe==2.1.1 + # via jinja2 +mdit-py-plugins==0.3.3 + # via myst-parser +mdurl==0.1.2 + # via markdown-it-py +myst-parser[linkify]==0.18.1 + # via -r requirements.in +packaging==23.0 + # via sphinx +pygments==2.14.0 + # via + # fluent-pygments + # sphinx +pytz==2022.7 + # via babel +pyyaml==6.0 + # via myst-parser +requests==2.28.2 + # via sphinx +six==1.16.0 + # via fluent-pygments +snowballstemmer==2.2.0 + # via sphinx +sphinx==5.3.0 + # via + # -r requirements.in + # myst-parser + # sphinx-rtd-theme +sphinx-rtd-theme==1.1.1 + # via -r requirements.in +sphinxcontrib-applehelp==1.0.3 + # via sphinx +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==2.0.0 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.5 + # via sphinx +typing-extensions==4.4.0 + # via myst-parser +uc-micro-py==1.0.1 + # via linkify-it-py +urllib3==1.26.14 + # via requests |