Testing developer versions using Git
If you want to work on the code, or test a fix that has just been made, you'll want to get the latest developer version. We use Git for version control, so make sure you have that. You'll also need 'gettext-tools' to build the translations.
To install these on Ubuntu, open a terminal emulator and run this command:
$ sudo apt-get install git-core gitk gettext
(gitk is a largish visualisation tool and is not strictly necessary, but highly recommended)
Click on the SCM link on any program's page to see its Git page (for example, 0install.git for 0install itself). The link for cloning is displayed there; use it like this:
$ git clone email@example.com:0install/0install.git $ cd 0install
The directory contains the latest version, plus a single (hidden) .git directory with all the git-related bits. You can install it as usual, except that you need to create the translation (.mo) files first:
$ make translations $ sudo python setup.py install
To see the log:
$ git log
This doesn't require network access; your clone has the whole history.
To view a visualisation of the history:
$ gitk --all
(--all shows the history of all branches and tags, not just the main trunk)
To download the latest updates into your copy:
$ git pull --rebase
(The --rebase option says that if you've committed some changes locally, they should be reapplied on top of the latest version. Otherwise, it would create a merge commit, which is usually not what you want.)
You can also pull from other places. If someone posts to the mailing list, they will tell you where to pull from to try the feature out. If they send a patch, you can apply it with:
$ git am the.patch
If you've changed the code in some way then you can commit the changes like this (this just stores them on your own computer, in the .git sub-directory).
$ git commit -a
Enter a log message. The first line should be a short summary (like the subject of an email). Then leave a blank line, then write a longer description.
To view your patch after committing:
$ git show
If you realised you made a mistake, correct it and then do:
$ git commit -a --amend
Finally, to make a patch file ready to send to the mailing list:
$ git format-patch origin/master
Making a new translation
Note: if you prefer, you can also use the Transifex web interface to work on translations.
The steps are:
- Create the .pot (.po template) file.
- Create a new directory share/locale/$locale/LC_MESSAGES inside the Git checkout.
- Copy the .pot file inside it with a .po extension.
e.g. to make a French translation:
$ make share/locale/zero-install.pot $ mkdir -p share/locale/fr/LC_MESSAGES $ cp share/locale/zero-install.pot share/locale/fr/LC_MESSAGES/zero-install.po
Then edit the .po file to give a translation for each string. When you're done, create the .mo file from the .po file and test:
$ make translations $ ./0launch
Finally, send us the new .po file.