FaceBook Twitter

Getting started as an Author or Editor

To get started, we'll walk you through the following steps:

General knowledge

What is launchpad?

Launchpad is the software collaboration platform that our project uses for code hosting through Bazaar, translations, bug tracking etc.

What is Bazaar (bzr)?

Bazaar is a distributed version control system that makes it easier for people to work together on software projects.

What is bazaar branch?

A branch is the record of all the commits that have been done by project’s contributors.

The Big Picture

What does the author/editor team do?

The editor in chief leads the author/editor teams and assigns chapters to authors and editors according to their interest and their expertise. Once the team is organized, its goals are set and a writing freeze date is established, authors start working on their chapters while editors proofread in parallel. Throughout the authoring process, authors, editors, and the editor in chief are in contact with each other so they can deal with problems together, achieve a consistent style and voice throughout the book, and ensure the best long-term result. By the writing freeze date, the team should have finished the writing of the manual. Then the new manual release gets published!

How the work is done?

When we begin work on a new manual release, we create a branch. The branch contains all the files needed by the authors and contributors. Every author or group of authors is working on their own section or chapter and they are responsible for writing new material or modify the existing content. Each file is saved as a LaTeX file with the extension .tex (i.e., filename.tex). When the author modifies the file(s) and wants to share the changes with others, he/she commits the LaTeX file(s) to the branch. Other contributors pull or download the latest branch revision containing the newly modified files.

The following picture illustrates the process:

You have two ways to work with branches either with commands or though a GUI application (e.g Ground Control, Bazaar Explorer).

Creating a Launchpad Account

  1. Go to https://launchpad.net and click "Register" in the top-right corner of the page
  2. Fill in your details

    Now you need to create an SSH key. Instructions taken from here.

    1. Install OpenSSH. On Ubuntu, you can install OpenSSH by opening your terminal and typing:
    2. $ sudo apt-get install openssh-client
    3. Once OpenSSH is installed, stay in the terminal and type:
    4. $ ssh-keygen -t rsa
    5. When prompted, press Enter to accept the default file name for your key.
    6. Next, enter then confirm a password to protect your SSH key. Your key pair is stored in ~/.ssh/ as id_rsa.pub (public key) and id_rsa (private key)
  3. Now you need to upload the public portion of your SSH key to Launchpad:
    Open your public key in a text editor and copy its contents to your clipboard. The public key file has the extension .pub. For example: id_rsa.pub

  4. Visit your SSH keys page.
  5. Paste your public key into the text box and then click the Import public key button to continue.

Joining our team

  1. Go here.
  2. Click on "Join this team."
  3. You should subscribe to the mailing list as well.

Downloading the bzr branch

You will need to install bzr. Run these commands in a terminal to install bzr and configure it.

  1. Install bzr:
  2. $ sudo apt-get install bzr
  3. Configure bzr with your name and email:
  4. $ bzr whoami "Your name <email@domain.com>"
    To check that bzr knows who you are, run:
    $ bzr whoami
    If it has worked, it should return your name and email address. Now we need to download the Ubuntu Manual branch.

    1. Create a new directory in your home folder called Projects.
    2. $ mkdir ~/Projects
    3. Change into that directory in a terminal window:
    4. $ cd ~/Projects
    5. Once you are in your Projects directory, run this command to download our branch:
    6. $ bzr branch lp:ubuntu-manual ubuntu-manual-trusty
    7. Bzr will now download the project files. This may take a few minutes depending on your connection speed.

Installing TeX Live

The Ubuntu Manual requires TeX Live. The version of TeX Live in the Ubuntu repositories is incomplete and out-dated. You must use the upstream version of TeX Live to compile the manual successfully.

Installing TeX Live

  1. First, remove any Ubuntu TeX Live packages, if you have them installed.
    $ sudo apt-get remove texlive-*
  2. Download the TeX Live install script: Download now
  3. Unpack the tarball:
    $ tar xvf install-tl-unx.tar.gz
  4. Change to the newly-unpacked directory:
    $ cd install-tl-*
  5. Run the script:
    $ sudo ./install-tl
  6. Select where you’d like to install everything, and any other options you prefer. If you choose not to install everything, the minimum that you’ll need is the following collections:
    1. Essential programs and files (a)
    2. LaTeX recommended packages (s)
    3. XeTeX packages (C)

    Under the language collections, you can skip all the documentation, but be sure to install all the languages you wish to translate into. (If the language you wish to translate into isn’t listed in the menu, don’t worry, there are just no specific packages required for that language.)

    You should also enable the creation of the symlinks:

    1. From the main TeX Live installation menu select Options (O).
    2. From the Options menu, select “create symlinks in standard directories” (L).
    3. The default directories are usually okay.
    4. Press R to return the main menu.

    Once those are installed, we can install the remainder of the packages with the install-pkgs.sh script. (Note that this hasn’t been tested yet and it’s pure guesswork on Kevin’s part! Let us know if it does or doesn’t work for you.)

  7. Run the install-pkgs.sh script that’s in the ubuntu-manual-version/pkgs/ directory to make sure you have all the required packages.
    $ ~/Projects/ubuntu-manual-trusty/pkgs/install-pkgs.sh
  8. If everything checks out okay, you should be able to run: make ubuntu-manual-LANG.pdf where LANG is the language code (see the po/ directory for a list of supported languages).
  9. If everything checks out okay, you can build the PDF:
    $ cd ~/Projects/ubuntu-manual-version   # e.g., ~/Projects/ubuntu-manual-trusty
    $ make

    This will generate the file ubuntu-manual.pdf, which is the English manual in PDF format. To make the manual in another language use the following command:

    $ make ubuntu-manual-LANG.pdf

    where LANG is the language code. (See the po/ directory for a list of supported languages.) This requires a .po file (e.g., nl.po) in the given language in the subdirectory po/.

Checking Prerequisites

To make sure you have all the prerequisites installed, run the install-pkgs.sh script (located in the ubuntu-manual/pkgs/ directory).

The script will check for the required Ubuntu packages, TeX packages, and fonts.

Start working with the TeX files

The first priority for authors is to write the content of the manual, but the manual isn't just a simple PDF. Authors should use LaTeX language to mark up the text. You don't have to learn the whole language to do your job as an author; there are specific tags that are used. Our style guide (PDF) should teach you all you need to know about LaTeX.

If you have trouble using LaTeX, it's okay. An editor will do the mark up of your files.

Compiling the manual

By compiling the manual you will find any syntax errors in the LaTeX markup. You can fix the errors and review your work more easily. It isn't necessary for authors to compile the manual, but we encourage you to do so in order to be able to fix any possible errors and see what your work looks like.

To compile the manual go to the ubuntu-manual/ directory and run make.

Sharing your work with the team

As was mentioned at the beginning, you may use either GUI applications or terminal commands when you want to work with bzr branches. Here is a list of some cool GUI applications.


Open up a new Terminal and change the working directory to the location of the branch.

Add the files to bzr:

$ bzr add

That should add all files in your working directory to bzr.

Now you need to see the differences (there will be none if you have got the branch for the first time):

$ bzr diff

Then commit it:

$ bzr commit -m "What you've changed"

So for example:

$ bzr commit -m "Fixed some spelling mistakes in chapter 6"

After it has said "committed revision X" you should be able to push it through to main:

$ bzr push lp:ubuntu-manual

Now go to Launchpad and check that it has indeed been pushed up to the next revision.

Updating your local branch

Run the following command to "pull" the latest branch from Launchpad and merge it with yours:

$ bzr pull lp:ubuntu-manual

Remember all bzr commands must be in the root directory of ubuntu-manual, where your branch is registered.

If you have created a new folder or new files (ie, not edited an existing one) then you will need to run

$ bzr add

again to add these new files/folders to the bzr branch, then you'll need to run bzr diff to check they've been added, and then the commit line shown above. Then finally push it through, once you've made sure no one else has pushed through something in the few minutes since you last checked!

How to make changes the RIGHT way

Firstly, make sure you have the latest revision by going here:

  • Run bzr diff when you've got the latest revision, to see what changes someone else has made
  • Make your own changes
  • Run make clean to get rid of all the unnecessary build packages
  • Run bzr diff again to confirm them
  • Commit them with a good description. Not word-for-word changes, but specific enough for someone to easily find again
  • Push them through to main, and then check the Launchpad page to see it's gone up to the next revision.

Help us improve

Thank you for your interest. Please help us improve this page so we can help more the new authors and editors. Send us an email with your critiques, impressions, recommendations, etc. to our mailing list.