Difference between revisions of "Developers/Release process"
Jump to navigation
Jump to search
Uwe Hermann (talk | contribs) m |
m (Python3 versions) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This is a list of steps we perform when creating a new | 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. | ||
**{{checkbox|unchecked}} Verify that the tag is placed correctly via '''git tag''' or '''gitk'''. | |||
**{{checkbox|unchecked}} Then, push it via '''git push --tags'''. | |||
* | *{{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. | |||
In | |||
Latest revision as of 13:08, 29 September 2024
This is a list of steps we perform when creating a new release:
Check if all relevant PRs are merged.
Check the mailing list for relevant patches.
Check if the manpages are up-to-date.
Check if "SR_PKG_CHECK([python3]...)" in configure.ac has all current versions included in the check.
Test that make distcheck works without errors and creates a .tar.gz file. Unpack that file somewhere.
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 that building from that unpacked directory works without errors.
Test that installing from there works.
Test that running/using the newly installed library/program works fine.
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.
Do all of the above tests on all supported platforms if possible, e.g. Linux, Windows, Mac OS X, FreeBSD.
Write release notes (containing user-visible, important changes) in the respective NEWS file(s).
Increase the respective package version number.
If there were any backwards-incompatible changes in libsigrok and/or libsigrokdecode, increase the respective lib version numbers too.
Then, push your current status, including the version number change commit via git push.
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.
Verify that the tag is placed correctly via git tag or gitk.
Then, push it via git push --tags.
Now create the final tarball via make distcheck as described above, and upload it.
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.
Announce the new release in the blog and on the mailing list.