Thank you for your interest in contributing to VibeyMapTools! This document provides guidelines for contributing.
Coming from ericw-tools? The flow is the same, but release automation lives in GitHub Actions and binaries are prefixed with vmt-.
- Fork the repository
- Clone your fork:
git clone --recursive https://github.com/YOUR_USERNAME/VibeyMapTools.git - Create a feature branch:
git checkout -b feature/your-feature-name
See BUILDING.md for detailed build instructions.
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build buildThis project uses clang-format for consistent code formatting.
- Run
scripts/format-code.shbefore committing - Follow the style defined in
.clang-format - Use 4-space indentation
- Allman brace style
snake_casefor functions,PascalCasefor classes
- Ensure your code builds without errors
- Run the test suite:
ctest --test-dir build - Update documentation if adding new features
- Update
CHANGELOG.mdwith your changes - Submit a pull request with a clear description
Use clear, descriptive commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code refactoringtest:for test changes
Example: feat: add support for PBR lightmaps
- Use the issue templates when available
- Include reproduction steps for bugs
- Provide system information (OS, compiler version)
- Attach sample .map files if relevant
- Open a Discussion on GitHub
- Check the WIKI.md for documentation
This is for contributors with release privileges.
- Update
VERSIONwith the next release number (e.g.,2.1.1). - Update
CHANGELOG.mdanddocs/changelog.rstwith user-visible changes. - Build and test locally:
cmake -B build -DCMAKE_BUILD_TYPE=Releasecmake --build build --config Releasectest --test-dir build --output-on-failure --build-config Release
- Commit the changes:
git add VERSION CHANGELOG.md docs/changelog.rstgit commit -m "chore: release vX.Y.Z"
- Tag the release and push:
git tag -a vX.Y.Z -m "Release vX.Y.Z"git push origin maingit push origin vX.Y.Z
GitHub Actions will build packages and attach them to the release. You can create a GitHub Release manually (Publish Release) or rely on the workflow to draft it on tag push.
For more detailed steps and packaging notes, see the release section in WIKI.md.
By contributing, you agree that your contributions will be licensed under the GPLv3 license.