Commit 250c21e
feat(matrix): allow pkg.yml to opt in to windows/x86-64
Today get-matrix.ts throws "invalid platform" the moment a pkg.yml
lists `windows/` anywhere. That's a hard ceiling on Windows enablement
even at the discussion level — there's no way to materialise the gap
in actual CI.
Open the door without changing default behaviour:
- Extend the per-platform regex to accept `(linux|darwin|windows)`.
The default-platforms list (used when a pkg.yml omits `platforms:`)
stays linux+darwin only. Existing packages get an identical matrix.
- Add a `case 'windows/x86-64'` to get_matrix() that targets the
hosted `windows-latest` runner.
- Accept the shorthand `windows` (resolves to `windows/x86-64`; no
arm64 Windows runners on GitHub Actions today).
This is intentionally a no-op for every package currently in the
pantry — only a package that *explicitly* lists
`platforms: [windows/x86-64]` is affected. Such a package will fail
at `brewkit/build@v1` (which has no Windows codepath today), which
is the point: it surfaces brewkit's gap as a real CI failure rather
than a planning-time throw, and gives a place to discuss Windows
enablement with concrete build logs.
## Why now
In pkgxdev/pkgm#87 I'm porting pkgm to Windows. The pkgm-side work
is essentially done (per-user install_prefix to %LOCALAPPDATA%\pkgm,
hardlink fallback for symlink_with_overwrite, .cmd stub wrappers,
PATH_SEP awareness throughout). But `pkgm install <anything>` on
Windows fails with `CmdNotFound` because the dist S3 bucket has zero
Windows artifacts (probed all 842 top-level prefixes — none have a
`windows/` subdir). The trail leads here: get-matrix.ts refuses
Windows at planning time.
This PR doesn't fix anything end-to-end. It removes the planning-
level veto so we can have the brewkit-side conversation with concrete
artefacts to point at.
## Refs
- pkgxdev/pkgx#607 — platform-support megaticket; lists Windows as
planned with libpkgx#48 marked v1-wip.
- pkgxdev/pkgm#87 — pkgm port to Windows (scaffolding pass, draft).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 2a1092a commit 250c21e
1 file changed
Lines changed: 22 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
30 | 35 | | |
31 | 36 | | |
32 | 37 | | |
33 | 38 | | |
34 | 39 | | |
35 | | - | |
| 40 | + | |
36 | 41 | | |
| 42 | + | |
37 | 43 | | |
38 | 44 | | |
39 | 45 | | |
| |||
83 | 89 | | |
84 | 90 | | |
85 | 91 | | |
86 | | - | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
87 | 107 | | |
0 commit comments