Thank you for your interest in contributing to ABS Engine.
Contributions of all types are welcome, including:
- Bug fixes
- Performance improvements
- Documentation updates
- Refactoring
- Testing improvements
- New features
- Tooling and CI enhancements
Please read this document before submitting changes.
Note
All contributions should target the dev branch. Changes are reviewed and
tested there before being merged into main for releases.
git clone https://github.com/Natuworkguy/ABS-Engine.git
cd ABS-Enginepython -m venv .venv
.venv\Scripts\activatepython3 -m venv .venv
source .venv/bin/activateInstall both runtime and development dependencies:
pip install -r requirements.txt
pip install -r requirements-dev.txt
npm install -g markdownlint-cli2 ABS Engine enforces strong code quality and static analysis standards.
All contributions should prioritize:
- Readability
- Maintainability
- Type safety
- Security
- Consistency
- Modular architecture
Before opening a pull request, run all checks locally.
ruff check .
ruff format .mypy .pyrightflake8 .bandit -r .markdownlint-cli2 .darglint .interrogateAll checks must pass before a pull request will be reviewed.
ABS Engine uses static typing throughout the codebase.
Contributors should:
- Add type hints to new code
- Avoid unnecessary use of
Any - Minimize unnecessary
type: ignorecomments - Prefer explicit return types when appropriate
Example:
def load_project(path: Path) -> dict[str, Any]:
...When submitting a pull request:
- Keep changes focused and minimal
- Write clear commit messages
- Ensure CI passes
- Update documentation when necessary
- Add or update tests if applicable
For UI-related changes, screenshots are encouraged.
Use concise, descriptive commit messages.
Add sprite batching optimization
Fix project loading race condition
Refactor renderer initialization
Improve type annotations in asset manager
Avoid vague messages such as:
fix
update
changes
stuff
Bug reports should include:
- Operating system
- Python version
- Steps to reproduce
- Expected behavior
- Actual behavior
- Relevant logs or screenshots
Incomplete reports may be difficult to investigate.
Feature requests should clearly explain:
- The problem being solved
- The proposed solution
- Potential implementation details
- Possible drawbacks or tradeoffs
Recommended branch naming conventions:
feature/new-renderer
fix/editor-crash
refactor/project-loader
docs/api-updates
Do not publicly disclose vulnerabilities or security issues.
Report security-related concerns privately to the maintainers.
Documentation improvements are highly valued.
This includes:
- Fixing inaccuracies
- Improving examples
- Updating setup instructions
- Clarifying APIs
- Improving readability
Be respectful and constructive in discussions, issues, and pull requests.
Professional collaboration helps maintain a productive development environment.
By contributing to ABS Engine, you agree that your contributions will be licensed under the GNU General Public License v3.0 (GPLv3).