How to contribute


Contributing to GNSS-SDR

Found a bug in the code? Interested in adding a new feature or fixing a known bug? Then by all means submit an issue or pull request. If this is your first pull request, it may be helpful to read up on the GitHub Flow first. If you need a quick introduction to Git and its parlance (concepts such as repository, commit, push, pull-request, etc.), check our Git tutorial. This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.

The basic setup steps for a contribution to the source code are the following:

  1. If you still have not done so, create your personal account on GitHub.

  2. Fork the GNSS-SDR source code repository from GitHub. This will copy the whole source code repository into your personal account.

    Fork GNSS-SDR from GitHub

  3. Then, clone your forked repository into your local machine, checkout the next branch, branch off from it, and start working on the source code.

  4. When your contribution is ready, head your browser to your GitHub repository, switch to the branch where your contributions are, and click the Pull Request button.

More details are available in the file.

Before start working in GNSS-SDR source code, specially if you want to contribute your changes back to the upstream repository, you may be interested in having a look at our coding style guide. The usage of clang-format for automated code formatting is highly recommended.

Contributing to this website

Found a typo in this website? Interested in giving your thoughts on existing pages, adding a post, tutorial, new feature or enhancement?

This website itself lives in a GitHub repository. You can contribute in several ways:

  • Commenting (through your Google, Facebook or Twitter account, or just open a new profile at Disqus) in the boxes such as the one at the bottom of this page. Moderation will be applied only in cases of flagrant off-topic or unappropriated style (see our code of conduct).

  • Sharing the content in your favorite social network.

  • Checking existing open issues or submitting a new one.

  • Forking this web, cloning the repository, branching off from the master branch, working on the changes in your own repository, and making a pull request.

    Fork this website from GitHub

How to run this website locally

The required software can be installed through RubyGems, which is probably already installed in your system.

Install Jekyll:

$ sudo gem install jekyll

More information at Jekyll’s installation page. Then, install Bundler, a tool for managing the required dependencies:

$ sudo gem install bundler

Clone your forked repository of this website and install the required dependencies:

$ git clone
$ cd geniuss-place
$ bundler install

After all gems are installed, the following command will deploy the website and run a local server at

$ bundle exec jekyll serve -w --config _config.yml,

You should see something as:

Configuration file: _config.yml
Configuration file:
            Source: /path_to_cloned_repo/geniuss-place
       Destination: /path_to_cloned_repo/geniuss-place/_site
 Incremental build: disabled. Enable with --incremental
       Jekyll Feed: Generating feed for posts      
                    done in 4.017 seconds.
 Auto-regeneration: enabled for '/path_to_cloned_repo/geniuss-place'
    Server address:
  Server running... press ctrl-c to stop.

Just point your browser to that local direction in order to enjoy this website without the need of Internet connection. Some features such as comments might not work.

Pro Tip: if you want to modify JavaScript (under assets/js), you will need to install Node.js, cd to the root of your project, and run $ npm install to get all the dependencies. If all gone well, then running npm run build:js will compress/concatenate _main.js and all plugin scripts into main.min.js. Thus, upon a change on JavaScript content, run:

$ npm run build:js

in order to update the main.js script and implement the changes on the website.

Note: If you upgraded from a previous version of the website be sure you copied over package.json prior to running npm install.


Leave a comment