Add versioning strategy and CI/CD pipeline
Some checks failed
CI / Lint (push) Failing after 2m51s
CI / Type Check (push) Failing after 32s
CI / Test (push) Failing after 37s
CI / Release (push) Has been skipped

- Add semantic versioning section to development plan
- Map sprint milestones to version tags
- Create Gitea Actions CI workflow (lint, typecheck, test, release)
- Add CHANGELOG.md following Keep a Changelog format
This commit is contained in:
2025-12-01 23:42:41 +00:00
parent afb5bd2075
commit b164252a92
3 changed files with 223 additions and 9 deletions

View File

@@ -555,17 +555,98 @@ dashboard/app.py → hal/factory.py (Sprint 17, upgraded)
---
## Versioning Strategy
### Semantic Versioning
This project follows [Semantic Versioning 2.0.0](https://semver.org/):
```
MAJOR.MINOR.PATCH[-PRERELEASE]
- MAJOR: Breaking API changes
- MINOR: New features, backwards compatible
- PATCH: Bug fixes, backwards compatible
- PRERELEASE: alpha.N, beta.N, rc.N
```
### Phase 1 Version Progression
| Sprint | Version Tag | Milestone | Release Type |
|--------|-------------|-----------|--------------|
| 1 | `v0.0.1` | Project scaffolding | Internal |
| 3 | `v0.1.0-alpha.1` | Physics engine working | Pre-release |
| 4 | `v0.1.0-alpha.2` | Visual demo (dashboard) | Pre-release |
| 8 | `v0.1.0-alpha.3` | Network ready (TCP server) | Pre-release |
| 11 | `v0.1.0-beta.1` | HAL complete | Pre-release |
| 15 | `v0.1.0-beta.2` | First DVT test runs | Pre-release |
| 17 | `v0.1.0` | **MVP Complete** | Release |
### Tagging Convention
```bash
# After completing a milestone sprint:
git tag -a v0.1.0-alpha.1 -m "Physics engine working"
git push origin v0.1.0-alpha.1
```
### Version Location
The version is defined in **one place** and read elsewhere:
```
src/py_dvt_ate/__init__.py:
__version__ = "0.1.0-alpha.1"
pyproject.toml:
[project]
dynamic = ["version"]
[tool.hatch.version]
path = "src/py_dvt_ate/__init__.py"
```
### CI/CD Pipeline
On every push:
- Run `ruff check` (linting)
- Run `mypy` (type checking)
- Run `pytest` (tests)
On tag push (`v*`):
- All of the above
- Build package
- Create release
### CHANGELOG
Maintain `CHANGELOG.md` following [Keep a Changelog](https://keepachangelog.com/):
```markdown
## [Unreleased]
### Added
- ...
## [0.1.0-alpha.1] - 2025-12-XX
### Added
- Physics engine with thermal-electrical coupling
- LDO DUT model with temperature coefficient
```
---
## Milestone Summary
| Sprint | Milestone | What You Can Demo |
|--------|-----------|-------------------|
| 3 | Physics Working | Unit tests prove thermal coupling |
| 4 | **Visual Demo!** | Interactive Streamlit showing physics |
| 7 | Instruments Done | SCPI simulators respond to commands |
| 8 | Network Ready | TCP server accepts connections |
| 11 | HAL Complete | Abstraction layer swappable |
| 15 | First Test | TempCo characterisation runs |
| 17 | **MVP Complete** | Full end-to-end workflow |
| Sprint | Version | Milestone | What You Can Demo |
|--------|---------|-----------|-------------------|
| 1 | `v0.0.1` | Scaffolding | Package installs |
| 3 | `v0.1.0-alpha.1` | Physics Working | Unit tests prove thermal coupling |
| 4 | `v0.1.0-alpha.2` | **Visual Demo!** | Interactive Streamlit showing physics |
| 7 | - | Instruments Done | SCPI simulators respond to commands |
| 8 | `v0.1.0-alpha.3` | Network Ready | TCP server accepts connections |
| 11 | `v0.1.0-beta.1` | HAL Complete | Abstraction layer swappable |
| 15 | `v0.1.0-beta.2` | First Test | TempCo characterisation runs |
| 17 | `v0.1.0` | **MVP Complete** | Full end-to-end workflow |
---