Hi,

I don't object this but I'm worry about we have enough
release managers for each component. Here are components:

* C/GLib (me but I want to release C++ and C/GLib together
  for .deb/.rpm packages)
* C++ (Raúl and me)
* C# (Curt?)
* Go (Matt?)
* Java (David?)
* JavaScript (Dominik?)
* MATLAB (Kevin?)
* Python (Alenka?)
* R (Jacob?)
* Ruby (me)
* Swift (me...?)

Thanks,
-- 
kou

In <cahqx8+k9ntj7dqaxx8ac3fgdrfhe0rmnxs66byctm0-qsvy...@mail.gmail.com>
  "[DISCUSS] Versioning and releases for apache/arrow components" on Thu, 28 
Mar 2024 21:42:14 +0100,
  Jacob Wujciak <assignu...@apache.org> wrote:

> Hello Everyone!
> 
> I would like to resurface the discussion of separate
> versioning/releases/voting for monorepo components. We have previously
> touched on this topic mostly in the community meetings and spread across
> multiple, only tangential related threads. I think a focused discussion can
> be a bit more results oriented, especially now that we almost regularly
> deviate from the quarterly release cadence with minor releases. My hope is
> that discussing this and adapting our process can lower the amount of work
> required and ease the pressure on our release managers (Thank you Raúl and
> Kou!).
> 
> I think the base of the topic is the separate versioning for components as
> otherwise separate releases only have limited value. From a technical
> perspective standalone implementations like Go or JS are the easiest to
> handle in that regard, they can just follow their ecosystem standards,
> which has been requested by users already (major releases in Go require
> manual editing across a code base as dependencies are usually pinned to a
> major version).
> 
> For Arrow C++ bindings like Arrow R and PyArrow having distinct versions
> would require additional work to both enable the use of different versions
> and ensure version compatibility is monitored and potentially updated if
> needed.
> 
> For Arrow R we have already implemented these changes for different reasons
> and have backwards compatibility with  libarrow >= 13.0.0. From a user
> standpoint of PyArrow this is likely irrelevant as most users get binary
> wheels from pypi, if a user regularly builds PyArrow from source they are
> also capable of managing potentially different libarrow version
> requirements as this is already necessary to build the package just with an
> exact version match.
> 
> A more meta question is about the messaging that different versioning
> schemes carry, as it might no longer be obvious on first glance which
> versions are compatible or have the newest features. Though I would argue
> that this  a marginal concern at best as there is no guarantee of feature
> parity between different components with the same version. Breaking that
> implicit expectation with separate versions could be seen as clearer. If a
> component only receives dependency bumps or minor bug fixes, releasing this
> component with a patch version aligns much better with expectations than a
> major version bump. In addition there are already several differently
> versioned libraries in the apache/arrow-* ecosystem that are released
> outside of the monorepo release process.  A proper support policy for each
> component would also be required but could just default to 'current major
> release' as it is now.
> 
> From an ASF perspective there is no requirement to release the entire
> repository at once as the actual release artifact is the source tarball. As
> long as that is verified and voted on by the PMC it is an official release.
> 
> This brings me to the release process and voting. I think it is pretty
> clear that completely decoupling all components and their release processes
> isn't feasible at the moment, mainly from a technical perspective
> (crossbow) and would likely also lead to vote fatigue. We have made efforts
> to ease the verification required for the vote easier and will continue
> these efforts. Though I can see some of the components managing their own
> releases (e.g. R, as we do with post release tasks already due to CRAN, ) a
> continued quarterly 'batch release' seems like a more appealing solution
> and would still allow us to use separate versions.  Voting in one thread on
> all components/a subset of components per voter and the surrounding
> technicalities is something I would like to hear some opinions on.
> 
> In my opinion being stricter with release requirements for components might
> lead to  smaller/less active components not releasing. This seems like a
> bad thing at first glance but might also spur the user community to get
> involved when the reassuring, regular releases dry up and reflect the
> reality of the development situation of the component.
> 
> I am eager to hear your thoughts!
> 
> Best
> Jacob

Reply via email to