Difference between revisions of "Developers/Release 0.8.0"
Jump to navigation
Jump to search
(Add checklists) |
|||
(12 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
Most of this is intended to expand on the main release guidelines here https://sigrok.org/wiki/Developers/Release_process | Most of this is intended to expand on the main release guidelines here https://sigrok.org/wiki/Developers/Release_process | ||
* {{checkbox|checked}} Get the blog to work | |||
* what platforms "must work" ? | * what platforms "must work" ? | ||
Line 14: | Line 15: | ||
** {{checkbox|unchecked|Possibly some other Python2 / 3 compatibility and deprecation issues ?}} | ** {{checkbox|unchecked|Possibly some other Python2 / 3 compatibility and deprecation issues ?}} | ||
** {{checkbox|unchecked|random weird issues that always seem to come from Win* users running weird combinations of hardware / firmware, mostly USB ?}} | ** {{checkbox|unchecked|random weird issues that always seem to come from Win* users running weird combinations of hardware / firmware, mostly USB ?}} | ||
** {{checkbox|unchecked|-flto}} can break builds if driver list gets optimized out - see https://sigrok.org/bugzilla/show_bug.cgi?id=1433 , https://bugs.launchpad.net/ubuntu/+source/libsigrok/+bug/2025248 | ** {{checkbox|unchecked|-flto}} can break builds if driver list gets optimized out - see https://sigrok.org/bugzilla/show_bug.cgi?id=1433 , https://bugs.launchpad.net/ubuntu/+source/libsigrok/+bug/2025248 , https://github.com/sigrokproject/libsigrok/pull/233 | ||
* what external projects depend on sigrok components or bindings ? does it actually matter ? | * what external projects depend on sigrok components or bindings ? does it actually matter ? | ||
Line 31: | Line 32: | ||
Checklists copied from the template: | Checklists copied from the template: | ||
= libserialport = | = libserialport-0.1.2 = | ||
*{{checkbox| | *{{checkbox|checked}} Check if all relevant PRs are merged. | ||
*{{checkbox| | *{{checkbox|checked}} Check the mailing list for relevant patches. | ||
**{{checkbox| | *{{checkbox|checked}} Check if the manpages are up-to-date. | ||
**{{checkbox| | *{{checkbox|checked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | ||
**{{checkbox| | **{{checkbox|checked}} 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| | **{{checkbox|checked}} Test that building from that unpacked directory works without errors. | ||
**{{checkbox|checked}} Test that installing from there works. | |||
*{{checkbox| | **{{checkbox|checked}} Test that running/using the newly installed library/program works fine. | ||
*{{checkbox| | *{{checkbox|checked}} Do all of the above tests on all supported platforms if possible, e.g. Linux, Windows, Mac OS X, FreeBSD. | ||
*{{checkbox| | *{{checkbox|checked}} Write release notes (containing user-visible, important changes) in the respective NEWS file(s). | ||
**{{checkbox| | *{{checkbox|checked}} Figure out if this applies to 0.1.2 as well: https://sigrok.org/gitweb/?p=libserialport.git;a=commit;h=3fcdc9f7d5aa9bbae3041d80ab50b83e9bef182d | ||
**{{checkbox| | *{{checkbox|checked}} Increase the respective package version number. | ||
*{{checkbox| | **{{checkbox|checked}} If there were any backwards-incompatible changes in libsigrok and/or libsigrokdecode, increase the respective lib version numbers too. | ||
**{{checkbox| | **{{checkbox|checked}} Then, push your current status, including the version number change commit via '''git push'''. | ||
**{{checkbox| | *{{checkbox|checked}} Create a release branch via '''git checkout -b libserialport-0.1.2''' | ||
*{{checkbox| | **{{checkbox|checked}} Set the correct version in the Doxyfile, e.g. https://sigrok.org/gitweb/?p=libserialport.git;a=commit;h=348a6d353af8ac142f68fbf9fe0f4d070448d945 | ||
*{{checkbox| | **{{checkbox|checked}} Tag the release branch via '''git tag -a "libserialport-0.1.2" -m "libserialport 0.1.2 release"'''. | ||
**{{checkbox|checked}} Verify that the tag is placed correctly via '''git tag''' or '''gitk'''. | |||
**{{checkbox|checked}} Switch to master and delete the release branch so it isn't pushed to the server: '''git checkout master && git branch -D libserialport-0.1.2''' | |||
**{{checkbox|checked}} Then, push the update via '''git push --tags'''. | |||
*{{checkbox|checked}} Now create the final tarball via '''make distcheck''' as described above, place it in apache/download/source/libserialport and set owner/group accordingly. | |||
*{{checkbox|checked}} Update https://sigrok.org/wiki/Downloads#Releases with the new link. | |||
*{{checkbox|checked}} Announce the new release in the blog, then purge the wiki page to force an update of the NEWS section: https://sigrok.org/w/index.php?title=Main_Page&action=purge. | |||
*{{checkbox|checked}} Announce the new release on the mailing list with an [ANNOUNCE] prefix in the subject line. | |||
*{{checkbox|checked}} Create a github release at https://github.com/sigrokproject/libserialport/releases with the content of NEWS and the tarball attached. | |||
= libsigrok = | = libsigrok = | ||
*{{checkbox|unchecked}} Check if all relevant PRs are merged. | |||
*{{checkbox|unchecked}} Check the mailing list for relevant patches. | |||
*{{checkbox|unchecked}} Check if the manpages are up-to-date. | *{{checkbox|unchecked}} Check if the manpages are up-to-date. | ||
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | *{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | ||
Line 73: | Line 84: | ||
= libsigrokdecode = | = libsigrokdecode = | ||
*{{checkbox|unchecked}} Check if all relevant PRs are merged. | |||
*{{checkbox|unchecked}} Check the mailing list for relevant patches. | |||
*{{checkbox|unchecked}} Check if the manpages are up-to-date. | *{{checkbox|unchecked}} Check if the manpages are up-to-date. | ||
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | *{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | ||
Line 93: | Line 106: | ||
= sigrok-firmware = | = sigrok-firmware = | ||
*{{checkbox|unchecked}} Check if all relevant PRs are merged. | |||
*{{checkbox|unchecked}} Check the mailing list for relevant patches. | |||
*{{checkbox|unchecked}} Check if the manpages are up-to-date. | *{{checkbox|unchecked}} Check if the manpages are up-to-date. | ||
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | *{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | ||
Line 114: | Line 129: | ||
= sigrok-cli = | = sigrok-cli = | ||
*{{checkbox|unchecked}} Check if all relevant PRs are merged. | |||
*{{checkbox|unchecked}} Check the mailing list for relevant patches. | |||
*{{checkbox|unchecked}} Check if the manpages are up-to-date. | *{{checkbox|unchecked}} Check if the manpages are up-to-date. | ||
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | *{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | ||
Line 135: | Line 152: | ||
= PulseView = | = PulseView = | ||
*{{checkbox|unchecked}} Check if all relevant PRs are merged. | |||
*{{checkbox|unchecked}} Check the mailing list for relevant patches. | |||
*{{checkbox|unchecked}} Check if the manpages are up-to-date. | *{{checkbox|unchecked}} Check if the manpages are up-to-date. | ||
*{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. | *{{checkbox|unchecked}} Test that '''make distcheck''' works without errors and creates a '''.tar.gz''' file. Unpack that file somewhere. |
Latest revision as of 22:35, 16 October 2024
This is an attempt at a checklist for the "next release" - as of 2023/10, for sigrok-cli this would be either 0.7.3 or 0.8.0 (maybe the latter would be more appropriate given that 0.7.2 was over 2 years ago ?). Other subprojects have different numbers e.g. last libsigrok was 0.5.2 .
Most of this is intended to expand on the main release guidelines here https://sigrok.org/wiki/Developers/Release_process
- Get the blog to work
- what platforms "must work" ?
- linux is the most tested based on IRC traffic, but maybe we can explicitly list distros to test ?
- win : would be nice to have a list of people we can ping to get them test a build
- osx : no idea, few users (see https://github.com/sigrokproject/sigrok-util/pull/16 ,)
- *BSD : no idea, no user reports in IRC
- what currently open issues should be considered "blockers" for a release ?
- (Done) PyEval_InitThreads() deprecated in Python 3.13 see https://bugzilla.redhat.com/show_bug.cgi?id=2245598
- Possibly some other Python2 / 3 compatibility and deprecation issues ?
- random weird issues that always seem to come from Win* users running weird combinations of hardware / firmware, mostly USB ?
- -flto can break builds if driver list gets optimized out - see https://sigrok.org/bugzilla/show_bug.cgi?id=1433 , https://bugs.launchpad.net/ubuntu/+source/libsigrok/+bug/2025248 , https://github.com/sigrokproject/libsigrok/pull/233
- what external projects depend on sigrok components or bindings ? does it actually matter ?
- Pulseview
- smuview
Transports (this would be better presented in a matrix format with feature vs OS) :
- serial (native/USB-CDC)
- USB (non-serial)
- USB
- TCP/IP
- GPIB (probably just linux ?)
- VXI ?
Checklists copied from the template:
libserialport-0.1.2
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.
- 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).
- Figure out if this applies to 0.1.2 as well: https://sigrok.org/gitweb/?p=libserialport.git;a=commit;h=3fcdc9f7d5aa9bbae3041d80ab50b83e9bef182d
- 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.
- Create a release branch via git checkout -b libserialport-0.1.2
- Set the correct version in the Doxyfile, e.g. https://sigrok.org/gitweb/?p=libserialport.git;a=commit;h=348a6d353af8ac142f68fbf9fe0f4d070448d945
- Tag the release branch via git tag -a "libserialport-0.1.2" -m "libserialport 0.1.2 release".
- Verify that the tag is placed correctly via git tag or gitk.
- Switch to master and delete the release branch so it isn't pushed to the server: git checkout master && git branch -D libserialport-0.1.2
- Then, push the update via git push --tags.
- Now create the final tarball via make distcheck as described above, place it in apache/download/source/libserialport and set owner/group accordingly.
- Update https://sigrok.org/wiki/Downloads#Releases with the new link.
- Announce the new release in the blog, then purge the wiki page to force an update of the NEWS section: https://sigrok.org/w/index.php?title=Main_Page&action=purge.
- Announce the new release on the mailing list with an [ANNOUNCE] prefix in the subject line.
- Create a github release at https://github.com/sigrokproject/libserialport/releases with the content of NEWS and the tarball attached.
libsigrok
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.
- Announce the new release in the blog and on the mailing list.
libsigrokdecode
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.
- Announce the new release in the blog and on the mailing list.
sigrok-firmware
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.
sigrok-cli
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.
PulseView
- Check if all relevant PRs are merged.
- Check the mailing list for relevant patches.
- Check if the manpages are up-to-date.
- 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.