contrib.md 6.6 KB


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

Download Retroboot from the Git repository like so:

git clone https://notabug.org/retroboot/retroboot.git

You can submit your patches via Notabug pull requests.

Information about how the Retroboot project is governed is documented in our general management guidelines.

Retroboot development is done using the Git version control system. Refer to the official Git documentation if you don't know how to use Git.

Building Retroboot from source

Read the following article: Building Retroboot from source

How the build system works and how to maintain it

Read the following article: Retroboot maintainance manual

Do you have a coreboot-compatible system? If it's not supported in Retroboot, you are welcome to add support to Retroboot. You basically need to:

  • Add a coreboot config
  • Specify what coreboot revision is to be used
  • Include whatever custom patches you want (for that coreboot revision)
  • Specify what payloads you want
  • etc

All of this is completely automated. The guide linked above tells you how to add and maintain boards in Retroboot. Retroboot is, in essence, an automated build system that describes how to build various ROM images for whatever is in the coreboot repository. Having individual board maintainers in Retroboot is a high priority for Retroboot, so as to have greater hardware support with regular testing.

Editing the website and documentation, wiki-style

The website and documentation is inside the www directory in the Git repository, in Pandoc flavoured Markdown. The website is generated into static HTML via Pandoc with the following scripts in that directory:

  • index.sh: generates the news feed (on the News section of the website)
  • publish.sh: converts an .md file to an .html file
  • Makefile: with calls to index.sh and publish.sh, compiles the entire Retroboot website

Use any standard text editor (e.g. Vim, Emacs, Nano, Gedit) to edit the files, commit the changes and send patches.

Optionally, you can install a web server (e.g. lighttpd, nginx) locally and set the document root to the www directory in your local Git repository. With this configuration, you can then generate your local version of the website and view it by typing localhost in your browser's URL bar.

Privacy of contributors (you do not have to reveal your name or identity!)

Contributions that you make are publicly recorded, in a Git repository which everyone can access. This includes the name and email address of the contributor.

In Git, for author name and email address, you do not have to use identifying data. You can use Retroboot Contributor and your email address could be specified as contributor@retroboot.org. You are permitted to do this, if you wish to maintain privacy. We believe in privacy. If you choose to remain anonymous, we will honour this.

Of course, you can use whichever name and/or email address you like.

For enhanced privacy, we recommend that you use a trustworthy VPN provider and route all of your traffic through Tor (on top of the VPN). The Tor website has instructions on it for routing traffic through the Tor network.

Legally speaking, all copyright is automatic under the Berne Convention of international copyright law. It does not matter which name, or indeed whether you even declare a copyright (but we do require that certain copyright licenses are used - read more about that on this same page).

If you use a different name and email address on your commits/patches, then you should be fairly anonymous. Use git log and git show to confirm that before you push changes to a public Git repository.

General guidelines for submitting patches

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

  • GNU General Public License v3 is highly recommended
  • For documentation, we require GNU Free Documentation License v1.3 or higher

If submitting binary blobs, an exception is made if it's a type of blob that Retroboot accepts (e.g. VGA ROM, CPU microcode updates). Retroboot will reject most binary blobs, and free software is strongly preferred.

Always declare a license on your work! Not declaring a license means that the default, restrictive copyright laws apply, which would make your work non-free.

GNU+Linux is generally recommended as the OS of choice, for Retroboot development.

General code review guidelines

Any member of the public can submit a patch. Members with push access must never push directly to the master branch; issue a Pull Request, and wait for someone else to merge. Never merge your own work!

Your patch will be reviewed for quality assurance, and merged if accepted.

How to download Retroboot from the Git repository

In your terminal:

git clone https://notabug.org/retroboot/retroboot.git

A new directory named retroboot will have been created, containing retroboot.

How to submit your patches (via pull requests)

Make an account on https://notabug.org/ and navigate (while logged in) to https://notabug.org/retroboot/retroboot. Click Fork and in your account, you will have your own repository of Retroboot. 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/retroboot/retroboot/pulls and click New Pull Request.

You can submit your patches there. Alternative, you can log onto the Retroboot 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 Retroboot 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 #retroboot channel on Freenode.