https://arrow.apache.org/docs/format/Versioning.html is the statement that
came from the resolution of the previous discussion. IIRC the discussion
came between the 0.15 and 0.16 releases, if you want to search the mailing
list archives.

I wouldn't want to speak for everyone, but I believe there are a few things
at play:

* Release logistics: I believe the community has decided that it wants to
continue releasing all components at the same time, in which case having a
single release number greatly simplifies things.
* Compatibility of libraries: it's a lot easier to know that two libraries
in different languages are compatible because they have the same number.
* Version numbers are cheap, and (IMO) there's little useful information in
version numbers other than "higher means newer" (unless you're in Python
and have parallel major releases for years ;)

While I might also question whether the next release for the library I'm
working on "should" have a major or minor version bump, I'm skeptical that
having that autonomy is worth the maintenance cost.

Neal


On Mon, Jul 27, 2020 at 9:37 AM Jorge Cardoso Leitão <
jorgecarlei...@gmail.com> wrote:

> Hi
>
> First off, congrats for the 1.0.0 release!
>
> I am writing because I am trying to understand the versioning schema we
> will use going onwards.
>
> AFAI understand, 1.0.0 was assigned to all subcomponents of arrow. I.e. I
> can now use pyarrow and assign something like >=1,<2 on a setup.py.
>
> However, looking at other parts of the project, I get the feeling that
> these components are less mature / more recent, and likely need more
> backward incompatible changes until a stable API is achieved. In other
> words, within arrow, I get the feeling that different parts are at
> significantly different stages of their development lifetime.
>
> How are we planning to reconcile this fact? E.g. I can see pyarrow not
> wanting to bump from 1 to 2 since no backward incompatible change was
> introduced, while other components have backward incompatible changes.
>
> A related question: what exactly are we versioning with this 1.0.0? The
> protocol? The individual APIs? The project as a whole?
>
> In my view, there is a case here to _not_ align the versions of the
> different components, exactly to avoid having one component's version (e.g.
> pyarrow) be dependent on other's code (e.g. rust arrow). However, I suspect
> that this discussion has already taken place and I have been unable to find
> a summary of it.
>
> Best,
> Jorge
>

Reply via email to