Re: [Development] Copyright changes

2013-03-02 Thread Rohan McGovern
On Sat, Mar 2, 2013 at 3:34 PM, Laszlo Papp lp...@kde.org wrote:

 I will take you meant QT_MODULE_TO_TEST=qtdeclarative
 qtqa/tests/prebuild/license/tst_licenses.pl

 Yeah, I used this script earlier, but I did not know it is already
 integrated into the CI. Couldn't this be integrated into a bot rather than
 CI? It would be nice to know even before pressing the staging button. It
 does not seem to run long either.


Sure, there is a long standing task for that,
https://bugreports.qt-project.org/browse/QTQAINFRA-309 .
It just waits for somebody to do the work.

The current sanity bot has all checks implemented in a couple of big
loops and is not designed to call out to separate scripts, so this
task may include some refactoring of the sanity bot.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] On the reliability of CI

2012-10-25 Thread Rohan McGovern
Shawn Rutledge said:
 On Thu, Oct 25, 2012 at 01:00:47PM +1000, Rohan McGovern wrote:
  Replying here to some comments on IRC, since I'm rarely online at the
  same time as the others, but I don't want to let all the comments go
  unanswered...
  
   steveire [06:32:44] CI is seriously depresssing. For the last 24 hours
   there has been one successful merge. Many of the others are failing
   because of something in network.
 
 Personally I think the fundamental problem which CI could do better is to 
 triage problems.  Often patches get staged in large batches, so when the
 whole batch fails it's very easy to take a quick look at the failure,
 think that can't possibly be because of what I did, and leave it to 
 someone else who presumably understands his own code better.  But maybe
 that person also takes a while to realize that his code was really the 
 cause.  
 
 I think when a test fails, the CI system should try to break down the 
 patch set in some way.  For example it could divide the patch set in half, 
 arbitrarily, and see if half of them will integrate successfully, then
 the other half, and continue this recursively until the one bad patch is
 found, or at least a smaller subset.
 

I think there are two major flaws in need of attention.

One of them is the batching of changes as you say; that's clearly the
least scalable part of the system right now.

The other is the fact that the results are not accurate enough
(primarily due to flaky tests).

The two problems are related; the presence of flaky tests effectively
poisons any kind of advanced test strategy, like the bisection you
mentioned. Sometimes it's already a challenge to get one test run with
accurate results; a bisection process needs a whole string of accurate
results, so I think it's unlikely to give a satisfactory outcome without
improving the test stability somehow.

That's also why I am resistant to some features commonly suggested to save
test time at the cost of accuracy, such as incremental builds and applying
heuristics to decide what to build/test.

I also wonder if one might spend a lot of time implementing a complex
post-test bisection process, then find it is easily outperformed by a
single human who reads the failure message and the one-line summary of
each change and makes a judgment call about what to re-stage... of
course, human time is worth a lot more than computer time.

Personally I think the logical next step, which could be implemented
in parallel to the current setup without drastic new hardware purchases,
would be to provide a service where changes in gerrit can be submitted
for testing separately from the please merge to stable branch
mechanism.  Right now, if you know your change is risky, you have best
intentions and you would like it tested separately, you have no
mechanism for doing that.

If that system worked well, it seems to me that naturally the de-facto
situation would arise that you should not merge your change to staging
unless it has already passed in this system or you have a good reason
for doing so. Then it could be considered to make the system
semi-mandatory or attempt to build something more complex on top of it
(such as described in Charley's mail).

Extending the Early Warning System (sanity bot and other similar bots)
to also include compile and autotesting might help, but I have a feeling
that system could never be extended to cover as many configurations as
the full CI, which is likely to always have some un-sandboxable or
un-virtualizable platforms.

 At previous jobs I've seen various more or less unpleasant social regimes
 to prevent breaking the build, but didn't like any of those, and they
 are not amenable to distributed projects anyway.  For example, the 
 build master does a build every day, or every Friday, and personally 
 nags people if it fails (that was mid-90's, before continuous
 integration).  Later with CI, maybe you have to pay a fine when you break 
 the build; you have to wear a rubber chicken around your neck for a day; 
 or maybe the rubber chicken is used as a token, you can only integrate a 
 set of patches if you possess the chicken, you must control which set of 
 patches are in the batch (ensure you understand them, or at least 
 understand that they are definitely independent), and you cannot pass 
 on the chicken to someone else until all the tests pass.  Probably 
 most commercial development is done under some such brute-force
 regime.  But this is a technical problem, seems like it should have 
 a technical solution.  I can only imagine for example that Google 
 has a better system for internal development, I just don't know what it is.
 

Trolltech also had a history of some approaches like that.  All
well intentioned, but I think they were relatively ineffective compared to
not letting changes in until after they've passed testing.
___
Development mailing list
Development@qt-project.org
http://lists.qt

[Development] On the reliability of CI

2012-10-24 Thread Rohan McGovern
Replying here to some comments on IRC, since I'm rarely online at the
same time as the others, but I don't want to let all the comments go
unanswered...

 steveire [06:32:44] CI is seriously depresssing. For the last 24 hours
 there has been one successful merge. Many of the others are failing
 because of something in network.

 richmoore1 [06:40:03] steveire: a lot of this seems to be caused by the
 moving of the CI infrstructure to digia. it doesn't seem to be working
 fully yet

I don't think that's true.  As far as I know, the projects migrated to
Digia have been working fine, and only the Nokia system (which has lost
the majority of its support staff) has been having problems.

The Nokia qt-test-server kernel recently started to produce
kernel: [14564774.569761] swapper: page allocation failure. order:4, 
mode:0x4020
after 377 days uptime with few problems.  I don't think this is directly
related to any Nokia - Digia transition activities, rather an
unfortunate coincidence of timing.

 ThorbjornTux [06:54:20] steveire: there was a discussion not that long ago
 in here ... I think that the conclusion were that tests that failed without 
 reason
 was ok to be marked as insignificant  (as you suggested).
 ThorbjornTux [06:54:47] steveire: the problem seems only to be if anybody 
 does it ..

 steveire [06:55:10] Exactly. There used to be people who did things like 
 that.

True, there used to be Nokia employees reading every failure report and
chasing up apparently unstable tests, either trying to fix the tests, or
acknowledge them via bug reports and marking them insignificant.
Those people are gone and the test results are likely to be less stable
until they're replaced - either by more people doing the same job, or
an automated solution to achieve stable test results from an unstable
product.

 jpnurmi [07:30:23] steveire: np, those tests have been annoying me several 
 times :)

 steveire [07:31:01] Yes. But why did I get so much pushback on fixing it? 
 Something
 for qt-project to think about.

 sahumada [07:31:35] because you are not fixing it .. you are hiding it :)

 steveire [07:32:23] I'm fixing the problem that nothing has any chance of 
 integrating.
 With your attitude, insignificant_test and QSKIP would not exist or be needed.

I think it's great to have more people actively doing something about
failing tests, as long as they take responsibility for their actions.
The alternative of, when you see a flaky test, waiting for someone to
do something, is not going to work (any more?)

It might be good to have some guidelines about the best ways to handle
flaky tests, since there are several options.

 torarne [09:18:47] anyone got powers to put things into qt5.git
 without the ci getting in the way?

There's no built-in mechanism to bypass the system.  We haven't needed
one so far, we've always managed to handle problems as they arise.
If it were an acceptable option to bypass the system when problems occur,
it seems to me it would greatly reduce the incentive to fix the
problems.

 steveire [10:34:22] Right. Anyone who can do anything doesn't really
 care. This is the kind of thing that should be fixable quickly

The first part is false.  I care, and I can do something - just not at
the time you've reported the issue (although I was probably awake, I
made a choice a while ago to minimize time spent fixing problems outside
of normal working hours, because I felt it was burning me out).

Actually, every CI failure which is not related to any of the changes
under test slightly erodes my soul.
I can guarantee I've been at least as frustrated as any users of the
system, during its most unreliable times.

The latter part is true and the problem was fixed quickly (for some
subjective value of quickly), once it was known.

 richmoore1 [10:36:01] doing CI from one side of the world to the other
 is optimistic

Yup, we used to have the Pulse server and all clients located together
in Brisbane.
The migration to Jenkins meant the server was moved to Europe.
We have suffered a little bit from that.
Luckily, this will soon be over; just a few more days and everything
will be operating out of Europe.

 steveire [10:36:50] And yet, there's been no communication on the mailing
 list about the network problems (affecting everyone staging anything),
 despite the fact that it's been known since Monday at least.
 steveire [10:39:19] The insignification should have been done on
 Monday imo

I didn't understand this part.
There has been no known problem since Monday, this seems to be a false
assumption.
The specific network problem you're complaining about was reported to
JIRA by you, last night at 9pm my time, and fixed by me within the first
30 minutes of my working day today.
Reporting problems greatly increases the likelihood of a timely fix.

You'll be able to get technical support within your own timezone once
the transition to Digia completes.

Please note that several days of instability doesn't imply 

[Development] Nominating Janne Anttila as Approver

2012-10-16 Thread Rohan McGovern
I hereby nominate Janne Anttila as an approver.

Janne has a long history with Qt, going back (at least?) to the initial
Qt for S60 port in 2008.  In the past several years, Janne has contributed
many fixes to all platforms (especially, it seems, those platforms which
nobody else likes to work on :)

I count over 500 commits in Qt authored or reviewed by Janne.

Recently, Janne has also been leading the creation of Digia's new test farm
to be used in the Qt Project CI system.

See Janne's dashboard and recently merged patches for further evidence
of his many contributions:

  https://codereview.qt-project.org/#dashboard,1000971
  
https://codereview.qt-project.org/#q,owner:janne.anttila%2540digia.com+status:merged,n,z
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Issue when setting up the network test server

2012-10-14 Thread Rohan McGovern
Sébastien Fricker said:
 Hi,
 I had a try to follow 
 http://qt.gitorious.org/qtqa/sysadmin/blobs/master/README.network_test_server.txt
 to setup the network test server for the code coverage statistic computation 
 (http://download.froglogic.com/public/qt5-squishcoco-report/)
  
 I'm facing on an issue:
 To reconfigure, run: /var/qtqa/sysadmin/puppet/nodecfg.pl -interactive
 + echo Running puppet...
 Running puppet...
 + /var/qtqa/sysadmin/puppet/sync_and_run.pl
 Use of uninitialized value in numeric ge (=) at 
 /var/qtqa/sysadmin/puppet/sync_and_run.pl line 374.
 Use of uninitialized value in numeric ge (=) at 
 /var/qtqa/sysadmin/puppet/sync_and_run.pl line 374.
 Could not parse for environment production: Syntax error at '{'; expected '}' 
 at /var/qtqa/sysadmin/puppet/manifests/nodes.pp:13
 

Hi Sébastien,

I think you will need to upgrade your version of puppet.
Can you please try puppet =2.7.19?

On Ubuntu 10.04 (suggested platform for network test server), that can
be installed from this repo: 'deb http://apt.puppetlabs.com/ lucid main'

Actually, the bootstrap/ubuntu1004_bootstrap.sh script in the sysadmin repo was
supposed to already set up that repository for you.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] No recent commit in qt5 git?

2012-10-10 Thread Rohan McGovern
Thiago Macieira said:
 On quarta-feira, 10 de outubro de 2012 15.01.56, Stephen Chu wrote:
  The last commit in http://qt.gitorious.org/qt/qt5 was a week ago. Is
  it frozen for release?
 
 No. It's blocked on failing tests. Help fix them and it will go in sooner :-)
 

To elaborate ... you can track qt5 submodule update attempts from this
dashboard:

  https://codereview.qt-project.org/#dashboard,1000191

If ever you see that qt5 hasn't been updated in a while, chances are you
will find a change on that dashboard with some compile or test failures
attached. There aren't many people looking into those failures nowadays,
so help is always appreciated.

Note: it's also fine for people to create and push qt5 submodule updates
themselves (e.g. omitting the changes which are causing problems).
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Integration system problems

2012-10-09 Thread Rohan McGovern
Peter Varga said:
 Hi all,
 
 I've noticed that merging patches into QtDeclarative repository doesn't
 really work, see https://codereview.qt-project.org/#change,36116
 I suppose that the problem is in the integration system. The build log
 of my last attempt says
 
 HEAD is now at ae9859f crash fix in designersupport
 Initialized empty Git repository in c:/work/build/_testconfig/.git/
 From git://bq-git.apac.nokia.com/codereview/qtqa/testconfig
  * [new branch]  master - mirror/master
 fatal: The remote end hung up unexpectedly
 Build step 'Conditional step (single)' marked build as failure
 Build step 'Groovy Postbuild' marked build as failure
 Finished: FAILURE
 
 Does this repository
 (git://bq-git.apac.nokia.com/codereview/qtqa/testconfig) still exist?
 Could anybody inform me about the current state of the integration
 system? Is it working?
 

That repository still exists.

The system is generally working, but with a higher than usual rate of
errors. Please go ahead and stage your change(s) again when you
encounter system errors like that.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] bool QProcess::waitForFinished() Race Condition?

2012-09-26 Thread Rohan McGovern
d3fault said:
 Unable to confirm the race condition, which is why I'm posting here
 instead of filing the bug report. Isn't there a race condition between
 calling QProcess::start() and QProcess::waitForFinished()?
 
 Can't the OS switch contexts at ANY TIME (in this case, between the
 start() and waitForFinished() calls)?
 
 Scenario:
 
 QProcess proc;
 proc.start(aVerySmallBinary);
 //OS switches contexts by sheer chance right here to the newly started
 process. If the process is short enough it could finish and exit
 cleanly before executing the following line
 bool finished = proc.waitForFinished();
 //finished should be true, but in the race condition case it will be
 false because waitForFinished returns false ... if this QProcess is
 already finished (doc).

That shouldn't be a race condition, because you didn't yield to the
event loop between start() and waitForFinished(), so any events relating
to the termination of the process have not been processed yet.

If you were to stick a processEvents() between start() and
waitForFinished(), then you'd have a race condition.

Note the docs say  ... if this QProcess is already finished, which
is a different thing from whether the underlying native process is
already finished :)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Project CI System : Windows 7 machines with some problems

2012-09-02 Thread Rohan McGovern
Sergio Ahumada said:
 Hi,
 
 We've found that Windows 7 machines are not up and running at the moment 
 so we've decided to disable them from Qt Project CI system until we can 
 fix them.
 
 This means that you might need to be a little bit more careful with what 
 you stage during the weekend since they might introduce some errors due 
 to this platform not being tested.
 
 This applies for all Qt5 modules and Qt 4.8 CIs.
 
 As soon as this problem gets fixed, we will enabled them again and will 
 check/fix possible errors on Windows.
 

The Windows 7 test configurations hosts are re-enabled again and no
errors observed so far.
There was a scripting error which caused the hosts to reboot into the
wrong user account, sorry about that.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Build Qt 5 with MinGW 4.7?

2012-08-28 Thread Rohan McGovern
Andreas Holzammer said:
 Am 26.08.2012 16:23, schrieb Stephen Chu:
  On 8/26/12 10:03 AM, Stephen Chu wrote:
  
 
  Thanks for pointing out the build differences. I didn't realize there
  are so many different builds of the same MinGW version. Switching to
  mingw-builds get me further. But then I got this error:
 
  cp qmake.exe C:\Qt\5.0\qtbase\bin\qmake.exe
  g++: error: tmp/obj/debug_shared/arch.o: No such file or directory
  mingw32-make: *** [arch.exe] Error 1
  Could not find output file: No such file or directory
  *** qtbase/configure exited with non-zero status.
 
  I went to qtbase\config.text\arch and manually ran mingw32-make to
  create the obj file in question. Then re-run configure and it worked.
  
  OK. I figured out that this error is caused by git in my PATH. I think 
  sh.exe in git\bin is causing configure some issues. Removing git from 
  PATH and configure finished without issue.
  
  qt5_tool requires git in PATH so I'll just have to remember changing 
  PATH back and forth between clean up/update and configure.
 
 If you are using msysgit, there is a folder cmd, which has a forward
 batch file for just this issue. If you are using something else, you can
 also create yourself a forward batch file which has either a absolute
 path, or another way of finding the git.exe

Just a small correction to avoid any possible confusion...
Recently[1], this has been changed so that the git cmd folder also contains
a git.exe.  So please note that the latest versions of msysgit actually
ship _two_ git.exe and no git.cmd or git.bat.

[1]
https://github.com/msysgit/msysgit/commit/893b221982321303e1a31b2098cd115c65ca49ab
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] The containers in the containers branch

2012-07-31 Thread Rohan McGovern
Oswald Buddenhagen said:
 
  For future reference, whoever is bypassing the CI to change the SHA1 of
  a branch should also issue a command like this to update the staging
  branch:
  
ssh -p 29418 codereview.qt-project.org gerrit staging-rebuild --project 
  qt/qtbase --branch containers
  
  , which I have now done, fixing the conflict.
 
 that's slight overkill. when you direct-push to a branch with no
 activity, you can just direct-push the staging branch as well - you just
 edit the command line, replacing heads with staging.

Doing the staging-rebuild command would correctly take into account any
changes which are currently staged (if any).  If you do a force push to
the staging branch, changes could be left in 'staged' state in the
database but not actually be present in the staging branch.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] The containers in the containers branch

2012-07-30 Thread Rohan McGovern
Thiago Macieira said:
 On quinta-feira, 26 de julho de 2012 13.27.16, Thiago Macieira wrote:
  I'll abandon all changes still open in one week. They're cluttering my 
  dashboard.
 
 Uh... André has approved one commit and tried to stage it, but it failed. 
 Gerrit claims a conflict.
 
 Should be easy to fix...
 
 ... except that the commits are already rebased and there are no new commits 
 in that branch. Can someone check to see what we're doing wrong?
 

The conflict is with the staging branch (refs/staging/containers).
That was 8141e34280a92088a527e0935765ad8ba8e92be8.

It looks to me like the 'containers' branch has been used inconsistently
with respect to CI, like somebody fast-forwarded it
from 8141e34280a92088a527e0935765ad8ba8e92be8 to
7a0b8d580df8d6b0012d11f61299046682f4d18a rather than putting a merge
commit through CI.  Apparently, doing that will not automatically cause
the staging branch to be updated.

For future reference, whoever is bypassing the CI to change the SHA1 of
a branch should also issue a command like this to update the staging
branch:

  ssh -p 29418 codereview.qt-project.org gerrit staging-rebuild --project 
qt/qtbase --branch containers

, which I have now done, fixing the conflict.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread Rohan McGovern
song.7@nokia.com said:
 Hi,
 
 Now we can build out the single libqt5.so (using ARM toolchain) by:
 
 OPTS += -static  to create the static qt libs
 ar -x libQtXX.a to extract the .o files
 armlink --fpic --shared *.o -o libqt5.so to generate final single so
 
 But the readelf -s libqt5.so | grep UND:
 
  4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
  5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
  6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
  7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
  8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
  9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati
 
 Does anyone know what is this mangled symbol _ZTIXX in C++ ?
 

The 'c++filt' program can answer this.

  $ echo _ZTI12QFocusHelper | c++filt
  typeinfo for QFocusHelper
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread Rohan McGovern
Liu Song.7 (Nokia-MP/Beijing) said:
 Thanks, are such undefined symbols normal ? And is there a way to fix it ?

Right now, the only thing which comes to mind is if you have somehow
mixed some -frtti and -fno-rtti objects.

 
 -Original Message-
 From: Mcgovern Rohan (Nokia-MP/Brisbane) 
 Sent: Tuesday, July 24, 2012 11:58 AM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius (Nokia-MP/Austin); 
 development; thiago.macieira
 Subject: Re: [Development] Use static qt libraries
 Importance: High
 
 song.7@nokia.com said:
  Hi,
  
  Now we can build out the single libqt5.so (using ARM toolchain) by:
  
  OPTS += -static  to create the static qt libs
  ar -x libQtXX.a to extract the .o files
  armlink --fpic --shared *.o -o libqt5.so to generate final single so
  
  But the readelf -s libqt5.so | grep UND:
  
   4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
   5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
   6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
   7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
   8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
   9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati
  
  Does anyone know what is this mangled symbol _ZTIXX in C++ ?
  
 
 The 'c++filt' program can answer this.
 
   $ echo _ZTI12QFocusHelper | c++filt
   typeinfo for QFocusHelper
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Project CI outage on 19th-20th July 2012

2012-07-19 Thread Rohan McGovern
Rohan McGovern said:
 Hi all,
 
 Please be advised that tonight/tomorrow the Qt Project CI system
 will have a temporary outage for planned maintenance of a site UPS.
 
 The system will stop accepting new builds at:
 
   18:30 UTC, 19th
   20:30 CET, 19th
   04:30 AEST, 20th
 
 The outage is estimated to last somewhere from 4-7 hours.
 
 It is fine to stage changes in this time, but they won't make progress
 until the maintenance is completed.

The work is now completed and the system is operating as usual.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Qt Project CI outage on 19th-20th July 2012

2012-07-18 Thread Rohan McGovern
Hi all,

Please be advised that tonight/tomorrow the Qt Project CI system
will have a temporary outage for planned maintenance of a site UPS.

The system will stop accepting new builds at:

  18:30 UTC, 19th
  20:30 CET, 19th
  04:30 AEST, 20th

The outage is estimated to last somewhere from 4-7 hours.

It is fine to stage changes in this time, but they won't make progress
until the maintenance is completed.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] buildsystem branches (about to be) integrated

2012-06-26 Thread Rohan McGovern
Peter Kümmel said:
 On 26.06.2012 12:28, Oswald Buddenhagen wrote:
  On Mon, Jun 25, 2012 at 12:56:15PM +0200, ext Peter Kümmel wrote:
  Shadow builds [...] are broken:
 
  fix integrated
 
 Yes it works now. Thanks!
 
 Wouldn't this be a test case for the build server?
 

Yes, certainly.  Currently, shadow builds are tested only on Linux, and
that configuration has source dir != build dir and build dir != install
dir.

Covering all of the source/build/install cases and having at least one
shadow build each on the big three (Linux, Mac, Win) would be great.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Code of conduct.

2012-06-21 Thread Rohan McGovern
Alexis Menard said:
 Hi,
 
 When I see recent behaviors, wording, comments on various mailing
 lists, blog posts, or IRC against major contributors or regular
 contributor I feel sad about it. I feel sad to hear bashing, complains
 in a way they should not be said, i.e. impolite, arrogant, aggressive.
 While I do understand people have strong opinion about feature A
 against feature B, QML vs C++, whatever against whatever, it is not a
 reason to not behave like educated person. I find it very demotivating
 especially when we all need to act as strong community to make Qt an
 even better framework.
 
 We don't all like each others but that is fine. But we are not forced
 to accept people polluting the environment, the professionalism on the
 project especially when it starts hurting motivation of people
 *actually* contributing to the project. These people are not welcomed.
 
 Should we have a code of conduct just like KDE or Gnome to specify
 what we expect from community members in term of behavior between each
 other? If people don't agree with this code of conduct then they
 should not participate to the project. It's not a law neither a
 removing liberty to people to raise their concerns, it just a way to
 make sure people will do it in a nice manner and if they don't they
 can just leave.
 

When I read your mail, I tried to think which recent incidents you were
referring to.  I could only think of cases where non-contributors have
been disrespectful of contributors.  As far as I can tell, Qt Project
contributors' interaction with each other is not a problem.

Having a code of conduct may anyway be a good thing, but I
don't think it would have made a difference to the behavior from
non-contributors I think you're referring to in your mail.
No matter what you do, jerks will be jerks
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] buildsystem branches (about to be) integrated

2012-06-20 Thread Rohan McGovern
Oswald Buddenhagen said:
 moin,
 
 the buildsystem branch of qtbase is currently being integrated. this is
 ~120 commits worth of qmake  project file fixes and cleanups. there are
 some changes to how modularization (in particular configure tests) is
 handled, and cross-building should be supported without hacks finally.
 
 the immediate impact:
 - lots of build scripts which employ various hacks will instantly
   break. don't panic and (mostly) just delete some code from them.
   use
   configure -xplatform spec -sysroot root
   make
   as you would intuitively expect. don't play tricks with funny qmake
   and make invocations.
 - the other modules will spit out lots of warnings now.
   *DON'T* do anything about them for now. i have patches prepared for
   all modules already. i will explicitly add the module owners to the
   reviews. *don't* stage anything yourself.
   once my patches are through, there will be still some warnings left.
   you'll be invited to fix them at this point.
 - some build configurations will work even worse than before until
   everything is integrated. the only variants which are expected to be
   safe are developer builds without -prefix and module-by-module builds
   with -prefix.
 
 catch me on IRC if something breaks for you and no obvious solution
 seems to help. but remember that not every breakage is due to this
 branch being integrated. ;)

The qtbase merge has caused examples and tests to be silently disabled
in all Linux and Mac CI builds.  That is fixed by
https://codereview.qt-project.org/29088 .  Please refrain from staging
risky changes until that is integrated.

Windows builds and projects other than qtbase seem to be unaffected.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] buildsystem branches (about to be) integrated

2012-06-19 Thread Rohan McGovern
Stephen Chu said:
 
 Is this buildsystem branch the one we get when we just clone qt5 clean? 
 By that I mean if I go through the steps documented here: 
 http://qt-project.org/wiki/Building-Qt-5-from-Git is that the same as 
 this branch.
 

Hi Stephen,

No, the buildsystem branch has not yet reached the qt5 repository.

The fact that a large qt5 update was merged around the same time as this
email is just a coincidence.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Can't switch submodules to master and Mac build still broken

2012-06-17 Thread Rohan McGovern
Stephen Chu said:
 I still can't get Qt 5 build on OS X for the merged code 
 (https://codereview.qt-project.org/#change,28604) hasn't showed up in Qt 
 5 git default yet. So I want to to try moving modules to master to get 
 the fixes by the instruction here: 
 http://qt-project.org/wiki/Building-Qt-5-from-Git#181b27e32ae791e987cb19fced190543
 
 With qt5_tool method I got:
 
 Examining: qt3d url: git://gitorious.org/qt/qt3d.git ### [qt3d] 
 /usr/bin/git fetch --all
 Fetching origin
 Fetching gerrit
 ssh: connect to host codereview.qt-project.org port 22: Connection refused

This last message indicates something is wrong with the configuration.
It should be attempting to connect to port 29418, not port 22.

Maybe you can try with standard git commands instead of qt5_tool?
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 4.8 autotests need attention; over 100 insignificant tests!

2012-06-13 Thread Rohan McGovern
Thiago Macieira said:
 On quarta-feira, 13 de junho de 2012 17.32.43, Friedemann Kleint wrote:
  In  Qt 5, this was solved by introducing the QFINDTESTDATA macro, but 
  porting it to Qt 4 is a non-trivial task.
  
  https://codereview.qt-project.org/#change,28579 (Fix QLibrary test) and 
  https://codereview.qt-project.org/#change,27579 (QApplication) 
  illustrate what needs to be done for such cases:
  
  - Removing CONFIG -= app_bundle causes the Mac binary to be created in 
  the test root folder
  
  - On Windows, cd up one level if the current working directory is 
  'debug' or 'release' in the test constructor
 
 Another solution we used to use is to add to the test's .pro file:
 
 DEFINES += SRCDIR=\\\$$PWD/\\\
 
 Then all file references should be prefixed with SRCDIR. E.g:
 
 QFile f(SRCDIR ./testdata);
 
 Don't forget the space! It's an error to write SRCDIR./testdata in C++11.
 

Please avoid this one in Qt 5.
It makes the test not able to work when deployed to a device, unless you
explicitly recreate the whole SRCDIR directory structure on the device
or introduce a separate code path in the test.
QFINDTESTDATA should be preferred, since it already searches the source
directory.

It is reasonable to fix the Qt 4.8 tests in this way, though.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] More CI people?

2012-06-13 Thread Rohan McGovern
Girish Ramakrishnan said:
 Hi QA team,
 I think today is the second day, CI is getting stuck. I wish I could
 just restart the integration. Usually, it's easy to let Rohan know if
 we are somewhere in his timezone. But if we are not in his timezone,
 it's quite frustrating.
 
 There's also the case where it's a huge time save to abort a current
 integration, if it's known in advance that it's going to fail.
 
 With that in mind, would it be possible for someone to have extra QA
 backups in mostly all timezones. Maybe there's already someone but I
 don't know who they are. I know only rohan since he is active on irc.
 

In Europe, we also have Sergio (sahumada on IRC) and Jyri (tahtela on IRC).
However, it seems to be holiday time in Europe.  I am pretty sure the
issues from last two days would have been resolved more quickly otherwise.

 And yes, I volunteer if required.
 

Great :) That will mean getting involved in CI-related code reviews and
bug reports, and being added to some list to receive error alerts from
the system, etc.  So if you like, just let us know and we can start
adding you to these.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Becoming a Tier 1 platform and the CI System

2012-06-06 Thread Rohan McGovern
Sean Harmer said:
 On Wednesday 06 June 2012 12:02:23 lars.kn...@nokia.com wrote:
  On 6/6/12 1:56 PM, ext Sean Harmer sean.har...@kdab.com wrote:
  I understand and integrating into the CI system would seem by far the
  most
  sensible way to go in terms of maintainability, reducing man-power at
  release
  time and preventing introduction of regressions.
  
  Absolutely. But that requires that someone steps up and creates a CI
  infrastructure we can use. The current one is based on a commercial
  solution that Nokia unfortunately can't hand out to everybody. It should
  however be possible to use the existing scripts (with some modifications)
  on Jenkins.
 
 Can you elucidate on what you mean by someone steps up and creates a CI 
 infrastructure please?
 
 Do you mean that the existing one needs hooks adding to allow additional 
 external nodes to be plugged in? Or that new hardware, hosting, CI tool and 
 everything else is needed from fresh? Or something in between?
 

It means that the current CI infrastructure is operated by Nokia and
can't have build nodes plugged in from outside of Nokia premises.  So,
if you need to manage your own build nodes, there is currently no way to
integrate with the Qt Project CI system.  Fixing this is a significant
project which I am not aware of anyone currently working on :(

However, if testing (at least compile testing) for your platform can be
done with commodity hardware and freely available software, and is not
particularly demanding in other respects, there's a possibility of
making progress with the current setup.  If that's the case, please
create a task with some of the technical details on
https://bugreports.qt-project.org/browse/QTQAINFRA .
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Binary incompatible changes to Qt 4.8

2012-05-29 Thread Rohan McGovern
Turunen Tuukka said:
  
  If feasible, I would like to see both Mac OS X 10.8 and Windows 8 (to
 the
  extent it is know at that time) working in the 4.8.3 release, as well as
  Ubuntu 12.04.
  
  In addition to making the obvious fixes it would be important to do
  regular CI on these platforms as well, if possible. Do you think it is
  feasible? 
  
 
 Are you asking for those three platforms to be added to the Qt Project
 CI?
 
 Or more asking if it is possible, which you answered to ;)
 
 Unless a configuration is not in the CI system, I do not see it possible
 to say it is a reference / Tier 1 configuration. It can be made to work,
 but is prone to errors.
 
 As 4.8 will be a long lived platform, it would be good to add these new
 operating systems to the CI and testing system. In case of a 'normal patch
 release' this naturally would not be so important.
 
 Do you think these can be added after 4.8.3 (which is planned to be
 released in August, depending a bit on the 5.0.0 schedule)?
 

Right now, Ubuntu 12.04 is the only one to which I can give a confident
yes.  For OSX 10.8 and Windows 8, we need more data.  I'm trying to
get a better answer for those, stay tuned.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Build broke on Windows 7 64bit, whatever out-of-source or in-source-tree

2012-05-27 Thread Rohan McGovern
Loaden said:
 Windows SDK 7.1  ActivePerl 64bit  Python 2.7.3
 Any comments?
 

Maybe some comments if you share the build log :)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Current qt5 version from git does not compile with VS2010

2012-05-22 Thread Rohan McGovern
Helmut said:
 Some days ago I wrote:
  a few days after the alpha release of qt5 the git version (with git pull 
  qt5; perl init-repository -f) stopped to compile with Visual Studio 2010.
  Compiling qqmlopenmetaobject.cpp results in this error:
  d:\qt\qt5\qtdeclarative\include\qtqml\5.0.0\qtqml\private\../../../../../src/qml/qml/v8/qv8_p.h(42)
   : fatal error C1083: Cannot open include file: 'private/v8.h': No such 
  file or  directory
 
 I found what the problem was: I am using msys git which has problems with 
 file permissions. After adding git config-global core.filemode false the 
 checkout was ok.
 But I still cannot compile.
 I did in my qt5 clone (D:\Qt\qt5):
  - git submodule foreach --recursive 'git clean -dffx'  git clean -dffx
  - git pull
  - perl init-repository -f
  - configure -prefix %CD%\qtbase -confirm-license -opensource -make libs 
 -nomake tests -nomake examples -no-incredibuild-xge -release -fast 1 
 configure.log 21
  - perl build 1build.log 21
 

Hi Helmut,

Would you like to try removing jom.exe from PATH and trying again?

There is a known build system issue
https://bugreports.qt-project.org/browse/QTBUG-23376 which can cause
some errors of this nature. In theory, the build script already has
a workaround, but nmake may be worth a try for you.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] qtphonon's status.

2012-05-20 Thread Rohan McGovern
Stephen Kelly said:
 On Thursday, May 17, 2012 18:31:43 lars.kn...@nokia.com wrote:
  I don't want to maintain a fork of phonon on qt-project if the developers
  decided they want to continue within the KDE infrastructure. phonon should
  have one upstream place where it is being developed.
  
  I'd say let's deprecate the module and remove it from qt5.git. We can keep
  the code around for some time if someone sees some value in it.
 
 I don't understand this part.
 
 What's the difference between webkit and phonon in this regard?
 

One difference is that qtwebkit in Qt5 is sometimes updated by the
QtWebKit developers to point to a snapshot expected to work with the
rest of qt5.git (so that e.g. the qtwebkit SHA1 pointed to by the
qt-v5.0.0-alpha1 tag in qt5.git is accurate).
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Bugreports for Playground projects

2012-05-20 Thread Rohan McGovern
Laszlo Papp said:
 
 The Qt Project lacks Jira maintainance man power, or what is the reason 
 behind ?
 

I think so ... certainly nobody seems passionate about it, at least.
And nobody has it as one of their primary responsibilities as far as I
know.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Build issue with configure -developer-build for qtbase?

2012-05-15 Thread Rohan McGovern
Thiago Macieira said:
  I am guessing you all have transitioned to 64 bits for your build
  system, etc.   What is your policy statement on 32 bit systems?   Try
  not break them?  They deserve to get broken? ???   For me I will
  probably just transition my work to 64 bits even if our legacy stays 32
  bits for a while longer.
 
 We have not all transitioned. In fact, I'm almost sure that all the CI builds 
 are done on 32-bit.

Not quite, there's a mixture of 32-bit and 64-bit.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Cross build failed of unsupported/win32-g++-cross mkspecs

2012-05-15 Thread Rohan McGovern
k blammo said:
 On 16/05/2012 06:42, Loaden wrote:
  Hi, All!
  I want cross build Qt5.0 on Ubuntu 12.04, because I deleted all Windows
  OS on my laptop.
  But now I have a trouble of the cross build. So, I need you help in here.
 
 I just noticed this at the end of your configure log:
 
 + /home/loaden/qpSOFT/Projects/BuildQt5-w32/qtbase/bin/qmake 
 /home/loaden/qpSOFT/Projects/Qt5/qt.pro
 
 What is that doing there? You really should be running make at that 
 point, not qmake.
 

That is being run by configure.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Current qt5 version from git does not compile with VS2010

2012-05-14 Thread Rohan McGovern
Helmut said:
 Hi,
 
 a few days after the alpha release of qt5 the git version (with git pull qt5; 
 perl init-repository -f) stopped to compile with Visual Studio 2010.
 Compiling qqmlopenmetaobject.cpp results in this error:
 d:\qt\qt5\qtdeclarative\include\qtqml\5.0.0\qtqml\private\../../../../../src/qml/qml/v8/qv8_p.h(42)
  : fatal error C1083: Cannot open include file: 'private/v8.h': No such file 
 or directory
 
 The include directives are:
 -I..\..\..\qtbase\include\QtCore\5.0.0 
 -I..\..\..\qtbase\include\QtCore\5.0.0\QtCore 
 -I..\..\..\qtbase\include\QtCore -I..\..\..\qtbase\include\QtNetwork 
 -I..\..\..\qtbase\include -I..\..\include\QtQml\5.0.0 
 -I..\..\include\QtQml\5.0.0\QtQml -I..\..\include -I..\..\include\QtQml 
 -I..\..\include -Itmp -Ianimations -Idebug 
 -I..\..\..\qtbase\mkspecs\win32-msvc2010
 
 I have a v8.h in:
 
 D:\Qt\qt5\qtjsbackend\include\QtV8\5.0.0\QtV8\private
 D:\Qt\qt5\qtjsbackend\src\3rdparty\v8\include
 D:\Qt\qt5\qtjsbackend\src\3rdparty\v8\src
 D:\Qt\qt5\qtwebkit\Source\WebKit\qt\v8\ForwardingHeaders
 
 The first one contains:
 #include ../../../../../src/v8/../3rdparty/v8/include/v8.h
 

Hi Helmut,

Generally speaking, Qt5 is continuously tested with MSVC2010, and it is
able to be compiled successfully.  Here is a recent, passing compile
log:

  
http://testresults.qt-project.org/ci/Qt5_master_Integration/latest-success/win32-msvc2010_Windows_7/log.txt.gz

Maybe you could provide your full compile log, for comparison?
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] important: upcoming rename of _qpa.h to _p.h

2012-05-08 Thread Rohan McGovern
Girish Ramakrishnan said:
 Hi,
 
 On Tue, May 8, 2012 at 3:07 AM, Girish Ramakrishnan
 gir...@forwardbias.in wrote:
  The change landed. For some reason, the ci is failing compile in all
  other modules. Works locally with shadow builds but not on CI. I am on
  it.
 
 
 Fix is integrating: https://codereview.qt-project.org/#change,25570.
 Sorry for blocking the CI.
 

Ideally this would have been caught by the reverse dependency qtdeclarative
test in qtbase's CI, but apparently the issue only affected shadow builds,
which weren't covered.

We'll add a shadow build revdep-qtdeclarative config to prevent similar
issues in the future.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.0 beta and final timelines

2012-05-02 Thread Rohan McGovern
casper.vandonde...@nokia.com said:
 
 In the meantime we can/should think about doing another alpha. Thiago
 proposed that one option here could be to simply release the first source
 package that works on all platforms as the second alpha. Like that we
 don't 
 use any additional resources and time on creating that second alpha.
 
 Cheers,
 Lars
 
 
 I assume we would want qt5.git integration to happen first?
 That hasn't happened since April 18th, a lot of changes are still waiting
 for that to happen (I think all the Qurl/QRegExp) stuff etc.
 

I think that we do ... the lack of integration is a genuine reflection
that the master of all modules are currently not working together.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] [CI] reverse dependency testing

2012-05-01 Thread Rohan McGovern
A while back, it was requested that the Qt Project CI should reject
incoming changes to QtBase if they would cause compile or autotest
failures in QtDeclarative.

That is now implemented, which should reduce the risk of accidental
source or behavior incompatible changes in qtbase.

However, if you need to _deliberately_ do some changes in qtbase which
would break qtdeclarative, it's necessary to do some additional steps.
These are documented, along with a few other bits of information, on the
wiki at http://wiki.qt-project.org/CI:_Revdep .

The reverse dependency testing is not yet set to enforcing, so it won't
block changes.  Assuming no objections, we'll probably set it enforcing
on this Thursday, 3rd May (if it is passing at that time).

Similar reverse dependency testing can be added for other modules on
request.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] [CI] reverse dependency testing

2012-05-01 Thread Rohan McGovern
Storm-Olsen Marius (Nokia-MP/Austin) said:
 Looks good, but please move the details over to the other wiki.
 The Mediawiki installation at wiki.qt-project.org has been deprecated since 
 DevNet was moved over and we got www.qt-project.org/wiki.
 

Thanks, then there should be some message on the deprecated wiki, e.g.
where the Login procedures have been improved message is now.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Can't build docs anymore!

2012-04-16 Thread Rohan McGovern
Loaden said:
 I don't think this is a good idea, realy.
 We should find out a better way.
 

Yes, that was only a workaround.

qtdoc/doc/doc.pri should be modified to avoid building such a huge
command.  As far as I know, it is valid to set an environment variable
in one make command and make use of it in the next, so I don't think
this needs to be built as a single huge command.

Maybe even the following patch is already enough, but I didn't test it:

  diff --git a/doc/doc.pri b/doc/doc.pri
  index c11b14d..fd41803 100644
  --- a/doc/doc.pri
  +++ b/doc/doc.pri
  @@ -18,7 +18,7 @@ $$unixstyle {
   SEP =
   } else {
   SET = set
  -SEP = 
  +SEP = $$escape_expand(\\n\\t)
   }
   
   # The module names correspond to the names of files in qtbase/mkspecs/modules
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Towards a Qt 5 beta

2012-04-15 Thread Rohan McGovern
jason.mcdon...@nokia.com said:
  Random question of the day: do you happen to have stats about how
  often those insignificant tests actually fail? That should help to
  figure out which ones are actually working, and therefore should not
  be marked as insignificant.
 
 I'm glad you asked.  I spent some time yesterday and today doing that 
 analysis for the 40-odd insignificant tests that had no Jira task associated.
 
 I used the data from the last eleven CI runs for each module (times eight 
 configs for which autotests are executed).  That's not hugely statistically 
 significant, but it's not that easy to pull large numbers of build logs out 
 of the CI system manually through the web interface.  (Any CI folks who can 
 tell me how to extract/search all the stored logs?)

I'm using this pattern (which has some minor problems not relevant for
any test I've looked at so far):

  from=02238
  to=02538
  prj=QtBase_master_Integration
  cfg=win32-msvc2010_Windows_7
  test=tst_QLocale
  trailing_lines=3
  for i in $(seq -w $from $to); do
  echo $i:
  wget --quiet -O - 
http://testresults.qt-project.org/ci/$prj/build_$i/$cfg/log.txt.gz |
zcat |
egrep -A $trailing_lines Testing $test ||
echo did not run
  echo 
  done 21 | tee results_${test}.txt

... and scanning at least one hundred logs.

Having a transparent caching proxy between self and
testresults.qt-project.org helps a lot.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Towards a Qt 5 beta

2012-04-11 Thread Rohan McGovern
marius.storm-ol...@nokia.com said:
 On 04/11/2012 07:49 AM, ext lars.kn...@nokia.commailto:lars.kn...@nokia.com 
 wrote:
 
 ** insignificant tests **
 
 We still have quite some tests (around 110 in total) marked as
 insignificant. This means they will be ignored by the CI system. Any help
 to reduce this number would be great.
 
 
 
 I've grepped through all the modules to create a list of these insignificant 
 tests, and listed them below.
 
 Please note that a test marked as insignificant in essence provides us with 
 zero coverage, since all results from those test cases (although run) are 
 completely ignored.
 
 Yes, we used to have a (quite large) list of black-listed tests for Qt 4 as 
 well. However, back then we could mark only a test function as black-listed, 
 while the rest of the testcase would still provide some test coverage. That's 
 an important difference.
 
 IMO, if there are tasks we cannot repair, due to the tests being inheritly 
 unstable, or our infrastructure not being able to handle it, then we should 
 remove them. Having test cases which adds no value, but is hard to see unless 
 you find the insignificant_test keyword, is bad since you don't know 
 exactly what the coverage is and where it is lacking.
 
 How should we mark that we are working on a specific test case to fix the 
 instability etc, to ensure we don't do double work? Suggestions? Is a Jira 
 task with 'module: insignificant test name' good enough?
 

Tests marked as insignificant _should_ have had a task raised
when they were marked as such - for those, it would make sense for the
person who is working on it to assign the task to themselves and/or add
a comment.

In reality it seems like quite many tests were marked as insignificant
with no task raised, it would probably make sense to raise a task when
beginning work on it.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] The qtbase CI should run the qtdeclarative tests

2012-03-19 Thread Rohan McGovern
Knoll Lars (Nokia-MP/Oslo) said:
 On 3/19/12 2:11 AM, ext Rohan McGovern rohan.mcgov...@nokia.com wrote:
 
 marius.storm-ol...@nokia.com said:
  While it's not normal to do this type of dependency lock for upwards
 dependencies, i think in this case we should indeed do the extra
 checking. Not just because QtDeclarative is such an important tech for
 Qt5, but also because it's a very good test case for QtBase.
  
 
 What would be the proposed workflow to resolve this situation?
 
   - I have a change in qtbase which I can't push because it breaks a
 qtdeclarative test.
 
   - I have a fix to the test in qtdeclarative but I can't push it
 because it doesn't pass without my qtbase change.
 
 One solution I can think of is to introduce a %reverse_dependencies
 in sync.profile, used for CI and nothing else, which can control the
 SHA1 of qtdeclarative used while testing qtbase.
 
 The easiest way is probably to do it in 3 stages:
 * Pin the SHA1 of qtbase in declarative
 * Submit the qtbase change
 * Unpin the sha1 and submit the declarative fix.

I don't understand this suggestion.
If qtdeclarative's sync.profile has pinned to a particular qtbase SHA1,
that shouldn't affect the with declarative qtbase CI configuration,
right?  So how does it resolve the deadlock?

Or do you think declarative's sync.profile _should_ affect the with
declarative qtbase CI config?  That means pinning a qtbase SHA1 in
qtdeclarative effectively disables this config, since you'll be testing
qtdeclarative's requested qtbase SHA1 which does not include the incoming
qtbase changes.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] The qtbase CI should run the qtdeclarative tests

2012-03-18 Thread Rohan McGovern
marius.storm-ol...@nokia.com said:
 While it's not normal to do this type of dependency lock for upwards 
 dependencies, i think in this case we should indeed do the extra checking. 
 Not just because QtDeclarative is such an important tech for Qt5, but also 
 because it's a very good test case for QtBase.
 

What would be the proposed workflow to resolve this situation?

  - I have a change in qtbase which I can't push because it breaks a
qtdeclarative test.

  - I have a fix to the test in qtdeclarative but I can't push it
because it doesn't pass without my qtbase change.

One solution I can think of is to introduce a %reverse_dependencies
in sync.profile, used for CI and nothing else, which can control the
SHA1 of qtdeclarative used while testing qtbase.

Another is to skip the testing of qtdeclarative in qtbase
branchname's CI if qtdeclarative's sync.profile does not contain
qtbase = refs/heads/branchname.

 The extra time used for checking both repos will give much greater stability 
 as a whole.
 

Well, we don't really know that.  Note that introducing qtdeclarative
into the qtbase tests means that both directions of breakage are now
possible (i.e. not only can qtbase changes block qtdeclarative's CI,
but now qtdeclarative changes will be able to block qtbase's CI - though
it should be unlikely).

However it's certainly reasonable to expect that, and give it a try.

 Maybe the fast platforms can do the extra checking, while slow platforms 
 still handle only QtBase? At least we will capture most compile issues?

I think we'd start with adding new configurations rather than modifying
existing ones.  e.g. as there is currently a linux-g++-32 Ubuntu 10.04
x86 configuration for qtbase, there could be a new linux-g++-32 Ubuntu
10.04 x86 with declarative configuration.

Doing it that way also means the with declarative configuration can
run just the qtdeclarative autotests (we assert that there's no need to
run the qtbase autotests again), theoretically not increasing the
overall runtime.

Unfortunately there's probably not enough resources to do that for some
platforms (like Mac).

 (The CI rules might get very complicated though.)

Yes, in some ways I feel this is adding complexity to the test setup to
work around a false simplicity in our source code setup.  We claim
that Qt is modular, but actually we know some parts of it are not really,
so we add gates to enforce some level of de-modularization.

 
 Rohan/Sergio, what will be the turn-around increase if we always test 
 Declarative together with QtBase?
 

The runtime should be somewhere between the current runtime of qtbase,
and the qtbase runtime plus the qtdeclarative runtime.  Anything more
would be speculation ... but I don't think the runtime would be a big
issue :)

Anyway, overall I think it's worth a try, but we should accept that this
could also create some new problems as well as solving some existing
ones.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] cast ... increases required alignment of target type [-Werror=cast-align]

2012-03-14 Thread Rohan McGovern
Thiago Macieira said:
 On quarta-feira, 14 de março de 2012 21.37.23, lars.kn...@nokia.com wrote:
  Possible options:
  a.) fix the underlying warning (probably very tough for alpha one)
  b.) remove -Wcast-align from the headersclean.pri for the alpha one?
  c.) don't mind that qtbase does not compile for MIPS in the alpha
  d.) ???
  
  I'd go for (b), but if possible only for MIPS.
 

That is exactly what's done for ARM, it should be fine to do it for MIPS
too.  http://codereview.qt-project.org/20033 does this.

 Note that most users do not build the tests. So the build will not stop for 
 them.
 
 -Werror should never be enabled on non-developer builds.
 

You did approve the change which enables it, though :)
7e970eb58c71dc08981575c648a04d258dbf0684, I mean.
Do you think this test should now only be enabled on developer builds?
IMHO that goes against the intent that the real headers we ship in a
publicly-configured Qt are free of warnings.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Nominating Kurt Korbatits for approver

2012-03-14 Thread Rohan McGovern
jason.mcdon...@nokia.com said:
 All,
 
 I'd like to nominate Kurt Korbatits for approver status.  Kurt worked on 
 Qtopia, Qt and Qt Mobility from 2005 to 2010 and rejoined Nokia's Brisbane 
 team in late 2011.  Since then he has been working on improving the state of 
 Qt's autotests with a particular focus on getting the tests working for 
 embedded and shadow builds and has achieved significant improvements in test 
 results for these.
 
 Kurt's past experience with Qt also gives him specialized knowledge of 
 multimedia, performance and building embedded systems using Qt.
 

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


Re: [Development] Staging of qtdeclarative changes has been blocked while we try to unpin the qtbase SHA1

2012-03-12 Thread Rohan McGovern
Richard Moore said:
 On 12 March 2012 17:56,  kent.han...@nokia.com wrote:
  Besides flaky tests, we also have the general/recurring problem of changes 
  going into qtbase that break qtdeclarative (and possibly/likely other 
  modules). While I realize it's time-consuming for everyone to manually 
  build and run the qtdeclarative tests (or entire qt5.git) when you're 
  working on qtbase, please at least take the time to consider how your 
  change might affect other modules. If you're unsure and/or would like 
  someone else's opinion on the possible impact, feel free to send an email 
  to this list, or ask on IRC. Thanks.
 
 Do you have any idea of how many of these were due to QtDeclarative
 making assumptions that aren't part of the defined API, vs how many
 were changes in expected behaviour?

Here's the commits which were needed:

http://codereview.qt-project.org/18941 - 406f741 Remove pin of qtbase for 
qtdeclarative.
  - the one removing the pin, not actually resolving any test failures.

http://codereview.qt-project.org/18909 - 16e29f3 Remove unneeded 
dependencies to QtWidgets and QtOpenGL
  - I don't think this one resolves any test failures.

http://codereview.qt-project.org/19656 - c787809 Mark presumed unstable 
test as insignificant.
  - marks tst_qquickpixmapcache as insignificant, doesn't actually
 resolve the problem, so the real issue may not yet be understood

http://codereview.qt-project.org/19552 - dda130f Fix MouseArea autotest.
http://codereview.qt-project.org/19534 - 6cf36b2 Fix tst_qquicktextedit.
http://codereview.qt-project.org/19427 - cb1ff7a Fix double click handler 
in QQuickItem.
  - all of these were failing due to changes in double-click
 semantics, apparently a bug fix:

commit b371f3f943703840d0dfbe30505018bcca06e260
Author: Laszlo Agocs laszlo.p.ag...@nokia.com
Date:   Tue Mar 6 16:09:09 2012 +0200

Fix double click handling.

Until now double clicking in Qt 5 resulted in the following 
sequence of mouse
events: pressed, released, double clicked, released. This is wrong, 
the press
belonging to the second button down is missing. In Qt 4 that 
pressed event is
present.

 There were also some follow-up commits to this one, I am not
 sure exactly which one triggered the problems.

 Probably all of the failing tests were created or updated while
 qtbase had the buggy double-click behavior.  Then they started
 to fail when the bug was fixed in qtbase.

 It's still unclear to me if the actual behavior matches what is
 documented, e.g. http://doc.qt.nokia.com/5.0-snapshot/qwidget.html says
 If the user double-clicks, the widget receives a mouse press
 event, a mouse release event and finally this event instead of
 a second mouse press event, vs Laszlo's comment in
 tst_qquickmousearea, press, release, (click), press, double click,
 release.

http://codereview.qt-project.org/19598 - cbb7f8b Skip test that accesses 
deleted QML engine
  - apparently the test reads invalid memory, but doesn't actually
 crash on most platforms.  It might be that the qtbase changes,
 due to changing the layout of a few things in memory, caused it
 to start crashing on at least one platform.

http://codereview.qt-project.org/19636 - 2553575 Fix flakiness in 
qquicklistmodel autotest
  - the test was buggy, it had a race condition which may have been
 triggered by someone making some code faster, or perhaps
 reducing the amount of round trips through the event loop
 required for one tested condition to become true.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] cast ... increases required alignment of target type [-Werror=cast-align]

2012-03-07 Thread Rohan McGovern
Thiago Macieira said:
 On quarta-feira, 7 de março de 2012 09.34.35, Rohan McGovern wrote:
  Does anyone have a suggestion on how to fix this warning?
  
  This code in qlist.h:
  
409: template typename T
410: Q_INLINE_TEMPLATE void QListT::node_destruct(Node *from, Node *to)
411: {
412:if (QTypeInfoT::isLarge || QTypeInfoT::isStatic)
413:while(from != to) --to, delete reinterpret_castT*(to-v);
414:else if (QTypeInfoT::isComplex)
415:while (from != to) --to, reinterpret_castT*(to)-~T();
416: }
 
  src/corelib/tools/qlist.h:415:28: error: cast from
  ‘QListQVariant::Node*’ to ‘QVariant*’ increases required alignment of
  target type [-Werror=cast-align]
 
 There is an increased alignment requirement in there. However, the side of 
 the 
 branch being considered, line 415, is never executed because isLarge == true. 
 So this warning is a false positive on a line that gets never compiled.
 

Thanks, so can we use #pragma GCC diagnostic to selectively silence
warnings like this?  There doesn't seem to be much precedent for it so
far (just one usage I can find in qatomic.h).
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] cast ... increases required alignment of target type [-Werror=cast-align]

2012-03-06 Thread Rohan McGovern
Does anyone have a suggestion on how to fix this warning?

This code in qlist.h:

  409: template typename T
  410: Q_INLINE_TEMPLATE void QListT::node_destruct(Node *from, Node *to)
  411: {
  412:if (QTypeInfoT::isLarge || QTypeInfoT::isStatic)
  413:while(from != to) --to, delete reinterpret_castT*(to-v);
  414:else if (QTypeInfoT::isComplex)
  415:while (from != to) --to, reinterpret_castT*(to)-~T();
  416: }

...when compiled for ARM, causes this warning (or error with -Werror):

  src/corelib/tools/qlist.h: In member function ‘void 
QListT::node_destruct(QListT::Node*, QListT::Node*) [with T = QVariant]’:
  src/corelib/tools/qlist.h:738:5:   instantiated from ‘void 
QListT::dealloc(QListData::Data*) [with T = QVariant]’
  src/corelib/tools/qlist.h:714:9:   instantiated from ‘QListT::~QList() 
[with T = QVariant]’
  src/corelib/statemachine/qstatemachine.h:81:59:   instantiated from here
  src/corelib/tools/qlist.h:415:28: error: cast from ‘QListQVariant::Node*’ 
to ‘QVariant*’ increases required alignment of target type [-Werror=cast-align]

do not compile with -Wcast-align may be a valid answer, but it would
be good to hear from someone who can confidently say whether or not this
issue can actually harm us in practice.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Project CI having a bad day

2012-02-16 Thread Rohan McGovern
Sergio Ahumada said:
 Hi,
 
 The Qt Project CI is having some problems as we speak, and most likely 
 will continue like it for next couple of hours.
 
 Changes in INTEGRATING state will be either integrated or rejected once 
 the CI is back.
 
 We'll keep you informed about the progress.
 

We now patiently wait for a 1TB fsck to complete on one server, as well
as preparing a restore from backup in case unrecoverable data corruption
is found.  Thank you for your patience.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Project CI having a bad day

2012-02-16 Thread Rohan McGovern
Rohan McGovern said:
 Sergio Ahumada said:
  Hi,
  
  The Qt Project CI is having some problems as we speak, and most likely 
  will continue like it for next couple of hours.
  
  Changes in INTEGRATING state will be either integrated or rejected once 
  the CI is back.
  
  We'll keep you informed about the progress.
  
 
 We now patiently wait for a 1TB fsck to complete on one server, as well
 as preparing a restore from backup in case unrecoverable data corruption
 is found.  Thank you for your patience.

Hi all,

Service is restored and we are working on clearing the backlog of changes.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] qtwebkit-examples-and-demos.patch

2012-02-12 Thread Rohan McGovern
Philip Ashmore said:
 Hi there.
 Please find attached a patch for qtwebkit-examples-and-demos that allows 
 the build to complete on Debian Wheezy amd64.
 
 Please also note that this patch includes a previously submitted patch, 
 not yet applied.
 
 Also, examples/webkit/fancybrowser/fancybrowser.pro contains a 
 TARGET.EPOCHEAPSIZE in symbian{} that seems to contain invalid utf-8 
 characters.
 

Hi Philip,

Are you able to push your patches into the gerrit code review tool at
http://codereview.qt-project.org ?
(documentation at http://wiki.qt-project.org/Code_Reviews )

Patches generally can't be accepted unless the copyright holder has
signed a Contributor License Agreement (CLA), which is managed through
the code review tool.  Loose patches to mailing lists or to the bug
tracker may not make satisfactory progress.
___
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-30 Thread Rohan McGovern
Giuseppe D'Angelo said:
 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?
 

All of the builds are stored in git under
refs/builds/${destinationbranch}_${timestamp} , so I guess you can use
that to figure out the approximate starting time of each build, and
how many commits are introduced in each build (just ask git for the list
of commits which are in the current build and not in the previous
build).

That would be an interesting thing to analyze regardless of the
discussion in this thread.

 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?
 

It's possible, so the question is whether or not it's a good idea.
Personally I think the build system should support incremental builds
correctly before we can use them in the codereview CI.
We already have plenty unreliable components in the CI, let's avoid
adding more.
___
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-30 Thread Rohan McGovern
Holger Hans Peter Freyther said:
 On 01/29/2012 09:21 PM, Olivier Goffart wrote:
 
 
  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?
 
 hi,
 
 no I did not hear of it, when trying to resolve the shadow build issue in 
 xmlpatterns i just grepped qtbase/tests and the SRCDIR solution popped up.
 
 Sadly QFINDTESTDATA is not enough for xmlpatterns, e.g. the checkxmlfiles 
 test 
 will try to find all .xml/.ui/.xhtml/.qrc... files in the module (this also 
 means that by moving this test out of Qt there is less test data).
 
 The xml patterns test uses QDir(QL1String(../../../)) to find the files 
 recursively and QFINDTESTDATA determines that this will work with the build 
 directory. Should we just call it a crappy test as the testdata is not well 
 defined?
 

I would say that the test is broken.
It is valid sometimes to have tests scanning the source tree like this,
but in that case they must gracefully disable themselves when the source
tree is not available.

 
 The other question is _should_ all tests be deployed or how do you plan to 
 run 
 tests on the device?
 

Shane mentioned in Qt4 we were using DEPLOYMENT and a tool to parse that
from the .pro files for WinCE and Symbian deployment.

MeeGo/Harmattan use packaging (rpm or deb) for all deployment.  In that setup,
to run tests on a device you need to make sure that the test and its
testdata all install themselves during make install.  That seems to be
becoming (or already is) the standard method of test deployment in Qt5.

So, basically, all tests should either install themselves and all their
testdata, or should install nothing (which can be interpreted as
flagging the test as undeployable).
___
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] 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] 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] 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] Removing QtWebkit from gerrit ( qt5.git)

2011-12-12 Thread Rohan McGovern
Robin Burchell said:
 On Thu, Dec 8, 2011 at 12:20 AM, Rohan McGovern
 rohan.mcgov...@nokia.com wrote:
  Unfortunately the qtwebkit pointed at by qt5.git is outdated and known
  not to work.
 
 Given that webkit is developed upstream inside webkit.org, I'd second
 that there's no reason having it there, aside perhaps from CI, though
 AFAIK they have their own infrastructure for this.
 
 As qtwebkit adds hugely to cloning qt5 (unless you remember to disable
 it), as well as the frequent build problems for people new to Qt 5
 etc, is there any real objection to it being removed? Who can make
 that decision (I guess Lars?), and who would handle doing that?

Technically, approving and merging this change should do it:

  http://codereview.qt-project.org/11058

, and also changing the qtwebkit-examples-and-demos repository (which
never receives commits anyway?) to use direct submit instead of staging
with CI.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] V8's location

2011-12-11 Thread Rohan McGovern
Stephen Kelly said:
 On Wednesday, November 09, 2011 13:54:37 Thiago Macieira wrote:
  On Friday, 28 de October de 2011 12:38:38 lars.kn...@nokia.com wrote:
   We've been moving this lib quite a bit already. If we move it again, I'd
   prefer it would end up at it's final location. The move was done before
   we had the decision to keep QtCore independent of V8 and to separate
   the QJS* classes and the QML engine into it's own module.
   
   With the above decision it might make sense to move V8, the QJS* classes
   and the QML engine all into the same shared library.
   
   Kent  Aaron, any thoughts?
  
  Since they don't seem to have an opinion, can we please move it to top-level
  inside qt5.git?
  
  I've just caught a bad commit in my tree that updates the commit link to v8
  and I'm trying to fix it with an interactive rebase.
 
 Bump. This is a recurring problem with newcomers trying to build qtbase. They 
 don't know to do the git submodule magic or use -no-v8, so the build fails.
 

I think this can be easily mitigated by having qmake check if the
sources exist, rather than simply assuming that they do.
e.g. http://codereview.qt-project.org/10934 .
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to create new Qt modules or tools

2011-12-11 Thread Rohan McGovern
Laszlo Papp said:
 
 1) Build and software testing service
 Is there a build and software testing service provided for projects in
 the Qt Playground repositories ? I have not seen any mentionings about
 that so far. and it is an important question in my case, for instance.
 I have been using CDash [1] for projects under the KDE umbrella. It is
 possible as long as I use cmake as a build system in my project. I
 think such a build and software testing service along with the
 publishing of the build results would increase the QA of those
 playground projects. I know there are such QA services for final
 modules. I was just curious if those tools, providing the relevant
 services, are available to Qt Playground projects or not. If not, are
 there some other options ? It would be really nice if playground
 projects could get such an attention. I am not willing to propose it
 for all the projects there because I do not know the capacity, but at
 least for projects and maintainers there who are interested in this
 matter.
 

Security is a potential issue for providing the same test resources
used for the main Qt modules to be also used against playground
modules.  These test machines are Internet-connected[1], and arbitrary code
can be set up to run on them; lowering the barrier for getting this
arbitrary code onto the machines of course increases the security risk.

 http://my.cdash.org/

It would be interesting to know for example how Kitware handled this
issue for the above, or if it was explicitly decided to accept the risk
(which may well be a valid approach, given that the process includes a
trusted maintainer signing off on the new playground project).

[1] perhaps not forever - I'm describing the way things are and not
necessarily the way they should be :)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Missing ARM, MIPS, other mkspecs in qt5

2011-12-06 Thread Rohan McGovern
Thiago Macieira said:
 On Wednesday, 30 de November de 2011 15.47.00, Rohan McGovern wrote:
  Hello,
  
  In Qt5, we no longer appear to have any mkspecs for cross-compiling for
  ARM or MIPS.  They were tied up with qws, so they were removed when
  qws was removed.
  
  Is it intentional that we still don't have any, or has it just fallen
  out that way and we're free to add some generic ARM, MIPS mkspecs for
  testing purposes?
 
 mkspecs for cross-compilation are ill-suited, because the compiler name 
 changes a lot. A better solution would be to make those configure-time 
 options 
 and simply use the standard mkspec for the platform.
 
 I guess that until such time as a proper build system is in place for Qt, 
 we'll have to make do though.


A linux-arm-gnueabi-g++ mkspec was added, which is identical to a linux-g++
mkspec except for the compiler commands.

The next issue we hit in testing is that a standalone cross-compiler
does not provide any GL API, which is nowadays required to compile Qt.
We did not want to use some vendor-specific GL (or couldn't due to
licensing), so we're now using a cross-compiled mesa (packaged at
https://launchpad.net/~rohanpm/+archive/qtqa-cross ).
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] NOTE: Gerrit going down for quick fix deployment (13:30 CET)

2011-11-17 Thread Rohan McGovern
marius.storm-ol...@nokia.com said:
 On 11/17/11 1:12 PM, ext marius.storm-ol...@nokia.com
 marius.storm-ol...@nokia.com wrote:
 
 Hi,
 
 Gerrit will go down at 13:30 CET today, for deployment of fixes for the
 following issues:
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-167
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-270
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-335
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-347
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-350
 https://bugreports.qt.nokia.com/browse/QTQAINFRA-352
 
 It should only take a few minutes to deploy and restart the service,
 should nothing unexpected happen.
 
 I'll will send out a follow-up once the service is back up.
 
 Deployment was successful, thank you for your patience.
 

Unfortunately the new version appears to have some quite annoying bug
which is damaging the history of our repositories:
https://bugreports.qt.nokia.com/browse/QTQAINFRA-389

If you have a look at http://qt.gitorious.org/qt/qtbase/commits/master
for example you can see that all of today's changes look like they've
been applied twice.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] configure qtbase on mac os

2011-11-06 Thread Rohan McGovern
Chris Meyer said:
 I'm configuring qtbase (Mac OS 10.6.8, Xcode 4.2, and qtbase/master)
 using the following command:
 
 export QTDIR=/some/path/for/installation
 ./configure -prefix $QTDIR -opensource -no-sql-mysql -qt-libpng
 -qt-libjpeg -no-dbus -nomake examples -nomake demos
 
 After a while, I get an error that configure cannot determine
 big-endian or little-endian.

Hmm, do you get anything useful if you add -verbose to configure?

 However, these options seem to be
 required only if I'm building with the -qpa option, which should
 default to off.

Why do you think qpa should default to off?  It doesn't, it defaults to
on.

 
 It looks like the variable $PLATFORM_MAC is not being set properly. Is
 this something that needs to be specified on the command line or is
 the machinery for automatically setting $PLATFORM_MAC broken?

PLATFORM_MAC shouldn't be set, because that indicates an old non-qpa
carbon or cocoa build.  qpa is the default and non-qpa paths are being
eliminated.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QT_DEPRECATED_SINCE and QT_DISABLE_DEPRECATED_BEFORE

2011-11-02 Thread Rohan McGovern
Thiago Macieira said:
 On Wednesday, 2 de November de 2011 10:53:40 bradley.hug...@nokia.com wrote:
  On 02 Nov, 2011, at 01:29 , ext Rohan McGovern wrote:
   I also noticed that Brad recently added the ability to pass through
   options like -Werror into configure [
   http://codereview.qt-project.org/7487 ]. I intend for us to attempt using
   that in CI as soon as we have newer gcc available (= 4.6), which will be
   soon.  Any opinions on exactly
   the appropriate -W* options would be appreciated :)
  
  I would love to see us fix all the -Woverloaded-virtual warnings… there are
  tons of them :(
 
 I'd like to enable -Werror by default if you use -developer-build. That way, 
 everyone of us is on the same boat, modulo compiler version.
 
 The CI system doesn't (or didn't use to) build in developer mode, but if 
 Rohan 
 says it's a goal, I'm not going to say no :-)

Nowadays it builds roughly 50% in developer mode and 50% not, as there
was no other solution forthcoming to exercise all those autotests which
need private symbols.  Some Qt modules have very little test
coverage in the non-developer configuration, unfortunately.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] New circular buffer container for Qt5

2011-10-30 Thread Rohan McGovern
Sean Harmer said:
 Hi,
 
 I would like to introduce a new generic container class to Qt, 
 QCircularBuffer. This email is to see if there are any objections to doing so.
 
 This class is similar to QVector but it provides circular semantics. For 
 example, appending to an already full circular buffer will overwrite the 
 oldest item i.e. it forms a kind of LRU cache. The API is essentially a 
 Qt'ified version of the boost::circular_buffer [1] API so hopefully people 
 will find it simple to use.
 

Hi,

Any comments on how QCircularBuffer compares to the existing
QContiguousCache[1] ?

[1] http://doc.qt.nokia.com/4.7/qcontiguouscache.html
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development