linbox
|
These software are versioned as projectname-x.y.z
where x
is a major revision number, y
a minor number and z
a revision (or bug) number. The script incremente-version
— in the root directory of these project sources — takes care of incrementing these numbers (along with the library so-names if necessary).
Revision number.
Minor changes are changes that do not change any API and do not provoke any miscompilation in LinBox. As a consequence, for instance, any release 1.3.z
of LinBox should compile with any givaro 3.7.z
and any fflas-ffpack 1.6.z
.
This correspondance should be published on the website. It is however always put in the auto-install.sh
script.
Minor number.
Any change in these numbers in givaro or fflas-ffpack produces a minor version change in LinBox. A minor version number changed is required when there is some API change in fflas-ffpack or givaro or linbox or anything leading to a failure to compile properly due to newly added inconsistencies.
Before publishing a new version :
Testing
auto-install.sh
should succeed and the tests/example pass/compile. (It would be cool if more compilers were tested, namely clang and ekopath).–enable-warnings=full
should also be minimised.Incrementing
incremente-version
, follow its instruction and confirm.Branching
Once the incrementing has been done, if the minor or major number has been changed, then a new branch should be created in the svn repository using
This is done in order to allow maintainance and support, eg. new patches from distributions and easy support of a x.y
major.minor version (for sage for instance).
Publishing
A release comes with a tar ball tar.gz
, a md5sum
of it and a summary ChangeLog
.
LinBox and fflas-ffpack
tar.gz
and a md5sum
is created in the www
directoryNEWS-a.b.html
(even for revision versions) for LinBox and fflas-ffpack-Changelog-x.y.z
for fflas-ffpack. Givaro
tar.gz
and a md5sum
is created and uploaded to the forge where one can also put the ChangeLog in a form. auto-install.sh
scriptChangeLogs
It would be nice if the ChangeLog
s looked something like (the users cannot/won't view the svn log
):
Date - code update : * item - bugs : * item - new features : * item