|
| 1 | +================================================================================ |
| 2 | +FLOCK PLATFORM — AUTOMATIC VERSIONING CONFIGURATION REPORT |
| 3 | +================================================================================ |
| 4 | + |
| 5 | +1. EXECUTIVE SUMMARY |
| 6 | +-------------------- |
| 7 | +This report certifies the validation and configuration correction of the |
| 8 | +dynamic versioning workflow for the Flock package (`flock-p2p`). We audited the |
| 9 | +version resolution mechanism, added robust fallback and CLI configurations, and |
| 10 | +verified version generation behaviors without modifying the Git history or changing |
| 11 | +any existing tags. |
| 12 | + |
| 13 | +2. ROOT CAUSE ANALYSIS & RESOLUTION |
| 14 | +----------------------------------- |
| 15 | +- Development Build Suffixes (1.1.1.devN+g<hash>): |
| 16 | + * The current Git workspace has commits ahead of tag `v1.1.0`. By design, |
| 17 | + setuptools-scm evaluates the distance (1 commit) from the most recent tag |
| 18 | + (`v1.1.0`), guesses the next patch version (`1.1.1`), and appends a local dev |
| 19 | + marker `.dev1+g6391d4c4f`. |
| 20 | + * Official releases (e.g. tagged commits like `v1.2.0` or `v2.0.0` with 0 distance) |
| 21 | + will build as clean, exact tag versions (e.g. `1.2.0`, `2.0.0`) automatically. |
| 22 | + * Verified that local environment variable `SETUPTOOLS_SCM_PRETEND_VERSION="1.1.0"` |
| 23 | + successfully builds clean `1.1.0` releases for verification. |
| 24 | + |
| 25 | +- Version Flag CLI Arguments: |
| 26 | + * Previously, running `flock --version` launched the interactive dashboard TUI |
| 27 | + instead of printing the version and exiting. |
| 28 | + * We resolved this by direct CLI argument parsing inside the main entry point |
| 29 | + so that `--version` or `-v` prints the version immediately and exits with status 0. |
| 30 | + |
| 31 | +3. FILES MODIFIED |
| 32 | +----------------- |
| 33 | +- pyproject.toml: |
| 34 | + * Added `fallback_version = "0.0.0.dev0"` to ensure robust package builds in cases |
| 35 | + where Git or tags are unavailable. |
| 36 | +- src/flock/cli/main.py: |
| 37 | + * Handled `--version` and `-v` arguments in `main()` to print `__version__` and exit. |
| 38 | + |
| 39 | +4. VALIDATION RESULTS |
| 40 | +--------------------- |
| 41 | +- Simulated Release v1.1.0: |
| 42 | + * Built using `$env:SETUPTOOLS_SCM_PRETEND_VERSION="1.1.0"; python -m build` |
| 43 | + * Package: `flock_p2p-1.1.0-py3-none-any.whl` and `flock_p2p-1.1.0.tar.gz` |
| 44 | + * Verification: `twine check dist/*` returned `PASSED` |
| 45 | + * Version queries: |
| 46 | + * `flock --version` prints `1.1.0` |
| 47 | + * `flock -v` prints `1.1.0` |
| 48 | + * `flock.__version__` resolves to `1.1.0` |
| 49 | + |
| 50 | +- Untagged/Development builds: |
| 51 | + * Built package: `flock_p2p-1.1.1.dev1+g6391d4c4f.d20260725.whl` (correctly contains distance and commit hash) |
| 52 | + |
| 53 | +5. CERTIFICATION |
| 54 | +---------------- |
| 55 | +We certify that Flock now supports fully automated, tag-driven semantic versioning |
| 56 | +and package publication. No manual version maintenance or version-bump file edits |
| 57 | +are required for future releases. |
| 58 | + |
| 59 | +================================================================================ |
| 60 | +REPORT GENERATED ON: 2026-07-25 (flock-p2p v1.1.0) |
| 61 | +================================================================================ |
0 commit comments