Skip to content

Commit d4e2b30

Browse files
committed
feat: add interactive CLI dashboard and onboarding screen with Rich terminal integration(release v1.1.0)
1 parent 6391d4c commit d4e2b30

3 files changed

Lines changed: 67 additions & 1 deletion

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
================================================================================

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ requires = ["setuptools>=64.0.0", "setuptools-scm>=8.0.0", "wheel"]
3232
build-backend = "setuptools.build_meta"
3333

3434
[tool.setuptools_scm]
35-
# Derived dynamically from Git tags
35+
fallback_version = "0.0.0.dev0"
3636

3737
[tool.black]
3838
line-length = 100

src/flock/cli/main.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,11 @@ def show_splash_animation(console: Console) -> None:
846846

847847
def main() -> None:
848848
"""Launch the interactive Flock dashboard."""
849+
# Direct command-line flag handling for version
850+
if len(sys.argv) > 1 and sys.argv[1] in ("--version", "-v"):
851+
print(__version__)
852+
sys.exit(0)
853+
849854
console = get_console()
850855
if console is None:
851856
print("Error: Rich library is required for interactive console mode.")

0 commit comments

Comments
 (0)