Another possibility I'd like to float is doing this in ADBC first? My primary 
motivation is (1) from Joris's list: I'd like to bump a few components 
(Snowflake, maybe SQLite) to a "stable" version while leaving the others 
behind, and in this context I think it'd be much more helpful to users to 
differentiate between stable/experimental components. Admittedly this would not 
quite address the questions around versioning docs and so on.

On Tue, Apr 9, 2024, at 22:04, Antoine Pitrou wrote:
> It seems that perhaps this discussion should be rebooted for each 
> individual component, one at a time?
>
> Let's start with something simple and obvious, with some frequent 
> contribution activity, such as perhaps Go?
>
>
>
> Le 09/04/2024 à 14:27, Joris Van den Bossche a écrit :
>> I am also in favor of this idea in general and in the principle, but
>> (somewhat repeating others) I think we should be aware that this will
>> create _more_ work overall for releasing (refactoring release scripts
>> (at least initially), deciding which version to use for which
>> component, etc), and not less, given that easing the burden of the
>> release managers was mentioned as a goal.
>> So we if pursue this, it should be for other benefits that we think this has:
>> 1) because separate versions would be beneficial for users? (have a
>> clearer messaging in the version number (eg no major new version if
>> there were hardly any changes in a certain component, or use a
>> versioning scheme more common in a certain language's ecosystem, ..?)
>> 2) because it would actually allow separate releases, even though when
>> initially always releasing in batch (eg being able to just do a bug
>> fix for go, without having to also add a tag for all others)
>> 3) because it would make the release process more manageable / easier
>> to delegate? (and thus potentially easing the burden for an
>> _individual_ release manager, although requiring more work overall)
>> 4) .. other things I am missing?
>> 
>>> We could simply release C++, R, Python and C/GLib together.
>>> ...
>>>> I think that versioning will require additional thinking for libraries 
>>>> like PyArrow
>>> I think we should maybe focus on a few more obvious cases. [i.e. not C++ 
>>> and Python]
>> 
>> Yes, agreed to not focus on those. At least for PyArrow, speaking as
>> one of its maintainers, I am personally (at this moment) not really
>> interested in dealing with the complexity of allowing a decoupled
>> Arrow C++ and PyArrow build.
>> 
>> Related to the docs:
>> 
>>> There is a dedicated documentation page for this... though the
>>> versioning of the docs themselves would become ill-defined:
>>> https://arrow.apache.org/docs/status.html
>> ...
>>> I think it would be best to hold off on Java also, in part because
>>> of how the Java docs are integrated with the C++ and Python docs and
>>> controlled by the version selector menu.
>> 
>> We should indeed consider how to handle the current documentation
>> site. Previously, we actually did some work to split the sphinx docs
>> (used for the format, dev docs, and for the Python/C++/(part of the)
>> Java docs) into multiple sphinx projects that could be built
>> separately (https://github.com/apache/arrow/issues/30627,
>> https://github.com/apache/arrow/pull/11980), but we abandoned that
>> work last year because not seeming worthwhile. But we could certainly
>> revive that idea, for example to at least split the format docs (and
>> let that have its own versioning based on the Format Version
>> (currently 1.4)? or just only host a single, latest version?)
>> 
>> Joris

Reply via email to