[PySide] About the next PySide release

155 views
Skip to first unread message

Hugo Parente Lima

unread,
Feb 29, 2012, 12:58:17 PM2/29/12
to pys...@lists.pyside.org
Hi,

Just raising a small issue: We have enough bug fixes to do a release but due
to this long transition to qt-projects plus the guys that didn't accepted the
CLA for they patches, mostly of the bugfixes are on github repository and the
github repository already differs a lot from the gitorious and gerrit
repositories so the question is:

Should I do a release based on which repository? The most recent github with
new bugs fixed or the gerit without the new fixes plus minor regressions due
to people that didn't accepted the CLA?

A hard choice... because if I do the release based on github I'll have a nice
PySide release with plenty of bugs fixed but what to do next release? i.e. it
doesn't really solves the problem.

If I go for gerrit, maybe there's not even enough fixes for a release plus I
don't want to spend my free time at home doing the re-work of applying patches
and solving conflicts on the new repository instead of fixing new bugs.

While there's not a complete answer for that I can't do a release and PySide
stays in this limbo with active development but without a release :-/, for
sure PySide can't be that way forever.

To increase the mess yesterday I pushed commits into Shiboken to simplify
PySide releases and development, ApiExtractor is now a static library and
GeneratorRunner is no more, so you will only need two repositories to compile
PySide, the one for the generator (Shiboken) and PySide itself.

Comments, opinions, whatever about this issue is appreciated.

Regards.

--
Hugo Parente Lima

signature.asc

matti....@nokia.com

unread,
Feb 29, 2012, 2:07:12 PM2/29/12
to hugo...@openbossa.org, pys...@lists.pyside.org
Hi,

In my opinion, the regressions need to be fixed before a release can be made. As I see it, though, it should take almost no time to fix the regression bugs if we just get volunteers, and once they're fixed, re-applying the commits from the github fork back to the main repo should be no issue whatsoever because I expect the changes after the fixes to be minimal compared to the old repos.

If the release would be made from Github, the exact history would be lost once the commits are merged back to the main repo.

So, I would wait until we have received fixes for the regression bugs, then merge the Github changes back to Gerrit, and then make the release based on that codebase. This would also provide a nice incentive for getting the regression bugs fixed. :-)

Cheers,

ma.

> _______________________________________________
> PySide mailing list
> PyS...@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside

_______________________________________________
PySide mailing list
PyS...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside

paulo alcantara

unread,
Feb 29, 2012, 2:45:55 PM2/29/12
to Hugo Parente Lima, pys...@lists.pyside.org
Hi Hugo,

On Wed, Feb 29, 2012 at 2:58 PM, Hugo Parente Lima
<hugo...@openbossa.org> wrote:
>
> Hi,
>
> Just raising a small issue: We have enough bug fixes to do a release but due
> to this long transition to qt-projects plus the guys that didn't accepted the
> CLA for they patches, mostly of the bugfixes are on github repository and the
> github repository already differs a lot from the gitorious and gerrit
> repositories so the question is:
>
> Should I do a release based on which repository? The most recent github with
> new bugs fixed or the gerit without the new fixes plus minor regressions due
> to people that didn't accepted the CLA?
>

There's some people waiting for the new PySide release based on the recently
bugs fixed available on the github repository - some of them are important and
should be possibly part of the new release, IMO.

> A hard choice... because if I do the release based on github I'll have a nice
> PySide release with plenty of bugs fixed but what to do next release? i.e. it
> doesn't really solves the problem.
>
> If I go for gerrit, maybe there's not even enough fixes for a release plus I
> don't want to spend my free time at home doing the re-work of applying patches
> and solving conflicts on the new repository instead of fixing new bugs.
>

I agree with you.

> While there's not a complete answer for that I can't do a release and PySide
> stays in this limbo with active development but without a release :-/, for
> sure PySide can't be that way forever.
>

I think that a new release is kind of *urgent* currently.

> To increase the mess yesterday I pushed commits into Shiboken to simplify
> PySide releases and development, ApiExtractor is now a static library and
> GeneratorRunner is no more, so you will only need two repositories to compile
> PySide, the one for the generator (Shiboken) and PySide itself.
>

This will really make our life easier. Great work, Hugo!

> Comments, opinions, whatever about this issue is appreciated.
>
> Regards.
>
> --
> Hugo Parente Lima
>

> _______________________________________________
> PySide mailing list
> PyS...@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside
>


- Paulo Alcantara

anatoly techtonik

unread,
Mar 2, 2012, 1:45:57 PM3/2/12
to paulo alcantara, pys...@lists.pyside.org

+1 on everything above. There is no reason to delay release, because
those legal fixes are only matter for Qt Project, not for PySide
users. Moreover I see no reasons why Git experts can not replay
patches from GitHub back to Gerrit to keep it in sync while we are
seeking volunteers for these Qt Project fixes.

On Wed, Feb 29, 2012 at 10:07 PM, <matti....@nokia.com> wrote:
>
> If the release would be made from Github, the exact history would be lost once the commits are merged back to the main repo.

I don't understand what history will be lost? Tags? Yes, the hash will
change and the release will be broken, and if I understand correctly,
every tag in new Gerrit repository is broken now, because some
changesets are absent from history. Am I right?
--
anatoly t.

anatoly techtonik

unread,
Mar 7, 2012, 3:20:18 AM3/7/12
to paulo alcantara, pys...@lists.pyside.org
Hello guys,

Are there any prospects on possible release date?

Spyder IDE still can not be started with PySide 1.1.0 on Linux
http://bugs.pyside.org/show_bug.cgi?id=1105

And Spyder users are suffering from Windows-specific bug with PySide
1.0.9+ that I can not repeat on Linux:
http://code.google.com/p/spyderlib/issues/detail?id=897

Hugo Parente Lima

unread,
Mar 7, 2012, 12:39:20 PM3/7/12
to anatoly techtonik, pys...@lists.pyside.org
On Wednesday 07 March 2012 05:20:18 anatoly techtonik wrote:
> Hello guys,
>
> Are there any prospects on possible release date?

We need to backport everything on github to the code on gerrit, when this
finish we can finally release a new version.

I'm occupied with other projects too, so at the moment I can't promise any
dead line for a PySide release.



> Spyder IDE still can not be started with PySide 1.1.0 on Linux
> http://bugs.pyside.org/show_bug.cgi?id=1105
>
> And Spyder users are suffering from Windows-specific bug with PySide
> 1.0.9+ that I can not repeat on Linux:
> http://code.google.com/p/spyderlib/issues/detail?id=897
>
> --
> anatoly t.

--
Hugo Parente Lima
INdT - Instituto Nokia de Tecnologia

signature.asc

anatoly techtonik

unread,
Mar 8, 2012, 5:08:35 AM3/8/12
to Hugo Parente Lima, Matti Airas, pys...@lists.pyside.org
On Wed, Mar 7, 2012 at 8:39 PM, Hugo Parente Lima
<hugo...@openbossa.org> wrote:
> On Wednesday 07 March 2012 05:20:18 anatoly techtonik wrote:
>> Hello guys,
>>
>> Are there any prospects on possible release date?
>
> We need to backport everything on github to the code on gerrit, when this
> finish we can finally release a new version.

1. [ ] find the last common ancestor
With HG I would do:
hg clone git://gitorious.org/pyside/pyside.git
cd pyside
hg inc --template '{node}' -l 1 git://github.com/PySide/PySide.git

2. [ ] Make new clone and import revisions starting after the hash
from the step above into Mercurial Queue
cd ..
hg clone git://github.com/PySide/PySide.git pyside2
cd pyside2
hg qimport -r HASH:HEAD
hg qpop -a
cp -r .hg/patches ../pyside/.hg/
cd ../pyside
hg qpush -a
hg qfinish -a


Unfortunately, after Matti flattened the repository history this won't
work anymore and we need to find this common revision manually. On the
second thought even if the history was there, the hashes would be
reindexed after history edition anyway, so we still have to inspect it
manually. In any case, I think that a bad move to kill the project
history.

anatoly techtonik

unread,
Mar 8, 2012, 12:24:29 PM3/8/12
to Hugo Parente Lima, Matti Airas, pys...@lists.pyside.org

It appears that neither me, nor Matti knows how to properly strip
those offending revisions from the Git history. Rebasing doesn't work,
because subsequent merges screw up everything. So, unless somebody
possess required know how, I am afraid we will have to stick with the
way things currently are.

Hugo Parente Lima

unread,
Mar 8, 2012, 12:58:52 PM3/8/12
to anatoly techtonik, pys...@lists.pyside.org
On Thursday 08 March 2012 07:08:35 anatoly techtonik wrote:
> On Wed, Mar 7, 2012 at 8:39 PM, Hugo Parente Lima
>
> <hugo...@openbossa.org> wrote:
> > On Wednesday 07 March 2012 05:20:18 anatoly techtonik wrote:
> >> Hello guys,
> >>
> >> Are there any prospects on possible release date?
> >
> > We need to backport everything on github to the code on gerrit, when this
> > finish we can finally release a new version.
>
> 1. [ ] find the last common ancestor
> With HG I would do:
> hg clone git://gitorious.org/pyside/pyside.git
> cd pyside
> hg inc --template '{node}' -l 1 git://github.com/PySide/PySide.git
>
> 2. [ ] Make new clone and import revisions starting after the hash
> from the step above into Mercurial Queue
> cd ..
> hg clone git://github.com/PySide/PySide.git pyside2
> cd pyside2
> hg qimport -r HASH:HEAD
> hg qpop -a
> cp -r .hg/patches ../pyside/.hg/
> cd ../pyside
> hg qpush -a
> hg qfinish -a

We can use "git format-patch" then "git am" to apply the patches and hope for
no conflicts.



> Unfortunately, after Matti flattened the repository history this won't
> work anymore and we need to find this common revision manually. On the
> second thought even if the history was there, the hashes would be
> reindexed after history edition anyway, so we still have to inspect it
> manually. In any case, I think that a bad move to kill the project
> history.

I think the flattened history was maybe the only point that make me feel
against the move to qt-projects, the history really helps when developing,
it's the documentation of the project, when you don't know what a piece of
code does you just look at the history of those lines and see the commit
comments, reference for bugs in bugzilla, who wrote the changes, etc... and
now all this was gone :-/. Matti told me about a magic script that would do
that, I didn't see it and a doubt that it would be on pair with the own git
commands. I was talking with Renato days ago about it and he have the same
feelings, besides looking at git history with the lack of commits last weeks I
see that wasn't only me with this feeling.

IMO Gerrit isn't the best tool, isn't too user friendly, requires a password
for everything, i.e. it have their problems, but nothing that we can't get
used to (like we were used to bugzilla), unfortunately due to Nokia that owns
the name PySide (Matti, correct if I'm wrong) we can't just stick on git hub,
using their own bug tracking system and maybe even web server that github
offers, this would be perfect from the developer point of view (at least my
point of view), no moves, no changes the project would go on without
headaches... but we (pyside developers) can't do that, because doing that will
start the bizarre situation where all original developers forked the project
and no developers left on the official project. I *really* don't want this to
happen.

I still have the plan to do a rebase removing the offending commits from each
repository, solve the conflicts by hand then ask for a approval to push the
changes to gerrit send to Matti for approval, after that I'll finally feel
comfortable to continue to hack on PySide, but this takes times and I have not
much free time to code, so would be better to send my time fixing bugs rather
doing this code-bureaucracy stuff :-(.

Commits are the pulse of any project, developers are the heart, no developers
means no commits that means no pulse that means a dead project.

signature.asc

Hugo Parente Lima

unread,
Mar 8, 2012, 2:27:01 PM3/8/12
to anatoly techtonik, pys...@lists.pyside.org

Ok, first step done!

I rebased over 632 commits to remove the offending commit on Shiboken and
pushed the changes to a personal branch on github.

The offending commit was: c3059779d7628fdbb140ed02cdc0cc7ca80e7ad8

Matti can you check if everything is ok? then I can re-apply the tags (because
the hashes changed) and apply the fixes on gerrit on top of this branch and
finally force-push it to gerrit with all history glory built-in! :-D

The rebased tree without the offending commit can be found at branch "clafix"
on https://github.com/hugopl/Shiboken

I didn't the same on ApiExtractor because I can't figure out what was the
offending commit hash.

If everyone agree with this I can do the same on PySide and ApiExtractor too.

signature.asc

Hugo Parente Lima

unread,
Mar 8, 2012, 3:04:24 PM3/8/12
to anatoly techtonik, pys...@lists.pyside.org
On Thursday 08 March 2012 14:24:29 anatoly techtonik wrote:

Second step done!

I rebased PySide removing the two offending commits and pushed the tree to the
"clafix" branch of my PySide clone on github
(https://github.com/hugopl/PySide)

The offending commits were:

- 0d60daf1e1a6edd95b58c7bdd33da8f4c1629c90
- 32681f7b7039f41bec4c4965370d4b66bee53532

By what I saw GeneratorRunner doesn't had any problems with missing CLA
agreement, then the only missing repository is ApiExtractor.

Matti, do you still have the git hash annotated somewhere?

signature.asc

Matti Airas

unread,
Mar 9, 2012, 7:40:30 AM3/9/12
to ext Hugo Parente Lima, pys...@lists.pyside.org
On 08.03.2012 21:27, ext Hugo Parente Lima wrote:

> Ok, first step done!
>
> I rebased over 632 commits to remove the offending commit on Shiboken and
> pushed the changes to a personal branch on github.
>
> The offending commit was: c3059779d7628fdbb140ed02cdc0cc7ca80e7ad8
>
> Matti can you check if everything is ok? then I can re-apply the tags (because
> the hashes changed) and apply the fixes on gerrit on top of this branch and
> finally force-push it to gerrit with all history glory built-in! :-D
>
> The rebased tree without the offending commit can be found at branch "clafix"
> on https://github.com/hugopl/Shiboken
>
> I didn't the same on ApiExtractor because I can't figure out what was the
> offending commit hash.
>
> If everyone agree with this I can do the same on PySide and ApiExtractor too.

Wow, that was a heroic effort! Big kudos to you!

To me, both both Shiboken and PySide clafix branches look just fine - go
ahead with it!

The last problematic commit on Apiextractor is:
c2a35449016e3d5873f3e1657df51e2ff854cd2e

And yes, GeneratorRunner is good as-is.

Since the submitted changes in Gerrit are commits in a special ref, just
make sure that when force-pushing the history back to Gerrit, those
commits are not lost (I'm not sure how git works wrt force-pushing...).

BTW, how did you actually do the removal? Did you just branch the repos
before the offending commits and then merge all commits except the
offending ones?

Cheers,

ma.

Anderson Lizardo

unread,
Mar 9, 2012, 8:12:39 AM3/9/12
to Matti Airas, pys...@lists.pyside.org
On Fri, Mar 9, 2012 at 8:40 AM, Matti Airas <matti....@nokia.com> wrote:
> BTW, how did you actually do the removal? Did you just branch the repos
> before the offending commits and then merge all commits except the
> offending ones?

I wonder if a " git rebase -i commit_id^ " (where "commit_id" is the
commit to be removed) and removing the line on the interactive rebase
editor, would fix this more or less easily :)

Anyway, it's done and let's hope development can progress :)

Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

Matti Airas

unread,
Mar 9, 2012, 8:14:25 AM3/9/12
to ext Anderson Lizardo, pys...@lists.pyside.org
On 09.03.2012 15:12, ext Anderson Lizardo wrote:
> On Fri, Mar 9, 2012 at 8:40 AM, Matti Airas<matti....@nokia.com> wrote:
>> BTW, how did you actually do the removal? Did you just branch the repos
>> before the offending commits and then merge all commits except the
>> offending ones?
> I wonder if a " git rebase -i commit_id^ " (where "commit_id" is the
> commit to be removed) and removing the line on the interactive rebase
> editor, would fix this more or less easily :)

That was the approach I tried, but that breaks down in merges. Couldn't
quite figure out what the exact problem was, though.

Cheers,

ma.

Hugo Parente Lima

unread,
Mar 9, 2012, 12:19:41 PM3/9/12
to Matti Airas, pys...@lists.pyside.org
On Friday 09 March 2012 10:14:25 Matti Airas wrote:
> On 09.03.2012 15:12, ext Anderson Lizardo wrote:
> > On Fri, Mar 9, 2012 at 8:40 AM, Matti Airas<matti....@nokia.com>
wrote:
> >> BTW, how did you actually do the removal? Did you just branch the repos
> >> before the offending commits and then merge all commits except the
> >> offending ones?
> >
> > I wonder if a " git rebase -i commit_id^ " (where "commit_id" is the
> > commit to be removed) and removing the line on the interactive rebase
> > editor, would fix this more or less easily :)
>
> That was the approach I tried, but that breaks down in merges. Couldn't
> quite figure out what the exact problem was, though.

I did

git rebase -i --preserve-merges commit_id~1

Removed the commit and went on fixing the conflicts taking care to not
recreate the fix done by the removed commit by mistake.

I guess just one merge of shiboken had problems and went "inlined", the other
were preserved as well.

> Cheers,
>
> ma.

signature.asc

Hugo Parente Lima

unread,
Mar 9, 2012, 5:41:06 PM3/9/12
to Matti Airas, pys...@lists.pyside.org
On Friday 09 March 2012 10:14:25 Matti Airas wrote:
> On 09.03.2012 15:12, ext Anderson Lizardo wrote:
> > On Fri, Mar 9, 2012 at 8:40 AM, Matti Airas<matti....@nokia.com>
wrote:
> >> BTW, how did you actually do the removal? Did you just branch the repos
> >> before the offending commits and then merge all commits except the
> >> offending ones?
> >
> > I wonder if a " git rebase -i commit_id^ " (where "commit_id" is the
> > commit to be removed) and removing the line on the interactive rebase
> > editor, would fix this more or less easily :)
>
> That was the approach I tried, but that breaks down in merges. Couldn't
> quite figure out what the exact problem was, though.
>
> Cheers,
>
> ma.

Work done...

.. but gerrit, oh gerrit... I can't push the changes because I don't have
permissions to push merge commits:

Counting objects: 2086, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (935/935), done.
Writing objects: 100% (2086/2086), 715.24 KiB, done.
Total 2086 (delta 1459), reused 1476 (delta 1135)
remote: Resolving deltas: 100% (1459/1459)
To ssh://hug...@codereview.qt-project.org:29418/pyside/apiextractor.git
! [remote rejected] master -> master (you are not allowed to upload merges)
error: failed to push some refs to 'ssh://hug...@codereview.qt-
project.org:29418/pyside/apiextractor.git'

signature.asc

anatoly techtonik

unread,
Mar 10, 2012, 7:43:09 AM3/10/12
to Hugo Parente Lima, pys...@lists.pyside.org
On Sat, Mar 10, 2012 at 1:41 AM, Hugo Parente Lima
<hugo...@openbossa.org> wrote:
> On Friday 09 March 2012 10:14:25 Matti Airas wrote:
>> On 09.03.2012 15:12, ext Anderson Lizardo wrote:
>> > On Fri, Mar 9, 2012 at 8:40 AM, Matti Airas<matti....@nokia.com>
> wrote:
>> >> BTW, how did you actually do the removal? Did you just branch the repos
>> >> before the offending commits and then merge all commits except the
>> >> offending ones?
>> >
>> > I wonder if a  " git rebase -i commit_id^ " (where "commit_id" is the
>> > commit to be removed) and removing the line on the interactive rebase
>> > editor, would fix this more or less easily :)
>>
>> That was the approach I tried, but that breaks down in merges. Couldn't
>> quite figure out what the exact problem was, though.
>>
>> Cheers,
>>
>> ma.
>
> Work done...

Just when I thought I found something.. =)
http://linux.die.net/man/1/git-filter-branch

Take a look at `git filter-branch --commit-filter`. Is it better than rebase?

--
anatoly t.

paulo alcantara

unread,
Mar 10, 2012, 6:43:43 PM3/10/12
to anatoly techtonik, pys...@lists.pyside.org
Maybe its better or not. It doesnt matter either.
The execellent work that Hugo has been doing (even with no much spare
time to do it) is already done.

anatoly techtonik

unread,
Mar 12, 2012, 5:02:49 AM3/12/12
to paulo alcantara, pys...@lists.pyside.org
I can't confirm that - there are no changes in the Gitorious repository.
http://qt.gitorious.org/pyside/pyside/commits/master
--
anatoly t.

Matti Airas

unread,
Mar 12, 2012, 8:13:46 AM3/12/12
to ext Hugo Parente Lima, pys...@qt-project.org
On 10.03.2012 00:41, ext Hugo Parente Lima wrote:
> Work done...
>
> .. but gerrit, oh gerrit... I can't push the changes because I don't have
> permissions to push merge commits:
>
> Counting objects: 2086, done.
> Delta compression using up to 2 threads.
> Compressing objects: 100% (935/935), done.
> Writing objects: 100% (2086/2086), 715.24 KiB, done.
> Total 2086 (delta 1459), reused 1476 (delta 1135)
> remote: Resolving deltas: 100% (1459/1459)
> To ssh://hug...@codereview.qt-project.org:29418/pyside/apiextractor.git
> ! [remote rejected] master -> master (you are not allowed to upload merges)
> error: failed to push some refs to 'ssh://hug...@codereview.qt-
> project.org:29418/pyside/apiextractor.git'
>

I sent you private mail with contact information of the Qt admin who has
performed the previous clone/push operations for me.

IMHO, I don't think it's a bad policy to disallow all direct pushes to
the git repo. That at least enforces that every commit has passed review
(and CI testing, if we'd integrate them to the Qt infra, as well), and I
regard that as a good thing. It just causes trouble in the initial
setup, but the Qt admins have been very fast to help with any issues so far.

Hugo Parente Lima

unread,
Mar 12, 2012, 9:11:32 AM3/12/12
to anatoly techtonik, pys...@lists.pyside.org
On Monday 12 March 2012 06:02:49 anatoly techtonik wrote:
> I can't confirm that - there are no changes in the Gitorious repository.
> http://qt.gitorious.org/pyside/pyside/commits/master

Is done, but locally because I had problems uploading the repository tree to
gerrit.

--

signature.asc

Matti Airas

unread,
Mar 15, 2012, 7:50:36 AM3/15/12
to pys...@qt-project.org
On 12.03.2012 15:11, ext Hugo Parente Lima wrote:
> On Monday 12 March 2012 06:02:49 anatoly techtonik wrote:
>> I can't confirm that - there are no changes in the Gitorious repository.
>> http://qt.gitorious.org/pyside/pyside/commits/master
> Is done, but locally because I had problems uploading the repository tree to
> gerrit.

... and now they're there, with JP's bugfixes, and even the Gitorious
mirror has already been updated! Thanks a million, Hugo, for the effort!

Cheers,

ma.

Hugo Parente Lima

unread,
Mar 15, 2012, 9:42:08 AM3/15/12
to pys...@qt-project.org
On Thursday 15 March 2012 08:50:36 Matti Airas wrote:
> On 12.03.2012 15:11, ext Hugo Parente Lima wrote:
> > On Monday 12 March 2012 06:02:49 anatoly techtonik wrote:
> >> I can't confirm that - there are no changes in the Gitorious repository.
> >> http://qt.gitorious.org/pyside/pyside/commits/master
> >
> > Is done, but locally because I had problems uploading the repository tree
> > to gerrit.
>
> ... and now they're there, with JP's bugfixes, and even the Gitorious
> mirror has already been updated! Thanks a million, Hugo, for the effort!

I also did the merge of GeneratorRunner and ApiExtractor into Shiboken, so
GeneratorRunner and ApiExtractor repositories can now be considered deprecated
and newer Shiboken packages doesn't need to depend on them..

All history of ApiExtractor and GeneratorRunner were merged into Shiboken
repository.

Now there are just two failing tests blocking the release, both related to
QtWebKit, despite of the fact that I need to check if all is working on a
Windows and Mac machine.

signature.asc

Matti Airas

unread,
Mar 15, 2012, 9:49:23 AM3/15/12
to ext Hugo Parente Lima, pys...@qt-project.org
On 15.03.2012 15:42, ext Hugo Parente Lima wrote:
> I also did the merge of GeneratorRunner and ApiExtractor into Shiboken, so
> GeneratorRunner and ApiExtractor repositories can now be considered deprecated
> and newer Shiboken packages doesn't need to depend on them..

OK, that's neat. :-) I guess we can just let the repos stay around as
memoirs...

> All history of ApiExtractor and GeneratorRunner were merged into Shiboken
> repository.

Oh, that's cool! I think the first time you did it, you just copied the
files over?


> Now there are just two failing tests blocking the release, both related to
> QtWebKit, despite of the fact that I need to check if all is working on a
> Windows and Mac machine.

You might want to mention that on the mailing list and ask some
Windows/Mac developers to help with building the head and running the
tests - that'd save you some boring work and get others involved. At the
moment, I think we need all the help we can from other people...

Hugo Parente Lima

unread,
Mar 15, 2012, 10:19:16 AM3/15/12
to Matti Airas, pys...@qt-project.org
On Thursday 15 March 2012 10:49:23 Matti Airas wrote:
> On 15.03.2012 15:42, ext Hugo Parente Lima wrote:
> > I also did the merge of GeneratorRunner and ApiExtractor into Shiboken,
> > so GeneratorRunner and ApiExtractor repositories can now be considered
> > deprecated and newer Shiboken packages doesn't need to depend on them..
>
> OK, that's neat. :-) I guess we can just let the repos stay around as
> memoirs...

Yes, they must still around.



> > All history of ApiExtractor and GeneratorRunner were merged into Shiboken
> > repository.
>
> Oh, that's cool! I think the first time you did it, you just copied the
> files over?

No, the first time I did I also merged the histories.



> > Now there are just two failing tests blocking the release, both related
> > to QtWebKit, despite of the fact that I need to check if all is working
> > on a Windows and Mac machine.
>
> You might want to mention that on the mailing list and ask some
> Windows/Mac developers to help with building the head and running the
> tests - that'd save you some boring work and get others involved. At the
> moment, I think we need all the help we can from other people...

Not just boring work, but I don't have how to test on a mac or Windows
machines right now, the Windows issue is solvable but I can't say the same
about mac.

signature.asc

Tim Doty

unread,
Mar 15, 2012, 11:01:00 AM3/15/12
to Hugo Parente Lima, pys...@qt-project.org
What is actually involved for testing on the mac? Is there a test suite to run or what?

Matti Airas

unread,
Mar 15, 2012, 11:14:40 AM3/15/12
to ext Hugo Parente Lima, pys...@qt-project.org
On 15.03.2012 15:49, Matti Airas wrote:
> You might want to mention that on the mailing list and ask some
> Windows/Mac developers to help with building the head and running the
> tests - that'd save you some boring work and get others involved. At
> the moment, I think we need all the help we can from other people...

Haha! Didn't realize the mailing list was CCd. Oops. :-)

Matti Airas

unread,
Mar 15, 2012, 11:28:52 AM3/15/12
to ext Tim Doty, pys...@qt-project.org
On 15.03.2012 17:01, ext Tim Doty wrote:
What is actually involved for testing on the mac? Is there a test suite to run or what?

Hugo might want to correct me, but just go to the build directory and run "ctest" and report the results together with your configuration details on the mailing list.

Cheers,

ma.

Jason McCampbell

unread,
Mar 15, 2012, 11:34:05 AM3/15/12
to Matti Airas, pys...@qt-project.org
Well, I need to update my Mac and Windows builds anyway so I'll run the tests.  Gitorious master (http://qt.gitorious.org/pyside/pyside/commits/master) is now the master repo?  I have a couple of crash fixes I had submitted to GitHub that I'll verify are or are not in the Gitorious repo as well.

_______________________________________________
PySide mailing list
PyS...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside




--
Jason McCampbell
Enthought, Inc.
512.536.1057 (Office)
512.850.6069 (Mobile)

Matti Airas

unread,
Mar 15, 2012, 11:38:04 AM3/15/12
to ext Jason McCampbell, pys...@qt-project.org
On 15.03.2012 17:34, ext Jason McCampbell wrote:
Well, I need to update my Mac and Windows builds anyway so I'll run the tests.  Gitorious master (http://qt.gitorious.org/pyside/pyside/commits/master) is now the master repo?  I have a couple of crash fixes I had submitted to GitHub that I'll verify are or are not in the Gitorious repo as well.

Thanks, nice!

Gitorious is a read-only mirror of the Gerrit repo. I'm not quite sure how often it is mirrored, though (hourly or daily). But it should be recent enough, in any case.

Cheers,

ma.

Hugo Parente Lima

unread,
Mar 15, 2012, 2:03:25 PM3/15/12
to Matti Airas, pys...@qt-project.org

just ctest works, but "ctest -V" is better because it prints a lot of things
useful to know what failed.

> Cheers,
>
> ma.

signature.asc

Jason McCampbell

unread,
Mar 15, 2012, 4:26:58 PM3/15/12
to Hugo Parente Lima, pys...@qt-project.org
Running on Mac OS (10.6) using a debug build of PySide against Qt-4.7.4 I get a single test failure in the phonon package.  It's hard abort complaining about "QWidget: Cannot create a QWidget when no GUI is being used", see below.  I haven't looked into it any further than this thus far as I figure someone is likely a lot more familiar with what this test case should do than I am.

Jason



Program received signal SIGABRT, Aborted.
0x972f4c5a in __kill ()
(gdb) where
#0  0x972f4c5a in __kill ()
#1  0x972f4c4c in kill$UNIX2003 ()
#2  0x973875a5 in raise ()
#3  0x9739d6e4 in abort ()
#4  0x0101eb59 in qt_message_output (msgType=QtFatalMsg, buf=0x42185c0 "QWidget: Cannot create a QWidget when no GUI is being used") at global/qglobal.cpp:2291
#5  0x0101ed17 in qt_message (msgType=QtFatalMsg, msg=0x1bf1e1c "QWidget: Cannot create a QWidget when no GUI is being used", ap=0xbfffbd64 "??\a\001") at global/qglobal.cpp:2337
#6  0x0101ed70 in qFatal (msg=0x1bf1e1c "QWidget: Cannot create a QWidget when no GUI is being used") at global/qglobal.cpp:2520
#7  0x0159604e in QWidgetPrivate::init ()
#8  0x015962c4 in QWidget::QWidget ()
#9  0x0790b180 in QGLWidget::QGLWidget ()
#10 0x04733534 in Phonon::QT7::PhononSharedQGLWidget ()
#11 0x04706dc7 in Phonon::QT7::QuickTimeVideoPlayer::createVisualContext ()
#12 0x047082f8 in Phonon::QT7::QuickTimeVideoPlayer::QuickTimeVideoPlayer ()
#13 0x0471bccc in Phonon::QT7::MediaObject::MediaObject ()
#14 0x04719000 in Phonon::QT7::Backend::createObject ()
#15 0x00675b16 in Phonon::Factory::createMediaObject (parent=0x45de650) at ../3rdparty/phonon/phonon/factory.cpp:330
#16 0x006849d9 in Phonon::MediaObjectPrivate::createBackendObject (this=0x45de800) at ../3rdparty/phonon/phonon/mediaobject.cpp:47
#17 0x00680d72 in Phonon::MediaNodePrivate::backendObject (this=0x45de800) at ../3rdparty/phonon/phonon/medianode.cpp:63
#18 0x00683916 in Phonon::MediaObject::setCurrentSource (this=0x45de650, newSource=@0x45ccdc0) at ../3rdparty/phonon/phonon/mediaobject.cpp:230
#19 0x00548ea3 in Sbk_Phonon_MediaObjectFunc_setCurrentSource (self=0x45de610, pyArg=0x45ddbd0) at /Users/jmccampbell/packages/PySide/BuildScripts/pyside/build/PySide/phonon/PySide/phonon/phonon_mediaobject_wrapper.cpp:987
#20 0x000cc5a6 in call_function (pp_stack=0xbfffc350, oparg=1) at Python/ceval.c:4001
#21 0x000c9211 in PyEval_EvalFrameEx (f=0x45d4740, throwflag=0) at Python/ceval.c:2666
#22 0x000cca12 in fast_function (func=0x45cb090, pp_stack=0xbfffc580, n=1, na=1, nk=0) at Python/ceval.c:4099
#23 0x000cc856 in call_function (pp_stack=0xbfffc580, oparg=0) at Python/ceval.c:4034
#24 0x000c9211 in PyEval_EvalFrameEx (f=0x45d42e0, throwflag=0) at Python/ceval.c:2666
#25 0x000cac2e in PyEval_EvalCodeEx (co=0x3e9130, globals=0x3ed6c0, locals=0x0, args=0x45cfcdc, argcount=2, kws=0x302bcc, kwcount=0, defs=0x4070fc, defcount=1, closure=0x0) at Python/ceval.c:3253
#26 0x0003b49d in function_call (func=0x406e50, arg=0x45cfcd0, kw=0x45cfad0) at Objects/funcobject.c:526
#27 0x0000d530 in PyObject_Call (func=0x406e50, arg=0x45cfcd0, kw=0x45cfad0) at Objects/abstract.c:2529
#28 0x000cd4b9 in ext_do_call (func=0x406e50, pp_stack=0xbfffc8cc, flags=3, na=1, nk=0) at Python/ceval.c:4326
#29 0x000c9376 in PyEval_EvalFrameEx (f=0x45d4170, throwflag=0) at Python/ceval.c:2705
#30 0x000cac2e in PyEval_EvalCodeEx (co=0x3e9470, globals=0x3ed6c0, locals=0x0, args=0x45d176c, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#31 0x0003b49d in function_call (func=0x406ed0, arg=0x45d1760, kw=0x0) at Objects/funcobject.c:526
#32 0x0000d530 in PyObject_Call (func=0x406ed0, arg=0x45d1760, kw=0x0) at Objects/abstract.c:2529
#33 0x00020bfb in instancemethod_call (func=0x406ed0, arg=0x45d1760, kw=0x0) at Objects/classobject.c:2578
#34 0x0000d530 in PyObject_Call (func=0x45d19a0, arg=0x45d1740, kw=0x0) at Objects/abstract.c:2529
#35 0x0007cbaf in slot_tp_call (self=0x45ce2c0, args=0x45d1740, kwds=0x0) at Objects/typeobject.c:5397
#36 0x0000d530 in PyObject_Call (func=0x45ce2c0, arg=0x45d1740, kw=0x0) at Objects/abstract.c:2529
#37 0x000cd023 in do_call (func=0x45ce2c0, pp_stack=0xbfffcf90, na=1, nk=0) at Python/ceval.c:4231
#38 0x000cc87b in call_function (pp_stack=0xbfffcf90, oparg=1) at Python/ceval.c:4036
#39 0x000c9211 in PyEval_EvalFrameEx (f=0x45cf8e0, throwflag=0) at Python/ceval.c:2666
#40 0x000cac2e in PyEval_EvalCodeEx (co=0x409960, globals=0x3e2330, locals=0x0, args=0x45c783c, argcount=2, kws=0x302bcc, kwcount=0, defs=0x40c25c, defcount=1, closure=0x0) at Python/ceval.c:3253
#41 0x0003b49d in function_call (func=0x406620, arg=0x45c7830, kw=0x45d1cc0) at Objects/funcobject.c:526
#42 0x0000d530 in PyObject_Call (func=0x406620, arg=0x45c7830, kw=0x45d1cc0) at Objects/abstract.c:2529
#43 0x000cd4b9 in ext_do_call (func=0x406620, pp_stack=0xbfffd2dc, flags=3, na=1, nk=0) at Python/ceval.c:4326
#44 0x000c9376 in PyEval_EvalFrameEx (f=0x45d1ad0, throwflag=0) at Python/ceval.c:2705
#45 0x000cac2e in PyEval_EvalCodeEx (co=0x3f3a50, globals=0x3e2330, locals=0x0, args=0x45c7d6c, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#46 0x0003b49d in function_call (func=0x3f3ba0, arg=0x45c7d60, kw=0x0) at Objects/funcobject.c:526
#47 0x0000d530 in PyObject_Call (func=0x3f3ba0, arg=0x45c7d60, kw=0x0) at Objects/abstract.c:2529
#48 0x00020bfb in instancemethod_call (func=0x3f3ba0, arg=0x45c7d60, kw=0x0) at Objects/classobject.c:2578
#49 0x0000d530 in PyObject_Call (func=0x45cc910, arg=0x45d3090, kw=0x0) at Objects/abstract.c:2529
#50 0x0007cbaf in slot_tp_call (self=0x45cf810, args=0x45d3090, kwds=0x0) at Objects/typeobject.c:5397
#51 0x0000d530 in PyObject_Call (func=0x45cf810, arg=0x45d3090, kw=0x0) at Objects/abstract.c:2529
#52 0x000cd023 in do_call (func=0x45cf810, pp_stack=0xbfffd9a0, na=1, nk=0) at Python/ceval.c:4231
#53 0x000cc87b in call_function (pp_stack=0xbfffd9a0, oparg=1) at Python/ceval.c:4036
#54 0x000c9211 in PyEval_EvalFrameEx (f=0x45d32b0, throwflag=0) at Python/ceval.c:2666
#55 0x000cac2e in PyEval_EvalCodeEx (co=0x409960, globals=0x3e2330, locals=0x0, args=0x4370bfc, argcount=2, kws=0x302bcc, kwcount=0, defs=0x40c25c, defcount=1, closure=0x0) at Python/ceval.c:3253
#56 0x0003b49d in function_call (func=0x406620, arg=0x4370bf0, kw=0x45d3220) at Objects/funcobject.c:526
#57 0x0000d530 in PyObject_Call (func=0x406620, arg=0x4370bf0, kw=0x45d3220) at Objects/abstract.c:2529
#58 0x000cd4b9 in ext_do_call (func=0x406620, pp_stack=0xbfffdcec, flags=3, na=1, nk=0) at Python/ceval.c:4326
#59 0x000c9376 in PyEval_EvalFrameEx (f=0x45d30b0, throwflag=0) at Python/ceval.c:2705
#60 0x000cac2e in PyEval_EvalCodeEx (co=0x3f3a50, globals=0x3e2330, locals=0x0, args=0x220278c, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#61 0x0003b49d in function_call (func=0x3f3ba0, arg=0x2202780, kw=0x0) at Objects/funcobject.c:526
#62 0x0000d530 in PyObject_Call (func=0x3f3ba0, arg=0x2202780, kw=0x0) at Objects/abstract.c:2529
#63 0x00020bfb in instancemethod_call (func=0x3f3ba0, arg=0x2202780, kw=0x0) at Objects/classobject.c:2578
#64 0x0000d530 in PyObject_Call (func=0x45cfdd0, arg=0x45d1ab0, kw=0x0) at Objects/abstract.c:2529
#65 0x0007cbaf in slot_tp_call (self=0x45ccbf0, args=0x45d1ab0, kwds=0x0) at Objects/typeobject.c:5397
#66 0x0000d530 in PyObject_Call (func=0x45ccbf0, arg=0x45d1ab0, kw=0x0) at Objects/abstract.c:2529
#67 0x000cd023 in do_call (func=0x45ccbf0, pp_stack=0xbfffe3b0, na=1, nk=0) at Python/ceval.c:4231
#68 0x000cc87b in call_function (pp_stack=0xbfffe3b0, oparg=1) at Python/ceval.c:4036
#69 0x000c9211 in PyEval_EvalFrameEx (f=0x45d24f0, throwflag=0) at Python/ceval.c:2666
#70 0x000cca12 in fast_function (func=0x421a40, pp_stack=0xbfffe5e0, n=2, na=2, nk=0) at Python/ceval.c:4099
#71 0x000cc856 in call_function (pp_stack=0xbfffe5e0, oparg=1) at Python/ceval.c:4034
#72 0x000c9211 in PyEval_EvalFrameEx (f=0x45d1f90, throwflag=0) at Python/ceval.c:2666
#73 0x000cca12 in fast_function (func=0x4159f0, pp_stack=0xbfffe810, n=1, na=1, nk=0) at Python/ceval.c:4099
#74 0x000cc856 in call_function (pp_stack=0xbfffe810, oparg=0) at Python/ceval.c:4034
#75 0x000c9211 in PyEval_EvalFrameEx (f=0x45cc4e0, throwflag=0) at Python/ceval.c:2666
#76 0x000cac2e in PyEval_EvalCodeEx (co=0x4118f0, globals=0x40d850, locals=0x0, args=0x437275c, argcount=1, kws=0x0, kwcount=0, defs=0x41679c, defcount=10, closure=0x0) at Python/ceval.c:3253
#77 0x0003b49d in function_call (func=0x415980, arg=0x4372750, kw=0x0) at Objects/funcobject.c:526
#78 0x0000d530 in PyObject_Call (func=0x415980, arg=0x4372750, kw=0x0) at Objects/abstract.c:2529
#79 0x00020bfb in instancemethod_call (func=0x415980, arg=0x4372750, kw=0x0) at Objects/classobject.c:2578
#80 0x0000d530 in PyObject_Call (func=0x45cb6a0, arg=0x302bc0, kw=0x0) at Objects/abstract.c:2529
#81 0x0007d58c in slot_tp_init (self=0x45c9a50, args=0x302bc0, kwds=0x0) at Objects/typeobject.c:5657
#82 0x00070198 in type_call (type=0x422000, args=0x302bc0, kwds=0x0) at Objects/typeobject.c:735
#83 0x0000d530 in PyObject_Call (func=0x422000, arg=0x302bc0, kw=0x0) at Objects/abstract.c:2529
#84 0x000cd023 in do_call (func=0x422000, pp_stack=0xbfffef10, na=0, nk=0) at Python/ceval.c:4231
#85 0x000cc87b in call_function (pp_stack=0xbfffef10, oparg=0) at Python/ceval.c:4036
#86 0x000c9211 in PyEval_EvalFrameEx (f=0x3c4ae0, throwflag=0) at Python/ceval.c:2666
#87 0x000cac2e in PyEval_EvalCodeEx (co=0x3c5880, globals=0x329f80, locals=0x329f80, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#88 0x000c31c8 in PyEval_EvalCode (co=0x3c5880, globals=0x329f80, locals=0x329f80) at Python/ceval.c:667
#89 0x000f2631 in run_mod (mod=0x895b70, filename=0xbffff4ae "/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py", globals=0x329f80, locals=0x329f80, flags=0xbffff2b8, arena=0x3c1370) at Python/pythonrun.c:1346
#90 0x000f25c7 in PyRun_FileExFlags (fp=0xa08f48e0, filename=0xbffff4ae "/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py", start=257, globals=0x329f80, locals=0x329f80, closeit=1, flags=0xbffff2b8) at Python/pythonrun.c:1332
#91 0x000f1467 in PyRun_SimpleFileExFlags (fp=0xa08f48e0, filename=0xbffff4ae "/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py", closeit=1, flags=0xbffff2b8) at Python/pythonrun.c:936
#92 0x000f0d24 in PyRun_AnyFileExFlags (fp=0xa08f48e0, filename=0xbffff4ae "/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py", closeit=1, flags=0xbffff2b8) at Python/pythonrun.c:740
#93 0x0010afcd in Py_Main (argc=2, argv=0xbffff3a4) at Modules/main.c:599
#94 0x00002532 in main (argc=2, argv=0xbffff3a4) at ./Modules/python.c:23
(gdb) pystack
Current language:  auto; currently c++
Current language:  auto; currently c
/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py (26): setUp
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/case.py (319): run
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/case.py (391): __call__
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/suite.py (110): run
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/suite.py (70): __call__
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/suite.py (110): run
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/suite.py (70): __call__
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/runner.py (153): run
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/main.py (230): runTests
/Users/jmccampbell/Library/EPD/7.2-i386/lib/python2.7/unittest/main.py (95): __init__
/Users/jmccampbell/packages/PySide/BuildScripts/pyside/tests/phonon/basic_playing_test.py (67): <module>


_______________________________________________
PySide mailing list
PyS...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside

anatoly techtonik

unread,
Mar 17, 2012, 11:27:23 AM3/17/12
to Matti Airas, pys...@qt-project.org
On Thu, Mar 15, 2012 at 2:50 PM, Matti Airas <matti....@nokia.com> wrote:
> On 12.03.2012 15:11, ext Hugo Parente Lima wrote:
>> On Monday 12 March 2012 06:02:49 anatoly techtonik wrote:
>>> I can't confirm that - there are no changes in the Gitorious repository.
>>> http://qt.gitorious.org/pyside/pyside/commits/master
>> Is done, but locally because I had problems uploading the repository tree to
>> gerrit.
>
> ... and now they're there, with JP's bugfixes, and even the Gitorious
> mirror has already been updated! Thanks a million, Hugo, for the effort!

+1

And even GitHub mirror has been updated. ;)
--
anatoly t.

John Ehresman

unread,
Mar 29, 2012, 4:05:18 PM3/29/12
to Hugo Parente Lima, pys...@qt-project.org
On 3/15/12 2:03 PM, Hugo Parente Lima wrote:
> On Thursday 15 March 2012 12:28:52 Matti Airas wrote:
>> Hugo might want to correct me, but just go to the build directory and
>> run "ctest" and report the results together with your configuration
>> details on the mailing list.
>
> just ctest works, but "ctest -V" is better because it prints a lot of things
> useful to know what failed.

I just get a message that no test configuration file is found when I try
this on Windows, either in the root of the pyside source or the build
directory where cmake is run. Do I need to run ctest from another
directory or is there another way to run the tests?

Thanks,

John

Hugo Parente Lima

unread,
Mar 29, 2012, 4:15:38 PM3/29/12
to John Ehresman, pys...@qt-project.org
On Thursday 29 March 2012 17:05:18 John Ehresman wrote:
> On 3/15/12 2:03 PM, Hugo Parente Lima wrote:
> > On Thursday 15 March 2012 12:28:52 Matti Airas wrote:
> >> Hugo might want to correct me, but just go to the build directory and
> >> run "ctest" and report the results together with your configuration
> >> details on the mailing list.
> >
> > just ctest works, but "ctest -V" is better because it prints a lot of
> > things useful to know what failed.
>
> I just get a message that no test configuration file is found when I try
> this on Windows, either in the root of the pyside source or the build
> directory where cmake is run. Do I need to run ctest from another
> directory or is there another way to run the tests?

You need to run on build directory, I don't remember if the tests were
disabled by default on windows builds, but in any case you can enabled then
passing: -DBUILD_TESTS=ON on cmake (on both, PySide and Shiboken).

> Thanks,
>
> John

signature.asc

John Ehresman

unread,
Mar 29, 2012, 4:17:32 PM3/29/12
to Hugo Parente Lima, pys...@qt-project.org
On 3/29/12 4:05 PM, John Ehresman wrote:
> On 3/15/12 2:03 PM, Hugo Parente Lima wrote:
>> On Thursday 15 March 2012 12:28:52 Matti Airas wrote:
>>> Hugo might want to correct me, but just go to the build directory and
>>> run "ctest" and report the results together with your configuration
>>> details on the mailing list.
>>
>> just ctest works, but "ctest -V" is better because it prints a lot of things
>> useful to know what failed.
>
> I just get a message that no test configuration file is found when I try
> this on Windows, either in the root of the pyside source or the build
> directory where cmake is run. Do I need to run ctest from another
> directory or is there another way to run the tests?

Oops, I had disabled tests when building to reduce compilation time and
am rebuilding now.

Sorry for not checking this first,

Reply all
Reply to author
Forward
0 new messages