# Development Documentation

This section contains development workflow documentation, Git guidelines, and CI/CD configuration.

## 📚 Workflow Documentation

### Git Workflow
- **[GIT-STATUS.md](./GIT-STATUS.md)** - Git workflow reference
- **[GIT-LOG.md](./GIT-LOG.md)** - Git log history
- **[GIT-COMMAND.txt](./GIT-COMMAND.txt)** - Useful Git commands
- **[GIT-STATUS.txt](./GIT-STATUS.txt)** - Git status reference

### Commit Guidelines
- **[COMMIT-INSTRUCTIONS.txt](./COMMIT-INSTRUCTIONS.txt)** - Commit message guidelines
- **[commit_message.txt](./commit_message.txt)** - Commit message template
- **[COMMIT-NOW.sh](./COMMIT-NOW.sh)** - Quick commit script

## 🔄 CI/CD

### Forgejo Configuration
- **[FORGEJO-CI-CD-PIPELINE.md](./FORGEJO-CI-CD-PIPELINE.md)** - CI/CD pipeline documentation
- **[FORGEJO-RUNNER-UPDATE.md](./FORGEJO-RUNNER-UPDATE.md)** - Runner update notes

## 🌳 Branch Strategy

### Main Branches
- `main` - Production-ready code
- `develop` - Integration branch for features
- `feature/*` - Feature branches

### Branch Naming
- `feature/phase-2.8-drug-interactions`
- `fix/docker-networking`
- `docs/reorganize-documentation`

## 📝 Commit Message Format

### Conventional Commits
```
<type>(<scope>): <description>

[optional body]

[optional footer]
```

### Types
- `feat` - New feature
- `fix` - Bug fix
- `docs` - Documentation changes
- `test` - Test changes
- `refactor` - Code refactoring
- `chore` - Maintenance tasks

### Examples
```
feat(backend): implement drug interaction checking
fix(medication): resolve adherence calculation bug
docs(readme): update quick start guide
test(auth): add refresh token rotation tests
```

## 🚀 Development Workflow

### 1. Create Feature Branch
```bash
git checkout -b feature/your-feature-name
```

### 2. Make Changes
```bash
# Write code
cargo test
cargo clippy
```

### 3. Commit Changes
```bash
git add .
git commit -m "feat(scope): description"
```

Or use the quick commit script:
```bash
./docs/development/COMMIT-NOW.sh
```

### 4. Push and Create PR
```bash
git push origin feature/your-feature-name
# Create PR in Forgejo
```

### 5. Merge and Cleanup
```bash
git checkout develop
git pull
git branch -d feature/your-feature-name
```

## 🛠️ Development Tools

### Backend (Rust)
- **Build**: `cargo build`
- **Test**: `cargo test`
- **Lint**: `cargo clippy`
- **Format**: `cargo fmt`
- **Run**: `cargo run`

### Frontend (React)
- **Install**: `npm install`
- **Start**: `npm start`
- **Build**: `npm run build`
- **Test**: `npm test`

### Docker
- **Build**: `docker compose build`
- **Up**: `docker compose up -d`
- **Down**: `docker compose down`
- **Logs**: `docker compose logs -f`

## 📋 Code Review Checklist

### Before Committing
- [ ] Code compiles without errors
- [ ] All tests pass
- [ ] No clippy warnings
- [ ] Code is formatted
- [ ] Commit message follows conventions
- [ ] Documentation updated if needed

### Before PR
- [ ] All checks pass
- [ ] No merge conflicts
- [ ] Description explains changes
- [ ] Tests added/updated
- [ ] Ready for review

---

*Last Updated: 2026-03-09*
