- Added AGENTS.md for AI agent documentation and maintainers, outlining project structure and conventions. - Updated CONTRIBUTING.md to specify that all project documentation must be in English, including README and docstrings. - Enhanced README.md to reference documentation guidelines and the new AGENTS.md file. - Cleaned up .gitignore by removing unnecessary entries for cursor-related files. - Introduced new .cursor rules for backend, frontend, project architecture, and testing to standardize development practices.
78 lines
2.0 KiB
Markdown
78 lines
2.0 KiB
Markdown
# Contributing to Duty Teller
|
|
|
|
## Development setup
|
|
|
|
1. **Clone the repository**
|
|
```bash
|
|
git clone <repository-url>
|
|
cd duty-teller
|
|
```
|
|
|
|
2. **Create a virtual environment**
|
|
```bash
|
|
python -m venv .venv
|
|
source .venv/bin/activate # Linux/macOS
|
|
# or: .venv\Scripts\activate # Windows
|
|
```
|
|
|
|
3. **Install dependencies**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
pip install -r requirements-dev.txt
|
|
```
|
|
|
|
4. **Configure**
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
Set `BOT_TOKEN` and any other variables as needed (see README).
|
|
|
|
5. **Documentation (optional)**
|
|
To build and preview the docs (MkDocs + mkdocstrings):
|
|
```bash
|
|
pip install -e ".[docs]"
|
|
mkdocs build
|
|
mkdocs serve # preview at http://127.0.0.1:8000
|
|
```
|
|
|
|
## Running tests and linters
|
|
|
|
- **Tests** (from repository root; package is `duty_teller`, no `src/`):
|
|
```bash
|
|
pytest
|
|
```
|
|
Use `PYTHONPATH=.` if imports fail.
|
|
|
|
- **Lint** (ruff):
|
|
```bash
|
|
ruff check duty_teller tests
|
|
```
|
|
|
|
- **Security** (bandit):
|
|
```bash
|
|
bandit -r duty_teller -ll
|
|
```
|
|
|
|
## Documentation
|
|
|
|
All project documentation must be in **English**. This includes:
|
|
|
|
- README, files in `docs/`, docstrings, and commit messages that touch documentation.
|
|
- Exception: user-facing UI strings are localized (Russian/English) in `duty_teller/i18n/` and are not considered project documentation.
|
|
|
|
Docstrings and code comments must be in English (Google-style docstrings). See [AGENTS.md](AGENTS.md) for AI/maintainer context.
|
|
|
|
## Commit messages
|
|
|
|
Use [Conventional Commits](https://www.conventionalcommits.org/), e.g.:
|
|
|
|
- `feat: add /pin_duty command`
|
|
- `fix: correct timezone in pinned message`
|
|
- `docs: update README env section`
|
|
|
|
Submit changes via pull requests (Gitea Flow); reviews consider functionality, code quality, and security.
|
|
|
|
## Releases
|
|
|
|
When cutting a release, update [CHANGELOG.md](CHANGELOG.md) with the new version and list changes under Added / Changed / Fixed / Security as appropriate (see [Keep a Changelog](https://keepachangelog.com/)).
|