Re: [Development] QGLWidget creation with non-visible parent

2013-11-29 Thread joao morgado
Hi 

I had the same similar issue, I was using a parent widget, with buttons and a 
frame with a child qglwidget derived class.
What I did was to create a method in the child qglwidget derived class to 
initialize the shaders, and I only calls this method inside the showEvent() of 
the parent widget class.

Regards
Joao de Deus




Em Sexta-feira, 29 de Novembro de 2013 6:58, Csaba Csernai 
csernai.cs...@gmail.com escreveu:
 
Hi everyone!

I would like to ask your help in some Qt 5 matter. I think it's somewhat 
related to QTBUG-31451, but not sure.

When I create a QGLWidget with a parent which not yet visible, then it seems to 
fail to compile shaders although QGLContext is valid( at least the isValid 
function returns true).

e.g.: there is a tab widget, which is visible, and from code we add another 
tab, so that it contains a QWidget and inside the QWidget, there is a 
QGLWidget( yeah, i kno w it's messed up, but that's it). So when we create the 
QGLWidget with the QWidget parent, the QWidget is not visible, and - as far as 
i discovered - it has no window handle.

It worked fine, in 4.8, and i compile with msvc 11.0.


My question is that is it a bug or did I miss something? Would someone point me 
in the right direction?Should i post my findings to the mentioned bug thread or 
create a new one?


Thanks. 

Bye,


-- 
Csaba Csernai
C/C++ Software Developer
Mediso Medical Imaging Systems Ltd.
Hungary, H-1022 Budapest,
Alsótörökvész 14.

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


Re: [Development] QGLWidget creation with non-visible parent

2013-11-29 Thread Csaba Csernai
Thanks your tip. I thought about it, but the problem is that many other
object created that are depending on shaders and also all the
configuration, data uploading, etc. are handled before the first showEvent
occurring.
It is possible to make a workaround, but really it would be a hell of a
work. That's why I am hoping it will be fixed in the next release maybe, if
it's an error.

Best regards,
 Csaba Csernai


2013/11/29 joao morgado joaodeusmorg...@yahoo.com

 Hi

 I had the same similar issue, I was using a parent widget, with buttons
 and a frame with a child qglwidget derived class.
 What I did was to create a method in the child qglwidget derived class to
 initialize the shaders, and I only calls this method inside the showEvent()
 of the parent widget class.

 Regards
 Joao de Deus



   Em Sexta-feira, 29 de Novembro de 2013 6:58, Csaba Csernai 
 csernai.cs...@gmail.com escreveu:
  Hi everyone!

 I would like to ask your help in some Qt 5 matter. I think it's somewhat
 related to QTBUG-31451, but not sure.

 When I create a QGLWidget with a parent which not yet visible, then it
 seems to fail to compile shaders although QGLContext is valid( at least the
 isValid function returns true).
 e.g.: there is a tab widget, which is visible, and from code we add
 another tab, so that it contains a QWidget and inside the QWidget, there is
 a QGLWidget( yeah, i kno w it's messed up, but that's it). So when we
 create the QGLWidget with the QWidget parent, the QWidget is not visible,
 and - as far as i discovered - it has no window handle.

 It worked fine, in 4.8, and i compile with msvc 11.0.

 My question is that is it a bug or did I miss something? Would someone
 point me in the right direction?Should i post my findings to the mentioned
 bug thread or create a new one?

 Thanks.
 Bye,

 --
 Csaba Csernai
 C/C++ Software Developer
 Mediso Medical Imaging Systems Ltd.
 Hungary, H-1022 Budapest,
 Alsótörökvész 14.

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





-- 
Csaba Csernai
C/C++ Software Developer
Mediso Medical Imaging Systems Ltd.
Hungary, H-1022 Budapest,
Alsótörökvész 14.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] OpenGL drivers

2013-11-29 Thread Sletta Gunnar
Hi,

As many of you might already have noticed, OpenGL drivers are not always 
working as well as would like. This has always been a problem, but since Qt 
Creator 3.0 is using Qt Quick 2.0 and Qt Quick 2.0 is also being used in more 
and more places, the problem is becoming more mainstream. We are aware of 
several issues and patched Qt to tackle them, but we expect we will need more. 
To figure out what needs to be done, we need a broader picture.

Long term, the solution for Qt might be that we bundle a software GL 
implementation (llvmpipe for instance) and switch to that if a driver is too 
problematic for us. Hopefully, we can get by with applying workarounds in Qt 
though.

So, I'm asking that if you encounter issues with flickering, crashes, bad 
rendering and similar, help us track which things are problematic by filing a 
bugreport on bugreports.qt-project.org and use the label driverissue in the 
task. Please  include OS, windowing system, graphics hardware and driver 
version. And since most of the workarounds have been applied to Qt 5.2, do test 
against the 5.2 RC1 or later.

Some other things that might help while identifying the problem is:
- Does upgrading driver or installing latest vendor supplied driver help?
- QSG_RENDER_LOOP=basic - switch Qt Quick to use the GUI thread for rendering
- QSG_INFO=1 - make Qt Quick output SG and GL information.
- LIBGL_ALWAYS_SOFTWARE=1 - for Linux/Mesa based only, forces use of software 
Mesa rendering
- How does other GL applications in the system fare and what about Qt's OpenGL 
examples?
- vsynced or not?

thanks,
Gunnar

Please don't reply to this mail to report issues :)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.2 RC1 candidate packages available

2013-11-29 Thread Simon Lees

On 11/29/2013 12:06 AM, development-requ...@qt-project.org wrote:
 Message: 5
 Date: Thu, 28 Nov 2013 13:36:56 +
 From: Heikkinen Janijani.heikki...@digia.com
 Subject: [Development] Qt 5.2 RC1 candidate packages available
 To:development@qt-project.org  development@qt-project.org
 Cc:releas...@qt-project.org  releas...@qt-project.org
 Message-ID:
   f2d121d33acdd34db72834d8e8b2378d2a4...@it-exmb01-hki.it.local
 Content-Type: text/plain; charset=us-ascii

 Hi all,

 We have finally Qt 5.2 RC1 candidate packages available 
 inhttp://download.qt-project.org/snapshots/qt/5.2/5.2.0-rc1/2013-11-28_179/  
 . Mirroring is ongoing so it is possible that all packages aren't visible yet 
 but will be soon ...

 These packages will be RC1 packages if there isn't any new RC1 blocker found 
 during testing. Target is to release RC1 tomorrow so please check packages as 
 soon as possible.


 Please report your testing effort 
 viahttp://testresults.qt-project.org/forms/release-testing   form and in case 
 of new bugs report those in JIRAhttps://bugreports.qt-project.org  .



 Change after previous packages:

 https://codereview.qt-project.org/72647  (workaround 
 forhttps://bugreports.qt-project.org/browse/QTBUG-35143  : Scene graph 
 threaded render loop deadlocks on X11)




 Br,
 Jani
The version of QtCreator shipped with the package crashes my x everytime 
i attempt to launch it. It was the Android Linux x86_64 package running 
on openSUSE 12.3 with Enlightenment as the window manager and the 
proprietary NVIDIA Driver

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


Re: [Development] Qt 5.2 RC1 candidate packages available

2013-11-29 Thread Poenitz Andre
Simon Lees [simon.l...@codanradio.com]
 The version of QtCreator shipped with the package crashes my x everytime
 i attempt to launch it. It was the Android Linux x86_64 package running
 on openSUSE 12.3 with Enlightenment as the window manager and the
 proprietary NVIDIA Driver

Could you try to add the '-noload Welcome' command line option when
starting Qt Creator and see whether this still crashed immediately?

(The option prevents loading of the Qt Quick 2 based Welcome screen,
session management would still be available under Files-Sessions/
Files-Session Manager)

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


Re: [Development] OpenGL drivers

2013-11-29 Thread Robert Knight
 As many of you might already have noticed, OpenGL drivers are not always 
 working as well as would like.

To what extent does this apply to different platforms and vendors? Is
Qt doing anything different from other GL apps on the same platform or
are they facing the same issues?

On 29 November 2013 12:27, Sletta Gunnar gunnar.sle...@digia.com wrote:
 Hi,

 As many of you might already have noticed, OpenGL drivers are not always 
 working as well as would like. This has always been a problem, but since Qt 
 Creator 3.0 is using Qt Quick 2.0 and Qt Quick 2.0 is also being used in more 
 and more places, the problem is becoming more mainstream. We are aware of 
 several issues and patched Qt to tackle them, but we expect we will need 
 more. To figure out what needs to be done, we need a broader picture.

 Long term, the solution for Qt might be that we bundle a software GL 
 implementation (llvmpipe for instance) and switch to that if a driver is too 
 problematic for us. Hopefully, we can get by with applying workarounds in Qt 
 though.

 So, I'm asking that if you encounter issues with flickering, crashes, bad 
 rendering and similar, help us track which things are problematic by filing a 
 bugreport on bugreports.qt-project.org and use the label driverissue in the 
 task. Please  include OS, windowing system, graphics hardware and driver 
 version. And since most of the workarounds have been applied to Qt 5.2, do 
 test against the 5.2 RC1 or later.

 Some other things that might help while identifying the problem is:
 - Does upgrading driver or installing latest vendor supplied driver help?
 - QSG_RENDER_LOOP=basic - switch Qt Quick to use the GUI thread for rendering
 - QSG_INFO=1 - make Qt Quick output SG and GL information.
 - LIBGL_ALWAYS_SOFTWARE=1 - for Linux/Mesa based only, forces use of 
 software Mesa rendering
 - How does other GL applications in the system fare and what about Qt's 
 OpenGL examples?
 - vsynced or not?

 thanks,
 Gunnar

 Please don't reply to this mail to report issues :)
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] http://qt-project.org/wiki/Qt520-RC1-KnownIssues

2013-11-29 Thread Joseph Heenan

Hi Jani,

On Thu, Nov 28, 2013 at 6:18 PM, Heikkinen Jani 
jani.heikki...@digia.com mailto:jani.heikki...@digia.com wrote:


   Qt 5.2 RC1 is coming really soon (hoping tomorrow) so please make
   sure all important known issues is listed in known issues wiki:
   http://qt-project.org/wiki/Qt520-RC1-KnownIssues


I'm having various problems with qtquick/qtwebkit failing to deploy on 
Mac OS X in the rc1 release - I've logged them under 
https://bugreports.qt-project.org/browse/QTBUG-35211 with a sample app 
attached. There may be a full workaround, but I've not discovered it yet.


(I'm not a member of the QT project so I'm not sure if this is something 
that should be added to the wiki page, nor if it would be correct 
protocol for me to add it.)


Thanks

Joseph

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


Re: [Development] OpenGL drivers

2013-11-29 Thread Sean Harmer
On Friday 29 November 2013 14:20:48 Robert Knight wrote:
  As many of you might already have noticed, OpenGL drivers are not always
  working as well as would like.
 To what extent does this apply to different platforms and vendors? Is
 Qt doing anything different from other GL apps on the same platform or
 are they facing the same issues?

I think it's just that we're trying to use OpenGL on many machines that would 
otherwise not use it and therefore finding all of the old or otherwise broken 
drivers or misconfigurations or problematic hardware.

For anybody with an Optimus setup or running with an Intel GPU on Windows, 
please try updating your drivers as they have improved very rapidly in the 
last 12 months or so.

Cheers,

Sean

--
Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Integration of qt5.git

2013-11-29 Thread Gladhorn Frederik
Hello all,

I would like to get feedback about a change in the qt5.git integration that I 
have discussed with several people in Digia's Oslo office.

For those that don't know what I'm talking about: we have the meta repository 
qt5.git that has all other modules as git submodule. When you clone qt5 and run 
the init-repository script it checks out the submodules according to the 
current state of qt5.git.

Currently we have a bot doing merges and someone needs to approve them.
Once a merge (this is per branch, release/stable/dev) is approved it gets run 
though CI, just like any other patch.
Then all modules are built and all tests run. When all tests pass we have the 
submodules updated and the game starts anew.

The good thing is that usually qt5.git is in a state where it works and it's 
tested.
One issue is that most people working on Qt have all branches checked out to 
release/stable/dev to a newer state and work on that.
But more importantly we need qt5.git to be updated for the release.
Usually updating qt5.git works, but sometimes it turns out to take a lot of 
time and is major work.
As you may have noticed it takes a long time to update the packages and this is 
one factor contributing to that.

I'd like to propose the following:
Automate qt5.git integration completely (the bot updates the modules and 
instantly stages the update), this could happen around 3 times per day. This 
integration would not run any tests and should generally just succeed unless we 
break compilation of one modules by changing it's dependencies (happens very 
seldom). Failures send email to this mailing list.

Since we lose the test runs for all modules at the same time I'd like to have a 
second and new job in Jenkins that runs nightly and builds and runs all tests 
of all modules (according to qt5.git state). This job doesn't mean anything for 
the integration and doesn't block but simply sends mail to this list whenever 
any test fails.
I actually expect it to fail regularily since we have quite a few unstable unit 
tests that every once in a while fail. I hope that this approach gives actually 
more visibility to failing auto tests than what we currently have.

I hope all in all this lets us move faster and get releases out with less pain 
and stress since it's faster to include a patch or two in the release branch. 
And it lessens the different experiences people have when checking out qt5.git.

Cheers
Frederik

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


Re: [Development] http://qt-project.org/wiki/Qt520-RC1-KnownIssues

2013-11-29 Thread Thiago Macieira
On sexta-feira, 29 de novembro de 2013 14:48:23, Joseph Heenan wrote:
 (I'm not a member of the QT project so I'm not sure if this is something 
 that should be added to the wiki page, nor if it would be correct 
 protocol for me to add it.)

You're a member of the Qt Project if you want to be a member. Just start doing 
work and you can consider yourself a member :-)

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


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


Re: [Development] OpenGL drivers

2013-11-29 Thread Thiago Macieira
On sexta-feira, 29 de novembro de 2013 12:27:44, Sletta Gunnar wrote:
 So, I'm asking that if you encounter issues with flickering, crashes, bad
 rendering and similar, help us track which things are problematic by filing
 a bugreport on bugreports.qt-project.org and use the label driverissue in
 the task. Please  include OS, windowing system, graphics hardware and
 driver version. And since most of the workarounds have been applied to Qt
 5.2, do test against the 5.2 RC1 or later.

Do you consider fonts looking the wrong size to be bad rendering and a driver 
issue? Fonts in the Creator welcome screen look to be of a different size than 
the rest of Creator.

I'd consider it a font issue only, not a driver issue.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


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


[Development] isValid() as a property

2013-11-29 Thread Tony Van Eerd
Is it common/uncommon/unheard-of to have a 'valid' property:

Q_PROPERTY( bool valid READ isValid NOTIFY validChanged )


I'm thinking about classes like 'DeviceLocation' which would update with GPS 
changes, but at some point might just become invalid (or start invalid, until 
GPS turns on, etc).


So should isValid() only be used for 'typical' cases of, like 
default-constructed value-types, or is it fine as a property?

Thoughts?
-
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.

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


Re: [Development] isValid() as a property

2013-11-29 Thread Hausmann Simon
Imho isValid is fine, but generally I would suggest a more context specific 
name, i.e. locationKnown for example.

Think about how much sense valid makes in the context of the caller code and 
see of you can find a better name perhaps.

Simon

Fra: Tony Van Eerd
Sendt: 20:16 fredag 29. november 2013
Til: development@qt-project.org
Emne: [Development] isValid() as a property


Is it common/uncommon/unheard-of to have a 'valid' property:

Q_PROPERTY( bool valid READ isValid NOTIFY validChanged )


I'm thinking about classes like 'DeviceLocation' which would update with GPS 
changes, but at some point might just become invalid (or start invalid, until 
GPS turns on, etc).


So should isValid() only be used for 'typical' cases of, like 
default-constructed value-types, or is it fine as a property?

Thoughts?
-
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.

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


Re: [Development] isValid() as a property

2013-11-29 Thread Tony Van Eerd
Oh, the other thing I wanted to mention:

in the cases I am looking at, if isValid() == false, then all the other 
properties are invalid, and return , -1, etc.  It really does mean the whole 
object is invalid.
(except maybe an 'id', in the case of, say, a Battery object - the id telling 
you which battery, and then isValid() saying that battery doesn't (currently) 
exist.)

ie it means isValid() in the same sense as all the other uses of isValid() in 
Qt classes.  That's why I was leaning towards the same name.  Although, yes, I 
was considering a different name per class, more context specific.


From: Hausmann Simon [mailto:simon.hausm...@digia.com]
Sent: Friday, November 29, 2013 2:20 PM
To: Tony Van Eerd; development@qt-project.org
Subject: SV: [Development] isValid() as a property

Imho isValid is fine, but generally I would suggest a more context specific 
name, i.e. locationKnown for example.

Think about how much sense valid makes in the context of the caller code and 
see of you can find a better name perhaps.

Simon

Fra: Tony Van Eerd
Sendt: 20:16 fredag 29. november 2013
Til: development@qt-project.org
Emne: [Development] isValid() as a property


Is it common/uncommon/unheard-of to have a 'valid' property:

Q_PROPERTY( bool valid READ isValid NOTIFY validChanged )


I'm thinking about classes like 'DeviceLocation' which would update with GPS 
changes, but at some point might just become invalid (or start invalid, until 
GPS turns on, etc).


So should isValid() only be used for 'typical' cases of, like 
default-constructed value-types, or is it fine as a property?

Thoughts?
-
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
-
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Integration of qt5.git

2013-11-29 Thread André Pönitz
On Fri, Nov 29, 2013 at 05:16:31PM +, Gladhorn Frederik wrote:
 Hello all,
 
 I would like to get feedback about a change in the qt5.git integration
 that I have discussed with several people in Digia's Oslo office.
 
 For those that don't know what I'm talking about: we have the meta
 repository qt5.git that has all other modules as git submodule. When you
 clone qt5 and run the init-repository script it checks out the submodules
 according to the current state of qt5.git.
 
 Currently we have a bot doing merges and someone needs to approve them.
 Once a merge (this is per branch, release/stable/dev) is approved it gets
 run though CI, just like any other patch.  Then all modules are built and
 all tests run. When all tests pass we have the submodules updated and the
 game starts anew.
 
 The good thing is that usually qt5.git is in a state where it works and
 it's tested.  One issue is that most people working on Qt have all
 branches checked out to release/stable/dev to a newer state and work on
 that.  But more importantly we need qt5.git to be updated for the
 release.  Usually updating qt5.git works, but sometimes it turns out to
 take a lot of time and is major work.  As you may have noticed it takes a
 long time to update the packages and this is one factor contributing to
 that.
 
 I'd like to propose the following: Automate qt5.git integration
 completely (the bot updates the modules and instantly stages the update),
 this could happen around 3 times per day. This integration would not run
 any tests and should generally just succeed unless we break compilation
 of one modules by changing it's dependencies (happens very seldom).
 Failures send email to this mailing list.
 
 Since we lose the test runs for all modules at the same time I'd like to
 have a second and new job in Jenkins that runs nightly and builds and
 runs all tests of all modules (according to qt5.git state). This job
 doesn't mean anything for the integration and doesn't block but simply
 sends mail to this list whenever any test fails.  I actually expect it to
 fail regularily since we have quite a few unstable unit tests that every
 once in a while fail. I hope that this approach gives actually more
 visibility to failing auto tests than what we currently have.
 
 I hope all in all this lets us move faster and get releases out with less
 pain and stress since it's faster to include a patch or two in the
 release branch.  And it lessens the different experiences people have
 when checking out qt5.git.

I am very much in favour.

In an ideal world, this should not be needed, but the world does not appear
to be ideal...

The scheme is fairly close to what Qt Creator's use of CI looks like
(non-blocking, nag mails if things break, nothing stopping quick fixes),
and it's a state that I am rather happy with. Sure, things can break 
theoretically, and do in practice every now and then, but a build breakage
can be fixed in a minute - the latter part slightly in contrast to qt5.git.

Since the main use of qt5.git is to _release_ stuff, its setup and
policies should cater to exactly that need first. If it works for other
use cases that's fine, but in no way essential.

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


Re: [Development] Integration of qt5.git

2013-11-29 Thread Hausmann Simon
Once scenario I'm worried about is when a less active module (say qtscript) has 
a regression test failure due to a change in an active module (qtbase) and it's 
only visible in the qt5.git integration (because nobody submits a change to 
qtscript).

We will see the failure still, but we will also be very very tempted to still 
cut a release from qt5.git because of schedules etc. , despite the failure.

Currently we have a mechanism in place that makes it very hard to release in 
such a situation. We are removing this protection and am replacing an automated 
mechanism with a human gate keeper.

I'm not against trying this, but we have to be very careful I think, more 
discipline will be required from the release side or else we will release with 
known regressions.

Simon

Fra: Gladhorn Frederik
Sendt: 18:16 fredag 29. november 2013
Til: development@qt-project.org
Emne: [Development] Integration of qt5.git


Hello all,

I would like to get feedback about a change in the qt5.git integration that I 
have discussed with several people in Digia's Oslo office.

For those that don't know what I'm talking about: we have the meta repository 
qt5.git that has all other modules as git submodule. When you clone qt5 and run 
the init-repository script it checks out the submodules according to the 
current state of qt5.git.

Currently we have a bot doing merges and someone needs to approve them.
Once a merge (this is per branch, release/stable/dev) is approved it gets run 
though CI, just like any other patch.
Then all modules are built and all tests run. When all tests pass we have the 
submodules updated and the game starts anew.

The good thing is that usually qt5.git is in a state where it works and it's 
tested.
One issue is that most people working on Qt have all branches checked out to 
release/stable/dev to a newer state and work on that.
But more importantly we need qt5.git to be updated for the release.
Usually updating qt5.git works, but sometimes it turns out to take a lot of 
time and is major work.
As you may have noticed it takes a long time to update the packages and this is 
one factor contributing to that.

I'd like to propose the following:
Automate qt5.git integration completely (the bot updates the modules and 
instantly stages the update), this could happen around 3 times per day. This 
integration would not run any tests and should generally just succeed unless we 
break compilation of one modules by changing it's dependencies (happens very 
seldom). Failures send email to this mailing list.

Since we lose the test runs for all modules at the same time I'd like to have a 
second and new job in Jenkins that runs nightly and builds and runs all tests 
of all modules (according to qt5.git state). This job doesn't mean anything for 
the integration and doesn't block but simply sends mail to this list whenever 
any test fails.
I actually expect it to fail regularily since we have quite a few unstable unit 
tests that every once in a while fail. I hope that this approach gives actually 
more visibility to failing auto tests than what we currently have.

I hope all in all this lets us move faster and get releases out with less pain 
and stress since it's faster to include a patch or two in the release branch. 
And it lessens the different experiences people have when checking out qt5.git.

Cheers
Frederik

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


Re: [Development] isValid() as a property

2013-11-29 Thread Harri Porten

On Fri, 29 Nov 2013, Tony Van Eerd wrote:

in the cases I am looking at, if isValid() == false, then all the other 
properties are invalid, and return , -1, etc.  It really does mean the 
whole object is invalid.


(except maybe an 'id', in the case of, say, a Battery object - the id 
telling you which battery, and then isValid() saying that battery 
doesn't (currently) exist.)


Why not use exists, present, active or something like it? But a C++ object 
for a physical object that does not exist... why is it there in the first 
place?


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


Re: [Development] Integration of qt5.git

2013-11-29 Thread André Pönitz
On Fri, Nov 29, 2013 at 09:19:33PM +, Hausmann Simon wrote:
 Once scenario I'm worried about is when a less active module (say qtscript) 
 has
 a regression test failure due to a change in an active module (qtbase) and 
 it's
 only visible in the qt5.git integration (because nobody submits a change to
 qtscript).
 
 We will see the failure still, but we will also be very very tempted to still
 cut a release from qt5.git because of schedules etc. , despite the failure.

That's not really different from severe performance regressions, or regressions
that hit most user setups, but accidentally not the CI machines etc etc.

As an example, for a bit more than two weeks now I have quite a few test cases
failing locally which happily pass CI. _Of course_ this means that something
is broken with my local setup, especially since this happened after a distro
upgrade, but what system makes sure that the Real World is more similar to
what the CI system sees to what my system sees?

I can easily produce dozens of examples from the past where fundamentally
wrong changes got CI approval, as well as examples of case where good
changes got rejected. There are examples of unwanted behaviour changes that
passed CI because the same change also changed the auto-test, etc.

No CI system is infallible, and if we accept that, it's better to have a way
to recover quickly, and not wait a full day, or two, to get obvious fixes in.

 Currently we have a mechanism in place that makes it very hard to release in
 such a situation.

I am afraid this is a misconception. And even if it was not, the benefits
would have to be weighed against the costs. Not every CI failure is fatal
for the release, and CI checks only a small fraction of possible failures.
This should be handled at face value: an advice, strong advice even, but
not as a final judgement.

 We are removing this protection and am replacing an automated
 mechanism with a human gate keeper.

Indeed. And that's a good thing, since it allows a balanced decision.
 
 I'm not against trying this, but we have to be very careful I think, more
 discipline will be required from the release side or else we will release with
 known regressions.

Not different from now.

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


Re: [Development] isValid() as a property

2013-11-29 Thread Tony Van Eerd
 
 On Fri, 29 Nov 2013, Tony Van Eerd wrote:
 
  in the cases I am looking at, if isValid() == false, then all the
 other
  properties are invalid, and return , -1, etc.  It really does mean
 the
  whole object is invalid.
 
  (except maybe an 'id', in the case of, say, a Battery object - the id
  telling you which battery, and then isValid() saying that battery
  doesn't (currently) exist.)
 
 Why not use exists, present, active or something like it?

'present' was in fact my first choice (for battery at least).  But since the 
behaviour seems to match that of isValid(), why not isValid()? If we could (ie 
if we didn't care about compatibility), would we rename all the other isValid() 
functions on existing Qt classes?  If not, what is the difference?

If there is a difference, and a clear rule when to use isValid() and when not 
to, I'd be quite happy.  But I want to understand the difference first.


 But a C++ object
 for a physical object that does not exist... why is it there in the
 first
 place?

Essentially because we don't throw exceptions in constructors.

BatteryInfo battery(5); // the 5th battery.
if (battery.exists())

We could have a battery-manager that instead hands out the batteries (so never 
hands out an invalid one) but:

- BatteryInfo is a QObject (for signals, like the battery level changing) and 
I'd prefer not to return allocated objects (and then need to deal with 
ownership). It would be fine if they were value-types, but they aren't.
- even if the BatteryInfo started out existing, it could be removed while still 
running (on some devices)
 
 
 Harri.
-
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.

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


Re: [Development] isValid() as a property

2013-11-29 Thread Alan Alpert
On Fri, Nov 29, 2013 at 3:03 PM, Tony Van Eerd tvane...@blackberry.com wrote:

 On Fri, 29 Nov 2013, Tony Van Eerd wrote:

  in the cases I am looking at, if isValid() == false, then all the
 other
  properties are invalid, and return , -1, etc.  It really does mean
 the
  whole object is invalid.
 
  (except maybe an 'id', in the case of, say, a Battery object - the id
  telling you which battery, and then isValid() saying that battery
  doesn't (currently) exist.)

 Why not use exists, present, active or something like it?

 'present' was in fact my first choice (for battery at least).  But since the 
 behaviour seems to match that of isValid(), why not isValid()? If we could 
 (ie if we didn't care about compatibility), would we rename all the other 
 isValid() functions on existing Qt classes?  If not, what is the difference?

 If there is a difference, and a clear rule when to use isValid() and when not 
 to, I'd be quite happy.  But I want to understand the difference first.

As I understand it, we want to use isValid in all those cases where
the behavior matches exactly - this makes the Qt APIs more memorable
and more guessable (used a previous class with this behavior? Just try
isValid, see if it compiles ;) ).

 But a C++ object
 for a physical object that does not exist... why is it there in the
 first
 place?

 Essentially because we don't throw exceptions in constructors.

 BatteryInfo battery(5); // the 5th battery.
 if (battery.exists())

If you start on a QML API, a similar issue occurs. Because there's no
way to handle construction exceptions gracefully, you'd need to be
able to declare an object and then for error handling (which could
mean no backing object could be created) then they bind to a property
like this.

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


Re: [Development] Integration of qt5.git

2013-11-29 Thread Alan Alpert
On Fri, Nov 29, 2013 at 12:50 PM, André Pönitz
andre.poen...@mathematik.tu-chemnitz.de wrote:
 On Fri, Nov 29, 2013 at 05:16:31PM +, Gladhorn Frederik wrote:
 Hello all,
[...]

 Since we lose the test runs for all modules at the same time I'd like to
 have a second and new job in Jenkins that runs nightly and builds and
 runs all tests of all modules (according to qt5.git state). This job
 doesn't mean anything for the integration and doesn't block but simply
 sends mail to this list whenever any test fails.  I actually expect it to
 fail regularily since we have quite a few unstable unit tests that every
 once in a while fail. I hope that this approach gives actually more
 visibility to failing auto tests than what we currently have.

Regular emails from a bot broadcast to devel when the break could be
anywhere in qt5.git's submodules... I'm not sure that will be
effective for getting it fixed. Despite the recent marketing blitz,
people only really step up to fix someone else's tests when it's
blocking their integration.

Is it possible to have a more targeted approach, like it emailing the
relevant maintainer(s) instead (or a QA team, if we still have one)?

[...]
 Since the main use of qt5.git is to _release_ stuff, its setup and
 policies should cater to exactly that need first. If it works for other
 use cases that's fine, but in no way essential.

I concur. The only time I hear about qt5.git is around release time
and I'd rather not hear about it at all (that is to say, the process
should work so smoothly and well that it never comes up ;) ). Do what
you feel is necessary.

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