flowsh-cli 0.1.2__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowsh-cli
3
- Version: 0.1.2
3
+ Version: 0.2.1
4
4
  Summary: Generate Bash harness scripts from workflow YAML files.
5
5
  License-Expression: MIT
6
6
  Classifier: Programming Language :: Python :: 3.11
@@ -14,15 +14,9 @@ Project-URL: Homepage, https://github.com/tbrandenburg/flowsh
14
14
  Project-URL: Source, https://github.com/tbrandenburg/flowsh
15
15
  Description-Content-Type: text/markdown
16
16
 
17
- # flowsh
17
+ # flowsh-cli
18
18
 
19
- `flowsh` is a small `uv` Python CLI deliberately reduced to one tool:
20
-
21
- ```bash
22
- uvx flowsh .made/workflows.yml
23
- ```
24
-
25
- It reads MADE workflow YAML and writes executable Bash harness scripts for OpenCode.
19
+ `flowsh-cli` is a small `uv` Python CLI that reads workflow YAML and writes executable Bash harness scripts for OpenCode.
26
20
 
27
21
  ## Supported YAML
28
22
 
@@ -58,31 +52,31 @@ Harness paths are derived from workflow ids. `wf_example` writes `.harness/examp
58
52
 
59
53
  ```bash
60
54
  # Generate every workflow harness
61
- uvx flowsh .made/workflows.yml
55
+ uvx flowsh-cli .made/workflows.yml
62
56
 
63
57
  # Generate one workflow by id
64
- uvx flowsh .made/workflows.yml --workflow wf_example
58
+ uvx flowsh-cli .made/workflows.yml --workflow wf_example
65
59
 
66
60
  # Show planned outputs without writing files
67
- uvx flowsh .made/workflows.yml --dry-run
61
+ uvx flowsh-cli .made/workflows.yml --dry-run
68
62
 
69
63
  # Overwrite existing harness files
70
- uvx flowsh .made/workflows.yml --force
64
+ uvx flowsh-cli .made/workflows.yml --force
71
65
 
72
66
  # Show version
73
- uvx flowsh --version
67
+ uvx flowsh-cli --version
74
68
  ```
75
69
 
76
- You can also run it via `uv run flowsh` if installed locally.
70
+ You can also run it via `uv run flowsh-cli` if installed locally.
77
71
 
78
72
  ## CLI Contract
79
73
 
80
- `flowsh` is non-interactive. It never prompts for missing information.
74
+ `flowsh-cli` is non-interactive. It never prompts for missing information.
81
75
 
82
76
  Current help output is plain text and deterministic across repeated runs:
83
77
 
84
78
  ```text
85
- Usage: flowsh [OPTIONS] WORKFLOW_YAML
79
+ Usage: flowsh-cli [OPTIONS] WORKFLOW_YAML
86
80
 
87
81
  Generate reproducible OpenCode Bash harness scripts from MADE workflow YAML.
88
82
 
@@ -93,7 +87,7 @@ Options:
93
87
  --workflow TEXT Optional workflow id to generate. Defaults to all workflows.
94
88
  --dry-run Print planned output paths without writing scripts.
95
89
  --force Overwrite existing files. Without this, existing files cause a failure.
96
- --version Show the flowsh version and exit.
90
+ --version Show the flowsh-cli version and exit.
97
91
  --help Show this message and exit.
98
92
  ```
99
93
 
@@ -105,7 +99,7 @@ Exit codes:
105
99
  | Case | Exit | stdout | stderr |
106
100
  |---|---:|---|---|
107
101
  | `--help` | `0` | Help text | Empty |
108
- | `--version` | `0` | `flowsh <version>` | Empty |
102
+ | `--version` | `0` | `flowsh-cli <version>` | Empty |
109
103
  | Valid generation | `0` | One `Wrote <path>` line per harness | Empty |
110
104
  | Valid `--dry-run` | `0` | One `DRY-RUN would write <path>` line per selected workflow | Empty |
111
105
  | Missing required CLI argument | `2` | Empty | Typer usage error |
@@ -131,11 +125,11 @@ make hygiene
131
125
  make clean
132
126
  ```
133
127
 
134
- `make install` installs `flowsh` into the user PATH with `uv tool install --force .`.
128
+ `make install` installs `flowsh-cli` into the user PATH with `uv tool install --force .`.
135
129
  `make build` creates reproducible source and wheel distributions under ignored `dist/`.
136
130
 
137
131
  `make qa` runs Ruff, Python compile checks, and pytest with locked dependencies, then builds packages locally and in CI.
138
- The pytest suite also verifies `python -m flowsh`, `uv run flowsh`, and the direct
132
+ The pytest suite also verifies `python -m flowsh_cli`, `uvx flowsh-cli`, and the direct
139
133
  `scripts/workflow_to_harness.py` entrypoint against the same help contract.
140
134
  `make hygiene` prints tracked, untracked, and ignored files with
141
135
  `git status --short --ignored`; review it before release to confirm only intended
@@ -1,12 +1,6 @@
1
- # flowsh
1
+ # flowsh-cli
2
2
 
3
- `flowsh` is a small `uv` Python CLI deliberately reduced to one tool:
4
-
5
- ```bash
6
- uvx flowsh .made/workflows.yml
7
- ```
8
-
9
- It reads MADE workflow YAML and writes executable Bash harness scripts for OpenCode.
3
+ `flowsh-cli` is a small `uv` Python CLI that reads workflow YAML and writes executable Bash harness scripts for OpenCode.
10
4
 
11
5
  ## Supported YAML
12
6
 
@@ -42,31 +36,31 @@ Harness paths are derived from workflow ids. `wf_example` writes `.harness/examp
42
36
 
43
37
  ```bash
44
38
  # Generate every workflow harness
45
- uvx flowsh .made/workflows.yml
39
+ uvx flowsh-cli .made/workflows.yml
46
40
 
47
41
  # Generate one workflow by id
48
- uvx flowsh .made/workflows.yml --workflow wf_example
42
+ uvx flowsh-cli .made/workflows.yml --workflow wf_example
49
43
 
50
44
  # Show planned outputs without writing files
51
- uvx flowsh .made/workflows.yml --dry-run
45
+ uvx flowsh-cli .made/workflows.yml --dry-run
52
46
 
53
47
  # Overwrite existing harness files
54
- uvx flowsh .made/workflows.yml --force
48
+ uvx flowsh-cli .made/workflows.yml --force
55
49
 
56
50
  # Show version
57
- uvx flowsh --version
51
+ uvx flowsh-cli --version
58
52
  ```
59
53
 
60
- You can also run it via `uv run flowsh` if installed locally.
54
+ You can also run it via `uv run flowsh-cli` if installed locally.
61
55
 
62
56
  ## CLI Contract
63
57
 
64
- `flowsh` is non-interactive. It never prompts for missing information.
58
+ `flowsh-cli` is non-interactive. It never prompts for missing information.
65
59
 
66
60
  Current help output is plain text and deterministic across repeated runs:
67
61
 
68
62
  ```text
69
- Usage: flowsh [OPTIONS] WORKFLOW_YAML
63
+ Usage: flowsh-cli [OPTIONS] WORKFLOW_YAML
70
64
 
71
65
  Generate reproducible OpenCode Bash harness scripts from MADE workflow YAML.
72
66
 
@@ -77,7 +71,7 @@ Options:
77
71
  --workflow TEXT Optional workflow id to generate. Defaults to all workflows.
78
72
  --dry-run Print planned output paths without writing scripts.
79
73
  --force Overwrite existing files. Without this, existing files cause a failure.
80
- --version Show the flowsh version and exit.
74
+ --version Show the flowsh-cli version and exit.
81
75
  --help Show this message and exit.
82
76
  ```
83
77
 
@@ -89,7 +83,7 @@ Exit codes:
89
83
  | Case | Exit | stdout | stderr |
90
84
  |---|---:|---|---|
91
85
  | `--help` | `0` | Help text | Empty |
92
- | `--version` | `0` | `flowsh <version>` | Empty |
86
+ | `--version` | `0` | `flowsh-cli <version>` | Empty |
93
87
  | Valid generation | `0` | One `Wrote <path>` line per harness | Empty |
94
88
  | Valid `--dry-run` | `0` | One `DRY-RUN would write <path>` line per selected workflow | Empty |
95
89
  | Missing required CLI argument | `2` | Empty | Typer usage error |
@@ -115,11 +109,11 @@ make hygiene
115
109
  make clean
116
110
  ```
117
111
 
118
- `make install` installs `flowsh` into the user PATH with `uv tool install --force .`.
112
+ `make install` installs `flowsh-cli` into the user PATH with `uv tool install --force .`.
119
113
  `make build` creates reproducible source and wheel distributions under ignored `dist/`.
120
114
 
121
115
  `make qa` runs Ruff, Python compile checks, and pytest with locked dependencies, then builds packages locally and in CI.
122
- The pytest suite also verifies `python -m flowsh`, `uv run flowsh`, and the direct
116
+ The pytest suite also verifies `python -m flowsh_cli`, `uvx flowsh-cli`, and the direct
123
117
  `scripts/workflow_to_harness.py` entrypoint against the same help contract.
124
118
  `make hygiene` prints tracked, untracked, and ignored files with
125
119
  `git status --short --ignored`; review it before release to confirm only intended
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "flowsh-cli"
7
- version = "0.1.2"
7
+ version = "0.2.1"
8
8
  description = "Generate Bash harness scripts from workflow YAML files."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -25,7 +25,7 @@ Homepage = "https://github.com/tbrandenburg/flowsh"
25
25
  Source = "https://github.com/tbrandenburg/flowsh"
26
26
 
27
27
  [project.scripts]
28
- flowsh = "flowsh_cli.cli:main"
28
+ flowsh-cli = "flowsh_cli.cli:main"
29
29
 
30
30
  [dependency-groups]
31
31
  dev = [
@@ -39,6 +39,7 @@ testpaths = ["tests"]
39
39
  [tool.ruff]
40
40
  line-length = 100
41
41
  target-version = "py311"
42
+ exclude = ["scripts/"]
42
43
 
43
44
  [tool.ruff.lint]
44
45
  select = ["E", "F", "I", "UP", "B", "SIM"]
@@ -1,9 +1,9 @@
1
- """flowsh: generate OpenCode Bash harness scripts from workflow YAML."""
1
+ """flowsh-cli: generate OpenCode Bash harness scripts from workflow YAML."""
2
2
 
3
3
  from flowsh_cli.models import Workflow, WorkflowParseError, parse_workflows
4
4
  from flowsh_cli.render import harness_path, render_harness
5
5
 
6
- __version__ = "0.1.0"
6
+ __version__ = "0.2.1"
7
7
 
8
8
  __all__ = [
9
9
  "Workflow",
@@ -25,7 +25,7 @@ app = typer.Typer(
25
25
 
26
26
  def main(argv: Sequence[str] | None = None) -> int:
27
27
  try:
28
- app(args=list(argv) if argv is not None else None, prog_name="flowsh")
28
+ app(args=list(argv) if argv is not None else None, prog_name="flowsh-cli")
29
29
  except SystemExit as error:
30
30
  return error.code if isinstance(error.code, int) else 1
31
31
 
@@ -58,7 +58,7 @@ def generate(
58
58
  typer.Option(
59
59
  "--version",
60
60
  callback=lambda value: print_version(value),
61
- help="Show the flowsh version and exit.",
61
+ help="Show the flowsh-cli version and exit.",
62
62
  is_eager=True,
63
63
  ),
64
64
  ] = False,
@@ -95,7 +95,7 @@ def print_version(value: bool) -> None:
95
95
  if not value:
96
96
  return
97
97
 
98
- print(f"flowsh {__version__}")
98
+ print(f"flowsh-cli {__version__}")
99
99
  raise typer.Exit
100
100
 
101
101