CWG-34 Add ABI breakage CI test
Merge request reports
Activity
I have a couple of questions/remarks:
- Do you need to store the
abi/release.dump
file in Git? From what I understood from Team Schaap (André in particular), it can grow pretty big. - If yes, would it be an idea to store a gzipped version of this dump file? It looks like it can be compressed significantly.
- You do a separate build for doing the ABI checks. Wouldn't it make more sense to use the regular build that would probably be done in the CI/CD pipeline anyway? Or do you require to use a
Debug
build for this? - Are you purposely marking a failed ABI check as successful? Do you not want the pipeline to fail?
- The name of the output artefact (
compat_reports/hello/release_to_master
) is somewhat obscure? Do you not want something likeabi-check
in the name?
- Do you need to store the
When a project grows it may indeed be better to store the ABI file on a artifact server. I don't think compressing it will save a lot, storing binary files in Git doesn't work too well. I most certainly do not want to build to fail on a ABI break. I think that is a policy humans have to decide. Depending on the project you may or may have different policies for ABI breaks. For example, in EveryBeam we just accept them and increment the version number. Other libraries like Qt and libc++ are strongly against any ABI break. For libc++ the CI will fail for an ABI break.
The filename is the default name, that's why I wanted to use gitlab pages to nicely show the output, which was the reason for doing it in Radler in the first place.
How do you feel about adding some of these remarks in the Wiki? Is that an acceptable solution?
Adding remarks in the Wiki is OK with me. But I'm still a bit bothered with the dump file that you added to Git. This may give the wrong message to other users. Not everyone will check the Wiki, but will simply use what we provided as template. So it might be good if we already store the dump file on an artifact server, to set a good example.
@loose as suggested at our standup I now use packages. Can you have a look whether you agree with this approach. If yes then I'll add some documentation for this feature.
BTW, when I try to run the ABI test, I see the following warning and error at the end of the run:
WARNING: compat_reports/hello/release_to_master: no matching files. Ensure that the artifact path is relative to the working directory (/builds/templates/cpp-project) ERROR: No files to upload
mentioned in commit b7fc6267