First off β thank you for taking the time to contribute! π
Every bug report, feature idea, and line of code helps make stellar better.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Code Style
- Running Tests
- Pull Request Process
- Commit Message Guidelines
This project and everyone participating in it is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Check the existing issues first.
- Use the Bug Report template and fill in all required sections.
- Attach minimal reproducible examples where possible.
- Open a Feature Request.
- Describe the use-case and why it would benefit other users.
- Fork the repo and create a branch from
main. - Keep PRs focused β one feature or fix per PR.
- Add or update tests to cover your changes.
- Run the full test suite before opening a PR.
# 1. Fork & clone
git clone https://github.com/<your-username>/stellar.git
cd stellar
# 2. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Install in editable mode with all dev + optional deps
pip install -e ".[dev,enhance]"stellar uses Black for formatting and Ruff for linting.
# Format
black .
# Lint
ruff check .
# Type check
mypy stellar.pyKey conventions:
- Line length: 99 characters.
- Type hints on all public functions.
- Docstrings in NumPy/Google style for all public symbols.
- No bare
except:β always catch specific exceptions. - Keep functions small and single-purpose (
load_image,upscale_image,save_image).
# Run all tests
pytest
# With coverage report
pytest --cov=stellar --cov-report=term-missingPlease add tests under tests/ for any new feature or bug fix.
- Ensure your branch is up to date with
main. - Run
black .,ruff check ., andmypy stellar.pyβ fix any issues. - Run
pytestβ all tests must pass. - Open a PR against
mainusing the PR template. - Describe what changed and why.
- A maintainer will review within a few days.
- After approval and CI green, your PR will be merged. π
Use the Conventional Commits format:
<type>(<scope>): <short summary>
[optional body]
[optional footer]
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(cli): add --workers option for multithreaded batch processing
fix(upscale): handle BGRA images without alpha channel strip
docs(readme): add wheel build & install instructions
Thank you again for contributing β your effort is genuinely appreciated! π