[PATCH 4/4] doc: Migrate Process wiki page to sphinx
Martin Bonner
martingreybeard at gmail.com
Fri Jul 8 09:22:12 CEST 2022
Martin
On Fri, 8 Jul 2022 at 08:06, Claudius Heine <ch at denx.de> wrote:
> Hi Tom,
>
> On 2022-06-27 19:17, Tom Rini wrote:
> > Move the current Process wiki page to doc/develop/process.rst. The
> > changes here are for formatting or slight rewording so that it reads
> > well when linking to other sphinx documents.
> >
> > Signed-off-by: Tom Rini <trini at konsulko.com>
> > ---
> > doc/develop/index.rst | 1 +
> > doc/develop/process.rst | 182 ++++++++++++++++++++++++++++++++++++++++
> > 2 files changed, 183 insertions(+)
> > create mode 100644 doc/develop/process.rst
> >
> > diff --git a/doc/develop/index.rst b/doc/develop/index.rst
> > index c0f4f0ba413a..eab00a55382a 100644
> > --- a/doc/develop/index.rst
> > +++ b/doc/develop/index.rst
> > @@ -11,6 +11,7 @@ General
> >
> > codingstyle
> > designprinciples
> > + process
> >
> > Implementation
> > --------------
> > diff --git a/doc/develop/process.rst b/doc/develop/process.rst
> > new file mode 100644
> > index 000000000000..dd279fb9eff1
> > --- /dev/null
> > +++ b/doc/develop/process.rst
> > @@ -0,0 +1,182 @@
> > +.. SPDX-License-Identifier: GPL-2.0+:
> > +
> > +U-Boot Development Process
> > +==========================
> > +
> > +Management Summary
> > +------------------
> > +
> > +* Development happens in Release Cycles of 3 months.
> > +* The first 2 weeks are called Merge Window, which is followed by a
> > + Stabilization Period.
> > +* Patches with new code get only accepted while the Merge Window is
> open.
> > +* A patch that is generally in good shape and that was submitted while
> the
> > + Merge Window was open is eligible to go into the upcoming release,
> even if
> > + changes and resubmits are needed.
> > +* During the Stabilization Period, only patches that contain bug fixes
> get
> > + applied.
> > +
> > +Phases of the Development Process
> > +---------------------------------
> > +
> > +U-Boot development takes place in `Release Cycles
> > +<https://www.denx.de/wiki/U-Boot/ReleaseCycle>`_. A Release Cycle
> lasts
> > +normally for three months.
> > +
> > +The first two weeks of each Release Cycle are called *Merge Window*.
> > +
> > +It is followed by a *Stabilization Period*.
> > +
> > +The end of a Release Cycle is marked by the release of a new U-Boot
> version.
> > +
> > +Merge Window
> > +------------
> > +
> > +The Merge Window is the period when new patches get submitted
> > +(and hopefully accepted) for inclusion into U-Boot mainline.
> > +
> > +This is the only time when new code (like support for new processors or
> new
> > +boards, or other new features or reorganization of code) is accepted.
> > +
> > +Twilight Time
> > +-------------
> > +
> > +Usually patches do not get accepted as they are - the peer review that
> takes
> > +place will usually require changes and resubmits of the patches before
> they
> > +are considered to be ripe for inclusion into mainline.
> > +
> > +Also, the review often happens not immediately after a patch was
> submitted,
> > +but only when somebody (usually the responsible custodian) finds time
> to do
> > +this.
> > +
> > +In the result, the final version of such patches gets submitted after
> the
>
Should be: "The result is that the final version..." or "This can mean the
final version..."
> > +merge window has been closed.
> > +
> > +It is current practice in U-Boot that such patches are eligible to go
> into the
> > +upcoming release.
> > +
> > +In the result, the release of the ``"-rc1"`` version does not
> immediately follow
>
Should be "The result is that the release..." or "Thus the release..."
The first of both my two choices is closer to the original wording, the
second feels to me (as a British English speaker) to be more idiomatic.
(Beware, idiomatic English is not necessarily good - not everyone here is a
native speaker, and it can be overly complex.)
> > +the closing of the Merge Window.
> > +
> > +Stabilization Period
> > +--------------------
> > +
> > +During the Stabilization Period only patches containing bug fixes get
> > +applied.
> > +
> > +Corner Cases
> > +------------
> > +
> > +Sometimes it is not clear if a patch contains a bug fix or not.
> > +For example, changes that remove dead code, unused macros etc. or
> > +that contain Coding Style fixes are not strict bug fixes.
> > +
> > +In such situations it is up to the responsible custodian to decide if he
>
> he applies -> they apply
>
> > +applies such patches even when the Merge Window is closed.
> > +
> > +Exception: at the end of the Stabilization Period only strict bug
> > +fixes my be applied.
> > +
> > +Sometimes patches miss the the Merge Window slightly - say by few
>
> the the -> the
>
> > +hours or even a day. Patch acceptance is not as critical as a
> > +financial transaction, or such. So if there is such a slight delay,
> > +the custodian is free to turn a blind eye and accept it anyway. The
> > +idea of the development process is to make it foreseeable,
> > +but not to slow down development.
> > +
> > +It makes more sense if an engineer spends another day on testing and
> > +cleanup and submits the patch a couple of hours late, instead of
> > +submitting a green patch which will waste efforts from several people
> > +during several rounds of review and reposts.
> > +
> > +Differences to Linux Development Process
> > +----------------------------------------
> > +
> > +* In Linux, top-level maintainers will collect patches in their trees
> and send
> > + pull requests to Linus as soon as the merge window opens.
> > + So far, most U-Boot custodians do not work like that; they send pull
> requests
> > + only at (or even after) the end of the merge window.
> > +* In Linux, the closing of the merge window is marked by the release of
> the
> > + next ``"-rc1"``
> > + In U-Boot, ``"-rc1"`` will only be released after all (or at least
> most of
> > + the) patches that were submitted during the merge window have been
> applied.
> > +
> > +Custodians
> > +----------
> > +
> > +The Custodians take responsibility for some area of the U-Boot code.
> The
> > +in-tree ``MAINTAINERS`` files list who is reponsible for which areas.
>
> reponsible -> responsible
>
> > +
> > +It is their responsibility to pick up patches from the mailing list
> > +that fall into their responsibility, and to process these.
> > +
> > +A very important responsibility of each custodian is to provide
> > +feedback to the submitter of a patch about what is going on: if the
> > +patch was accepted, or if it was rejected (which exact list of
> > +reasons), if it needs to be reworked (with respective review
> > +comments). Even a "I have no time now, will look into it later"
> > +message is better than nothing. Also, if there are remarks to a
> > +patch, these should leave no doubt if they were just comments and the
> > +patch will be accepted anyway, or if the patch should be
> > +reworked/resubmitted, or if it was rejected.
> > +
> > +Work flow of a Custodian
> > +------------------------
> > +
> > +The normal flow of work in the U-Boot development process will look
> > +like this:
> > +
> > +#. A developer submits a patch via e-mail to the u-boot-users mailing
> list.
> > + U-Boot has adopted the `Linux kernel signoff policy <
> https://groups.google.com/g/fa.linux.kernel/c/TLJIJVA-I6o?pli=1>`_, so
> the submitter must
> > + include a ``Signed-off-by:`` line.
> > +#. Everybody who can is invited to review and test the changes.
> Reviews should
> > + reply on the mailing list with ``Acked-by`` lines.
> > +#. The responsible custodian
> > +
> > + #. inspects this patch, especially for:
> > +
> > + #. :doc:`codingstyle`
> > + #. Basic logic:
> > +
> > + * The patch fixes a real problem.
> > + * The patch does not introduce new problems, especially it does
> not break
> > + other boards or architectures
> > +
> > + #. U-Boot Philosophy
> > + #. Applies cleanly to the source tree
> > + #. passes a ``MAKEALL`` compile test without creating new warnings
> > +
> > +#. Notes:
> > +
> > + #. In some cases more than one custodian may be affected or feel
> responsible.
> > + To avoid duplicated efforts, the custodian who starts processing
> the
> > + patch should send a short ACK to the mailing list.
> > + #. We should create some tool to automatically do this.
> > + #. This is well documented in :doc:`designprinciples`.
> > + #. The custodian decides himself how recent the code must be. It is
> > + acceptable to request patches against the last officially released
> > + version of U-Boot or newer. Of course a custodian can also accept
> > + patches against older code.
> > + #. Commits should show original author in the ``author`` field and
> include all
> > + sign off/ack lines.
> > +
> > +5. The custodian decides to accept or to reject the patch.
> > +#. If accepted, the custodian adds the patch to his public git
> repository and
> > + notifies the mailing list. This note should include:
> > +
> > + * a short description of the changes
> > + * the list of the affected boards / architectures etc.
> > + * suggested tests
> > +
> > + Although the custodian is supposed to perform his own tests
>
> his -> their
>
> > + it is a well-known and accepted fact that he needs help from
>
> he -> they
>
> > + other developers who - for example - have access to the required
> > + hardware or tool chains.
> > + The custodian request help for tests and feedback from
> > + specific maintainers and U-Boot users.
> > +#. Once tests are passed, some agreed time limit expires, the custodian
> > + requests that the changes in his public git repository be merged
> into the
>
> his -> their
>
> > + main tree. If necessary, the custodian may have to adapt his changes
> to
>
> his -> their
>
> > + allow for a clean merge.
> > + Todo: define a reasonable time limit. 3 weeks?
>
> regards,
> Claudius
>
More information about the U-Boot
mailing list