Complete contribution flow
1
Fork and clone
Fork the repository on GitHub, then clone your fork locally:
2
Create a branch
Always work on a dedicated branch — never commit directly to Branch names should be short and descriptive. Use hyphens as separators.
base:3
Ask questions early
Before investing significant time, ask in Discord or open a draft PR describing your approach. It is always better to ask than to rewrite a large implementation.
4
Write code and commit
Make small, focused commits with meaningful messages. See Commit messages below.
5
Set up the dev environment
Install dependencies and build locally, or use the Docker dev environment. See Dev environment setup.
6
Test your changes
Run the test suite before submitting. See Testing for details.
7
Open a pull request
Push your branch and open a PR against
LandSandBoat/server:base. Fill in all template checkboxes. Open as a Draft if the work is still in progress.8
Address review feedback
After a staff member leaves feedback, fix or address every comment. Once the template checkboxes are checked and review is clear, the PR will be merged.
Commit messages
Commit messages should be meaningful. Amend or rebase local commits before pushing if the history is noisy.Citing sources
Always cite your sources. Put citations in code comments or commit messages — not only in PR descriptions, which get lost over time:Crediting co-authors
If you are committing work done on someone else’s behalf, give them credit using git’s--author argument or GitHub’s Co-Authored-By trailer:
Dev environment setup
Prerequisites
- CMake ≥ 3.25
- A C++20 compiler: GCC 14, Clang 20, MSVC (VS 2025), or Apple Clang
- Python 3 + pip
- MariaDB (for database)
- Git
Install Python dependencies
Build with CMake
Environment variables
Database credentials can be passed as environment variables, avoiding the need to edit settings files:Local CI with Docker
Thedev.docker-compose.yml file mirrors the CI environment and lets you run all checks locally without a local C++ toolchain.