As we close on cutting beta1, a new consequence of our release lifecycle is
becoming apparent. With guarantees of API stability in the beta phase, any
work that is deferred from alpha to the next major due to API impacting
changes will atrophy for as long as the beta is active.

Cutting a branch for the 4.0 line upon release of beta1 would mitigate this
problem and allow work in flight to be merged in, as well as unblock the
work of others who may not be focusing on testing 4.0, whether it be due to
their interest and focus or due to saturation on the work in scope for the
release.

The obvious downsides to cutting a branch of a major and allowing dev on
trunk to continue separately is 1) the need to merge up to trunk on changes
going into beta, and 2) a risk of a lack of focus on testing the release
due to the availability of developing on trunk. My personal thoughts on
those two points:

1) changes going into beta should be small enough that a fast-forward merge
should be available in the majority of cases up to trunk. We've done this
with previous releases and it wasn't prohibitively expensive in terms of
time. Further, I would posit that changes going into beta should be on the
smaller side, further mitigating the burden of this process.

2) We've been feature frozen since late 2018 with the expressed intention
to encourage work on testing and stabilizing 4.0. I am not aware of any
contributors whose time and energy has been invested in testing 4.0 that
would otherwise have gone to trunk (i.e. this approach achieving its
desired outcomes), however I do know of several major contributors and
contributions that have atrophied and been deterred from further work on
the project due to waiting for 4.0 to release.

I don't think it's appropriate for us as an existing body of contributors
to mandate either how each other or more detrimentally how other new
contributors engage with and contribute to the project by disallowing
contributions past 4.0; I take the position that we should do everything
reasonably possible to encourage a diversity of contributions to the
project. I deeply believe that making deliberate decisions to prioritize
new engagement and interaction on the project as the context in which it's
used evolves is vital to the project's health long term.

That's just my .02 - I'd be curious to hear what everyone else thinks.

~Josh

Reply via email to