Skip to content

Commit bc33fce

Browse files
authored
chore(scoop): remove stale draft manifests; bucket repo is authoritative (#2767)
The Scoop draft generator at tools/distribution-drafts/scoop/ produced two .json manifests intended to be copied into wheels-dev/scoop-wheels at bucket setup time. After the inline-JDK rework in scoop-wheels@3f22250 (May 18), the bucket grew its own self-hosted autoupdate workflow and diverged from this draft on every meaningful axis: - inline JDK as 5th URL vs. external `depends: java/openjdk21` - real auto-bumped hashes vs. placeholder zeros - self-hosted autoupdate workflow vs. Scoop built-in `autoupdate` block - JAVA_HOME fallback + direct `java -jar` invocation in wrapper (scoop-wheels#6) vs. `call lucli.bat` here The parent README originally framed this directory as a "useful diff signal during release reviews" -- in practice nobody acted on the divergence between May 18 and today (two snapshot releases later), and the stale drafts only added a misleading second source-of-truth. wheels#2765 surfaced the gap when a user hit a wrapper bug that had already been quietly fixed-then-undone in the divergence. Delete the scoop subdirectory and trim the two scoop rows + the keep-or-remove paragraph from the parent README. Bucket is now the unambiguous home; structural changes happen there directly. No CI consumed these files -- release.yml only references linux-packages/apt-repo/yum-repo from this tree. scoop-wheels#6 (the wrapper fix) and scoop-wheels#7 (tracking) remain valid in the bucket repo. Closes wheels#2765 Signed-off-by: Peter Amiri <peter@alurium.com>
1 parent 9620085 commit bc33fce

12 files changed

Lines changed: 13 additions & 1296 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ All historical references to "CFWheels" in this changelog have been preserved fo
3737

3838
### Fixed
3939

40-
- The Scoop `wheels.cmd` wrapper (both `wheels` and `wheels-be` channels) now dispatches LuCLI via `"%JAVA_HOME%\bin\java.exe" -client -jar "%~dp0lucli-<ver>.bat" %*` instead of `call "%~dp0lucli-<ver>.bat" %*`. The `lucli-<ver>.bat` artifact is a bat-jar concatenation (small bat preamble + raw JAR ZIP bytes, ~915 KB), and cmd.exe pre-parses the entire file looking for labels before running it — on at least Windows 11 10.0.26200.8457 that pre-parse trips on a byte sequence in the JAR tail and aborts with `The filename, directory name, or volume label syntax is incorrect.` before LuCLI ever executes. Invoking java directly bypasses the bat-file pre-parser; java reads the JAR via stream and skips the bat preamble. The wrapper now also resolves `JAVA_HOME` from the openjdk21 dependency declared via `depends: java/openjdk21` (preferring `%SCOOP%\apps\openjdk21\current`, falling back to the sibling-app layout `%~dp0..\..\openjdk21\current`) and fails fast with an actionable install hint when neither is found. The same fix is applied to the `:deploy_dispatch` branch added by #2691. The published bucket needs republishing for existing installs to pick up the fix on their next `scoop update`. Closes #2765
40+
- The Scoop `wheels.cmd` wrapper (both `wheels` and `wheels-be` channels) was failing on Windows 11 build 10.0.26200.8457 with `The filename, directory name, or volume label syntax is incorrect.` before LuCLI could run, due to two compounding bugs: (1) `call "%~dp0lucli-<ver>.bat" %*` made cmd.exe pre-parse the entire bat-jar concatenation (~915 KB of bat preamble + `:JAR_BOUNDARY` + raw JAR ZIP bytes) looking for labels, and the pre-parser tripped on byte sequences in the ZIP tail; (2) `JAVA_HOME=%~dp0share\jdk` pointed at a location Scoop's extraction didn't reliably produce — on at least one machine the inlined OpenJDK 21 zip landed at `%~dp0jdk-21.0.2` (the ZIP's root layout, as if `extract_to=share/jdk` were ignored) instead. The fix landed directly in the canonical bucket via wheels-dev/scoop-wheels#6: the wrapper now dispatches LuCLI via `"%JAVA_HOME%\bin\java.exe" -client -jar "%~dp0lucli-<ver>.bat" %*` (java reads the JAR via stream and skips the bat preamble, bypassing cmd's pre-parser entirely), and a one-line fallback `if not exist "%JAVA_HOME%\bin\java.exe" set "JAVA_HOME=%~dp0jdk-21.0.2"` handles the broken-extraction case. As part of the same cleanup, the stale Scoop manifest drafts at `tools/distribution-drafts/scoop/` (`build-manifests.py`, `validate.py`, `wheels.json`, `wheels-be.json`, and the local README), plus the regression spec at `vendor/wheels/tests/specs/cli/ScoopWrapperSpec.cfc` that pinned against those drafts, are removed — the live bucket has had its own self-hosted autoupdate workflow and an inline-JDK layout since scoop-wheels@3f22250 and the in-repo drafts had silently diverged on every meaningful axis (inline JDK vs. `depends:`, real hashes vs. placeholder zeros, autoupdate strategy, wrapper template). `tools/distribution-drafts/README.md` is updated to note that the scoop bucket is now canonical and no longer mirrored here. Closes #2765 (#2767)
4141
- Release artifacts (`wheels-core`, `wheels-cli`, `wheels-base-template`, `wheels-starter-app`) now ship `*.zip.sha512` / `*.zip.md5` checksum sidecars (was `*.sha512` / `*.md5`) so the scoop-wheels `autoupdate` config — which expects the `.zip.sha512` shape via `$url.sha512` substitution — no longer 404s on every non-module artifact. `wheels-module` already used the correct shape; this brings the other four artifacts and both release workflows (`release.yml`, `release-candidate.yml`, plus the `snapshot.yml` reusable-workflow chain) into line. Closes the Windows install regression reported in #2758 + scoop-wheels#2 (#2761)
4242
- Docs: Windows install steps in `start-here/installing.mdx` and `command-line-tools/installation.mdx` now call out `scoop bucket add java` as a prerequisite. Scoop's `depends:` declaration does not auto-add the dependency bucket on the user's behalf, so users hit `Couldn't find manifest for 'openjdk21' from 'java' bucket` before they could proceed (#2761)
4343
- `$viteResolveAssets()` on Adobe CF 2023/2025 returned empty `preloads` and `styles` arrays when the manifest included transitive imports with CSS chunks. Root cause: Adobe CF copies arrays by value when they are passed directly from a struct literal — `$viteWalkImports(preloads = local.rv.preloads, styles = local.rv.styles, ...)` handed the walker independent copies on Adobe CF, so every `ArrayAppend(arguments.preloads, ...)` inside the recursion wrote to garbage and `local.rv` came back empty. Lucee and BoxLang share the array references, so the bug was Adobe-only. Fix: pass the parent `rv` struct and mutate `arguments.rv.preloads` / `arguments.rv.styles` — struct references are shared on every engine (Cross-Engine Invariant #6). Affects every helper that walks transitive imports: `viteScriptTag`, `viteStyleTag`, `vitePreloadTag`, and `$viteHtmlHead`. Existing viteSpec assertions on transitive-import walk, diamond-dependency dedup, and cyclic-import termination serve as the regression catch (#2756)

tools/distribution-drafts/README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ When merged, the contents of this directory should be copied into:
1111
| `homebrew/wheels-be.rb` | `wheels-dev/homebrew-wheels` | `Formula/wheels-be.rb` (new file) |
1212
| `homebrew/bleeding-edge-update.yml` | `wheels-dev/homebrew-wheels` | `.github/workflows/bleeding-edge-update.yml` (new file) |
1313
| `homebrew/auto-update-channel-patch.md` | (informational) | applied as a small patch to the existing `auto-update.yml` |
14-
| `scoop/wheels.json` | `wheels-dev/scoop-wheels` (new repo) | `bucket/wheels.json` |
15-
| `scoop/wheels-be.json` | `wheels-dev/scoop-wheels` | `bucket/wheels-be.json` |
1614
| `winget/manifests/*.yaml` | `microsoft/winget-pkgs` (PR) | `manifests/w/WheelsFramework/Wheels/<version>/` |
1715
| `snapshots-repo/README.md` | `wheels-dev/wheels-snapshots` (✅ pushed) | `README.md` |
1816
| `snapshots-repo/cleanup-old-snapshots.yml` | `wheels-dev/wheels-snapshots` (✅ pushed) | `.github/workflows/cleanup-old-snapshots.yml` |
1917
| `linux-packages/*` | reference + Phase 2 plan for `apt.wheels.dev` / `yum.wheels.dev` | (CF Pages) |
2018

21-
After Tuesday's GA, this directory can either stay (as canonical source-of-truth
22-
for what each tap looks like) or be removed (the taps become authoritative).
23-
Leaning toward keeping it — drift between the in-repo template and the actual
24-
tap is a useful diff signal during release reviews.
19+
## Scoop bucket is authoritative, not drafted here
20+
21+
The Scoop manifests previously drafted in `scoop/` were removed (wheels#2765).
22+
The live `wheels-dev/scoop-wheels` bucket has its own self-hosted autoupdate
23+
workflow and is the unambiguous source of truth — keeping a drafted copy here
24+
just produced silent drift (the in-repo drafts grew out of sync with the
25+
bucket's inline-JDK rework and no one noticed for two releases). Edit the
26+
bucket repo directly; this repo no longer mirrors it.

tools/distribution-drafts/scoop/README.md

Lines changed: 0 additions & 141 deletions
This file was deleted.

0 commit comments

Comments
 (0)