Fair questions -- here are numbers on the fork impact, since that's the main 
concern.

Across the 9 repos there are ~620 forks, but the relevant subset is much 
smaller:

- ~74% (about 465) were created BEFORE these repos moved master to the Maven 4
  line (that switch happened in 2024, March-June). Their master is therefore
  ALREADY the Maven 3 line. Bringing upstream master back to Maven 3 puts it on
  the SAME line those forks are on -- it reduces divergence, it doesn't create
  it. They need nothing.
- That leaves ~155 forks created after the switch (Maven 4 master). Of those,
  only ~100 are active (a push in the last 12 months); the rest are untouched.

So the forks that could face a one-time realignment are on the order of ~100,
not 620. And even for them:

- The rename does not touch fork branches -- a fork keeps its branches 
unchanged.
- Open PRs from forks are retargeted automatically by GitHub when the base is
  renamed (that's exactly why we rename instead of force-push) -- no manual PR
  work.
- The only manual step is for someone who keeps their fork's master in sync with
  upstream and wants to continue: rename their master to <repo>-4.x and track 
the
  new master. It's a one-time, documented step.

And for the few who do keep a fork's master in sync with upstream, realigning is
quick -- your current master (Maven 4) becomes upstream's <repo>-4.x, and master
becomes Maven 3:

    git fetch upstream
    git branch -m master <repo>-4.x       # your Maven 4 line
    git branch master upstream/master     # the new Maven 3 default

Open PRs move by themselves; the above is only for a long-lived local master, 
and
it will be in the switch announcement too.

On the benefit -- worth weighing honestly: it's not maintenance burden (the
branches are the same either way), it's what a casual clone or a new contributor
lands on. The agreed direction is Maven 3 as the default line until Maven 4
adoption has progressed; today a fresh clone of these repos lands on Maven 4,
which is the opposite.

Per repo, as "forks (created before the 4.x switch = Maven 3 master / created
after = Maven 4 master / of those, active in the last 12 months)":

- maven-compiler-plugin: 198 (156 / 42 / 26)
- maven-jar-plugin:        80 (64 / 16 / 14)
- maven-deploy-plugin:     79 (60 / 19 / 10)
- maven-clean-plugin:      61 (46 / 15 / 8)
- maven-install-plugin:    49 (39 / 10 / 6)
- maven-source-plugin:     42 (27 / 15 / 10)
- maven-filtering:         41 (26 / 15 / 11)
- maven-resources-plugin:  39 (25 / 14 / 11)
- maven-archiver:          30 (21 / 9 / 7)
- Total:                  619 (464 / 155 / 103)

Only the last number on each line ("active Maven-4-master forks") is one that
might want the one-time realign.




> On 8. Oct 2026, at 09:30, Romain Manni-Bucau <[email protected]> wrote:
> 
> Is the proposal to force all forks to be updated for both branches ([1])?
> Is it worth it or do we expect your claude to go on all computers?
> 
> [1]
> https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch
> 
> Romain Manni-Bucau
> @rmannibucau <https://x.com/rmannibucau> | .NET Blog
> <https://dotnetbirdie.github.io/> | Blog <https://rmannibucau.github.io/> | 
> Old
> Blog <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064>
> Javaccino <https://javaccino.dev/> founder (Java/.NET service - contact via
> linkedin)
> 
> 
> Le jeu. 8 oct. 2026 à 09:26, Slawomir Jaranowski <[email protected]> a
> écrit :
> 
>> On Tue, 6 Oct 2026 at 10:46, Gerd Aschemann <[email protected]> wrote:
>> 
>>> Hi all,
>>> 
>>> Following up on Hervé's call to lead the Git work for maven-sources#57 <
>>> https://github.com/apache/maven-sources/issues/57>: a handful of
>>> Maven-4-specific plugins and shared components currently have their
>> default
>>> master branch on the Maven 4 line, with a <repo>-3.x branch for Maven 3.
>>> That is the reverse of our agreed direction — the default should be Maven
>>> 3, with Maven 4 as a separate branch until Maven 4 adoption has
>> progressed.
>>> Concretely, it avoids signalling that users moving to Maven 4.0 must also
>>> switch to the new (Maven 4 API) plugins; Maven 4.0 is expected to run the
>>> Maven 3 plugins.
>>> 
>>> This originates from Hervé Boutemy (tracking issue + #maven Slack thread
>> <
>>> https://the-asf.slack.com/archives/C7Q9JB404/p1789896368528809>); the
>>> full plan / runbook is on Confluence <
>>> https://cwiki.apache.org/confluence/x/85fwGg>.
>>> 
>>> Scope (plugins / components only, NOT Maven core):
>>> 
>>> core plugins: clean, compiler, deploy, install, resources
>>> packaging: jar, source
>>> shared: archiver, filtering
>>> special case: plugin-tools — no swap; master stays Maven 3 (drop the -3.x
>>> branch, rename the version to 3.17.0-SNAPSHOT).
>>> The target branch name stays master (not main); a move to main, if ever,
>>> should be a separate global decision, not a side effect of this.
>>> 
>>> Method — rename, not force-push:
>>> 
>>> rename master (Maven 4) → <repo>-4.x
>>> rename <repo>-3.x (Maven 3) → master
>>> Renaming the base branch makes GitHub retarget open PRs automatically, so
>>> merge bases and PR history are preserved (~45 open PRs across these
>> repos).
>>> 
>>> Impact on forks: renaming the upstream branches does not touch forks. A
>>> fork's master keeps the old (Maven 4) content and its default branch is
>>> unchanged; each fork owner realigns their own branches afterwards (e.g.
>>> rename their master → <repo>-4.x and track the new upstream master =
>> Maven
>>> 3). Open PRs from forks keep working — GitHub retargets their base on the
>>> upstream rename. This is a one-time, per-fork manual step; it will be
>>> documented, and those of us with forks (myself included) will handle our
>>> own as a follow-up.
>>> 
>> 
>> Did we estimate how many forks will be affected by it?
>> 
>> 
>>> 
>>> Plan:
>>> 
>>> Execution approach agreed with INFRA: INFRA performs the two
>>> protected-branch renames per repo by hand; we handle .asf.yaml,
>> default.xml
>>> and README. Rehearsed on a throwaway fork first.
>>> One low-risk first test (maven-filtering, 1 open PR), verify, then the
>>> rest en bloc — in a single coordinated window, timed with the plugin
>>> maintainers and outside any open staging/release vote.
>>> Timing: from ~16 October (after Community over Code).
>>> Communication: to avoid noise I'll keep updates in this thread rather
>> than
>>> per-repo mails — a heads-up when we start with maven-filtering, and one
>>> when starting the batch and when it is done.
>>> 
>>> Please raise any objection — here or on maven-sources#57 <
>>> https://github.com/apache/maven-sources/issues/57> — before we start
>>> (targeting the weekend of 19 October, after the CoC@Glasgow). Feel free
>>> to comment on Slack or Confluence as well.
>>> 
>>> Thanks, Gerd
>>> 
>>> --
>>> Gerd Aschemann (er/he) --- Veröffentlichen heißt Verändern (Carmen
>> Thomas)
>>> +49/173/3264070 <+49%20173%203264070> <+49%20173%203264070> --
>> [email protected] --
>>> https://aschemann.net
>>> 
>>> 
>> 
>> --
>> Sławomir Jaranowski
>> 

--
Gerd Aschemann (er/he) --- Veröffentlichen heißt Verändern (Carmen Thomas)
+49/173/3264070 -- [email protected] -- https://aschemann.net

Reply via email to