contrib.md 4.5 KB


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.

Download Transit's website from the Git repository here:

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

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, 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.