Location: Home / Documentation / Contribution Guidelines

Contribution Guidelines


This document explains how to contribute changes to uniqush project.


Before contributing any changes, please make sure you have the following tools/knowledge ready to be used:

Given different tasks, there may be additional knowledge/tools required.

Basic procedure

We put all our repositories on github under our github organization. The basic procedure of contributing changes is:

  1. Find a repository you want to change under our github organization.
  2. Fork the repository.
  3. Change the repository in your clone.
  4. Push any change to your clone.
  5. Send a pull request to our original repository. Once the request is received, it will be reviewed and your change will be merged into the repository if we think it is a good change.

Because we put everything on our github organization, there may be additional steps in the basic procedure. In general, repositories fall into two categories: code repositories, which contains programs/libraries’ source code; and content repositories, which contains everything but source code (e.g. blog posts, web pages, etc.)

If you have any question, please send it to our mailing list. NOTE: Given current volume of the mailing list, users and developers are sharing a same mailing list. It may be split into two if we observed a high volume of emails.

Source code repositories

The server side code is written in go programming language. If you want to make a contribution there, please make sure you know this language well enough.

Each source code repository has three branches:

If you want to contribute your source code, please make sure your changes are based on exp branch, because we put our latest code there. It would be better to put your changed version in an individual branch or at least in exp branch, and then send your pull request on github. Before doing any work, you may want to read this document from github.

Content repositories

The whole website of uniqush.org is put to the www repository. You can rebuild it with webgen.

Because the downloads page is automatically generated with our own ruby script, you should put some packages under downloads directory to let it run correctly. Please make sure you have created a downloads directory under src/ and put some .deb/.rpm/.tar.gz files under it.

The uniqush blog posts are put to the blog repository respectively. You should generate the whole blog site with pelican.

If you want to make any change to content repositories, simply fork and change, then send the pull request.

Any source code is under Apache 2.0 license, please make sure you have read and understand the license before making any changes.

Any content is under Creative Commons Attribution 3.0 Unported License. Again, please read it and make sure you accept it.

Software patent sucks

Yes, I don’t like it and please make sure you have read Apache 2.0 before making any contribution that contains a patent.