specfuse 0.3.2__tar.gz → 0.3.4__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: specfuse
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Specfuse umbrella CLI — bridges the pip-installed driver and the Claude Code plugin (init / upgrade).
5
5
  Author: Specfuse contributors
6
6
  License: Apache-2.0
@@ -17,16 +17,16 @@ Requires-Python: >=3.10
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  License-File: NOTICE
20
- Requires-Dist: specfuse-loop>=0.3.12
20
+ Requires-Dist: specfuse-loop>=0.3.13
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: coverage>=7.0; extra == "dev"
23
23
  Requires-Dist: ruff>=0.6; extra == "dev"
24
24
  Provides-Extra: orchestrator
25
- Requires-Dist: specfuse-orchestrator>=0.3.0; extra == "orchestrator"
25
+ Requires-Dist: specfuse-orchestrator>=0.4.1; extra == "orchestrator"
26
26
  Provides-Extra: authoring
27
27
  Requires-Dist: specfuse-authoring>=0.3.0; extra == "authoring"
28
28
  Provides-Extra: all
29
- Requires-Dist: specfuse-orchestrator>=0.3.0; extra == "all"
29
+ Requires-Dist: specfuse-orchestrator>=0.4.1; extra == "all"
30
30
  Requires-Dist: specfuse-authoring>=0.3.0; extra == "all"
31
31
  Dynamic: license-file
32
32
 
@@ -69,6 +69,28 @@ specfuse init <repo> # scaffold .specfuse/ + wire .claude/ (--dry-run p
69
69
  specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade driver + CLI, point at /plugin update
70
70
  ```
71
71
 
72
+ Or install with **[uv](https://docs.astral.sh/uv/)** (`uv tool`) — a single standalone
73
+ binary with the same isolated-env-on-PATH model as pipx, and the **recommended path
74
+ on Windows** (it sidesteps the pipx/Python-3.14 bug noted below):
75
+
76
+ ```
77
+ uv tool install specfuse # core: specfuse / specfuse-loop / specfuse-lint
78
+ uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
79
+ uv tool upgrade specfuse # upgrade (re-resolves, like pipx upgrade)
80
+ ```
81
+
82
+ > **`--with-executables-from` is uv's `--include-deps`.** `uv tool install specfuse`
83
+ > exposes only the umbrella's own scripts; the orchestrator/authoring commands live
84
+ > in the extra packages, so name them in `--with-executables-from` to put them on
85
+ > PATH. uv also manages its own Python, so a system Python 3.14 doesn't affect it.
86
+ >
87
+ > **Use uv ≥ 0.9.9 on Windows.** If `uv tool install` fails with `Failed to update
88
+ > Windows PE resources: …uv-trampoline-….exe … Access is denied`, that's antivirus/
89
+ > Defender blocking uv's trampoline `.exe` in `%TEMP%`. uv 0.9.9 stores trampoline
90
+ > metadata in `.rcdata` instead, avoiding it — run `uv self update` and retry. If it
91
+ > persists, add an AV exclusion for `%LOCALAPPDATA%\uv` (or point `$env:TMP`/`$env:TEMP`
92
+ > at an unmonitored dir before installing). See astral-sh/uv#10030.
93
+
72
94
  > **`--include-deps` is required for the extras' CLIs.** pipx only exposes the main
73
95
  > package's own console scripts; the orchestrator/authoring commands
74
96
  > (`specfuse-orchestrator`, `specfuse-poller`, `specfuse-authoring`, …) live in the
@@ -84,6 +106,34 @@ specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade drive
84
106
  > externally-managed environments (Debian/Ubuntu, Homebrew). Use `pipx` (then
85
107
  > `pipx upgrade specfuse`) or a virtualenv, so `specfuse-loop` / `specfuse-lint`
86
108
  > land on PATH for the gate commands to find.
109
+ >
110
+ > **Windows + Python 3.14: `pipx install` crashes with `UnicodeDecodeError`.**
111
+ > If the output shows `Successfully installed … specfuse-…` and then a
112
+ > `UnicodeDecodeError: … can't decode byte 0x89 …` traceback ending in pipx's
113
+ > `_copy_launcher_targets_venv → os.fsdecode(...)`, the packages installed fine —
114
+ > this is an **upstream pipx bug on Python 3.14/Windows**, not a specfuse defect.
115
+ > pipx copies the console-script `.exe` launchers into `%USERPROFILE%\.local\bin`
116
+ > and its post-install cleanup then mis-reads them. `--force` re-copies and
117
+ > re-scans the same launchers, so it hits the identical crash; deleting the shims
118
+ > doesn't help either (they're recreated and re-trigger it). Same 3.14/Windows
119
+ > class as [pypa/pipx#1723](https://github.com/pypa/pipx/issues/1723).
120
+ >
121
+ > **Use uv instead** (recommended) — uv's `tool` model is pipx-equivalent (isolated
122
+ > env, shims on PATH, one-line install/upgrade) but uses its own launcher machinery,
123
+ > so it doesn't hit this bug:
124
+ >
125
+ > ```powershell
126
+ > powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # one-time: install uv
127
+ > uv tool install specfuse # core CLIs
128
+ > uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
129
+ > specfuse --version
130
+ > uv tool upgrade specfuse # upgrade later
131
+ > ```
132
+ >
133
+ > If you must stay on pipx: delete any leftover broken launchers
134
+ > (`del "$env:USERPROFILE\.local\bin\specfuse*.exe"`) and run pipx itself under
135
+ > **Python 3.13** so its own process isn't 3.14. A plain `py -m venv` + `pip install
136
+ > "specfuse[all]"` also works (you manage PATH yourself).
87
137
 
88
138
  `specfuse init` lays down `.specfuse/` (templates, rules, docs, `verification.yml`)
89
139
  and merge-safely wires `.claude/` (including this plugin's config) — pip-native
@@ -37,6 +37,28 @@ specfuse init <repo> # scaffold .specfuse/ + wire .claude/ (--dry-run p
37
37
  specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade driver + CLI, point at /plugin update
38
38
  ```
39
39
 
40
+ Or install with **[uv](https://docs.astral.sh/uv/)** (`uv tool`) — a single standalone
41
+ binary with the same isolated-env-on-PATH model as pipx, and the **recommended path
42
+ on Windows** (it sidesteps the pipx/Python-3.14 bug noted below):
43
+
44
+ ```
45
+ uv tool install specfuse # core: specfuse / specfuse-loop / specfuse-lint
46
+ uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
47
+ uv tool upgrade specfuse # upgrade (re-resolves, like pipx upgrade)
48
+ ```
49
+
50
+ > **`--with-executables-from` is uv's `--include-deps`.** `uv tool install specfuse`
51
+ > exposes only the umbrella's own scripts; the orchestrator/authoring commands live
52
+ > in the extra packages, so name them in `--with-executables-from` to put them on
53
+ > PATH. uv also manages its own Python, so a system Python 3.14 doesn't affect it.
54
+ >
55
+ > **Use uv ≥ 0.9.9 on Windows.** If `uv tool install` fails with `Failed to update
56
+ > Windows PE resources: …uv-trampoline-….exe … Access is denied`, that's antivirus/
57
+ > Defender blocking uv's trampoline `.exe` in `%TEMP%`. uv 0.9.9 stores trampoline
58
+ > metadata in `.rcdata` instead, avoiding it — run `uv self update` and retry. If it
59
+ > persists, add an AV exclusion for `%LOCALAPPDATA%\uv` (or point `$env:TMP`/`$env:TEMP`
60
+ > at an unmonitored dir before installing). See astral-sh/uv#10030.
61
+
40
62
  > **`--include-deps` is required for the extras' CLIs.** pipx only exposes the main
41
63
  > package's own console scripts; the orchestrator/authoring commands
42
64
  > (`specfuse-orchestrator`, `specfuse-poller`, `specfuse-authoring`, …) live in the
@@ -52,6 +74,34 @@ specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade drive
52
74
  > externally-managed environments (Debian/Ubuntu, Homebrew). Use `pipx` (then
53
75
  > `pipx upgrade specfuse`) or a virtualenv, so `specfuse-loop` / `specfuse-lint`
54
76
  > land on PATH for the gate commands to find.
77
+ >
78
+ > **Windows + Python 3.14: `pipx install` crashes with `UnicodeDecodeError`.**
79
+ > If the output shows `Successfully installed … specfuse-…` and then a
80
+ > `UnicodeDecodeError: … can't decode byte 0x89 …` traceback ending in pipx's
81
+ > `_copy_launcher_targets_venv → os.fsdecode(...)`, the packages installed fine —
82
+ > this is an **upstream pipx bug on Python 3.14/Windows**, not a specfuse defect.
83
+ > pipx copies the console-script `.exe` launchers into `%USERPROFILE%\.local\bin`
84
+ > and its post-install cleanup then mis-reads them. `--force` re-copies and
85
+ > re-scans the same launchers, so it hits the identical crash; deleting the shims
86
+ > doesn't help either (they're recreated and re-trigger it). Same 3.14/Windows
87
+ > class as [pypa/pipx#1723](https://github.com/pypa/pipx/issues/1723).
88
+ >
89
+ > **Use uv instead** (recommended) — uv's `tool` model is pipx-equivalent (isolated
90
+ > env, shims on PATH, one-line install/upgrade) but uses its own launcher machinery,
91
+ > so it doesn't hit this bug:
92
+ >
93
+ > ```powershell
94
+ > powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # one-time: install uv
95
+ > uv tool install specfuse # core CLIs
96
+ > uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
97
+ > specfuse --version
98
+ > uv tool upgrade specfuse # upgrade later
99
+ > ```
100
+ >
101
+ > If you must stay on pipx: delete any leftover broken launchers
102
+ > (`del "$env:USERPROFILE\.local\bin\specfuse*.exe"`) and run pipx itself under
103
+ > **Python 3.13** so its own process isn't 3.14. A plain `py -m venv` + `pip install
104
+ > "specfuse[all]"` also works (you manage PATH yourself).
55
105
 
56
106
  `specfuse init` lays down `.specfuse/` (templates, rules, docs, `verification.yml`)
57
107
  and merge-safely wires `.claude/` (including this plugin's config) — pip-native
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specfuse"
7
- version = "0.3.2"
7
+ version = "0.3.4"
8
8
  description = "Specfuse umbrella CLI — bridges the pip-installed driver and the Claude Code plugin (init / upgrade)."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -25,7 +25,7 @@ classifiers = [
25
25
  # `specfuse.loop.scaffold`, which only exists in specfuse-loop 0.3.0+ (added by
26
26
  # FEAT-2026-0026). A 0.2.x driver would import-fail at `specfuse init`.
27
27
  dependencies = [
28
- "specfuse-loop>=0.3.12",
28
+ "specfuse-loop>=0.3.13",
29
29
  ]
30
30
 
31
31
  [project.optional-dependencies]
@@ -33,13 +33,13 @@ dev = ["coverage>=7.0", "ruff>=0.6"]
33
33
  # Opt-in extra: the multi-repo initiative-coordination component. NOT a default
34
34
  # dependency (unlike specfuse-loop) — it runs at one coordination point, not in
35
35
  # every consumer. `pipx install specfuse[orchestrator]`.
36
- orchestrator = ["specfuse-orchestrator>=0.3.0"]
36
+ orchestrator = ["specfuse-orchestrator>=0.4.1"]
37
37
  # Opt-in extra: the spec-authoring kit (design/validate OpenAPI/AsyncAPI/Arazzo +
38
38
  # the specs agent). `pipx install specfuse[authoring]`.
39
39
  authoring = ["specfuse-authoring>=0.3.0"]
40
40
  # Everything: the driver (default dep) + orchestrator + authoring, so
41
41
  # `pipx install specfuse[all]` installs the whole suite in one command.
42
- all = ["specfuse-orchestrator>=0.3.0", "specfuse-authoring>=0.3.0"]
42
+ all = ["specfuse-orchestrator>=0.4.1", "specfuse-authoring>=0.3.0"]
43
43
 
44
44
  [project.scripts]
45
45
  specfuse = "specfuse.cli:main"
@@ -32,7 +32,7 @@ from pathlib import Path
32
32
 
33
33
  from specfuse.loop import scaffold
34
34
 
35
- __version__ = "0.3.2"
35
+ __version__ = "0.3.4"
36
36
 
37
37
  MARKETPLACE = "specfuse/specfuse"
38
38
  PLUGIN = "specfuse@specfuse"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specfuse
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Specfuse umbrella CLI — bridges the pip-installed driver and the Claude Code plugin (init / upgrade).
5
5
  Author: Specfuse contributors
6
6
  License: Apache-2.0
@@ -17,16 +17,16 @@ Requires-Python: >=3.10
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  License-File: NOTICE
20
- Requires-Dist: specfuse-loop>=0.3.12
20
+ Requires-Dist: specfuse-loop>=0.3.13
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: coverage>=7.0; extra == "dev"
23
23
  Requires-Dist: ruff>=0.6; extra == "dev"
24
24
  Provides-Extra: orchestrator
25
- Requires-Dist: specfuse-orchestrator>=0.3.0; extra == "orchestrator"
25
+ Requires-Dist: specfuse-orchestrator>=0.4.1; extra == "orchestrator"
26
26
  Provides-Extra: authoring
27
27
  Requires-Dist: specfuse-authoring>=0.3.0; extra == "authoring"
28
28
  Provides-Extra: all
29
- Requires-Dist: specfuse-orchestrator>=0.3.0; extra == "all"
29
+ Requires-Dist: specfuse-orchestrator>=0.4.1; extra == "all"
30
30
  Requires-Dist: specfuse-authoring>=0.3.0; extra == "all"
31
31
  Dynamic: license-file
32
32
 
@@ -69,6 +69,28 @@ specfuse init <repo> # scaffold .specfuse/ + wire .claude/ (--dry-run p
69
69
  specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade driver + CLI, point at /plugin update
70
70
  ```
71
71
 
72
+ Or install with **[uv](https://docs.astral.sh/uv/)** (`uv tool`) — a single standalone
73
+ binary with the same isolated-env-on-PATH model as pipx, and the **recommended path
74
+ on Windows** (it sidesteps the pipx/Python-3.14 bug noted below):
75
+
76
+ ```
77
+ uv tool install specfuse # core: specfuse / specfuse-loop / specfuse-lint
78
+ uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
79
+ uv tool upgrade specfuse # upgrade (re-resolves, like pipx upgrade)
80
+ ```
81
+
82
+ > **`--with-executables-from` is uv's `--include-deps`.** `uv tool install specfuse`
83
+ > exposes only the umbrella's own scripts; the orchestrator/authoring commands live
84
+ > in the extra packages, so name them in `--with-executables-from` to put them on
85
+ > PATH. uv also manages its own Python, so a system Python 3.14 doesn't affect it.
86
+ >
87
+ > **Use uv ≥ 0.9.9 on Windows.** If `uv tool install` fails with `Failed to update
88
+ > Windows PE resources: …uv-trampoline-….exe … Access is denied`, that's antivirus/
89
+ > Defender blocking uv's trampoline `.exe` in `%TEMP%`. uv 0.9.9 stores trampoline
90
+ > metadata in `.rcdata` instead, avoiding it — run `uv self update` and retry. If it
91
+ > persists, add an AV exclusion for `%LOCALAPPDATA%\uv` (or point `$env:TMP`/`$env:TEMP`
92
+ > at an unmonitored dir before installing). See astral-sh/uv#10030.
93
+
72
94
  > **`--include-deps` is required for the extras' CLIs.** pipx only exposes the main
73
95
  > package's own console scripts; the orchestrator/authoring commands
74
96
  > (`specfuse-orchestrator`, `specfuse-poller`, `specfuse-authoring`, …) live in the
@@ -84,6 +106,34 @@ specfuse upgrade <repo> # overlay a newer scaffold, then pip-upgrade drive
84
106
  > externally-managed environments (Debian/Ubuntu, Homebrew). Use `pipx` (then
85
107
  > `pipx upgrade specfuse`) or a virtualenv, so `specfuse-loop` / `specfuse-lint`
86
108
  > land on PATH for the gate commands to find.
109
+ >
110
+ > **Windows + Python 3.14: `pipx install` crashes with `UnicodeDecodeError`.**
111
+ > If the output shows `Successfully installed … specfuse-…` and then a
112
+ > `UnicodeDecodeError: … can't decode byte 0x89 …` traceback ending in pipx's
113
+ > `_copy_launcher_targets_venv → os.fsdecode(...)`, the packages installed fine —
114
+ > this is an **upstream pipx bug on Python 3.14/Windows**, not a specfuse defect.
115
+ > pipx copies the console-script `.exe` launchers into `%USERPROFILE%\.local\bin`
116
+ > and its post-install cleanup then mis-reads them. `--force` re-copies and
117
+ > re-scans the same launchers, so it hits the identical crash; deleting the shims
118
+ > doesn't help either (they're recreated and re-trigger it). Same 3.14/Windows
119
+ > class as [pypa/pipx#1723](https://github.com/pypa/pipx/issues/1723).
120
+ >
121
+ > **Use uv instead** (recommended) — uv's `tool` model is pipx-equivalent (isolated
122
+ > env, shims on PATH, one-line install/upgrade) but uses its own launcher machinery,
123
+ > so it doesn't hit this bug:
124
+ >
125
+ > ```powershell
126
+ > powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # one-time: install uv
127
+ > uv tool install specfuse # core CLIs
128
+ > uv tool install --with-executables-from specfuse-orchestrator,specfuse-authoring 'specfuse[all]' # whole suite
129
+ > specfuse --version
130
+ > uv tool upgrade specfuse # upgrade later
131
+ > ```
132
+ >
133
+ > If you must stay on pipx: delete any leftover broken launchers
134
+ > (`del "$env:USERPROFILE\.local\bin\specfuse*.exe"`) and run pipx itself under
135
+ > **Python 3.13** so its own process isn't 3.14. A plain `py -m venv` + `pip install
136
+ > "specfuse[all]"` also works (you manage PATH yourself).
87
137
 
88
138
  `specfuse init` lays down `.specfuse/` (templates, rules, docs, `verification.yml`)
89
139
  and merge-safely wires `.claude/` (including this plugin's config) — pip-native
@@ -1,7 +1,7 @@
1
- specfuse-loop>=0.3.12
1
+ specfuse-loop>=0.3.13
2
2
 
3
3
  [all]
4
- specfuse-orchestrator>=0.3.0
4
+ specfuse-orchestrator>=0.4.1
5
5
  specfuse-authoring>=0.3.0
6
6
 
7
7
  [authoring]
@@ -12,4 +12,4 @@ coverage>=7.0
12
12
  ruff>=0.6
13
13
 
14
14
  [orchestrator]
15
- specfuse-orchestrator>=0.3.0
15
+ specfuse-orchestrator>=0.4.1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes