---
title: Information about sending patches for review
x-toc-enable: true
...

Useful information, related to Transit development, including links to the
Git repositories where development is done. Transit development is discussed
on the [IRC channel](https://webchat.freenode.net/?channels=##transit).

Download Transit's website from the Git repository here:

**git clone https://notabug.org/transit/transit-website.git**

Editing the website and documentation, wiki-style
-------------------------------------------------

The entire website on transit.org.uk, including all of the Transit's
documentation, is hosted in the Git repository. The pages are written in
Markdown, which is an easy-to-use markup language similar to the one used
when, for instance, editing pages on Wikipedia or a MediaWiki-based website.

Just download Transit's Git repository, make changes to the website under the
resulting ***transit-website*** directory.

**git clone https://notabug.org/transit/transit-website.git**

***You can use any standard text editor to edit and improve the entire
Transit website. E.g. Vim, GNU Emacs, GNU Nano, Gedit or whatever you
prefer to use.***

GNU+Linux is recommended, but Windows and MacOS also work with Git.

This page has information about using Git, which you will use to submit
improvements to Transit:
<https://git-scm.com/book/en/v1/Getting-Started>

Once you've made your changes, commit them using Git and then use Git to
send the patches so that we can merge them on the live website at
transit.org.uk.

We currently have a shortage of people who possess the skill to write and
maintain good documentation for Transit, so we welcome any and all
contributions!

General guidelines for submitting patches
-----------------------------------------

We require all patches to be submitted under a free license:
<https://www.gnu.org/licenses/license-list.html>.

You *must* declare copyright on your work, and declare a free license. Not
declaring copyright, especially if you also don't declare a license, means that
the default restrictive copyright laws apply under the Berne convention.

***Free*** in this context refers to Liberty, not Price; see:
<https://www.gnu.org/philosophy/free-sw.html>

We are a bunch of geeky computer people.

If you wish to submit work without copyright, or with permissive terms, then
the *Creative Commons Zero* license is highly recommended. Otherwise, the **GNU
Free Documentation License, version 1.3 or (at your option) any later version**,
is preferred (without invariant sections); we will also accept any other free
license.

For code (not website changes / documents), we would suggest that you use
the **GNU General Public License, version 3 or (at your option) any later
version**.

Transit development is facilitated by *[git](https://git-scm.com/)*, a
*distributed* version control system. You will need to install Git (most
GNU+Linux distributions package it in their repositories).

GNU+Linux is generally recommended as the OS of choice, for Transit website
development. If you're running MacOS, Git is also usable there. For Windows,
YMMV but you could.... IDK, install Debian GNU+Linux? :)

Also, MacOS sucks. Windows too. Use GNU+Linux. It's free as in freedom, doesn't
spy on you, doesn't contain backdoors and generally works much better than
other operating systems. Debian is nice, so is Trisquel, if you haven't used
the OS before.

General code review guidelines
------------------------------

Non-core members will push to their own repository, and issue a Pull Request.
Core maintainers of Transit can push to the repository, but not to the master
branch; they must push it to a non-master branch, and again issue a Pull
Request.

An individual or group of people will then review the patch sent by the
contributor. With approval from a core maintainer, or otherwise someone with
merge rights on the repository, the patch will be merged into the official
*master* branch.

Those with push/merge access on the official Transit repository must never
directly push their own patches to the master branch, and they must never
merge their own Pull Request. Regardless of the individual's standing and
frequency of contributions within the project, those who decide whether to
merge a patch will *always* differ from the original contributor.

These guidelines are *enforced*, to avoid the appearance of a BDFL (Benevolent
Dictator for Life) in the Transit project, as one previously existed in the
project. Transit is a collectively and democratically governed project.
Maintainers who violate these guidelines may, at the discretion of other
maintainers, have their push/merge rights revoked.

How to download Transit from the Git repository
-------------------------------------------------

In your terminal:

**git clone https://notabug.org/transit/transit-website.git**

A new directory named ***transit-website*** will have been created, containing
Transit.

How to submit your patches 
--------------------------

Make an account on <https://notabug.org/> and navigate (while logged in) to
<https://notabug.org/transit/transit-website>. Click *Fork* and in your account,
you will have your own repository of Transit. Clone your repository, make
whatever changes you like to it and then push to your repository, in your
account on NotABug.

Now, navigate to <https://notabug.org/transit/transit-website/pulls> and click
*New Pull Request*. 

You can submit your patches there. Alternative, you can log onto the Transit
IRC channel and notify the channel of which patches you want reviewed, if you
have your own Git repository with the patches.

Once you have issued a Pull Request, the Transit maintainers will be notified
via email. If you do not receive a fast enough response from the project, then
you could also notify the project via the ##transit channel on freenode.
