The Maintainers' Corner

This page aims at regrouping all the informations, tips, links, etc. that are useful for maintainers.

Useful links for maintainers

Branches

The "master" branch (what you get when you do a simple git clone) is used for development of the unstable branch, with maintenance of the stable branch on a git branch. The stable branch is usually created just before the unstable branch is declared stable, because that is when some people start working on the next unstable development phase.

We try to use the same git branch names for all GNOME modules. For instance, gnome-2-14 would be an excellent choice for a branch name targetting the GNOME 2.14 release, according to these rules:

When you branch, please remember to let release-team, desktop-devel-list, gnome-doc-list, and gnome-i18n know.(release-team@gnome.org, desktop-devel-list@gnome.org, gnome-doc-list@gnome.org, gnome-i18n@gnome.org). It is especially important that translators and documenters know, so they can concentrate on the stable branches during the run up to the final release, and afterwards when further stable releases will be made. If you've created a branch for stable GNOME release, please, include in your mail a plan for your project for the next release cycle. Note that many people would like to know what will happen in next release.

If appropriate, also update the jhbuild moduleset with the appropriate revision. e.g. your module's <branch/> tag for gnome-2-20 would become <branch revision="gnome-2-20"/>.

For historical interest, you can read more about this in the branching GEP.

Example

Here's an example, when branching for 2.14 (inside a clone of the module!):

git branch gnome-2-14 master
git push origin gnome-2-14
git branch -d gnome-2-14
git checkout -b gnome-2-14 origin/gnome-2-14

where origin is the local name for the GNOME Git repository. The last two commands is to ensure that your local branch is properly setup to track the remote branch.

A shorter way to create a new remote branch & track it within a local branch is (using a fully qualified ref spec):

git push origin origin:refs/heads/gnome-2-14
git checkout -b gnome-2-14 origin/gnome-2-14

To delete a faulty remote branch use:

#potentially dangerous!
git push origin :gnome-2-14

If unsure use the --dry-run option for git-push first.

I'm a new maintainer, what should I do?

Here are some things you should do when you're becoming maintainer for a module:

Creating/importing a new module in GNOME git

To create or import a new module, see Git/NewRepository.

Here's a small list of other important steps to do when creating or importing a new module in git:

Is a MAINTAINERS file still needed?

No, please create [module].doap files instead.

What should a [module].doap file look like?

A [module].doap file should look like the following:

Example:

<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xmlns:gnome="http://api.gnome.org/doap-extensions#"
         xmlns="http://usefulinc.com/ns/doap#">

  <name xml:lang="en">Tasque</name>
  <shortdesc xml:lang="en">Easy quick task management</shortdesc>
  <homepage rdf:resource="http://live.gnome.org/Tasque" />
  <mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/tasque-list" />

  <maintainer>
    <foaf:Person>
      <foaf:name>Brian G. Merrell</foaf:name>
      <foaf:mbox rdf:resource="mailto:bgmerrell@gmail.com" />
      <gnome:userid>bgmerrell</gnome:userid>
    </foaf:Person>
  </maintainer>
  <maintainer>
    <foaf:Person>
      <foaf:name>Sandy Armstrong</foaf:name>
      <foaf:mbox rdf:resource="mailto:sanfordarmstrong@gmail.com" />
      <gnome:userid>sharm</gnome:userid>
    </foaf:Person>
  </maintainer>
</Project>

This file needs to be named according to the name of your module (the above is "tasque.doap"), and located in the top directory (TODO: only needed in master, or all active branches?).


CategoryJhbuild

MaintainersCorner (last edited 2009-10-22 09:19:32 by MichaelHasselmann)