From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: Sascha Hauer <s.hauer@pengutronix.de>,
Barebox List <barebox@lists.infradead.org>
Subject: Re: [PATCH] Documentation: Officially accept GitHub pull requests
Date: Wed, 2 Sep 2026 10:41:45 +0200 [thread overview]
Message-ID: <9f59858f-61a8-465c-8ebe-7f7072d5b526@pengutronix.de> (raw)
In-Reply-To: <20260902082311.2966181-1-s.hauer@pengutronix.de>
On 9/2/26 10:23 AM, Sascha Hauer wrote:
> barebox is on GitHub for years already and we occasionally merged GitHub
> merge requests, but this was always the exception. This changes now:
> We now officially accept GitHub merge requests.
>
> Adjust the documentation accordingly. While at it better explain the
> patchflow into barebox to justify why work should be done on master
> while being targeted for next. Also mention the exceptions to this
> rule and how merge conflicts are handled.
>
> Assisted-by: Claude:claude-opus-5
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> ---
> Documentation/devel/contributing.rst | 13 +++++-
> Documentation/devel/devel.rst | 1 +
> Documentation/devel/patch-flow.rst | 62 ++++++++++++++++++++++++++++
> README.rst | 7 ++--
> 4 files changed, 79 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devel/patch-flow.rst
>
> diff --git a/Documentation/devel/contributing.rst b/Documentation/devel/contributing.rst
> index 8b92c6f483..d62d6de361 100644
> --- a/Documentation/devel/contributing.rst
> +++ b/Documentation/devel/contributing.rst
> @@ -47,7 +47,9 @@ Patch series can be sent and fetched from the list using `b4 <https://pypi.org/p
>
> b4 shazam -M https://lore.barebox.org/$messageid # replace with link
>
> -Fixes should apply on master and new features on the next branch.
> +Base your work on ``master``. Fixes are applied there directly, new features
> +go to ``next`` first. See :ref:`patch_flow` for the branches involved and
> +what happens to a patch after it has been picked up from the list.
>
> If a series fails to apply, ``b4`` can determine/guess the base
> and have ``FETCH_HEAD`` point at it::
> @@ -65,6 +67,15 @@ patches can be sent with::
>
> See the `b4 documentation <https://b4.docs.kernel.org/en/latest/>`_ for details.
>
> +GitHub Pull Requests
> +--------------------
> +
> +Besides the mailing list, contributions are also accepted as pull requests
> +against `the project on GitHub <https://github.com/barebox/barebox>`_. The
> +same rules apply: base your work on ``master`` and target the pull request
> +at ``next``, so that GitHub can detect when it has been applied. See
> +:ref:`patch_flow` for details.
> +
> Continuous Integration
> ----------------------
>
> diff --git a/Documentation/devel/devel.rst b/Documentation/devel/devel.rst
> index 810b5d254e..8a92d864af 100644
> --- a/Documentation/devel/devel.rst
> +++ b/Documentation/devel/devel.rst
> @@ -10,6 +10,7 @@ Contents:
>
> architecture
> contributing
> + patch-flow
> porting
> troubleshooting
> filesystems
> diff --git a/Documentation/devel/patch-flow.rst b/Documentation/devel/patch-flow.rst
> new file mode 100644
> index 0000000000..5145e6c32f
> --- /dev/null
> +++ b/Documentation/devel/patch-flow.rst
> @@ -0,0 +1,62 @@
> +.. _patch_flow:
> +
> +Patch Flow
> +==========
> +
> +This document describes the path a patch takes from the mailing list into a
> +barebox release. See :ref:`contributing` for how to prepare and submit the
> +patch in the first place.
> +
> +Branches
> +--------
> +
> +Two branches are published in the official barebox repositories:
> +
> +``master``
> + The stable mainline. Releases are branched from here. ``master`` is
> + fast-forward only and never rewritten, so it is safe to base work on.
> +
> +``next``
> + The integration branch. It contains everything queued for the next
> + release. ``next`` is **not** fast-forward: it is regularly rebuilt from
> + scratch and force-pushed. Never base work on ``next`` that you intend to
> + keep, and never merge ``next`` into a downstream branch. Internally all
> + new features are collected in ``for-next/`` branches from which ``next``
> + is merged
> +
> +From patch to release
> +---------------------
> +
> +#. A patch is picked up from the mailing list and applied to the
> + ``for-next/`` topic branch matching its subsystem or topic.
> +
> +#. ``next`` is rebuilt by merging all internal ``for-next/`` branches on top
> + of ``master``, and is published for testing and CI.
> +
> +#. After the release, the ``for-next/`` branches are merged into ``master``
> + and deleted. ``next`` is then rebuilt on the new ``master``, and the cycle
> + starts over.
> +
> +The consequence for contributors is that a new feature takes one to two
> +months to reach a release, depending on where in the cycle it was applied,
> +while a fix can make the next release. The monthly release schedule and the
> +release numbering are described in the "Release Strategy" section of the
> +top-level ``README.rst``.
> +
> +What to base your work on
> +-------------------------
> +
> +New features should be based on ``master`` and targeted for ``next``. Merge
> +conflicts like Makefile/Kconfig conflicts or context changes will be handled
> +at the maintainers side. If and only if a patch depends on a feature currently
> +sitting in ``next`` please base your work on ``next`` and note explicitly when
> +sending the patch.
> +
> +GitHub pull requests
> +--------------------
> +
> +We also accept GitHub pull requests. Same rules as above apply. Make sure your
> +work is based on master and the pull request is targeted for ``next`` which
> +lets the GitHub Logic properly detect when a pull request is applied. Should
> +you have to base your work on ``next`` for the above reasons your changes will
> +be cherry picked and the pull request is manually closed.
> diff --git a/README.rst b/README.rst
> index 71286904a8..fe783028df 100644
> --- a/README.rst
> +++ b/README.rst
> @@ -256,9 +256,10 @@ are the release rules:
> to get patches in on a very short time scale (usually a month at most).
>
> - New features are applied to the ``next`` branch. Fixes directly to the
> - ``master`` branch. Releases are always branched from ``master`` and then
> - ``next`` is merged into ``master``. Thus new features take 1-2 months
> - until they hit a release.
> + ``master`` branch. Releases are always branched from ``master``, and only
> + afterwards is the material queued in ``next`` merged into ``master``. Thus
> + new features take 1-2 months until they hit a release. See
> + ``Documentation/devel/patch-flow.rst`` for the details.
>
> - Usually, there are no bugfix releases, so z=0. If there is a need
> to make a bugfix release, z is the right place to increment.
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
prev parent reply other threads:[~2026-09-02 8:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 8:23 Sascha Hauer
2026-09-02 8:41 ` Ahmad Fatoum [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9f59858f-61a8-465c-8ebe-7f7072d5b526@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox