Help improve Tux! Contributions welcome.

Ways to Contribute

Code

  • Fix bugs
  • Add features
  • Improve performance
  • Write tests

Documentation

  • Fix typos/errors
  • Add examples
  • Clarify explanations
  • Write guides

Testing

  • Report bugs
  • Test new features
  • Provide feedback

Design

  • Improve UI/UX
  • Create assets
  • Suggest improvements

Getting Started

Development Setup

See Development Setup.

First Contribution

See First Contribution Guide.

Development Workflow

1. Fork and Clone

# Fork on GitHub, then:
git clone https://github.com/YOUR_USERNAME/tux
cd tux

2. Create Branch

git checkout -b feature/my-feature

Branch prefixes:

  • feature/ - New features
  • fix/ - Bug fixes
  • docs/ - Documentation
  • refactor/ - Refactoring
  • test/ - Tests

3. Make Changes

# Install dependencies
uv sync

# Make changes...

# Run checks
uv run dev all                      # Lint, type check, test

4. Commit

Use conventional commits:

git commit -m "feat: add new command"
git commit -m "fix: resolve database issue"
git commit -m "docs: update installation guide"

Types: feat, fix, docs, refactor, test, chore

5. Push and Create PR

git push origin feature/my-feature

Open Pull Request on GitHub.

Code Standards

Style

  • Ruff for linting
  • Basedpyright for type checking
  • Numpy docstrings
  • Type hints required
# Check style
uv run dev lint
uv run dev format

# Type check
uv run dev typecheck

Testing

# Run tests
uv run tests all

# With coverage
uv run tests coverage

Pull Request Guidelines

PR Title

Use conventional commits format:

feat: add new moderation command
fix: resolve permission check issue
docs: update deployment guide

PR Description

Include:

  • What changed
  • Why (issue link if applicable)
  • How to test
  • Screenshots (if UI changes)

Checklist

  • [ ] Tests pass
  • [ ] Linting passes
  • [ ] Type checking passes
  • [ ] Documentation updated
  • [ ] Changelog updated (if needed)

Code Review

  • Be patient and respectful
  • Respond to feedback
  • Make requested changes
  • Ask questions if unclear

Community

License

Contributions are licensed under GPL-3.0.


Thank you for contributing! 🎉