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
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
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
+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.
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
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
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.
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.
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.
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.
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?
> 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.
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
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.
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.
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'
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.
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.
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.
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.
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...
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.
Haha! Didn't realize the mailing list was CCd. Oops. :-)
What is actually involved for testing on the mac? Is there a test suite to run or what?
_______________________________________________
PySide mailing list
PyS...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside
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
+1
And even GitHub mirror has been updated. ;)
--
anatoly t.
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
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
Oops, I had disabled tests when building to reduce compilation time and
am rebuilding now.
Sorry for not checking this first,