6. Contributing

FCC Software is an open source project, and we welcome contributions of all kinds:

  • New lessons;

  • Fixes to existing material;

  • Bug reports; and

  • Reviews of proposed changes.

By contributing, you are agreeing that we may redistribute your work under these licenses. You also agree to abide by our contributor code of conduct.

6.1. Getting Started

  1. We use the fork and pull model to manage changes. More information about forking a repository and making a Pull Request.

  2. For our lessons, you should branch from and submit pull requests against the main branch.

  3. When editing lesson pages, you need only commit changes to the Markdown source files.

  4. To build the lessons please follow the instructions.

  5. If you’re looking for things to work on, please see the list of issues for this repository. Comments on issues and reviews of pull requests are equally welcome.

6.2. Building the lessons

6.2.1. Requirements

Make sure you have venv (virtual environment) in your working directory. It can be created with the following command:

$ python3 -m venv venv

Activate it in your shell and install the requirements, which are gathered in a file provided by the repository.

$ source venv/bin/activate
$ pip3 install -r requirements.txt

After sourcing, your shell prompt will be augmented by the (venv) prefix, e.g.

(venv) mylaptop:~/fcc/fcc-tutorials

Building fcc-tutorials in FCC Software stack

In case the Python from the FCC Software stack is being used, it is necessary to clear PYTHONPATH environment variable after sourcing of the stack

source /cvmfs/fcc.cern.ch/sw/latest/setup.sh
unset PYTHONPATH

Sourcing of the FCCSW stack might be needed in cases when the Python provided by the OS is too old, currently this is the case for CentOS 7 (lxplus7).

6.2.2. Building

The documentation pages are build by executing

$ sphinx-build -b html . build

6.2.3. Browsing the result

Start a web server to host the generated files from build directory

$ cd build
$ python -m http.server

You should be able to see your local version by opening a web-browser and navigating to http://localhost:8000.

6.3. How to Write Documentation

More information about how to write the documentation/tutorials for the FCC Software visit Writing documentation for the FCC Software.