Skip to content

Contributing

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

Where to start?

If you are looking for a good issue to start with, please check the following:

  • good first issue - issues that should be pretty simple to implement,
  • help wanted - issues that typically are a bit more involved than beginner issues,
  • high priority - things to fix ASAP but often of higher complexity.

Source

To build from source on your local machine, please follow the instructions below:

Clone the repository

git clone https://github.com/EndstoneMC/endstone.git
cd endstone

Install the package manager (conan)

The dependencies needed for the development of Endstone are provided Conan Package Manager (>=2.0). The install the package manager, run the following commands in your Python environment.

pip install conan
conan profile detect

Install dependencies

First of all, add the funchook/1.1.3 recipe to your conan local repository.

conan export third_party/funchook --version 1.1.3

Then, run the following commands:

conan install . --build=missing -s compiler.cppstd=17 -s build_type=RelWithDebInfo -c tools.cmake.cmaketoolchain:generator=Ninja
conan install . --build=missing -s compiler.cppstd=17 -s build_type=RelWithDebInfo -c tools.cmake.cmaketoolchain:generator=Ninja -c tools.env.virtualenv:powershell=True
conan install . --build=missing -s compiler.cppstd=17 -s compiler.libcxx=libc++ -s build_type=RelWithDebInfo -c tools.cmake.cmaketoolchain:generator=Ninja

Now, activate the build virtual environment create by conan.

.\build\RelWithDebInfo\generators\conanbuild.bat
.\build\RelWithDebInfo\generators\conanbuild.ps1
source ./build/RelWithDebInfo/generators/conanbuild.sh

Run cmake and check the version:

$ cmake --version
cmake version 3.22.6

Build with CMake

cmake --preset conan-relwithdebinfo
cmake --build --preset conan-relwithdebinfo

Install

To install Endstone from your local sources, simply run:

pip install -U .

Documentation

We are building our documentation using Material for MkDocs. The easiest way to install all the required dependencies is with pip:

pip install -r docs/requirements.txt

After that, you can either:

mkdocs serve
mkdocs build

Comments