I'd like to think #676 could have been caught sooner, if there was continuous integration testing. And presumably other changes that have caused build failures in master could have been caught sooner.
Here's a GitHub Actions config to run builds on a range of Debian and Ubuntu releases. You could easily add other distributions using the same approach.
This will need some maintenance over time:
Updating the list of releases to test on. Ubuntu devel points to the current development release, but the other supported LTSs are named.
Updating build dependencies. This might require hacks like the apt-get ... || apt-get ... I used here. In the future apt-get satisfy will be a nice solution for that kind of thing, but it's only available from apt 1.9.0.
You can see logs of this build here. They're fail on newer releases due to #676, but here is an example with #685 merged, so they all pass.
I started with Travis CI: Branch, Status. But I could only test on one Ubuntu LTS release, there. Which means it'd take a lot longer to notice regressions caused by changes in dependency libraries. Testing on Debian unstable / Ubuntu devel releases is a good way to catch these sooner.
I'd like to think #676 could have been caught sooner, if there was continuous integration testing. And presumably other changes that have caused build failures in master could have been caught sooner.
Here's a GitHub Actions config to run builds on a range of Debian and Ubuntu releases. You could easily add other distributions using the same approach.
This will need some maintenance over time:
apt-get ... || apt-get ...
I used here. In the futureapt-get satisfy
will be a nice solution for that kind of thing, but it's only available from apt 1.9.0.You can see logs of this build here. They're fail on newer releases due to #676, but here is an example with #685 merged, so they all pass.
I started with Travis CI: Branch, Status. But I could only test on one Ubuntu LTS release, there. Which means it'd take a lot longer to notice regressions caused by changes in dependency libraries. Testing on Debian unstable / Ubuntu devel releases is a good way to catch these sooner.