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.

Indices and tables