RikerBot¶
Welcome to RikerBot’s documentation!¶
Installation¶
Build Requirements¶
First, ensure you have all the build requirements available to build RikerBot.
Build Requirements:
- C++20 compiler (Only GCC 11.1+ as of writing, Clang 12 trunk works too)
- CPython >= 3.5
- SWIG >= 4.0
- CMake >= 3.18
- Any cmake-supported build system, Ninja is recommended for performance
- Boost >= 1.73
- Botan >= 2.0.0
- zlib, any version from this millenia
- python-minecraft-data, latest
- setuptools, any recent version
- wheel, any recent version
Build Proccess¶
Once you’ve got the requirements, you can build and install the framework from the source root directory with:
pip install .
RikerBot should be successfully installed. You can verify the process worked by
running import rikerbot
from the Python REPL.
If you’re interested in developing C++ extensions yourself you may wish to build locally to preserve the cmake cache between compiles, you can do this with:
python setup.py bdist_wheel
This will create a dist
folder containing the compiled module, which can
be installed with:
pip install [file].whl
You may also wish to simply use cmake directly, and this is also supported.
Contributing¶
Before You Start¶
Please open an issue describing what feature you’re looking to implement or bug you’re trying to fix. That way we can coordinate on the best strategy and have a channel to troubleshoot issues. There’s no set issue template, just try to be descriptive and open to followup questions and feedback.
Get the Source¶
The prefered option is to fork the Github repo, develop features on that fork, and make a PR.
Alternatively source code cloned from upstream with:
git clone https://github.com/SpockBotMC/RikerBot.git
Style Guidelines¶
The repository root includes .clang-format
and .style.yapf
files for
use with clang-format and yapf when coding in C++ and Python respectively.
Please format code with these tools before submitting a PR.
Submitting a PR¶
When opening a PR on the repo be sure to reference the associated issue number in at least one commit message and the PR description itself. The PR must be able to merge cleanly against the master branch.