Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add API/ABI tracker #600

Closed
detonin opened this issue Sep 18, 2015 · 7 comments
Closed

Add API/ABI tracker #600

detonin opened this issue Sep 18, 2015 · 7 comments

Comments

@detonin
Copy link
Contributor

detonin commented Sep 18, 2015

Add tracker from Andrey Ponomarenko
https://github.com/lvc/abi-tracker

@mayeut Do you think this could be added to travis (or do we keep this for the jenkins server) ?

Email from Andrey - 16/09/2015

I'm glad to inform you that the open-source implementation of the Linux Upstream Tracker is ready. It's available at: https://github.com/lvc/abi-tracker

It would be great if you can host and support the tracker for the OpenJPEG library somewhere and make reports public for the Linux community.

You can download the starter package with reports for all past releases of the OpenJPEG library and configuration files for x86_64 here: http://abi-laboratory.pro/files/openjpeg-abi-tracker.tar.gz

I've put the README file into the package with detailed instructions on how to setup the ABI tracker for the OpenJPEG library. It's easy. You only need to generate reports for the future releases of the library. The index file of the report is in the timeline/openjpeg/ subdirectory of the package.

I will redirect the old unsupported page of the tracker for OpenJPEG at upstream-tracker.org to your site if you'll decide to host the tracker.

Answer from Andrey - 17/09/2015

I have no experience with travis. But this is a good idea!

The ABI monitor and ABI tracker tools are designed to automatically download, build and analyze packages from the github repo of the library. The ABI monitor downloads and builds packages and then generates the configuration file (openjpeg.json, it is included in the package) for the ABI tracker to create ABI timeline report. This can be done by two commands:

abi-monitor -get -build openjpeg.json # download and build library versions
abi-tracker -build openjpeg.json # build ABI timeline report

If you want to reuse travis build instead of the ABI monitor build then travis should generate this configuration file somehow. This file describes locations of the install trees and source packages of the library versions to analyze. Once the configuration file is ready you need to execute these commands to build the analysis report:

abi-monitor -public-symbols openjpeg.json # additional analysis of exported symbols in header files under the install trees
abi-tracker -build openjpeg.json # build ABI timeline report
abi-tracker -deploy DIR openjpeg.json # publish all reports to DIR

Thank you.

@mayeut
Copy link
Collaborator

mayeut commented Sep 18, 2015

@detonin,

I can't get abi-tracker to generate a proper incremental result. So it's best to keep this separate for now (I think).

Maybe @aponomarenko has other directives than those in the mail pasted above.

@malaterre
Copy link
Collaborator

you need to store two abi files.then wget one of them (either 1.5.x or 2.x) during travis execution (pre build). not sure how to store files on github though.

@detonin
Copy link
Contributor Author

detonin commented Oct 8, 2015

shall be added in master branch and 1.5 branch

@mayeut
Copy link
Collaborator

mayeut commented Oct 9, 2015

I updated the build matrix to make an API check for every job (means push & pull request). Job will fail if API changes.
When not a pull request, the full timeline is built. However it's not being uploaded anywhere right now. Once figured out where it can be uploaded, there's still the fact that it needs to handle multiple branches.
I think we'll need one timeline per "allowed" branch (master, 1.5) and disable timeline upload for other branches.

⚠️ The ABI check has been disabled. It seems that symbol visibility is an issue. The check is complaining about removed internal symbols. Those symbols are not marked as hidden with OPJ_LOCAL. In fact, OPJ_LOCAL is never used. It might be a good idea to build with -fvisibility=hidden not to get bothered with this in future versions & activate the check again.

This was referenced Oct 11, 2015
@detonin
Copy link
Contributor Author

detonin commented Jan 25, 2016

@mayeut compared to your last comment, I guess we can say that ABI-check is working now but only when built with -fvisibility=hidden. Is that right ?
I leave the issue open until we find a way to upload compat reports somewhere.

@mayeut
Copy link
Collaborator

mayeut commented Jul 13, 2016

@detonin, I guess we can close this one now ? We might wan't to do something to update the tracker properly on release ?

@detonin
Copy link
Contributor Author

detonin commented Jul 22, 2016

@mayeut closing this one and creating a new one specifically for this release issue #803

@detonin detonin closed this as completed Jul 22, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants