[petsc-dev] significance of version numbers

Jed Brown jed at 59A2.org
Sat Mar 6 13:40:22 CST 2010

On Sat, 6 Mar 2010 13:09:57 -0600 (CST), Satish Balay <balay at mcs.anl.gov> wrote:
> And we never land at the orignial-intended convention you are refering
> to. Perhaps one rationale used was: Currently linux-kernel only
> changes the sub-minor version for any and all changes - so current
> petsc scheme is equivalent, [instead of .p1,.p2, linux kernel uses an
> extra .1,.2 etc..]  and no need for petsc to adhere to the original
> convention.

The Linux 2.4 to 2.6 transition broke almost everything that depended on
kernel interfaces (e.g. device drivers) and moved certain functionality
to an entirely different system (e.g sysfs).  This could certainly have
been called 3.0, but they chose 2.6 and it seems entirely possible that
all future releases will be 2.6.x.  Linux uses the y in 2.6.x.y for
fully compatible updates (mainly just bug fixes), so it's essentially
one decimal removed from the standard convention.  They wouldn't release
2.8.0 unless there was a redesign of comparable size to 2.4 -> 2.6.

> [Also as you indicate - gnome also doesn't conform - by removing
> subminor release number]

Actually, I think they do conform in the sense that they never put
ABI-incompatible changes in a subminor release.  Since they never make
releases of any sort that preserve ABI compatibility, they don't bother
with the extra decimal place since the subminor would always be 0.

> Are you sugesting going from:
> petsc-3.0.0-p0.tar.gz
> petsc-3.0.0-p1.tar.gz
>  to:
> petsc-3.1.0-p0.tar.gz
> or
> petsc-3.1-p0.tar.gz

Yes, and if the next release happened to preserve ABI compatibility,
then it would be called 3.1.1-p0.

> The alternative - not suggested is:
> petsc-3.1.0.tar.gz
> petsc-3.1.1.tar.gz
> etc..

This would be okay, but I wasn't suggesting this because subminor has
the connotation that it may introduce new functionality, which a patch
level never does.

> Any change is bound to create some confusion with users..

I don't see 3.1.0-p0 instead of 3.0.1-p0 causing any confusion, and
would eliminate confusion of anyone not familiar with PETSc wondering
why interfaces have changed relative to 3.0.0.


More information about the petsc-dev mailing list