Conversation
1990785 to
e830343
Compare
Codecov Report
@@ Coverage Diff @@
## main #269 +/- ##
=======================================
Coverage 99.07% 99.07%
=======================================
Files 61 61
Lines 10864 10864
=======================================
Hits 10764 10764
Misses 100 100 Continue to review full report at Codecov.
|
schopin-pro
left a comment
There was a problem hiding this comment.
I love the idea, but I'd like to be sure that we can break our internal stuff in peace while being yelled out loudly if we touch what's actually public.
e830343 to
a27c609
Compare
|
I took the liberty of adding a new commit that implements my "move the header around" approach, and also imports all subtypes that are transitively part of the ABI into the |
f2265b3 to
7f9e8c9
Compare
XML serialization generated on Focal via: abidw libnetplan.so.0.0 --headers-dir include/ > abi-compat/focal_0.104.xml
This is to allow ABI compatibilty checks of NetplanNetDefinition using the 'abidiff' tool.
Also, only move them in include/ for the ABI check, so that they don't get shipped as public headers.
2c41b69 to
7c95220
Compare
Using PPA version from https://launchpad.net/~slyon/+archive/ubuntu/ci-netplan
3b6f0e7 to
bbff739
Compare
|
Thank you @schopin-pro Moving the abi.h header just for the duration of the CI check is a smart idea, thanks for your commit! After some more testing, I have the feeling that abigail 1.6 (as found in Focal) is just not good enough for our needs, though. So I've prepared an abigail 2.0 backport/rebuild for Focal in ppa:slyon/ci-netplan and making use of the IMO this should be ready for merging. |
* ABI compatibility checker (canonical#269) * abigail: check-in 0.104 ABI XML serialization generated on Focal via: abidw libnetplan.so.0.0 --headers-dir include/ > abi-compat/focal_0.104.xml * abi-compat: use abigail to check ABI compatibility via GA * [WIP] src:types: move netplan_net_definition into a separate file This is to allow ABI compatibilty checks of NetplanNetDefinition using the 'abidiff' tool. * WIP: keep the ABI-specific structs self-contained Also, only move them in include/ for the ABI check, so that they don't get shipped as public headers. * GA CI: update comments * abi-compat: update XML according to latest state * GA: upgrade to abigail-tools 2.0 Using PPA version from https://launchpad.net/~slyon/+archive/ubuntu/ci-netplan * src: cleanup types.h ABI include Co-authored-by: Simon Chopin <simon.chopin@canonical.com> * networkd: rename GatewayOnlink= to GatewayOnLink= (canonical#273) As of systemd v242 the "GatewayOnlink" spelling was deprecated and replaced by "GatewayOnLink", while still being available in compat mode. We've waited long enough and can switch to the proper spelling now. systemd/systemd@9cb8c55 * cli:sriov: fix test coverage for quirk_devices newer coverage tools seem to be more picky, make them happy * Makefile: clean src/_features.h.gch file * Adding VRF and VXLAN support for systemd-networkd. LP: #1764716, #1773522 * Add vxlan/vrf changes to new abi.h file Co-authored-by: Lukas Märdian <slyon@ubuntu.com> Co-authored-by: Simon Chopin <simon.chopin@canonical.com> Co-authored-by: Anthony Timmins <atimmins@datto.com>
* ABI compatibility checker (canonical#269) * abigail: check-in 0.104 ABI XML serialization generated on Focal via: abidw libnetplan.so.0.0 --headers-dir include/ > abi-compat/focal_0.104.xml * abi-compat: use abigail to check ABI compatibility via GA * [WIP] src:types: move netplan_net_definition into a separate file This is to allow ABI compatibilty checks of NetplanNetDefinition using the 'abidiff' tool. * WIP: keep the ABI-specific structs self-contained Also, only move them in include/ for the ABI check, so that they don't get shipped as public headers. * GA CI: update comments * abi-compat: update XML according to latest state * GA: upgrade to abigail-tools 2.0 Using PPA version from https://launchpad.net/~slyon/+archive/ubuntu/ci-netplan * src: cleanup types.h ABI include Co-authored-by: Simon Chopin <simon.chopin@canonical.com> * networkd: rename GatewayOnlink= to GatewayOnLink= (canonical#273) As of systemd v242 the "GatewayOnlink" spelling was deprecated and replaced by "GatewayOnLink", while still being available in compat mode. We've waited long enough and can switch to the proper spelling now. systemd/systemd@9cb8c55 * cli:sriov: fix test coverage for quirk_devices newer coverage tools seem to be more picky, make them happy * Makefile: clean src/_features.h.gch file Co-authored-by: Lukas Märdian <slyon@ubuntu.com> Co-authored-by: Simon Chopin <simon.chopin@canonical.com> Co-authored-by: Anthony Timmins <atimmins@datto.com>
Description
Make use of
abigail-toolsto export the current ABI to an XML file and compare every build of our GitHub Actions CI to the committed version of the ABI, to check for breakage.The committed version in
abi-compat/focal_0.104.xmlwas generated on Focal (using abigail 2.0 from ppa:slyon/ci-netplan):This should be upgraded to make use of the meson build from #268 and be run on Ubuntu Jammy LTS runners, once available in GA. Meson will just slightly change the path to the library (
build/src/libnetplan.so.0.0) but works equally otherwise.Checklist
make checksuccessfully.make check-coverage).