Skip to content

Latest commit

Β 

History

History
143 lines (96 loc) Β· 3.5 KB

File metadata and controls

143 lines (96 loc) Β· 3.5 KB

🀝 Contributing to stellar

First off β€” thank you for taking the time to contribute! πŸŽ‰
Every bug report, feature idea, and line of code helps make stellar better.


πŸ“‹ Table of Contents


πŸ“œ Code of Conduct

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.


πŸ’‘ How Can I Contribute?

πŸ› Reporting Bugs

  • Check the existing issues first.
  • Use the Bug Report template and fill in all required sections.
  • Attach minimal reproducible examples where possible.

✨ Suggesting Features

  • Open a Feature Request.
  • Describe the use-case and why it would benefit other users.

πŸ”§ Submitting Code

  • 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.

πŸ›  Development Setup

# 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]"

🎨 Code Style

stellar uses Black for formatting and Ruff for linting.

# Format
black .

# Lint
ruff check .

# Type check
mypy stellar.py

Key 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).

πŸ§ͺ Running Tests

# Run all tests
pytest

# With coverage report
pytest --cov=stellar --cov-report=term-missing

Please add tests under tests/ for any new feature or bug fix.


πŸ”€ Pull Request Process

  1. Ensure your branch is up to date with main.
  2. Run black ., ruff check ., and mypy stellar.py β€” fix any issues.
  3. Run pytest β€” all tests must pass.
  4. Open a PR against main using the PR template.
  5. Describe what changed and why.
  6. A maintainer will review within a few days.
  7. After approval and CI green, your PR will be merged. πŸŽ‰

✍️ Commit Message Guidelines

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! 🌟