Release-howto
Short notes about how to make a release for an ohwr project.
Some items are specific for software projects (especially kernel
ones),
but we hope this can be edited to be more generic.
Page initially by Alessandro, May 2013, in the ohwr::fmc-bus wiki area.
Before you start
- Ensure to be in the proper package clone
- Ensure to be in the proper commit and that master is there.
- Check the date in the manual
- Ensure both the software and the manual build properly
- Think hard and check TODO files about any pending bugs
- Build for all supported kernel versions, checking the backport branch
If all of this is ok, you can release.
How to tag and clean the repository
- Consider marking the tag in the manual, so it appears in the cover
page.
Most software projects now include automatically the "git describe" output,
so this step is not needed. Also, if there is a backport branch (for older kernels)
this step may require too much effort and can be skipped.
* Check how other tags in the same package are made. Example:
git cat-file tag fmc-bus-v2013-01
* Tag consistently with what you found above, using "-m" for the message. Example:
git tag -m "Official release as of May 2013" fmc-bus-v2013-05
* Run "git describe master" (or "git describe HEAD") to ensure it's ok. Then push
git push ohwr master
("ohwr" above is the name of the "git remote" place. If you cloned
from
the read-write address and never played with remotes, it is called
"origin").
- Remove other temporary branches with the same commit, and older temporaries
* Push the current backport using a name consistent with previous ones. E.g:
git branch -m proposed-v2013.05-backport fmc-bus-v2013-05-backport
git push ohwr fmc-bus-v2013-05-backport
git push ohwr :proposed-v2013.05-backport
The last command above removes the remote branch. It says "push
:":
an empty localname is used to remove the remote name by making it
"nothing", in a way.
Other Housekeeping Tasks
- Post the pdf to the files or documents tab of ohwr, consistently
with past releases
of this package.
Remember to check the descriptive string of other files, to make the new
file consistent in that item too.
* If customary for this package, make a tarball in this way
# go to /tmp
# clone from the read-only ohwr place
# rename to the name you want it to have when tarred
# build the manual ("make -C doc", most likely)
# maketar.gz, i.e. as follows, or equivalent for another compression:
n=`basename \`/bin/pwd\``; cd ..; tar cvf - $n | gzip > $n.tar.gz
- If you marked the release name in the manual, re-commit
immediately
the manual so that the next master commits won't make a blessed manual.
- Write a news item on ohwr
- Update the ohwr main wiki page to reflect status
Done
- Rest in peace