Building The Project¶
Building the code¶
Paraglider uses a Makefile to build the repository and automate most common repository tasks.
You can run make
(no additional arguments) to see the list of targets and their descriptions.
You can build the repository with make build
. This will build all of the packages and executables.
The first time you run make build
it may take a few minutes because it will download and build dependencies. Subsequent builds will be faster because they can use cached output.
The following command will build, run unit tests, and run linters. This command is handy for verifying that your local changes are working correctly.
$ make build lint test
Built binaries¶
There are two main binaries that are built by the repository: glide
and glided
. These are the CLIs for the Paraglider client and server, respectively.
See the API for more information on how to use these binaries.
Installing the code¶
After building the code, you can run make install
to install the binaries to your /usr/local/bin
directory. This will allow you to run the binaries from anywhere on your system.
Documentation¶
All of our documentation is located in docs/
. We use Sphinx to generate our documents.
Setup¶
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install -r docs/requirements.txt
Building¶
$ cd docs
$ make html
Viewing¶
$ python -m http.server
Navigate to localhost:8000
.
Troubleshooting and getting help¶
You might encounter error messages while running various make
commands due to missing dependencies. Review the prerequisites listed above for installation instructions.
If you get stuck working with the repository, please ask for help by raising an issue on Github or in our Discord (linked on our home page). We’re always interested in ways to improve the tooling, so please feel free to report problems and suggest improvements.
If you need to report an issue with the Makefile, we may ask you for a dump of the variables. You can see the state of all of the variables our Makefile defines with make dump
. The output will be quite large so you might want to redirect this to a file.