|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
This is an checlist of the steps in creating a new release.
|
|
Packit |
cdaae3 |
In hopes this will prevent omissions.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
DavidA. 30 November 2012
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Source here means libdwarf/dwarfdump/dwarfgen source (in Git).
|
|
Packit |
cdaae3 |
Tests here means the regression tests (in another Git repository).
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
In the Source:
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Update the source and build with your changes.
|
|
Packit |
cdaae3 |
Update the appropriate ChangeLog file so every
|
|
Packit |
cdaae3 |
file in Git which changes (except ChangeLog and NEWS)
|
|
Packit |
cdaae3 |
are in ChangeLog.
|
|
Packit |
cdaae3 |
(at year end, move ChangeLog to ChangeLogyyyy
|
|
Packit |
cdaae3 |
where yyyy is the year ending and create a new
|
|
Packit |
cdaae3 |
empty ChangeLog)
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Use dicheck (also in sourceforge) to verify indentation of
|
|
Packit |
cdaae3 |
all .h .cc and .c files is consistent.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Ensure all interfaces in libdwarf that are call able by users
|
|
Packit |
cdaae3 |
are in libdwarf.h and are documented in libdwarf2.1.mm or
|
|
Packit |
cdaae3 |
libdwarf2p.1.mm and that any changes in the .mm also
|
|
Packit |
cdaae3 |
mean you inserted a version and date change
|
|
Packit |
cdaae3 |
in the date lines near the front of that .mm.
|
|
Packit |
cdaae3 |
Then regenerate the pdf if any changes.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Run any small preliminary tests that seem applicable.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
In the Tests:
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Create any new tests that seem applicable.
|
|
Packit |
cdaae3 |
Add the appropriate lines to DWARFTEST.sh which
|
|
Packit |
cdaae3 |
actually does the test running.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
RUNALL.sh
|
|
Packit |
cdaae3 |
Runs one test of the new dwarfdump/libdwarf executable
|
|
Packit |
cdaae3 |
against the previously saved dwarfdump/libdwarf executable.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
The notion of keeping baseline test output and simply
|
|
Packit |
cdaae3 |
comparing output of a previous release vs the new
|
|
Packit |
cdaae3 |
candiate release would involve saving some really large files.
|
|
Packit |
cdaae3 |
So the present test suite instead runs each test with
|
|
Packit |
cdaae3 |
two dwarfdump* versions and compares the output.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
To run all the tests, most of which
|
|
Packit |
cdaae3 |
compare the (committed in tests) dwarfdump
|
|
Packit |
cdaae3 |
against your new source:
|
|
Packit |
cdaae3 |
sh PICKUPBIN # This picks up latest source and compiles
|
|
Packit |
cdaae3 |
# (for some files multiple times)
|
|
Packit |
cdaae3 |
# It is essential before each test run.
|
|
Packit |
cdaae3 |
sh RUNALL.sh # This runs the tests 3 times with different
|
|
Packit |
cdaae3 |
# dwarfdump[2] and different comparisons
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
To check for failure:
|
|
Packit |
cdaae3 |
grep FAIL ALL*
|
|
Packit |
cdaae3 |
If there are any FAILS decide if they are real failures
|
|
Packit |
cdaae3 |
(in which case fix the Source and retest) or are in fact
|
|
Packit |
cdaae3 |
the output change that is expected given the Source changes.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
In case all tests pass:
|
|
Packit |
cdaae3 |
cp dwarfdump dwarfdump.O
|
|
Packit |
cdaae3 |
commit the updated .O executables as the new baseline good
|
|
Packit |
cdaae3 |
dwarfdump for the next test run.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
In the Source:
|
|
Packit |
cdaae3 |
sh UPDATEDWARFDUMPVERSION.sh #updates the version string in 4 places
|
|
Packit |
cdaae3 |
update dwarfdump[2]/ChangeLog files to reflect the new version.
|
|
Packit |
cdaae3 |
commit the new version string. If this has been done recently
|
|
Packit |
cdaae3 |
enough that users won't see the current version string
|
|
Packit |
cdaae3 |
it need not be done at this time.
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
sh BLD #to verify it still builds
|
|
Packit |
cdaae3 |
git push origin master # Push to sourceforge.
|
|
Packit |
cdaae3 |
# We use 20121130 as an example below, use the current date.
|
|
Packit |
cdaae3 |
sh CPTOPUBLIC # To copy relevant Source to a temp directory
|
|
Packit |
cdaae3 |
sh BLDLIBDWARFTAR 20121130 # (use current date) to create a tar.gz
|
|
Packit |
cdaae3 |
# like libdwarf-20121130.tar.gz
|
|
Packit |
cdaae3 |
md5sum libdwarf-20121130.tar.gz
|
|
Packit |
cdaae3 |
sha512sum libdwarf-20121130.tar.gz
|
|
Packit |
cdaae3 |
# To get unforgeable checksums for the tar.gz file
|
|
Packit |
cdaae3 |
git tag -a 20121130 -m 'Release 20121130'
|
|
Packit |
cdaae3 |
git push origin 20121130 # push the tag
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
In the Tests:
|
|
Packit |
cdaae3 |
git push origin master
|
|
Packit |
cdaae3 |
git tag -a 20121130 -m 'Release 20121130'
|
|
Packit |
cdaae3 |
git push origin 20121130 # push the tag
|
|
Packit |
cdaae3 |
|
|
Packit |
cdaae3 |
Update web pages so that the new release is visble to users
|
|
Packit |
cdaae3 |
and copy the tar.gz to the appropriate web site.
|