Difference between revisions of "Developers/Release process"

From sigrok
Jump to navigation Jump to search
m
m (Python3 versions)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is a list of steps we perform when creating a new libsigrok/libsigrokdecode/sigrok-cli/sigrok-qt/sigrok-gtk release:
This is a list of steps we perform when creating a new release:


* Check if the manpages are up-to-date.
*{{checkbox|unchecked}} Check if all relevant PRs are merged.
* Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere.
*{{checkbox|unchecked}} Check the mailing list for relevant patches.
** Test that no files are missing, and no extra/unneeded files are in there (non-public header files, *.o files, and that kind of stuff).
*{{checkbox|unchecked}} Check if the manpages are up-to-date.
** Test that building from that unpacked directory works without errors.
*{{checkbox|unchecked}} Check if "SR_PKG_CHECK([python3]...)" in configure.ac has all current versions included in the check.
** Test that installing from there works.
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere.
** Test that running/using the newly installed library/program works fine.
**{{checkbox|unchecked}} Test that no files are missing, and no extra/unneeded files are in there (non-public header files, *.o files, and that kind of stuff).
** Test at least the demo driver, one hardware LA, one non-default input- and output driver, and one protocol decoder. The more tests the better, of course.
**{{checkbox|unchecked}} Test that building from that unpacked directory works without errors.
* Do all of the above tests on all supported platforms if possible, e.g. Linux, Windows, Mac OS X, FreeBSD.
**{{checkbox|unchecked}} Test that installing from there works.
* Write release notes (containing user-visible, important changes) in the respective NEWS file(s).
**{{checkbox|unchecked}} Test that running/using the newly installed library/program works fine.
* Increase the respective package version number.
**{{checkbox|unchecked}} Test at least the demo driver, one hardware LA, one non-default input- and output driver, and one protocol decoder. The more tests the better, of course.
** If there were any backwards-incompatible changes in libsigrok and/or libsigrokdecode, increase the respective lib version numbers too.
*{{checkbox|unchecked}} Do all of the above tests on all supported platforms if possible, e.g. Linux, Windows, Mac OS X, FreeBSD.
** Then, push your current status, including the version number change commit via '''git push'''.
*{{checkbox|unchecked}} Write release notes (containing user-visible, important changes) in the respective NEWS file(s).
* If everything works OK, tag the new release in git via (for example): '''git tag -a "libsigrok-0.1.0" -m "libsigrok 0.1.0 release" <hash>'''. Replace '''<hash>''' with the commit hash that should be tagged.
*{{checkbox|unchecked}} Increase the respective package version number.
** Verify that the tag is placed correctly via '''git tag''' or '''gitk'''.
**{{checkbox|unchecked}} If there were any backwards-incompatible changes in libsigrok and/or libsigrokdecode, increase the respective lib version numbers too.
** Then, push it via '''git push --tags'''.
**{{checkbox|unchecked}} Then, push your current status, including the version number change commit via '''git push'''.
* Now create the final tarball via '''make distcheck''' as described above, and upload it.
*{{checkbox|unchecked}} If everything works OK, tag the new release in git via (for example): '''git tag -a "libsigrok-0.1.0" -m "libsigrok 0.1.0 release" <hash>'''. Replace '''<hash>''' with the commit hash that should be tagged.
* Announce the new release in various places:
**{{checkbox|unchecked}} Verify that the tag is placed correctly via '''git tag''' or '''gitk'''.
** Short announce email on the sigrok-devel mailing list, mentioning the new version, and the link to the release notes.
**{{checkbox|unchecked}} Then, push it via '''git push --tags'''.
** Freshmeat
*{{checkbox|unchecked}} Now create the final tarball via '''make distcheck''' as described above, and upload it.
** ...
*{{checkbox|unchecked}} In case of a client program (sigrok-cli / PV), create all pre-built binaries, upload them and make them available on the wiki for future reference.
 
*{{checkbox|unchecked}} Announce the new release in the blog and on the mailing list.
=== Windows installers ===
 
In order to create a self-contained Windows installer EXE file for sigrok-cli, you can do the following (currently must be done on a Windows/MinGW system):
 
Build and install libsigrok, libsigrokdecode, and sigrok-cli into '''/usr/local'''.
 
Download the Windows Python 3.2 installer into c:\:
 
$ '''cd /c'''
$ '''wget http://www.python.org/ftp/python/3.2/python-3.2.msi'''
 
Create the installer (assumes all required libs in certain directories) via:
 
$ '''cd sigrok-cli'''
$ '''./configure'''
$ '''cd contrib/nsis'''
$ '''makensis sigrok-cli.nsi'''
 
This will create a '''sigrok-cli-$VERSION-installer.exe''' self-extracting installer.

Latest revision as of 13:08, 29 September 2024

This is a list of steps we perform when creating a new release:

  • Blank square.png  Check if all relevant PRs are merged.
  • Blank square.png  Check the mailing list for relevant patches.
  • Blank square.png  Check if the manpages are up-to-date.
  • Blank square.png  Check if "SR_PKG_CHECK([python3]...)" in configure.ac has all current versions included in the check.
  • Blank square.png  Test that make distcheck works without errors and creates a .tar.gz file. Unpack that file somewhere.
    • Blank square.png  Test that no files are missing, and no extra/unneeded files are in there (non-public header files, *.o files, and that kind of stuff).
    • Blank square.png  Test that building from that unpacked directory works without errors.
    • Blank square.png  Test that installing from there works.
    • Blank square.png  Test that running/using the newly installed library/program works fine.
    • Blank square.png  Test at least the demo driver, one hardware LA, one non-default input- and output driver, and one protocol decoder. The more tests the better, of course.
  • Blank square.png  Do all of the above tests on all supported platforms if possible, e.g. Linux, Windows, Mac OS X, FreeBSD.
  • Blank square.png  Write release notes (containing user-visible, important changes) in the respective NEWS file(s).
  • Blank square.png  Increase the respective package version number.
    • Blank square.png  If there were any backwards-incompatible changes in libsigrok and/or libsigrokdecode, increase the respective lib version numbers too.
    • Blank square.png  Then, push your current status, including the version number change commit via git push.
  • Blank square.png  If everything works OK, tag the new release in git via (for example): git tag -a "libsigrok-0.1.0" -m "libsigrok 0.1.0 release" <hash>. Replace <hash> with the commit hash that should be tagged.
    • Blank square.png  Verify that the tag is placed correctly via git tag or gitk.
    • Blank square.png  Then, push it via git push --tags.
  • Blank square.png  Now create the final tarball via make distcheck as described above, and upload it.
  • Blank square.png  In case of a client program (sigrok-cli / PV), create all pre-built binaries, upload them and make them available on the wiki for future reference.
  • Blank square.png  Announce the new release in the blog and on the mailing list.