-
Notifications
You must be signed in to change notification settings - Fork 34
Automate abi api compliance check #662
Automate abi api compliance check #662
Conversation
83dd536
to
adde45d
Compare
1235ccb
to
887243c
Compare
The test error is unrelated, the output looks like
I've not yet found a good place for this kind of artefact. Ideas? |
@t-b, as suggested by @mliszcz for another problem, the best would probably be to use Github actions for this kind of job. Github actions support artifacts. |
887243c
to
821ef6d
Compare
821ef6d
to
fd73c0d
Compare
Rebased. Regarding the artefacts. Do we really want to move to github actions just because of the artifacts? According to 1 they only store artifacts for 90 days for PRs ("For pushes and pull requests, GitHub stores artifacts for 90 days.") and I don't think this is enough in general. Bintray would be the obvious alternative. Otherwise I can probably also come up with free S3 storage. |
I don't think we need to keep the ABI compatibility reports for ages so for the use case we were talking in this issue it should be fine. |
@bourtemb I'll give github actions a try for that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @t-b. I understand this is still work in progress, but I added some comments for you to consider that may simplify this PR a bit.
3f7e839
to
64504f0
Compare
All supported GCC/Clang versions GCC: supports '-Og -g' since 4.8 (Debian 8 - oldest OS we support in CI has GCC 4.9) Clang: supports '-Og -g' since 4.0.0 support '-g' so we don't need to check for that. Additionally we want to compile with '-Og' for abi compliance-checks [1]. And we also add the relevant security compile options from dpkg-buildflags. -fstack-protector strong is only added for the release builds as that might interfere for debug builds. [1]: https://lvc.github.io/abi-compliance-checker/
1e8d10a
to
803d019
Compare
Maintaining ABI/API compatibility in C/C++ is a difficult task. Fortunately the abi-compliance-checker tool [1] can help examining the current state and compare different versions. The script check-ABI-API-compliance.sh allows to compare the current revision with the revision from the reference branch (currently tango-9-lts). This script is now executed as github actions job, but can also be executed locally. We choose github actions because that allows to store artifacts for 90 days for each PR. [1]: https://lvc.github.io/abi-compliance-checker/
We don't care usually too much about for PRs targeting tango-9-lts.
d626a5b
to
30d3245
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @t-b
Looks good to me.
Do you know whether these errors reported in the log are important?:
Reading debug-info
WARNING: a "Struct" type with no attributes detected in the DWARF dump (19012805)
Reading v-tables
ERROR: missed type name (241)
ERROR: missed type name (1881813)
ERROR: missed type name (751092)
ERROR: missed type name (751101)
ERROR: missed type name (751162)
ERROR: missed type name (751171)
ERROR: missed type name (1879520)
@bourtemb These are from the ABI dumper tool. This could be lvc/abi-dumper#21. I'll have a look. |
@bourtemb I've tried the hint from the issue passing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general looks good. I just replied to your comment regarding refs which we are comparing to detect ABI breakage. I do know which is the preferred way so I wouldn't mind if you just drop that comment. Thanks!
@t-b did you try the other hint. Use the latest version from the master branch of abi-dumper tool? |
@bourtemb No I did not try latest master of abi-dumper. Feel free to create an issue and assign me if I should give it a try. I'll merge that now. |
Close Automate abi compliance check #613.