Skip to content

Commit 52cff6e

Browse files
authored
Add Feature development docs (#4014)
1 parent a1a1d01 commit 52cff6e

File tree

4 files changed

+100
-6
lines changed

4 files changed

+100
-6
lines changed

CONTRIBUTING.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,6 @@ Then, to build the docs, run this:
313313
The HTML documentation will be in `docs/_build/html/`. Try to open `docs/_build/html/index.html`
314314
for example.
315315

316-
.. note:: Pontoon uses `GraphViz`_ as part of the documentation generation, so
317-
you'll need to install it to generate graphs that use it. Most package
318-
managers, including `Homebrew`_, have a package available for install.
319-
320-
.. _GraphViz: http://www.graphviz.org/
321316
.. _Homebrew: http://brew.sh/
322317

323318

docs/conf.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
# ones.
2929
extensions = [
3030
"sphinx.ext.autodoc",
31-
"sphinx.ext.graphviz",
3231
]
3332

3433
# Add any paths that contain templates here, relative to this directory.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
Feature Development Process
2+
===========================
3+
4+
Landing a new feature or significant change in Pontoon follows a structured yet flexible process. The goal is to ensure high-quality, well-considered contributions that align with project priorities and community needs.
5+
6+
.. contents:: Table of Contents
7+
:depth: 1
8+
:local:
9+
10+
Propose the Idea (Filing an Issue)
11+
----------------------------------
12+
13+
Anyone can suggest improvements: new features, enhancements to existing ones, or feature removals.
14+
15+
* For trivial changes (typos, minor bugfixes), a pull request (PR) alone may suffice—no dedicated issue required.
16+
* For anything non-trivial, create a GitHub issue in the mozilla/pontoon repository.
17+
18+
* Clearly describe the problem/opportunity.
19+
* Explain the motivation, expected impact, and user value.
20+
* Include relevant context (screenshots, use cases, alternatives considered).
21+
22+
Triage
23+
------
24+
25+
Core maintainers review new issues and perform triage on a weekly basis to assign:
26+
27+
* Type: Bug, Feature, Task.
28+
* Priority label: P1 (must be fixed immediately) to P5 (valid bug, but you might need to fix it).
29+
* Labels such as “needs specification” or “needs documentation” if required.
30+
* Labels for rough time estimate: hours, days, weeks, months, quarters.
31+
32+
The issue is added to the Pontoon Roadmap GitHub project:
33+
34+
* Initially placed in “Needs triage”.
35+
* Moved to “Ready” once actionable.
36+
* Kept in “Not ready yet” if more discussion or a spec is needed.
37+
* High-priority items ready for near-term work move to the top of the “Ready” column.
38+
* Larger initiatives (estimated to take months or quarters) are always kept in the "Not ready" column before they are split into smaller issues.
39+
40+
Specification (Recommended for Larger Features)
41+
-----------------------------------------------
42+
43+
For medium-to-large features (those affecting UX flows, data models, multiple areas, or needing community consensus):
44+
45+
* Draft a specification document in Markdown format and submit it as a PR to the `specs/` folder.
46+
* Follow the structure seen in existing specs (problem statement, goals, user stories, proposed solution, impacted areas, risks, alternatives, migration plan if applicable).
47+
* Get feedback and approval from core team members.
48+
49+
Once approved, remove any “needs specification” label and move the issue to “Ready” on the Roadmap.
50+
51+
Implementation (Writing Code)
52+
-----------------------------
53+
54+
* When ready to begin, assign yourself or get assigned to the issue.
55+
* The issue will then move to “In Progress” on the Roadmap.
56+
* Work in a feature branch.
57+
* Deliver:
58+
59+
* Clean, complete code.
60+
* Unit and integration tests with good coverage.
61+
* Any necessary database migrations or data changes.
62+
63+
Code Review
64+
-----------
65+
66+
* Open a pull request targeting the “main” branch.
67+
* Make sure CI tests pass.
68+
* Review is requested from core Pontoon team members.
69+
* Address feedback on code quality, security, performance, test coverage, and best practices.
70+
* Once approved, the PR is merged.
71+
* The associated issue is automatically closed and moved to “Done” on the Roadmap.
72+
73+
Testing
74+
-------
75+
76+
* The contributor is primarily responsible for thorough testing.
77+
* Verify the feature behaves as intended.
78+
* Check for regressions.
79+
* For larger features, perform extensive testing in the development environment during/after review.
80+
* Core team may run additional testing.
81+
82+
Release
83+
-------
84+
85+
* Features are first deployed to the `development environments <https://pontoon.allizom.org/>`_ for final validation.
86+
* Once confirmed stable, they go live on production.
87+
* Deployments are handled by core maintainers and occur as changes are ready (typically immediately after, no strict cadence).
88+
89+
Documentation & Discoverability (as Needed)
90+
-------------------------------------------
91+
92+
* If labeled “needs documentation” or if the change affects users noticeably:
93+
94+
* Update or add content in the Pontoon documentation for localizers.
95+
96+
* For major or high-impact features:
97+
98+
* Core team may add in-app announcements.
99+
* The contributor might write a blog post on the `Mozilla L10n blog <https://blog.mozilla.org/l10n/>`_.

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Contents
6262
dev/first-contribution
6363
dev/setup
6464
dev/contributing
65+
dev/feature-development-process
6566
admin/deployment
6667
admin/maintenance
6768
user/localizing-your-projects

0 commit comments

Comments
 (0)