Qt Maemo Git Process

(Maemo fixes)
(Backporting 4.6 commits to our 4.5 branch)
Line 69: Line 69:
== Backporting 4.6 commits to our 4.5 branch ==
== Backporting 4.6 commits to our 4.5 branch ==
-
Those commits will be in the 4.6-backports branch. In the Diagram it's in yellow.
+
If we need to take some fixes from master 4.6 Qt branch, we cherry pick from our master branch to the 4.6-backports and master-qt-4.5 branches.
 +
 
 +
This branch is marked in yellow in the diagram
 +
 
<br><br>
<br><br>

Revision as of 09:17, 2 July 2009

The Maemo version of Qt lives here:

 http://gitorious.org/+qt-maemo-developers/qt/qt-maemo


If you have a local clone you can use gitk --all to see a visual representation of the branches, commits and merges.

lbt proposed this explanation of the branches/workflow based on the Mer gitorious workflow

Contents

Origin

The branches are synced with upstream Qt changes. No Maemo changes are there at all.

master

represents the latest core Qt master branch (currently 4.6)

4.5

represents the latest core Qt branch for 4.5


Maemo master branches

Currently we have 4.5 master branch only.

master-maemo-qt-45

This branch is

  • based on 4.5
  • has all feature branches selected for maemo merged into it.
  • fairly plain Qt and should contains no packaging data and debian/* should not exist.

If an updates is made to 4.5 and 4.5 is merged into master-maemo-qt-4.5 then *all* conflicts with all feature/bug branches will be seen at once. To avoid this, 4.5 is merged into each bug/feature branch and conflicts resolved in focused feature areas. Now we need to merge the conflict-resolved features into master-maemo-qt-4.5. At this point it may seem reasonable to simply re-merge each feature branch into master-maemo-qt-4.5 however master-maemo-qt-4.5 contains all the other features from the last merge. So as soon as the first conflict-resolved feature is merged, all the conflicts from all the other features will be hit. The answer is to create a temporary local branch based on the latest 4.5 (see http://wiki.maemo.org/Mer/Build/UsingGitorious#Upstream_Updates) and merge each feature in turn into this branch. Then merge that into master-maemo-qt-4.5 (which should have no conflicts at all and, in the absence of any features/bugs is a simple fast-forward).

Maemo build branches

These branch should be built completely and used for regular release.

These are based on master-maemo-qt-45 currently.

If you are looking for building Qt from sources for a specific platform, then you have to checkout one of these branches and run

dpkg-buildpackage -rfakeroot -b

qt-diablo

Diablo branch

qt-fremantle

Fremantle branch. debian/ dir is not there yet. Hence you cannot build deb packages. Ask to Antonio for more info about it.

qt-mer

Currently there is no branch.

Maemo build script and debian folder

maemo-build-generic

This branch is based on and tracks master-maemo-qt-4.5 It contains common packaging that allows Qt to build on various maemo-ish releases. A good rule is that no code is touched by non-merge commits to this branch It simply merges master-maemo-qt-4.5

maemo-build-diablo

Branched from maemo-build-generic and modified with packaging/configuration specifically used for diablo Note that maemo-build-diablo is not merged back

maemo-build-fremantle

Branched from maemo-build-generic and modified with packaging/configuration specifically used for fremantle

maemo-build-mer

Branched from maemo-build-generic and modified with packaging/configuration specifically used for Mer

maemo-qt-scripts

There are some scripts to manage maemo branches or create release pacakge etc.


Backporting 4.6 commits to our 4.5 branch

If we need to take some fixes from master 4.6 Qt branch, we cherry pick from our master branch to the 4.6-backports and master-qt-4.5 branches.

This branch is marked in yellow in the diagram



Maemo fixes

These branches have each feature/ bug fix only. In the future, we will create a new maemo master branch, e.g. based on 4.6, at that time it is easy to chery-pick the modification to the new master branch.

bug-*

Representing potential bugs in Qt These branches hold fixes to specific bugs. The 4.5 branch will be merged into them to keep them up-to-date. If the bug is fixed upstream the branch will be deleted.

hildon-*

Each of these branches contain changes able to integrate Qt in the hildon environment. (Input method, menus, style). TO FIX: Actually the widget-* branches shoul be renamed in hildon-widget-*

hw-*

Contain changes that improve the usability of Qt with touchscreen device. Feature like right mouse button emulation, easy double click and so on. TO FIX: Actually the ts-* branches should be renamed in hw-ts-*

maemo-*

Representing features in various areas and branched from cloned 4.5 branch. Each branches adds only one feature-area.

The main covered areas are:

- maemo-build-* 
- maemo-qt-scripts
- others maemo related areas.

These branches has been created just to store the changes. We don't need to merge the changes from the 4.5 branch here if is not strictly needed. Don't merging upstream changes in these branches make more visible the Maemo changes. Then The 4.5 branch WON'T be merged into them to keep them up-to-date. The branch will be there and updated with our changes also when the feature is adopted upstream. Usually is hard to track dependencies between branches. The Diagram below should explain these dependencies.

Image:MaemoQtOnGit-Diagram-opt2.jpg