Tree Rules: Difference between revisions

2,742 bytes added ,  14 May 2020
→‎mozilla-beta: remove obsolete info about xpidl and uuids
m (→‎mozilla-central - Trunk (Firefox 6): s/Firefox 6/Firefox 10/)
(→‎mozilla-beta: remove obsolete info about xpidl and uuids)
 
(48 intermediate revisions by 12 users not shown)
Line 1: Line 1:
For comm-central tree rules, [[Tree_Rules/comm-central|see this page]].
For comm-central tree rules, [[Tree_Rules/comm-central|see this page]].


== [http://tests.themasta.com/tinderboxpushlog/ mozilla-central] - Trunk (Firefox 10) ==
Not sure which Firefox version is on which branch today?  See [[RapidRelease/Calendar|Rapid Release Calendar]].


'''All changes''' must meet the [https://developer.mozilla.org/En/Developer_Guide/Committing_Rules_and_Responsibilities general checkin rules].
Looking to add a new platform/job type to Treeherder? See our [[Sheriffing/Job_Visibility_Policy|Job Visibility Policy]].


Please see #developers or [http://www.google.com/calendar/embed?src=j6tkvqkuf9elual8l2tbuk2umk%40group.calendar.google.com today's Sheriff] if you have questions.
== Integration Branches, or the "Normal" workflow ==


== [http://tests.themasta.com/tinderboxpushlog/?tree=Firefox3.6 mozilla-1.9.2] - 1.9.2 Branch (Firefox 3.6.x, Gecko 1.9.2.x work) ==
[[File:Land patch - go home.jpg|300px|right]]


'''When open: <font color="orange">RESTRICTED</font>''' to approved checkins only
The following rules apply to integration branch managed by the [[Sheriffing|Sheriffs]], namely [https://treeherder.mozilla.org/#/jobs?repo=autoland autoland].


=== Rules ===
=== [https://treeherder.mozilla.org/#/jobs?repo=autoland autoland]/Lando ===
* patches must have been checked in and "baked" on mozilla-central,
If you are using [https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html Phabricator] to post and review patches, you can also use the tool to automatically land those patch to the autoland repository. This is the preferred method of landing Mozilla code because, in almost all cases, it involves the least work for humans, including you.
* patches must have '''approval1.9.2.x+''' (for whatever value of x is relevant).
* Set the "status1.9.2" flag to the relevant "fixed .x" value when the patch has been checked into the branch


Patches nominated for approval1.9.2.x should:
Please see the documentation on [https://moz-conduit.readthedocs.io/en/latest/lando-user.html Landing Commits with Lando] for details on how to use Lando.
* have tests, or a strong statement of what can be done in the absence of tests
* have landed on trunk and baked for a few days (at least)
* have an assessment of performance impact
* have an assessment of risk


Please see #developers or today's Sheriff if you have questions.
Sheriffs will merge autoland into mozilla-central a few times a day.


=== Patch Approval & Release Driving ===
== [https://treeherder.mozilla.org/#/jobs?repo=mozilla-central mozilla-central] (Nightly channel) ==
The branch approval queue is being monitored by [[Releases/Drivers/Branch|branch drivers]], all of whom are usually available on IRC.


== [http://tests.themasta.com/tinderboxpushlog/?tree=Firefox3.5 mozilla-1.9.1] - 1.9.1 Branch (Firefox 3.5.x, Gecko 1.9.1.x work) ==
'''<font color="orange">APPROVAL REQUIRED</font>'''


'''When open: <font color="orange">RESTRICTED</font>''' to approved checkins only
In order to increase the reliability of our primary repository, direct pushes to mozilla-central [https://groups.google.com/d/topic/mozilla.dev.tree-management/V1zZ3JlFpzI/discussion must now] only be for one of the following reasons:
* Merging from an integration/team/project repository (there is no restriction on who may make these merges) [''a=merge''].
* Automated blocklist / HSTS preload list updates [''a={blocklist-update,hsts-update}''].
* For the resolution (ie: backout or follow-up fix) of critical regressions (eg: top-crashers or other major functional regression) that will result in a Nightly respin or must make the imminent scheduled Nightly at all costs [''a={backout,topcrasher,respin,...}''].
** Anything else for which common sense (or asking in #developers) says is an appropriate reason for a direct landing on mozilla-central [''a=something_descriptive''].


=== Rules ===
If your patch is eligible for direct-landing on mozilla-central:
* patches must have been checked in and "baked" on mozilla-central,
* Use the ''a=reason'' examples given above, to bypass the Mercurial hook used to prevent accidental pushes. Note: That whilst we are using the "a=" syntax (since that's all the hook supports for now), this is unrelated to the "release-driver approval request" process - so please do not request approval from them in Bugzilla.
* patches must have '''approval1.9.1.x+''' (for whatever value of x is relevant).
** Note if merging into mozilla-central, and your push didn't generate a merge commit (and so you have nowhere to put the "a=merge" to get past the hook), then either temporarily set the tree state to OPEN, try merging a different integration repo first (which may need a merge commit), or add an empty mq commit on top with an appropriate commit message.
* Set the "status1.9.1" flag to the relevant "fixed .x" value when the patch has been checked into the branch
* Changes must meet the [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Committing_Rules_and_Responsibilities general checkin rules].
* You must check the tree is green before pushing, notify the sheriffs in #developers and then watch mozilla-central for failures.
* Set the ''Target Milestone'' field in Bugzilla to the current Nightly version after landing a bug fix on mozilla-central.


Patches nominated for approval1.9.1.x should:
All other changes must instead land via one of the [[Tree_Rules#Integration_Branches.2C_or_the_.22Normal.22_workflow|integration branches]] and will then be merged into mozilla-central once green (these merges occur typically 1-2 times a day on the last complete green push).
* have tests, or a strong statement of what can be done in the absence of tests
* have landed on trunk and baked for a few days (at least)
* have an assessment of performance impact
* have an assessment of risk


Please see #developers or today's Sheriff if you have questions.
Please ask in #developers on [[IRC]] if you have questions.


=== Patch Approval & Release Driving ===
== [https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta mozilla-beta] ==
The branch approval queue is being monitored by [[Releases/Drivers/Branch|branch drivers]], all of whom are usually available on IRC.


== [http://tinderbox.mozilla.org/Firefox3.0/ Firefox3.0] - Branch (Firefox 3.0.x only) ==
'''<font color="orange">APPROVAL REQUIRED</font>'''


'''When open: <font color="orange">RESTRICTED</font> to branch-approved checkins only'''
* '''All changes''' must meet the [https://developer.mozilla.org/En/Developer_Guide/Committing_Rules_and_Responsibilities general checkin rules]. You must check the tree before pushing, and watch the tree for failures after pushing.
* Patches must have the '''approval-mozilla-beta+''' flag in Bugzilla. To request approval, set the approval-mozilla-beta? flag on the patch you wish to check in. Exception: If patches only make changes to tests, test harnesses or anything else that does not affect the shipped builds, they may land with self approval (use a=testonly, a=npotb etc).
* Patches nominated for beta should:
** not change any localizable strings.
** have tests, or a strong statement of what can be done in the absence of tests.
** have landed in mozilla-central to bake on the nightly channel for a few days.
** have a comment in Bugzilla assessing performance impact, risk, and reasons the patch is needed on beta.
* Approval requests will be processed by by the [[Release_Management|release manager]] team.
* Set the appropriate ''status-firefoxN'' flag to "fixed" after landing a fix on the Beta branch.


=== Rules ===
== [https://treeherder.mozilla.org/#/jobs?repo=mozilla-release mozilla-release] ==
* patches must have '''approval1.9.0.x+''' (for whatever version of x we are currently approving), or not affect the Firefox build (tests, [[NPOTB]] changes)
* add the fixed1.9.0.x keyword to the bug when it has been checked into the branch


Patches nominated for approval-1.9.0.x should:
'''<font color="orange">APPROVAL REQUIRED</font>'''


* have tests, or a strong statement of what can be done in the absence of tests
* Patches must have the '''approval-mozilla-release+''' flag in Bugzilla. To request approval, set the approval-mozilla-release? flag on the patch you wish to check in. Exception: If patches only make changes to tests, test harnesses or anything else that does not affect the shipped builds, they may land with self approval (use a=testonly, a=npotb etc).
* have landed on trunk and baked for a few days (at least)
* In the normal development process, no changes will land on mozilla-release except [[RapidRelease/Calendar|regular merges from mozilla-beta]] every six weeks.
* have an assessment of performance impact
* Changes to the release branch are limited to urgent "chemspills" like zero-day security vulnerabilities and other unplanned emergencies.  Any changes to this branch will be directly overseen by the [[Release_Management|release manager]] team.  They are also subject to the same restrictions as [[#mozilla-beta]], including string freeze and UUID freeze.
* have an assessment of risk


'''This tree is not sheriff'd.''' Please be sure to monitor for any bustage or performance regressions on the tree and take the appropriate back out actions.
== [https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr60 mozilla-esr60] (Firefox 60.x.y ESR) ==


=== Patch Approval & Release Driving ===
'''<font color="orange">APPROVAL REQUIRED</font>'''
The branch approval queue is being monitored by [[Releases/Drivers/Branch|branch drivers]], all of whom are usually available on IRC.
 
* See [[Release Management/ESR Landing Process]].