Git

From gPodderWiki

Jump to: navigation, search

To run gPodder from its Git repository, you have to check out a working copy from the repository. You can then use bin/gpodder -v in the source checkout to run the latest development version of gPodder.

Contents

[edit] Branches

We currently (as of November 2011) use one main branch for development (master), one experimental branch (tres-gtk3), one branch for device-specific customizations (harmattan) and three old branches (two, maemo-4, maemo-5):

[edit] master

This is the development branch for 3.x releases. This is where the feature development happens. This branch supports Desktop Gtk+ and Maemo 5 and Harmattan via the QML UI. This branch does not have support for device synchronization, but features a preliminary "Web UI" and an advanced command-line interface.

[edit] harmattan

This is the customization branch for 3.x releases on MeeGo 1.2 (Harmattan, N950 and N9). This branch contains Debian packaging information and customizations to the QML UI (using Qt Quick Components for MeeGo) that can't be included in the tres branch.

[edit] tres-gtk3 (experimental)

This experimental branch is regularly rebased on top of master, and includes the port of the Desktop UI to PyGObject (Gtk 3).

[edit] two

This is the branch for old 2.x releases. No features are developed, although patches, bug reports and translations are still accepted. This branch supports Maemo 4, Maemo 5 and Desktop Gtk+ UIs and a simple command-line interface.

[edit] maemo-5

This is the customization branch for 2.x releases on Maemo 5 (Fremantle, N900). This branch contains Debian packaging information and Maemo-specific customizations that can't be included in the master branch.

[edit] maemo-4

This is the customization branch for 2.x releases on Maemo 4 (Diablo, N800/N810). This branch contains Debian packaging information and Maemo-specific customizations that can't be included in the master branch.

[edit] Tags

This section should document the pattern for tagging specific releases and versions of gPodder. Also, non-recurrent tags should be described here.

[edit] gpodder-X.Y.Z

Upstream releases of gPodder are tagged with the "gpodder-" prefix, followed by the version number.

[edit] diablo/gpodder_X.Y-Z

Packages for Maemo 4 are tagged using this pattern, where "Z" is the Debian revision number of the package (usually 1).

[edit] fremantle/gpodder_X.Y-Z

Packages for Maemo 5 are tagged using this pattern, where "Z" is the Debian revision number of the package (usually 1).

[edit] harmattan/gpodder_X.Y.Z

Packages for MeeGo 1.2 Harmattan are tagged using this pattern.

[edit] fremantle-custom_2009-09

This is the HEAD of the orphaned customization branch to make gPodder 0.16.1 compatible with Maemo 5 before the gPodder 2.0 release. This is superseded by the "maemo-5" branch.

[edit] gpodder-before-mygpoclient

This tag points to the last version of gPodder that does not depend on the mygpoclient library. This tag will be removed in the future.

[edit] gpodder-last-svn-commit

This tag points to the last revision of gPodder that has been maintained in the old Subversion repository, before we converted the repository to a Git repository.

[edit] gpodder-core

This is a very old, orphaned branch from September 2006 for experimenting with creating a "core" gpodder module. You should never need to checkout this branch, except if you are a historian or have too much time.

[edit] gpodder-ipod-dbus

This is a very old, orphaned branch from June 2006 that included some code for detecting a connected iPod via D-Bus and starting synchronization when the device has been connected. This probably does not work anymore on modern Linux Desktops.

[edit] Step 1: Dependencies

To get gPodder-Git working, you need to install Git. In Debian and Ubuntu, you can install this by running (as root or with sudo):

   apt-get install git

For other distributions, the package should be named in a similar way.

You will also need to install the dependencies listed on this page to get gPodder running.

As of March 2010, the required (hard) dependencies for the Gtk+ UI can be installed with:

   apt-get install python-gtk2 python-feedparser python-mygpoclient

If the python-mygpoclient package is not yet available in your distribution, please download it from http://thp.io/2010/mygpoclient/ or use the Ubuntu packages from the gPodder PPA.

[edit] Step 2: Check out a working copy

  1. Open a shell
  2. Change to the folder where you usually keep source packages of software: cd ~/src
  3. Check out a working copy from gPodder's Git repository:
    git clone git://github.com/gpodder/gpodder.git
  4. After the check out, you should now have a gpodder folder with the source in it. Change into it: cd gpodder
  5. You can now run gPodder from this working copy without interference from your locally-installed distribution package (you don't need to uninstall it, gPodder will only use the gPodder package from the working copy) with using bin/gpodder -v. This will also enable debugging mode, so you will see debugging output in your terminal window.
  6. To test the command-line interface, run bin/gpo in the working copy folder.

[edit] Step 3: Updating from the repository

Every now and then, changes will be committed into the repository. You can update you local working copy to the latest revision by running git pull in your working copy.

[edit] How do I create a patch?

Alright, so you have a Git working copy checked out as described above and made some changes. Entering git status should give you a list of files that have changed or that Git doesn't yet know about. If you have added/removed a file, use git add/rm path/to/file.py to add/remove the file. Then, run git status again and see if everything is included. make clean can help you to get rid of temporary files.

If you think you have added all necessary files, enter git diff --color to get a list of changes. You can create a patch file after commit:

git format-patch origin/master

You can review this file with a text editor of your choice, and if you like the changes, send it to the mailing list. If the file is bigger than 10kB, please "gzip" it first.

If the file is too big, the mailing list software will complain and your message will not be posted to the list. If your patch is not trivial, and might need discussion, it would be a good idea to file the patch as a bug report on our bug tracker. You can then send a mail to the mailing list containing a link to the bug page. You can (and should) attach your patch to the bug. Thanks!

[edit] Quicker

If you don't plan to send back patches, but you want to test the latest version, run these commands in a terminal window:

 $ wget -q -O- 'https://github.com/gpodder/gpodder/tarball/master' | tar xz
 $ cd gpodder
 $ make test | tee gpodder.log

This way you don't need to install Git (you still need to install the dependencies listed above, though).

Personal tools
Toolbox
LANGUAGES
© 2005-2011 Thomas Perl and the gPodder Team