Contributing Guide¶
First of all, thanks for being interested to contribute to the project. But before contributing, please see the code of conduct to know the desired behavior of contributors. By doing public interactions (e.g commenting on issues and merge requests), you agree to the code of conduct of PyPP.
Contributing¶
You can contribute to the project in the following ways:
Spreading the name¶
Yes, spreading the name helps! If you suggest the project to others, they will use it. One day, some of them will become active contributors to the project.
Suggesting ideas¶
If you think PyPP is missing something or have an idea about it, please share it by opening a new issue at the tracker.
Submitting issues¶
If you ever found issue or bug in the library please report it to the issue tracker. If you found any mistake, typo or missing things (like example) in the documentations, please report it too.
Writing documentations¶
Currently, PyPP lacks of good documentations and tutorials. We programmers often write codes but forget to write the good documentations. This causes users to become helpless when they don’t the reference of a function or class.
See “Setting up a development environment” section for instructions on setting up the development environment.
Being one of the developers¶
PyPP is still under it’s early development phase and most features aren’t implemented yet. As a developer, you can support PyPP by doing the following things:
Fixing minor bugs
Fixing major issues
Adding new features
Fixing implementation errors
See “Setting up a development environment” section for instructions on setting up the development environment before you write codes.
Setting up a development environment¶
To set up a development environment, please follow the following instructions. Some of these instructions are specific for Debian-based systems, change them accordingly for your system.
Installing required softwares¶
Before installing anything, update repository information and upgrade the system by:
sudo apt update && sudo apt upgrade
PyPP uses Git as the version control system (aka VCS). So you need to install Git. Install it with:
sudo apt install git
PyPP is written in C++, so you need to install a C++ complier. Supported C++
compliers are g++ from GCC and clang++ from Clang, and with g++
being the priority. Install them by:
sudo apt install gcc g++ clang
PyPP uses the autotools toolchain for the building process. Install it by:
sudo apt install autoconf automake libtool
PyPP uses the following softwares in order to generate the documentations:
Sphinx: Building the documentations
Doxygen: Parsing C++ files to extract documentations
DoxyCast: Generating RST files contains documentations from Doxygen XML output
MyST Parser: Parsing a special Markdown variant made for writing documentations
DocsCov: Creating dynamic badge show documentation coverage
Sphinx Book Theme: Theme for documentations
sphinx-notfound-page: Forcing Sphinx to use absolute addresses in 404 page, allowing the 404 page to not break
Install the above softwares by:
sudo apt install doxygen
sudo pip install sphinx doxycast myst_parser docscov sphinx_book_theme \
sphinx-notfound-page
After you have installed the above softwares, you are done. But at the time of writing this guide, there was a bug in Pygments (used by Sphinx for highlight code). This causes Sphinx to fail to highlight C++ code and produce warnings. You can remove them by installing Pygments another source with the bugfix by executing the command below: (may be outdated)
sudo pip install git+https://github.com/AkibAzmain/pygments.git#egg=pygments
Getting the source¶
First fork this repository to your account. Then download the source code by executing the following:
git clone https://gitlab.com/<CLONED-REPO-PATH>.git
Or, directly download the source code from this repository:
git clone https://gitlab.com/pypp/pypp.git
Warning
Do not download source code from releases. They are intended for being compiled and used for production, not for being modified itself.