Re: [Development] New Wayland Plugin instructions (on the Wayland web site)

2012-01-29 Thread Thiago Macieira
On Sunday, 29 de January de 2012 15.31.00, Mark Constable wrote:
 On 29/01/12 13:21, Rick Stockton wrote:
   ...
 
  http://wayland.freedesktop.org/qt5.html

 I'm trying out these notes too, on Archlinux x86_64, and only got
 as far as this error at the early qmake build stage...

 The Wayland functionality test failed

 any hints as to what system components might satisfy this test?

Ensure you have a *very* recent Wayland installation (probably compiled from
the Git repository) and that it can be found by

pkgconfig --cflags --libs wayland-client

And that the wayland-scanner binary is somewhere in your $PATH. It is required
to compile some XML protocol definitions into code.

I also talked to Tiago and he said he had a no make demos and examples
build, so his instructions do not include the compilation of the wayland
examples, which in turn require the wayland-server packages.

 Also, the above URL suggests pulling qtbase and there is also
 a very obvious qt5 repo.

 Could anyone verify which repo is the real qt5?

Huh?

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] New Wayland Plugin instructions (on the Wayland web site)

2012-01-29 Thread Robin Burchell
On Sun, Jan 29, 2012 at 7:31 AM, Mark Constable ma...@renta.net wrote:
 Also, the above URL suggests pulling qtbase and there is also
 a very obvious qt5 repo.

 Could anyone verify which repo is the real qt5?

There is no single 'Qt' repository anymore. That concept dies with
4.8. The 'qt5' repository is a stub containing pointers to all the
submodules that consist of the bulk of the code, plus some helper
scripts to clone them etc.

The exact submodule you want depends on the code you want to work with,
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Enabling -fPIE globally

2012-01-29 Thread marius.storm-olsen
I think feedback from KDAB and FrogLogic about this change would also be
valuable, to discuss the changes required to their tools for automated
testing of Qt applications.

My understanding is that they now would need a code injector on Linux
(like on Windows), instead of simply LD_PRELOADing their libs, right?

-- 
.marius


On 1/29/12 2:15 PM, ext Thiago Macieira thiago.macie...@intel.com
wrote:

Hello

Olivier has just uploaded a change (
http://codereview.qt-project.org/14528 )
that enabled -fPIE in all application builds and I support him. He also
added 
a static assertion check for ELF builds without position-independent
code, so 
that people using other buildsystems are reminded to turn -fPIE on too.

If you have a problem with this, speak up. Linux distributors,
especially, let 
us know what you think.

For more background, please read my blogs on the sorry state of
libraries on 
Linux. But the summary is: function pointer comparison is broken with
current 
versions of gcc and the -Bsymbolic-functions option we've made the
default.

See also:
http://macieira.org/blog/2012/01/sorry-state-of-dynamic-libraries-on-linux
/
http://macieira.org/blog/2012/01/update-and-benchmark-on-the-dynamic-libra
ry-
proposals/
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19520
http://sourceware.org/bugzilla/show_bug.cgi?id=13600

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] New Wayland Plugin instructions (on the Wayland web site)

2012-01-29 Thread Mark Constable
On 29/01/12 21:47, Thiago Macieira wrote:
 http://wayland.freedesktop.org/qt5.html

 Also, the above URL suggests pulling qtbase and there is also
 a very obvious qt5 repo. Could anyone verify which repo is
  the real qt5?

 Huh?

https://qt.gitorious.org/qt/qtbase
versus
https://qt.gitorious.org/qt/qt5

I've tried building from both repos but so far the freedesktop
instructions have worked the best for me. I have a wayland-scanner
binary and just seem to be missing wayland-compositor.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Enabling -fPIE globally

2012-01-29 Thread Thiago Macieira
On Sunday, 29 de January de 2012 15.02.01, marius.storm-ol...@nokia.com wrote:
 I think feedback from KDAB and FrogLogic about this change would also be
 valuable, to discuss the changes required to their tools for automated
 testing of Qt applications.

 My understanding is that they now would need a code injector on Linux
 (like on Windows), instead of simply LD_PRELOADing their libs, right?

Not exactly. In fact, without -Bsymbolic-functions, we don't add the --
dynamic-list option, which is what enables the symbol hijacking they need.

The option is still there, so the hijacking will still work. And I've already
asked Stephen to create a proper callback mechanism, instead of relying on
hijacking (which I proved not to work in my blog).

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Enabling -fPIE globally

2012-01-29 Thread Stephen Kelly
On Sunday, January 29, 2012 16:47:43 Thiago Macieira wrote:
 On Sunday, 29 de January de 2012 15.02.01, marius.storm-ol...@nokia.com 
wrote:
  I think feedback from KDAB and FrogLogic about this change would also be
  valuable, to discuss the changes required to their tools for automated
  testing of Qt applications.
  
  My understanding is that they now would need a code injector on Linux
  (like on Windows), instead of simply LD_PRELOADing their libs, right?
 
 Not exactly. In fact, without -Bsymbolic-functions, we don't add the --
 dynamic-list option, which is what enables the symbol hijacking they need.

... but unfortunately not with gold: 
http://sourceware.org/bugzilla/show_bug.cgi?id=13577

 
 The option is still there, so the hijacking will still work.

I can't seem to make my system behave sanely if I don't use gold. I'm building 
my Qt 5 with -no-reduce-relocations now. Anyone who wants to can try GammaRay 
with Qt5 already though. I ported it in early January (using some ifdefs):

https://github.com/KDAB/GammaRay

 And I've
 already asked Stephen to create a proper callback mechanism, instead of
 relying on hijacking (which I proved not to work in my blog).

The creation of a callback mechanism sounds like a good idea, but will require 
a lot of thought, coordination and  work which is currently unscheduled.

Thanks,

-- 
Stephen Kelly stephen.ke...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Enabling -fPIE globally

2012-01-29 Thread Stephen Kelly
On Sunday, January 29, 2012 14:15:43 Thiago Macieira wrote:
 Hello
 
 Olivier has just uploaded a change ( http://codereview.qt-project.org/14528
 ) that enabled -fPIE in all application builds and I support him. He also
 added a static assertion check for ELF builds without position-independent
 code, so that people using other buildsystems are reminded to turn -fPIE on
 too.

If qmake can tell us (at building-Qt-time) that this is needed, I'm sure we 
can add something to the Qt CMake files to make this easier.

 
 If you have a problem with this, speak up. Linux distributors, especially,
 let us know what you think.

Are you sure they're on this mailing list?

 
 For more background, please read my blogs on the sorry state of libraries
 on Linux. But the summary is: function pointer comparison is broken with
 current versions of gcc and the -Bsymbolic-functions option we've made the
 default.

I have to admit that I don't know what effect this change would have on 
preloading.

Thanks,

-- 
Stephen Kelly stephen.ke...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Enabling -fPIE globally

2012-01-29 Thread Thiago Macieira
On Sunday, 29 de January de 2012 18.25.10, Stephen Kelly wrote:
 If qmake can tell us (at building-Qt-time) that this is needed, I'm sure we
 can add something to the Qt CMake files to make this easier.

contains(QT_CONFIG, reduce_relocations):message(Use -fPIE)

  If you have a problem with this, speak up. Linux distributors, especially,
  let us know what you think.

 Are you sure they're on this mailing list?

No. I expect we'll get more feedback after the alpha release.

  For more background, please read my blogs on the sorry state of libraries
  on Linux. But the summary is: function pointer comparison is broken with
  current versions of gcc and the -Bsymbolic-functions option we've made the
  default.

 I have to admit that I don't know what effect this change would have on
 preloading.

None.

This changes *applications*, not the libraries.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Tests, Shadow-Build and Cross-Compilation

2012-01-29 Thread Holger Hans Peter Freyther
Hi all,

I finally got around to play with my personal jenkins[1] setup again, 
specially to learn (and be kind of an example on how a non Tier1 platform 
could ever become one).

There are some issues and I would like to discuss how these can be solved in a 
way that doesn't look like an ad-hoc solution and that might scale.

I will mumble about the Problems, the Ad-Hoc solutions and muse about a fix...



Problems:
  Shadow builds:

I always liked shadow builds as I could have several Qt configurations but a 
command/shared source directory (e.g. X11, QWS, for i386 and ARM). It is quite 
common for tests to break in shadow builds (the QA page in the wiki 
discourages this as well).

  Cross compilation:
When cross compiling the machine that compiles the tests will not be the 
machine that ends up running them.


Ad-hoc solutions:
  Shadow builds:

The ad-hoc solution appears to change tests that refer to files in a way like 
this:
VERIFY(file.open(testfile));

to:
VERIFY(file.open(SRCDIR testfile));

and put DEFINES += SRCDIR=... into the pro file.


  Cross compilation:

The attribute of cross-compilation and running the test on a different 
architecture is somehow attributed to both Windows-CE (and Symbian). This 
manifests in the xmlpatterns test by adding deployment targes, deploy files, 
change the sourcecode to access different directories.


Musing:
So somehow cross-compilation and shadow-builds suffer from the same problem 
that accessing files from the source directory with a relative path. One 
proposal would be to use something like 'QDir::addSearchPath(testdata, 
SRCDIR)' and have it set to the path of the .pro file, and access everything 
using the prefix. Danimo mentioned that this will fail for multimedia that 
might not use the Qt resource system. So we might want to have a method in the 
testlib to resolve a path like testdata:foo to a proper path? For cross 
compiling one could change the testdata prefix with a command line option or 
environment variable?

The other part/wish would be to always have deployment targets for the 
testcases and generate a run script or such as part of the installation.

comments
holger



[1] http://qt-jenkins.moiji-mobile.com/jenkins/
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Tests, Shadow-Build and Cross-Compilation

2012-01-29 Thread Olivier Goffart
On Sunday 29 January 2012 21:13:25 Holger Hans Peter Freyther wrote:
 Hi all,
 
 I finally got around to play with my personal jenkins[1] setup again,
 specially to learn (and be kind of an example on how a non Tier1 platform
 could ever become one).
 
 There are some issues and I would like to discuss how these can be solved in
 a way that doesn't look like an ad-hoc solution and that might scale.
 
 I will mumble about the Problems, the Ad-Hoc solutions and muse about a
 fix...
 
 
 
 Problems:
   Shadow builds:
 
 I always liked shadow builds as I could have several Qt configurations but a
 command/shared source directory (e.g. X11, QWS, for i386 and ARM). It is
 quite common for tests to break in shadow builds (the QA page in the wiki
 discourages this as well).

Yes, the wiki recommands not to use shadowbuild because it often do not work.
(I had the problem today again while trying to run qlibrary autotest)

[...]
 
 Musing:
 So somehow cross-compilation and shadow-builds suffer from the same problem
 that accessing files from the source directory with a relative path. One
 proposal would be to use something like 'QDir::addSearchPath(testdata,
 SRCDIR)' and have it set to the path of the .pro file, and access
 everything using the prefix. Danimo mentioned that this will fail for
 multimedia that might not use the Qt resource system. So we might want to
 have a method in the testlib to resolve a path like testdata:foo to a
 proper path? For cross compiling one could change the testdata prefix with
 a command line option or environment variable?
 
 The other part/wish would be to always have deployment targets for the
 testcases and generate a run script or such as part of the installation.

There is QFINDTESTDATA and QTest::qFindTestData that have been added recently,  
I think for this reason.  Have you heard of them?


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] New Wayland Plugin instructions (on the Wayland web site)

2012-01-29 Thread holger.ihrig
Hi,

the wayland-compositor is nowadays called Weston and lives in the Wayland 
Repository.

If you want to build wayland (which is a requirement to build qtwayland I 
think), be sure to fetch the correct SHA1 from the QtWayland Repo as this is 
the SHA1 used to verify that it is working correctly. This SHA1 can be found in 
a Readme file in the QtWayland Repo.


Holger Ihrig
Mobile Phones Middleware - Quality Engineering
http://wikis.in.nokia.com/QtQualityEngineering




From: development-bounces+holger.ihrig=nokia@qt-project.org 
[development-bounces+holger.ihrig=nokia@qt-project.org] on behalf of ext 
Mark Constable [ma...@renta.net]
Sent: Sunday, January 29, 2012 4:31 PM
To: development@qt-project.org
Subject: Re: [Development] New Wayland Plugin instructions (on the Wayland web 
site)

On 29/01/12 21:47, Thiago Macieira wrote:
 http://wayland.freedesktop.org/qt5.html

 Also, the above URL suggests pulling qtbase and there is also
 a very obvious qt5 repo. Could anyone verify which repo is
  the real qt5?

 Huh?

https://qt.gitorious.org/qt/qtbase
versus
https://qt.gitorious.org/qt/qt5

I've tried building from both repos but so far the freedesktop
instructions have worked the best for me. I have a wayland-scanner
binary and just seem to be missing wayland-compositor.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Tests, Shadow-Build and Cross-Compilation

2012-01-29 Thread Rohan McGovern
Olivier Goffart said:
 On Sunday 29 January 2012 21:13:25 Holger Hans Peter Freyther wrote:
  Hi all,
  
  I finally got around to play with my personal jenkins[1] setup again,
  specially to learn (and be kind of an example on how a non Tier1 platform
  could ever become one).
  
  There are some issues and I would like to discuss how these can be solved in
  a way that doesn't look like an ad-hoc solution and that might scale.
  
  I will mumble about the Problems, the Ad-Hoc solutions and muse about a
  fix...
  
  
  
  Problems:
Shadow builds:
  
  I always liked shadow builds as I could have several Qt configurations but a
  command/shared source directory (e.g. X11, QWS, for i386 and ARM). It is
  quite common for tests to break in shadow builds (the QA page in the wiki
  discourages this as well).
 
 Yes, the wiki recommands not to use shadowbuild because it often do not work.
 (I had the problem today again while trying to run qlibrary autotest)
 

Hopefully this advice can be removed at some point.  There are 1-2
people gradually working on fixing up all the tests to work for shadow
builds, at which point it will be blocking in the codereview CI.
About half the modules (the simpler ones) are already set up for shadow
builds, they can be seen at 
http://wiki.qt-project.org/Public_Autotest_Infrastructure#linux-g.2B.2B_shadow-build_Ubuntu_11.10_x86

 [...]
  
  Musing:
  So somehow cross-compilation and shadow-builds suffer from the same problem
  that accessing files from the source directory with a relative path. One
  proposal would be to use something like 'QDir::addSearchPath(testdata,
  SRCDIR)' and have it set to the path of the .pro file, and access
  everything using the prefix. Danimo mentioned that this will fail for
  multimedia that might not use the Qt resource system. So we might want to
  have a method in the testlib to resolve a path like testdata:foo to a
  proper path? For cross compiling one could change the testdata prefix with
  a command line option or environment variable?
  
  The other part/wish would be to always have deployment targets for the
  testcases and generate a run script or such as part of the installation.
 
 There is QFINDTESTDATA and QTest::qFindTestData that have been added 
 recently,  
 I think for this reason.  Have you heard of them?
 

Yes they were added exactly for this.
There is also TESTDATA in .pro files to install test data files, but this is
not really good enough to be documented other than a comment in
testcase.prf.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Development Digest, Vol 4, Issue 94

2012-01-29 Thread wolfgang.beck
Date: Sun, 29 Jan 2012 01:55:54 +1100
From: craig.sc...@csiro.au
Subject: Re: [Development] Work on qDebug and friends
To: development@qt-project.org
Message-ID: 6219d4f4-6cd0-4c5f-9e82-3a4a722ed...@csiro.au
Content-Type: text/plain; charset=us-ascii

Sorry for the lack of context (dealing with digest emails while on leave :-P ).

With the talk about logging in this thread, is it of interest / scope to also 
have the associated classes support capturing the standard C/C++ streams? By 
this, I mean capturing whatever gets logged via std::cout or things like 
printf()? I know this might not be of much interest to Qt purists, but it 
would be rather useful when you need to integrate with third party code and 
want to redirect all output. The trick is doing it on all platforms in a 
consistent way (Windows really muddies the waters with its separation of GUI 
and console apps). This would not be something for Qt 5.0, but might be worth 
keeping in mind from an API point of view in case someone wants to do this in 
a consistent way in future versions.

--
Dr Craig Scott
Computational Software Engineering Team Leader, CSIRO (CMIS) Melbourne, 
Australia

Yes I think this should be in.
The category QLog should be in default the standard output.
If you define in your QLog  config file an output file the QLog will write the 
logs into this output file otherwise it will be std out.
Another point is that we want the QLog enabled and disabled without recompiling 
your code.
For instead a customer reports a problem and the developer needs to have more 
information. 
The developer can send a QLog config file to the customer and ask the customer 
to send back the output file.
If there is no  QLog config file then no logging should be performed.

--

Wolfgang


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Development Digest, Vol 4, Issue 94

2012-01-29 Thread wolfgang.beck
Sorry, forgot the Subject

-Original Message-
From: Beck Wolfgang (Nokia-MP/Brisbane) 
Sent: Monday, January 30, 2012 10:02 AM
To: development@qt-project.org
Cc: 'craig.sc...@csiro.au'
Subject: RE: Development Digest, Vol 4, Issue 94

Date: Sun, 29 Jan 2012 01:55:54 +1100
From: craig.sc...@csiro.au
Subject: Re: [Development] Work on qDebug and friends
To: development@qt-project.org
Message-ID: 6219d4f4-6cd0-4c5f-9e82-3a4a722ed...@csiro.au
Content-Type: text/plain; charset=us-ascii

Sorry for the lack of context (dealing with digest emails while on leave :-P ).

With the talk about logging in this thread, is it of interest / scope to also 
have the associated classes support capturing the standard C/C++ streams? By 
this, I mean capturing whatever gets logged via std::cout or things like 
printf()? I know this might not be of much interest to Qt purists, but it 
would be rather useful when you need to integrate with third party code and 
want to redirect all output. The trick is doing it on all platforms in a 
consistent way (Windows really muddies the waters with its separation of GUI 
and console apps). This would not be something for Qt 5.0, but might be worth 
keeping in mind from an API point of view in case someone wants to do this in 
a consistent way in future versions.

--
Dr Craig Scott
Computational Software Engineering Team Leader, CSIRO (CMIS) Melbourne, 
Australia

Yes I think this should be in.
The category QLog should be in default the standard output.
If you define in your QLog  config file an output file the QLog will write the 
logs into this output file otherwise it will be std out.
Another point is that we want the QLog enabled and disabled without recompiling 
your code.
For instead a customer reports a problem and the developer needs to have more 
information. 
The developer can send a QLog config file to the customer and ask the customer 
to send back the output file.
If there is no  QLog config file then no logging should be performed.

--

Wolfgang


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use make before you push and stage

2012-01-29 Thread Rohan McGovern
Jedrzej Nowacki said:
 
 You are assuming that we need to test every patchest which would be nice, 
 but it is not necessary. A bot-tester would be sufficient, it might be added 
 as 
 a reviewer by human reviewer only if it makes sense.
 

I like this idea and had been thinking along these lines for a while.
Similar to how all changes at the moment automatically end up with Qt
Sanity Bot as a reviewer, a developer could explicitly add other test
bots as reviewers to their change.  This could also include testing
which takes too long to perform in the main CI.

If anyone thinks this is _not_ a good idea then I would be interested to hear
the reasons :)

 We do not need to test every platform, only the fastest one. The point of 
 this system would be to reduce failures count because of simple mistakes; 
 like 
 broken compilation because missing function. It doesn't have to find problems 
 related to differences in compilers.
 
 Another thing is, can it happen in parallel? Do we use 100% of test 
 server 
 capacity? Btw. I do not think that ccache is a hack, I was using it for a few 
 months working on Qt and it was ok.
 
 Currently, there is no way to test properly difficult patches without 
 staging them. Only CI knows how to test Qt correctly, which tests are flaky, 
 which tests may be ignored, which may be run in parallel and which needs to 
 be 
 run without touching mouse/keyboard because of focus issues. Parsing output 
 of 
 make check is not funny too. Everything that improves that situation even 
 slightly is awesome.
 

I agree with the main point of this paragraph but would like to correct
a couple of minor things:

Only CI knows ... which tests may be ignored = mostly false, the build
system knows this.  CONFIG+=insignificant_test in a .pro file causes
`make check' to ignore the exit code of a testcase, both in CI and when
you run `make check' locally.  The exception is that the CI system can
be configured to ignore _all_ autotests for a particular configuration,
and nothing in the tested repo tells you this.

Only CI knows ... which may be run in parallel = none of them are run
in parallel by CI.  If you are thinking of CONFIG+=parallel_test: that
was added for this utility 
http://labs.qt.nokia.com/2010/10/29/making-auto-testing-easier/
by Yoann Lopes, and as far as I know has never been used by any other
tools.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use make before you push and stage

2012-01-29 Thread Giuseppe D'Angelo
On 30 January 2012 03:51, Rohan McGovern rohan.mcgov...@nokia.com wrote:
 I don't think it is a good idea.
 Having errors with incremental builds which go away when you do a clean
 build is one thing, but there are also some issues which _should_
 cause the build to fail, but don't if you only do incremental builds.

Thinking out loud - mad idea.

Does anyone have (or knows how to extract from gerrit) stats about how
many stages are requested on average during the week?

Would it be possible to do incremental builds when the one
sub-repository is more active, and full builds otherwise (with
patches that are merged in if and only if they pass the full build)?
For instance, if qtbase is more active during CET working hours, one
could think of having incremental builds from 8.00-12.00 and
15.00-18.00, with a full build at 12.00 (~3h, till 15.00) and other
full builds starting at 18.00 and going on overnight?

-- 
Giuseppe D'Angelo
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion for new CI: early warning for qt5.git

2012-01-29 Thread Rohan McGovern
Olivier Goffart said:
 On Friday 27 January 2012 09:09:46 Kent Hansen wrote:
 [...]
  If there is no quick fix, the last resort is to pin one or
  more of the dependencies' to a particular SHA1 (e.g. from the qt5.git
  submodule) in the sync.profile until the issue has been resolved, then
  unpin it again later.
 
 Why is that the last resort?
 This seems totally normal and was the whole point of modularisation:
 Differents modules can be developped at different speed.

When this was discussed back when CI was being established on
modularized Qt, the consensus[1] was that the goal should be to keep the
head of all modules working together as much as possible - that's why
people have been discouraged from using anything other than the head of
their dependencies in sync.profile.

[1] which in this case really means the thing that someone said and no-one
objected to :)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use make before you push and stage

2012-01-29 Thread Giuseppe D'Angelo
On 30 January 2012 04:18, Giuseppe D'Angelo dange...@gmail.com wrote:

 Does anyone have (or knows how to extract from gerrit) stats about how
 many stages are requested on average during the week?

Sorry, I meant: on avarage _per hour_ during a week.

-- 
Giuseppe D'Angelo
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion for new CI: early warning for qt5.git

2012-01-29 Thread Alan Alpert
On Fri, 27 Jan 2012 23:07:07 ext Olivier Goffart wrote:
 On Friday 27 January 2012 09:09:46 Kent Hansen wrote:
 [...]
 
  If there is no quick fix, the last resort is to pin one or
  more of the dependencies' to a particular SHA1 (e.g. from the qt5.git
  submodule) in the sync.profile until the issue has been resolved, then
  unpin it again later.
 
 Why is that the last resort?
 This seems totally normal and was the whole point of modularisation:
 Differents modules can be developped at different speed.

It's the last resort because proper modularization isn't going to cause these 
sorts of problems. Proper modularization means that you aren't going to screw 
up dependent modules unless you make deliberately incompatible changes to your 
API, for which you normally will provide a smooth transition path (e.g. 
deprecate the old one and let them live side by side for a while). So these 
shouldn't happen, and your first step should be to fix your smooth transition 
path to be smooth enough for CI not to be blocked. Because CI blocking would 
mean that users of your module have just had their code broken by a module 
below. We don't like putting them in that situation.

That said, stuff exists like QtDeclarative reaching deep into the private 
headers of QtCore, and depending on details of the metatype system. So we're 
largely suffering because we have not been able to modularize properly.
 
 If not, modularisation was just a waste of time and a way to make
 development more difficult.

Arguably we have not successfully modularized if we still have such tight 
dependencies. But I'm optimistic enough to think it will settle down once 
5.0.0 is out and we're vaguely respecting compatibility again :) .

-- 
Alan Alpert
Senior Engineer
Nokia, Qt Development Frameworks
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion for new CI: early warning for qt5.git

2012-01-29 Thread Rohan McGovern
Kent Hansen said:
 Hi,
 Sometimes there are changes to qtbase that the author and/or reviewers 
 strongly suspect will break one or more modules on top of it (e.g. in 
 qt5.git). For example, source-incompatible changes (removing 
 QEventLoop::DeferredDeletion), or changes to the meta-type/QObject 
 internals (which qtdeclarative is relying heavily on).
 
 When such a change goes into qtbase, you only get the failure for the 
 dependent modules the next time you stage something (anything) in that 
 other module; suddenly the module no longer builds, or tests seemingly 
 unrelated to the developer's own change start failing.
 
 This means developers will be scratching their heads and spending time 
 tracking down what was the actual cause of the failure (first in their 
 own changes/module, then in the dependencies). It also means that the CI 
 is wasting cycles on subsequent (failed) attempts to fix the failure, 
 which is disruptive to everyone trying to stage new and unrelated 
 changes. If there is no quick fix, the last resort is to pin one or 
 more of the dependencies' to a particular SHA1 (e.g. from the qt5.git 
 submodule) in the sync.profile until the issue has been resolved, then 
 unpin it again later.
 
 An idea to avoid such disruption would be a CI where you can try to 
 merge your change, and it will build all of qt5.git with it (_and_ run 
 all the module's tests). This could be a separate button in Gerrit, for 
 example.
 
 You then get a report in Gerrit with the status from the complete build 
  tests run. Even if everything succeeds, the change will not actually 
 be integrated; this would just be a tool for getting an indication of 
 potential inter-module problems with your patch. If there are problems, 
 the developer can then either fix the affected modules in advance if 
 possible, or at least give a heads-up and/or prepare patches that will 
 fix the upcoming breakage in the other modules.
 
 What do you think?
 

As Joao mentioned, this relates to a dry run of the CI feature.
I think that we need a method of requesting that some test procedure is
run over your change in gerrit, without also testing some set of everyone
else's changes at the same time, and without requesting that the change
is actually merged into the repository at the end of the test.

If we have that, then we can add all sorts of test procedures into that
workflow.  test all of qt5 on top of my change would be a natural test
to provide.

You mentioned a button in gerrit, but what do you think of soliciting
machine reviewers instead, as you currently do for humans?  e.g.

  1. push change to gerrit
  2. go to web UI, add reviewer named something like
  Test : qt5.git tester : compile/test all of qt5.git with your change
  3. qt5.git tester immediately adds comment I'll start testing your
  change in (~ some time estimate)
  4. qt5.git tester later adds pass or fail comment, with a link to a
  build/test log.

3 could be omitted if that's perceived as too noisy.

You could add multiple testers with different goals this way, and they'd
operate independent from each other.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion for new CI: early warning for qt5.git

2012-01-29 Thread Kent Hansen
Den 30. jan. 2012 06:03, skrev Rohan McGovern:

 As Joao mentioned, this relates to a dry run of the CI feature.
 I think that we need a method of requesting that some test procedure is
 run over your change in gerrit, without also testing some set of everyone
 else's changes at the same time, and without requesting that the change
 is actually merged into the repository at the end of the test.

Definitely, being able to test a change in isolation would be required, 
I think; otherwise you lose the confidence in the test results again 
(was it me, or did that other change sneak in and break everything?).

(That's not a problem specific to testing/dry runs, though; right now 
anyone could be the unlucky person that gets his/her change staged 
together with an unrelated change that breaks stuff. I don't have a good 
suggestion for reducing that problem; Jedrzej had the idea of limiting 
the number of unique commit authors per CI round to some constant N (3 
or 4?).)


 You mentioned a button in gerrit, but what do you think of soliciting
 machine reviewers instead, as you currently do for humans?  e.g.

1. push change to gerrit
2. go to web UI, add reviewer named something like
Test : qt5.git tester : compile/test all of qt5.git with your change
3. qt5.git tester immediately adds comment I'll start testing your
change in (~ some time estimate)
4. qt5.git tester later adds pass or fail comment, with a link to a
build/test log.

 3 could be omitted if that's perceived as too noisy.

 You could add multiple testers with different goals this way, and they'd
 operate independent from each other.

That's a great idea! I'd start using it today. :-)
Maybe the reviewer bots could be displayed as suggested reviewers or 
something to make their existence more known in the web UI.

Regards,
Kent
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development