T3689: Add abi compliance checker to CI

2019-05-12 Thread Sandro Knauß
knauss added a revision: D21168: create-abi-dump: Handle clang/*/include 
directories..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-04-23 Thread Sandro Knauß
knauss added a revision: D20769: abi-compliance-checker: disable clang include 
directories completly..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-28 Thread Sandro Knauß
knauss added a subtask: T10504: Abi compliance checker flaky/not working.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-28 Thread Sandro Knauß
knauss added a revision: D19410: create-abi-dump: Do not break for library, 
that don't have a SONAME..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-26 Thread Sandro Knauß
knauss added a revision: D19377: check-abi: refactor script.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-26 Thread Sandro Knauß
knauss added a revision: D19376: remove unnessary include..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-26 Thread Sandro Knauß
knauss added a revision: D19375: check-abi: make it possible to break the 
build..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-26 Thread Sandro Knauß
knauss added a revision: D19374: create-abi-dump: set logging for 
paramiko.transport to WARNING.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-24 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-24 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Ben Cooksley
bcooksley added a comment.


  With the exception of D19222  all of 
those have now been integrated.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a comment.


  Please  merge the commits in following order:
  D19219 
  D19220 
  D19221 
  D19222 
  D19218 
  
  I don't want to merge the different patches, as it is a lot easier to review 
and to understand what is going on.  I did not find a way to bundle different 
patches.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a revision: D19218: create-abi-dump: small cleanup.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a revision: D19221: create-abi-dump: Let make it possible for 
create-abi-dump to break a build..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a revision: D19222: create-abi-dump/check-abi: implement new 
accMetadata..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a revision: D19220: create-abi-dump: match new jenkings log 
format..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a revision: D19219: create-abi-dumps: do more debugging..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Ben Cooksley
bcooksley added a comment.


  Build logs from our Docker images can be found at 
https://build.kde.org/job/Administration/
  In this case, the image last changed 26 days ago.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-22 Thread Sandro Knauß
knauss added a comment.


  In T3689#175858 , @danders wrote:
  
  > Afaiu abi-dumper is the new way of creating dumps. From home page:
  >  "This new way is based on the analysis of the debug-info from binary 
objects. It's more reliable, faster and simple way. "
  >  Any particular reason for not to use abi-dumper? (Just curious)
  
  
  IMO the homepage is not that clear about this. It tells me yes I can use 
abi-dumper for the library dump, but  abi-complience-checker  can also check 
the header files, that is so far not possible to check with abi-dumper.
  
  > Anyway, I compiled both stable and unstable versions myself, created dumps 
with abi-dumper and got a clean bill.
  >  So I'm pretty certain the problem reported on CI is not correct (but I 
have been wrong before).
  
  Thanks for checking. So we need to give acc the information to not check 
internal Qt structures.
  
  @bcooksley: Did Qt 5.10 got a minor update recently, that is compiled 
differently?

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-12 Thread Dag Andersen
danders added a comment.


  In T3689#175818 , @knauss wrote:
  
  > So far I understood abi-dumper is something different - I use 
abi-complience-checker to create those dumps.
  
  
  Afaiu abi-dumper is the new way of creating dumps. From home page:
  "This new way is based on the analysis of the debug-info from binary objects. 
It's more reliable, faster and simple way. "
  Any particular reason for not to use abi-dumper? (Just curious)
  
  Anyway, I compiled both stable and unstable versions myself, created dumps 
with abi-dumper and got a clean bill.
  So I'm pretty certain the problem reported on CI is not correct (but I have 
been wrong before).

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, danders
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-10 Thread Sandro Knauß
knauss added a comment.


  To create a dump by hand this isn't that easy. see 
sysadmins/ci-tooling/helpers/create-abi-dump.py.
  
  > I was unsuccesful using abi-dumper
  
  So far I understood abi-dumper is something different - I use 
abi-complience-checker to create those dumps.
  
  As you need some more environment for this script, I ended up using 
docker-composer and a script to test this locally.
  
  F6606201: docker-compose.yml 
  
  F6606202: ci-build.sh 

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-06 Thread Dag Andersen
danders added a comment.


  Hmmm. do not know how to proceed with this without the actual libs available.
  I have tried building against a new lib and runing with old lib, with no 
problems.
  I was unsuccesful using abi-dumper on the old lib, so cannot check if it 
gives the same output as for  f7f9ca1a7a8bfd550022ca4aafe3bb2985a1bee4 
 
above.
  I guess I have to live with this atm and see how things shape up in the 
furure...

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, danders
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-02-04 Thread Sandro Knauß
knauss added a comment.


  I'm not a expert in abi-complience-checker, so we need to find out together...
  
  In T3689#175022 , @danders wrote:
  
  >
  
  
  The ABI error started with build 4:
  https://build.kde.org/job/Calligra/job/kdiagram/job/kf5-qt5%20SUSEQt5.10/4/
  
  but yes I can't see why the symbols are changed. Maybe the Qt version was 
switched in between. But from the error type it sounds like, that acc do not 
get the needed information of the underlying structure of QSet/QPair and can't 
garantee that this structure will be the same in future.
  
  > Afaics these lines have not been changed since last release.
  
  Well we don't have a released version with ABI, so we just check them against 
a470d77be5a33529a95eb89243ddfaef6ee27ee7 
. 
This will change if the next version is released.
  
  > Also it does not complain about similar use in calligra (although not 
*exactly* the same, calligra uses other datatypes)
  
  
  
  > Can anybody shed any light on this?
  
  well you can dig more into it by getting the abi dumps:
  https://build-artifacts.kde.org/production/ABIReference/
  
  after you downloaded two of the dumps you can check them again locally:
  
abi-compliance-checker -l KGrantt --old  --new 
  
  than you can look to all outputs yourself.
  
  The abidumps look different:
  
  for a470d77be5a33529a95eb89243ddfaef6ee27ee7 
:
  
'90987' => {
 'Algn' => 1,
 'Header' => 'qpair.h',
 'Line' => '49',
 'Memb' => {
 '0' => {
  'algn' => 1,
  'name' => 'first',
  'type' => '11416'
},
 '1' => {
  'algn' => 1,
  'name' => 'second',
  'type' => '11416'
}
   },
 'Name' => 'QPair',
 'TParam' => {
   '0' => {
'name' => 'struct QDateTime'
  },
   '1' => {
'name' => 'struct QDateTime'
  }
 },
 'Type' => 'Struct'
   },
  
  and for f7f9ca1a7a8bfd550022ca4aafe3bb2985a1bee4 

  
'90223' => {
 'Algn' => 1,
 'Header' => 'qpair.h',
 'Line' => '49',
 'Name' => 'QPair',
 'TParam' => {
   '0' => {
'name' => 'struct QDateTime'
  },
   '1' => {
'name' => 'struct QDateTime'
  }
 },
 'Type' => 'Struct'
   },
  
  so yeah somehow it does not get as much information out of qpair.h as before.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-01-31 Thread Dag Andersen
danders added a comment.


  I get ABI error on use of QPair and QSet in kdiagram:
  
https://build.kde.org/job/Calligra/job/kdiagram/job/kf5-qt5%20SUSEQt5.10/8/artifact/compat_reports/KGantt_compat_report.html#Type_Binary_Problems_Medium
  Afaics these lines have not been changed since last release.
  I have added a public getter to the class, but it does not complain about 
that, so...
  Also it does not complain about similar use in calligra (although not 
*exactly* the same, calligra uses other datatypes)
  Can anybody shed any light on this?

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, danders
Cc: danders, davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-01-06 Thread Sandro Knauß
knauss added a comment.


  YEAH so far the abi-compatibility-results.yaml for pim and Frameworks, as far 
as they got update the last days.
  So we are surly hitting the end of this and catching up the loosen tails of 
all of this. I'll focus currently on other stuff, will look at it and fix stuff 
in a week or so.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2019-01-06 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-30 Thread Sandro Knauß
knauss added a revision: D17880: check-abi: Fix error logging for non 
compatible builds..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-28 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-28 Thread Sandro Knauß
knauss added a revision: D17843: python3.6 has no capture_output paramenter for 
subprocess.run..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-28 Thread Sandro Knauß
knauss added a revision: D17837: Switch to the new syntax (spaces -> tabs)..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-28 Thread Sandro Knauß
knauss added a revision: D17836: add clang/7.0.0/include to make 
abi-compliance-checker happy again..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-25 Thread Sandro Knauß
knauss added a revision: D17798: publish acc build logs as artifacts..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-23 Thread Sandro Knauß
knauss added a comment.


  In T3689#170799 , @davidedmundson 
wrote:
  
  > > kwayland
  > > 
  > >   KWayland/Client/xdgforeign_v2.h -> missing include "xdgforeign.h"
  >
  > This is now hopefully fixed. Please let me know if it's still an issue.
  
  
  Thx, it looks fine so far. You see that now KF5Wayland_compat_report.html is 
created:
  
  https://build.kde.org/job/Frameworks/job/kwayland/job/kf5-qt5%20SUSEQt5.11/6/

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-23 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-23 Thread Sandro Knauß
knauss added a revision: D17770: create a YAML file for further processing the 
output of abi-compliance-checker..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-23 Thread Sandro Knauß
knauss added a revision: D17769: activate syntax ( replace spaces -> tabs..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-23 Thread David Edmundson
davidedmundson added a comment.


  > kwayland
  > 
  >   KWayland/Client/xdgforeign_v2.h -> missing include "xdgforeign.h"
  
  This is now hopefully fixed. Please let me know if it's still an issue.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, davidedmundson
Cc: davidedmundson, dfaure, kde-frameworks-devel, bcooksley, sysadmin, 
scarlettclark, aacid, knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-22 Thread Sandro Knauß
knauss added a comment.


  I have made sure that kde/pim is now cleanup in terms of the issue of "not 
runnig ABI", by triggering a rebuilt. So it is a good test if the patch is 
working.
  With more tests I have detected, that builds still use the oldest commit 
instead of tags commits (fix D17745 ) .

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-22 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-22 Thread Sandro Knauß
knauss added a revision: D17745: resolve tags to the commit, that was tagged..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-20 Thread Ben Cooksley
bcooksley added a comment.


  I've made an experimental change which should resolve this issue if it is 
what is suspected to be the issue here.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-20 Thread Ben Cooksley
bcooksley added a commit: R857:dbb3d8d9f37a: Make sure we wait and block until 
the publishing process is completed..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-20 Thread Sandro Knauß
knauss added a comment.


  In T3689#170601 , @bcooksley wrote:
  
  > I checked execution of KDav on all four build nodes, and the process ran 
fine when done manually.
  >  Given there is no output from check-abi.py, this is quite hard to diagnose.
  
  
  In the last `for l in libraries:` loop, we get output for every item in that 
list, etiher because there are candidates or there are not.
  That means the only way to produce no output at all is that libraries list 
must be empty. We do not remove any entry from that list, so the initial search 
do not find any matching entry.
  And the only way the list can be empty is that the `for key, entry in 
ourArchive.serverManifest.items()` don't find any matching entry.
  
  > Can you propose some debug output which might point out why it's doing 
nothing?
  
  I added D17710  to retry to reload the 
serverManiphest file again after 5secs to sleep. The added output is hopefully 
enough to spot the issue.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-20 Thread Sandro Knauß
knauss added a revision: D17710: check-abi.py: Reload serverManiphest several 
times, if we don't find matching entries..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-20 Thread Ben Cooksley
bcooksley added a comment.


  I checked execution of KDav on all four build nodes, and the process ran fine 
when done manually.
  Given there is no output from check-abi.py, this is quite hard to diagnose.
  
  Can you propose some debug output which might point out why it's doing 
nothing?

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-18 Thread Sandro Knauß
knauss added a comment.


  In T3689#170284 , @bcooksley wrote:
  
  > In regards to `akonadi-mime` I have now re-run it, and it seems to work 
fine.
  >  As long as you're relying only on the master manifest.yaml, then it should 
be impossible for any publishing failure to cause issues.
  
  
  Well if if would be just `akonadi-mime`, I would not care. but it is actually 
a lot more failing with the same pattern.
  
  What I did for checking:
  *download this  consoleText: 
https://build.kde.org/job/Applications/job/kdav/job/kf5-qt5%20SUSEQt5.10/lastCompletedBuild/consoleText
  
  - than do some simple regex:
- (Successfully created a dump (`^.*Dump path: abi_dumps/.*/ABI\.dump\s*$`)
- search for  "Comparing ABIs"
  
  F6487824: ci-check.py 
  
  And the outcome is overwhelming - a lot of is broken. I checked a lot locally 
via docker and could not reproduce this bug. That's why I think it is something 
with publishing the packages. Is it just one server, or is there any load 
balancing come into account so request are answered by a different sever, that 
isn't synced?
  
  for kde/pim/*:
  
  [ ] kblog
  [ ] mailcommon
  [ ] kmbox
  [ ] kontactinterface
  [ ] kpimtextedit
  [ ] akonadi-import-wizard
  [ ] kpkpass
  [ ] kldap
  [ ] kalarmcal
  [ ] libgravatar
  [ ] libkgapi
  [ ] libkleo
  [ ] grantleetheme
  [ ] kcontacts
  [ ] akonadi-notes
  [ ] kitinerary
  [ ] ktnef
  [ ] akonadi-mime
  [ ] kcalutils
  
  for frameworks:
  
  [ ] kcrash
  [ ] kwallet
  [ ] kpackage
  [ ] kholidays
  [ ] kparts
  [ ] syndication
  [ ] frameworkintegration
  [ ] khtml
  [ ] krunner
  [ ] knotifyconfig
  [ ] kidletime
  [ ] kitemviews
  [ ] kjobwidgets
  [ ] kmediaplayer
  [ ] kpeople
  [ ] prison
  [ ] kxmlrpcclient
  [ ] sonnet
  [ ] kcoreaddons
  [ ] kunitconversion
  [ ] kfilemetadata
  [ ] baloo
  [ ] kitemmodels
  [ ] kpty
  [ ] kconfig
  [ ] kxmlgui
  [ ] kconfigwidgets
  [ ] kdbusaddons
  [ ] kjsembed
  [ ] kplotting
  [ ] kactivities
  [ ] kdesu
  [ ] ki18n
  [ ] knotifications
  [ ] kactivities-stats
  [ ] attica
  [ ] ktexteditor
  [ ] solid
  [ ] kirigami
  [ ] syntax-highlighting
  [ ] kauth
  
  > In terms of the `akonadi-search` issue, using something like that YAML file 
should be fine yes and is historically how we've solved such issues.
  
  okay create D17672  for this.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-18 Thread Sandro Knauß
knauss added a revision: D17672: Move settings for abi-complience-checker to 
own yaml file..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-16 Thread Ben Cooksley
bcooksley added a comment.


  Okay, there have been a number of comments here since i've last read it, so a 
bit to catch up on and go over.
  
  In regards to `akonadi-mime` I have now re-run it, and it seems to work fine.
  As long as you're relying only on the master manifest.yaml, then it should be 
impossible for any publishing failure to cause issues.
  
  In terms of the `akonadi-search` issue, using something like that YAML file 
should be fine yes and is historically how we've solved such issues.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss, bcooksley
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-14 Thread Sandro Knauß
knauss added a revision: D17579: Handle cases where tailing "/" in 
CMAKE_PREFIX_PATH fails the detection of additional include directories..

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-13 Thread Sandro Knauß
knauss added a comment.


  @bcooksley for akonadi-search we need some special settings for the 
abi-create step. Where we should  store such settings?
  
  This is a more general solution, that we can also modify the settings for 
other platforms etc.
  
  `ci-tooling/local-metadata/abi-complience-checker.yaml`:
  
gcc_options:
- "-std=c++11"
- "-fPIC"
skip_include_paths:
- /usr/lib/python3.6/site-packages/utils/fake_libc_include
- /usr/include/clang/AST
- /usr/lib64/clang/6.0.1/include
add_include_paths:
- /usr/lib64/qt5/mkspecs/linux-g++

# "SUSEQt5.10":# platform specific
# gcc_options:
#- "-DSUSE5.10"

#"kde/*":# special settings for all repos in kde (fnmatch)
#   gcc_options:
#   - "-DKDE"

#"kde/pim/*":# special settings for all repos in kde/pim
#   gcc_options:
#   - "-DKDEPIM"
#  "SUSEQt5.10":   # for one specific platform
# gcc_options:
# - "-DKDEPIMSUSEQT5.10"

"kde/pim/akonadi-search": # for one repo
  "SUSEQt5.10":   # for one specific platform
gcc_options:
  - "-std=c++11"
  - "-fPIC"
  - "-DQT_NO_KEYWORDS"
  
  and the Python code to handle this:
  rules are:
  
  - anthing overwrites defauls (outer level)
  - most matching path overwrites less matching path
  - platform specific overwrites non platform stuff
  
  general -> specific
  default -> "basepath/*" -> "basepath/* - platform" -> "basepath/repo" ->  
"basepath/* - platform"
  
import yaml, fnmatch, copy

metadata = yaml.load(open('local-metadata/abi-complience-checker.yaml'))

def getSettings(path, platform):

entries = []
for key in metadata:
if fnmatch.fnmatch(path, key):
entries.append(key)

# sorting all entries - the entries at the end overwrites the former 
settings
# len is efficient, but would fail if we have single letter repo names
entries.sort(key=len)
entries.insert(0, platform) # add platform settings at the start

d = copy.copy(metadata) # load default settings
for entry in entries:
try:
  content = metadata[entry]
  d.update(content)
  d.update(content[platform]) # try to load platform specific 
settings
except KeyError:
  pass
return d

getSettings("kde/pim/akonadi-search",  "SUSEQt5.10")

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-13 Thread Sandro Knauß
knauss updated the task description.

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-13 Thread Sandro Knauß
knauss added a comment.


  okay with merging D17534  CI now 
successfully builds the abis for the mentioned packages. (I modified the last 
comment)

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-12 Thread Sandro Knauß
knauss added a comment.


  I use the ci-docker images to test the create-abi, but I can't reproduce why 
those are failing:
  
  - messagelib
  - kdav
  - libksieve
  - akonadi-import-wizard
  - kpkpass
  - libkgapi
  
  maybe those are also fixed by D17534  
otherwise I need more details.
  
  @bcooksley there is also an issue with akonadi-mime - that I don't understand.
  Build #2 

 is fine:
  
  - create-abi-dump.py is run successful
  - check-abi.py is happy: "Let's do a ABI check 
32025ac9cc671b7adf956d117555336703725ee4 
 
against 1dae8da6ab3ebe1f8f5acf5cd0c563557cd3cbda 
"
  
  but at Build #3 
:
  
  - create-abi-dump.py is run successful
  - check-abi does NOT check anything.
  
  running this step locally machine is successful:
  "Let's do a ABI check 327ed59cd15e6038bf3303ca5f30b4b51b2f61f0 
 
against 1dae8da6ab3ebe1f8f5acf5cd0c563557cd3cbda 
 "
  May this be an issue of publishing the buildArtifacts?

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-12 Thread Sandro Knauß
knauss added a comment.


  I now looked at every repository that failed to build successfully a ABI dump 
  for Pim. Most of them build successful, but a few of them have issues:
  
  - kmime has an unexported header in kmime/kmime_newsarticle.h: `#include 
` that lives in src/supertrait.h
  
  - akonadi-search is unhappy that xapian.h is not imported as first file.
  
  F6473684: log.txt 
  
  - kitinerary has an unexported header in KPim/kitinerary/airportdb.h: 
`#include "timezonedb.h"` that lives in src/knowledgedb/timezonedb.h
  
  - PimCommonAkonadi adds 
$ to 
target_include_directories, but KF5::IMAP is a private dependency. Can we 
remove this?
  
  - kdepim-apps-libs: FollowupReminder adds 
$ to 
target_include_directories. But both files in src/libfollowupreminder/src/*h 
don't use relative links to AkonadiCore. Can we remove this?

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez


T3689: Add abi compliance checker to CI

2018-12-12 Thread Sandro Knauß
knauss added subscribers: kde-frameworks-devel, dfaure.
knauss added a comment.


  I now looked at every repository that failed to build successfully a ABI dump 
for Frameworks.
  As I'm not really deep into the Framworks code, so I'm unsure, if those are 
real issues or if those Frameworks need special handling.
  Please give me any response you have to those issues. (@aacid , @dfaure, 
@kde-frameworks-devel)
  
  From 79 packages inside Frameworks a lot run successfully. From those 5 
packages I'm quite sure, that those are real issues, that needs to get fixed:
  
  - kdelibs4support
- missing dependency to frameworks/kitemmodels
- failed to find #include 
  
  F6473565: log.txt 
  
  - kwayland
- KWayland/Client/xdgforeign_v2.h ->  missing `include "xdgforeign.h"`
  
  - kjs
- no include/KF5/kjs in INTERFACE_INCLUDE_DIRECTORIES
- CompileState.h includes non exported opcodes.h and bytecodes/opcodes.h 
#401955
  
  *plasma-framework
  
  - no include/KF5/KF5PlasmaQuick in INTERFACE_INCLUDE_DIRECTORIES for 
KF5PlasmaQuick
  
  compiles but has still error on the log:
  
  - networkmanager-qt
- failing building headers
  
  F6473566: log.txt 
  
  And some repositories, that have no public library. Is this intended?
  
  - KF5NewStuffQuick has no library (KF5NewStuff is fine)
  - extra-cmake-modules
  - kdesignerplugin
  - kinit
  - qqc2-desktop-style
  
  How this ABI checker tool works. As input the tool uses the output made while 
installing the package.
  
  - It scans this output for installs of ".*Config.cmake$" files
  - runs cmake in trace-expand mode for "find_package({name} CONFIG REQUIRED)"
  - scans this cmake output for
- PACKAGE_VERSION -> this is the library version
- IMPORTED_SONAME_DEBUG,  -> to get the soversion
- IMPORTED_LOCATION_DEBUG -> the the path of the lib
- INTERFACE_INCLUDE_DIRECTORIES -> all needed include directories
  
  - each exported header file is tried to be compiled and symbols are extracted.
  
  The sourcecode of this script you find in 
sysadmin/ci-tooling/helpers/create-abi-dump.py

TASK DETAIL
  https://phabricator.kde.org/T3689

To: knauss
Cc: dfaure, kde-frameworks-devel, bcooksley, sysadmin, scarlettclark, aacid, 
knauss, alexeymin, kaning, blazquez