|
| 1 | +# Version Management |
| 2 | + |
| 3 | +Image Annotation Dashboard follows [Semantic Versioning 2.0.0](https://semver.org/). |
| 4 | + |
| 5 | +## Current Version |
| 6 | + |
| 7 | +**0.1.4-beta** |
| 8 | + |
| 9 | +## Version Format |
| 10 | + |
| 11 | +``` |
| 12 | +MAJOR.MINOR.PATCH[-PRERELEASE] |
| 13 | +``` |
| 14 | + |
| 15 | +- **MAJOR**: Incompatible API changes |
| 16 | +- **MINOR**: New functionality (backwards-compatible) |
| 17 | +- **PATCH**: Bug fixes (backwards-compatible) |
| 18 | +- **PRERELEASE**: Optional pre-release label |
| 19 | + - `alpha`: Early testing, may have significant bugs |
| 20 | + - `beta`: Feature-complete, testing and refinement |
| 21 | + - `rc`: Release candidate, final testing before stable |
| 22 | + - Omitted for stable releases (e.g., `1.0.0`) |
| 23 | + |
| 24 | +## Bumping Version |
| 25 | + |
| 26 | +Use the version bump script to increment the version: |
| 27 | + |
| 28 | +```bash |
| 29 | +# Patch version bump (0.1.4-beta -> 0.1.5-beta) |
| 30 | +python scripts/bump_version.py patch |
| 31 | + |
| 32 | +# Minor version bump (0.1.4-beta -> 0.2.0-beta) |
| 33 | +python scripts/bump_version.py minor |
| 34 | + |
| 35 | +# Major version bump (0.1.4-beta -> 1.0.0-beta) |
| 36 | +python scripts/bump_version.py major |
| 37 | + |
| 38 | +# Change pre-release label |
| 39 | +python scripts/bump_version.py patch --prerelease rc # -> 0.1.5-rc |
| 40 | +python scripts/bump_version.py minor --prerelease stable # -> 0.2.0 (no label) |
| 41 | + |
| 42 | +# Show current version |
| 43 | +python scripts/bump_version.py --current |
| 44 | + |
| 45 | +# Skip git operations (for testing) |
| 46 | +python scripts/bump_version.py patch --no-git |
| 47 | +``` |
| 48 | + |
| 49 | +## Version Files |
| 50 | + |
| 51 | +The bump script updates these files: |
| 52 | +- `frontend/app/version.ts` - TypeScript version module |
| 53 | +- `frontend/package.json` - npm package version |
| 54 | +- `pyproject.toml` - Python package version |
| 55 | + |
| 56 | +## Workflow |
| 57 | + |
| 58 | +### 1. Development in Feature Branch |
| 59 | + |
| 60 | +```bash |
| 61 | +git checkout -b feature/my-feature |
| 62 | +# Make changes and commit |
| 63 | +git add . |
| 64 | +git commit -m "Add new feature" |
| 65 | +``` |
| 66 | + |
| 67 | +### 2. Bump Version After PR Merge |
| 68 | + |
| 69 | +After your PR is merged to `main`: |
| 70 | + |
| 71 | +```bash |
| 72 | +git checkout main |
| 73 | +git pull origin main |
| 74 | + |
| 75 | +# Bump version (choose appropriate bump type) |
| 76 | +python scripts/bump_version.py patch # or minor/major |
| 77 | + |
| 78 | +# Push commit and tag |
| 79 | +git push origin main |
| 80 | +git push origin v0.1.5-beta # replace with actual version |
| 81 | +``` |
| 82 | + |
| 83 | +### 3. Automatic GitHub Release |
| 84 | + |
| 85 | +When you push a version tag (e.g., `v0.1.5-beta`), GitHub Actions automatically: |
| 86 | +1. Creates a GitHub Release |
| 87 | +2. Generates changelog from commits |
| 88 | +3. Marks pre-release appropriately (alpha, beta, rc) |
| 89 | + |
| 90 | +## Version Display |
| 91 | + |
| 92 | +The version is displayed in the frontend footer. |
| 93 | + |
| 94 | +## Pre-release Guidelines |
| 95 | + |
| 96 | +- **Alpha**: Active development, expect changes |
| 97 | +- **Beta**: Feature freeze, bug fixing (current stage) |
| 98 | +- **RC**: Release candidate, final testing |
| 99 | +- **Stable** (no label): Production ready |
| 100 | + |
| 101 | +## Version History |
| 102 | + |
| 103 | +| Version | Date | Description | |
| 104 | +|---------|------|-------------| |
| 105 | +| 0.1.4-beta | 2025-11-27 | Add semantic versioning, Cloudflare deployment | |
| 106 | +| 0.1.0 | 2025-11-24 | Initial release | |
0 commit comments