[petsc-dev] release naming scheme

Satish Balay balay at mcs.anl.gov
Fri May 10 22:59:09 CDT 2013


On Fri, 10 May 2013, Jed Brown wrote:

> Satish Balay <balay at mcs.anl.gov> writes:
> 
> > Perhaps this was partly discussed in various threads.
> >
> > With the new release Jed suggested that we go with the standard
> > release naming convention and switching patch updates from
> > PETSC_VERSION_PATCH to PETSC_VERSION_SUBMINOR.
> >
> > [I'm fine with this change but want to discuss a bit more]
> >
> > The new release numbers would be:
> >
> > petsc-3.4.0 [or should this be petsc-3.4 - like http://mercurial.selenic.com/release/?C=M;O=D ]
> 
> I would be fine with either.  Maybe "petsc-3.4" will give a stronger
> impression that the minor version defines the interface, so that
> upgrading subminor versions is comfortable?
> 
> > petsc-3.4.1
> > petsc-3.4.2
> > etc
> >
> > And then:
> > petsc-3.5.0
> > petsc-3.5.1
> > etc..
> >
> > Currently we have PETSC_VERSION_PATCH & PETSC_VERSION_PATCH_DATE for
> > representing the patch releases.
> >
> > We would have to remove PETSC_VERSION_PATCH - and change
> > PETSC_VERSION_PATCH_DATE to PETSC_VERSION_SUBMINOR_DATE?
> 
> What is the utility of PETSC_VERSION_PATCH_DATE?

In the current scheme we have: [for each petsc-3.3-pX tarball]

PETSC_VERSION_DATE: date of the primary release [i.e when the first 3.3 tarball was spun]
PETSC_VERSION_PATCH_DATE: date of the patched tarball release [i.e when 3.3-pX was spun]

And we use PETSC_VERSION_DATE [manually transcribed] in a bunch of
places.

- https://www.mcs.anl.gov/petsc/
"The current version of PETSc is 3.3; released June 5, 2012"

- https://www.mcs.anl.gov/petsc/documentation/changes/index.html

- manual

But PETSC_VERSION_PATCH_DATE: is the date the tarball is respun [with
patches] - and that doesn't change the above docs.

Satish

> I might leave PETSC_VERSION_PATCH defined to 0, reserved for packagers
> to use if they decide to backport features or bug fixes.  In any case, I
> think that leaving it defined doesn't hurt anything, and will make more
> scripts continue to work.
> 
> > [and some of these scripts would need fixing to work with this change]
> >
> > Satish
> > ----------------
> > $ git grep PETSC_VERSION_PATCH
> > bin/maint/builddist:version_patch=`grep '^#define PETSC_VERSION_PATCH ' include/petscversion.h |tr -s ' ' | cut -d ' ' -f 3`
> > bin/maint/builddist:#add in PETSC_VERSION_PATCH_DATE and PETSC_VERSION_GIT
> > bin/maint/builddist:echo Using PETSC_VERSION_PATCH_DATE: ${version_patch_date}
> > bin/maint/builddist:  sed -e "s/#define PETSC_VERSION_PATCH_DATE.*/#define PETSC_VERSION_PATCH_DATE \"${version_patch_date}\"/" | \
> > bin/maint/createpatch:version_patch=`grep '^#define PETSC_VERSION_PATCH ' include/petscversion.h |tr -s ' ' | cut -d ' ' -f 3`
> > bin/maint/createpatch:  sed -e "s/#define PETSC_VERSION_PATCH .*/#define PETSC_VERSION_PATCH      ${new_version_patch}/" > include/petscversion.h
> > bin/maint/rebuildtar:PATCH_VERSION=`grep '^#define PETSC_VERSION_PATCH ' ${PETSC_DIR}/include/petscversion.h |tr -s ' ' | cut -d ' ' -f 3`
> > bin/maint/submitPatch.py:    patchRE    = re.compile(r'^#define PETSC_VERSION_PATCH([\s]+)(?P<patchNum>\d+)[\s]*$');
> > bin/maint/submitPatch.py:        lines.append('#define PETSC_VERSION_PATCH'+m4.group(1)+str(patchNum)+'\n')
> > bin/petscnagupgrade.py:    patchversion = int(re.compile(' PETSC_VERSION_PATCH[ ]*([0-9]*)').search(pv).group(1))
> > bin/petscnagupgrade.py:    apatchversion = int(re.compile(' PETSC_VERSION_PATCH[ ]*([0-9]*)').search(pv).group(1))
> > config/BuildSystem/config/packages/PETSc.py:    patchRE    = re.compile(r'^#define PETSC_VERSION_PATCH([\s]+)(?P<patchNum>\d+)[\s]*$');
> > config/BuildSystem/config/packages/PETSc.py:        lines.append('#define PETSC_VERSION_PATCH'+m4.group(1)+str(patchNum)+'\n')
> > config/PETSc/petsc.py:    patchRE    = re.compile(r'^#define PETSC_VERSION_PATCH([\s]+)(?P<patchNum>\d+)[\s]*$');
> > config/PETSc/petsc.py:        lines.append('#define PETSC_VERSION_PATCH'+m4.group(1)+str(patchNum)+'\n')
> > include/petscversion.h:#define PETSC_VERSION_PATCH_DATE "unknown"
> > makefile:        version_patch=`grep '^#define PETSC_VERSION_PATCH ' include/petscversion.h |tr -s ' ' | cut -d ' ' -f 3`; \
> > setup.py:        'patch'  : re.compile(r"#define\s+PETSC_VERSION_PATCH\s+(\d+)"),
> > src/sys/objects/version.c:  ierr = PetscSNPrintf(version,len,"Petsc Release Version %d.%d.%d, Patch %d, %s ",PETSC_VERSION_MAJOR,PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR,PET
> 




More information about the petsc-dev mailing list