Developer Guide¶
Documentation for developing and contributing to Tux: setup, architecture, patterns, and tooling.
Contributing¶
Contributing to Tux — Setup, workflow, pull requests, and where to find Git, branch naming, and code review guidance.
Tutorials¶
Tutorials — Step-by-step guides:
| Topic | Description |
|---|---|
| Development Setup | Environment and first run |
| First Contribution | End-to-end first PR |
| Creating Your First Cog | Module and cog structure |
| Creating Your First Command | Commands and invocation |
| Creating Your First Migration | Database schema changes |
| Database Integration | Using the database in code |
| Project Structure | Layout and conventions |
| Testing Setup | Running and writing tests |
Guides¶
Guides — How-to and tooling:
| Topic | Description |
|---|---|
| Components V2 | Discord.py Components V2 (buttons, views, modals) |
| Creating Cursor Rules | Cursor rules for the project |
| Creating Cursor Commands | Cursor slash commands |
| Docker Images | Building and using Docker images |
| Extending the CLI | Adding CLI commands |
Concepts¶
Concepts — Architecture and internals:
| Area | Contents |
|---|---|
| Core | App, bot, cogs, lifecycle, modules, permissions, plugins, logging |
| Database | Architecture, service, models, controllers, migrations, testing, utilities |
| UI | Buttons, components, embeds, modals, views |
| Handlers | Hot-reload and event handling |
| Services | Service layer |
| Shared | Shared utilities and config |
| Tasks | Task monitor and background work |
| Wrappers | Wrappers and helpers |
Best Practices¶
Best Practices — Conventions and patterns:
| Topic | Description |
|---|---|
| Git | Commits, rebasing, pre-commit, PRs |
| Branch Naming | Branch name format and types |
| Code Review | Review checklist and conduct |
| CI/CD | Pipelines and automation |
| Async | Async/await usage |
| Error Handling | Exceptions and recovery |
| Logging | Logging with loguru |
| Caching | Caching strategies |
| Sentry | Instrumentation, sampling, metrics, spans |
| Testing | Unit, integration, e2e, fixtures |
| Debugging | Debug workflow |
| Documentation | Doc and Zensical practices |
| Namespace | Naming and structure |
Reference¶
| Resource | Description |
|---|---|
| CLI | tux, db, dev, test, config, docs |
| Environment Variables | .env and configuration |
| Versioning | Versions and releases |
| Renovate | Dependency updates |