|
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 ChangeLogs looked something like (the users cannot/won't view the svn log):
Date
- code update :
* item
- bugs :
* item
- new features :
* item
1.8.13