Why didn't numba release version 1.0.0

Why didn’t numba release version 1.0.0

Whilst I appreciate the roadmap and information relating to discussions about version 1.0 is probably out of date, I think it’s hard for a maintainer to prioritise composing a thoughtful answer to this question without further background.

What is the motivation behind your question? What would change for you if Numba made a 1.0 release?

I’ve been wondering about this myself. (This is my reasoning, which may be different from @YiNANzhang 's.) Different software projects have different tolerances for what they consider “1.0” or major versions in general. Mozilla and Firefox both release a major version every month, and they’re both around 118‒119. One of them started doing it and the other had to also or risk looking like it’s less advanced. (I don’t remember which one started it.)

While that’s ridiculous (also: Windows skipping version 9 because of OS X), Numba is extremely conservative about version numbers. The scientific Python world is pretty conservative about this in general, with SciPy reaching 1.0 some 16 years after it was first released. Numba is close to beating that record, now that it is an 11 year old project. However, Numba has been releasing minor 0.x releases more rapidly than SciPy, such that Numba is now up to 0.57, compared with SciPy’s 0.19.

That represents a lot of work and the core of Numba has been stable for years. As a maintainer of a project that uses quite a lot of the Numba API, I have not needed to do much work to stay up-to-date with Numba’s changes—this is what a stable project looks like. Numba has long deprecation cycles (the nopython argument has been on its way out for… what… a few years now?) and it has a numba.experimental submodule for interfaces that may change, which is to say that the core interface is not expected to change.

These are all good things, but they’re not communicated by a version number like 0.57. Most projects use 0.x releases to mean that the whole package is an “experimental” module, with interfaces that change all the time without notice. Potential users of Numba might not realize that it is a stable project, based on the version number, and end up going to TaiChi or Mojo. (TaiChi is almost 4 years since first release, at version 1.6, and Mojo is 2 months since first release at 0.5.)

The meanings of version numbers are purely a social construct, but that’s to say that they communicate something. I think that Numba is selling itself short by not describing the codebase as a 1.x.

(I don’t know how the RVSDG refactoring would change that—if a major interface change is expected, then now wouldn’t be the time to declare 1.0. My argument above would become that Numba “should have been” 1.x for a while now, and maybe should claim it after the RVSDG transition is over and everything settles down again.)