@guiho/runx 0.2.0 → 0.2.3
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.
- package/CHANGELOG.md +18 -0
- package/DOCS.md +4 -2
- package/README.md +6 -2
- package/docs/decisions/decisions.xdocs.md +2 -0
- package/docs/decisions/npm-trusted-publishing.md +92 -0
- package/docs/docs.xdocs.md +1 -0
- package/docs/plans/npm-trusted-publishing-release.md +119 -0
- package/docs/plans/plans.xdocs.md +2 -0
- package/docs/reviews/plans/npm-trusted-publishing-release-review.md +73 -0
- package/docs/reviews/plans/plans.xdocs.md +21 -0
- package/docs/reviews/reviews.xdocs.md +18 -0
- package/docs/validation/npm-trusted-publishing-0.2.2.md +54 -0
- package/docs/validation/validation.xdocs.md +1 -0
- package/package.json +1 -1
- package/scripts/runx-bin.ts +6 -0
- package/scripts/scripts.xdocs.md +3 -3
- package/skills/guiho-s-runx/agents/openai.yaml +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,24 @@ owner: runx
|
|
|
15
15
|
|
|
16
16
|
# Changelog
|
|
17
17
|
|
|
18
|
+
## 0.2.2 - 2026-07-14
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Retried the npm trusted-publishing release after the initial `0.2.1` tag could not be created under the repository tag ruleset.
|
|
23
|
+
|
|
24
|
+
## 0.2.1 - 2026-07-14
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- Added npm OIDC trusted publishing to the protected `production` workflow for `@guiho/runx@*` tags.
|
|
29
|
+
- Expanded CI to validate the complete 12-target native binary matrix.
|
|
30
|
+
- Added active GitHub rulesets protecting `main` and `@guiho/runx@*` release tags.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Fixed the published `runx` launcher to use the compiled library entrypoint included in the npm package instead of relying on excluded source files.
|
|
35
|
+
|
|
18
36
|
## 0.2.0 - 2026-07-12
|
|
19
37
|
|
|
20
38
|
### Added
|
package/DOCS.md
CHANGED
|
@@ -114,5 +114,7 @@ macOS/Linux assets from GitHub Releases into the user's local bin directory.
|
|
|
114
114
|
on Windows replacement is scheduled after RunX exits. `runx uninstall` removes
|
|
115
115
|
the same native executable and supports `--dry-run`.
|
|
116
116
|
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
CI validates code and compiles the local executable plus the native release
|
|
118
|
+
matrix. Protected `@guiho/runx@*` tags run the `production` publish workflow,
|
|
119
|
+
which uploads twelve native assets to GitHub Releases and publishes the public
|
|
120
|
+
npm package through OIDC trusted publishing.
|
package/README.md
CHANGED
|
@@ -22,8 +22,12 @@ local shell commands rather than package-manager scripts.
|
|
|
22
22
|
|
|
23
23
|
## Install
|
|
24
24
|
|
|
25
|
-
RunX is distributed as a native executable from GitHub Releases
|
|
26
|
-
|
|
25
|
+
RunX is distributed as a native executable from GitHub Releases and as the
|
|
26
|
+
public `@guiho/runx` package on npm. The npm launcher requires Bun.
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
bun add --global @guiho/runx
|
|
30
|
+
```
|
|
27
31
|
|
|
28
32
|
```powershell
|
|
29
33
|
irm https://raw.githubusercontent.com/CGuiho/runx/main/devops/install.ps1 | iex
|
|
@@ -5,8 +5,10 @@ parent: runx-docs
|
|
|
5
5
|
children: []
|
|
6
6
|
files:
|
|
7
7
|
alpha-boundaries.md: Captures accepted alpha scope, safety, distribution, and compatibility decisions.
|
|
8
|
+
npm-trusted-publishing.md: Defines the accepted npm OIDC publishing workflow and protected-branch patch-release trial.
|
|
8
9
|
documents:
|
|
9
10
|
alpha-boundaries.md: Decision record for RunX alpha boundaries.
|
|
11
|
+
npm-trusted-publishing.md: Decision record for GitHub Actions npm trusted publishing and the first automated patch release.
|
|
10
12
|
tags:
|
|
11
13
|
- decisions
|
|
12
14
|
keywords:
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: RunX npm Trusted Publishing
|
|
3
|
+
purpose: Define the accepted GitHub Actions and Mirror release flow for publishing RunX to npm with OIDC.
|
|
4
|
+
description: Records the two-workflow design, native release preservation, npm trusted-publishing requirements, and protected-branch release path.
|
|
5
|
+
created: 2026-07-14
|
|
6
|
+
flags:
|
|
7
|
+
- accepted
|
|
8
|
+
tags:
|
|
9
|
+
- decisions
|
|
10
|
+
- release
|
|
11
|
+
- npm
|
|
12
|
+
keywords:
|
|
13
|
+
- runx
|
|
14
|
+
- trusted publishing
|
|
15
|
+
- oidc
|
|
16
|
+
- github actions
|
|
17
|
+
- mirror
|
|
18
|
+
owner: runx-decisions
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# RunX npm Trusted Publishing
|
|
22
|
+
|
|
23
|
+
## Context
|
|
24
|
+
|
|
25
|
+
RunX already has separate CI and tag-triggered publishing workflows. The
|
|
26
|
+
publish workflow validates the package, compiles twelve native binaries, and
|
|
27
|
+
publishes them to a GitHub Release. The original alpha decision excluded npm
|
|
28
|
+
publishing, but RunX is now ready to publish `@guiho/runx` through npm trusted
|
|
29
|
+
publishing without a long-lived npm token.
|
|
30
|
+
|
|
31
|
+
## Decision
|
|
32
|
+
|
|
33
|
+
- Keep exactly two workflows: `.github/workflows/ci.yml` and
|
|
34
|
+
`.github/workflows/publish.yml`.
|
|
35
|
+
- Keep CI read-only and run it for pull requests and pushes to `main`.
|
|
36
|
+
- Keep the publish trigger scoped to tags matching `@guiho/runx@*`.
|
|
37
|
+
- Preserve the existing native-binary GitHub Release and asset-verification
|
|
38
|
+
behavior.
|
|
39
|
+
- Add npm trusted publishing to the existing publish job after the idempotent
|
|
40
|
+
GitHub Release steps.
|
|
41
|
+
- Grant `id-token: write` only to the publish workflow and retain the
|
|
42
|
+
`production` GitHub environment.
|
|
43
|
+
- Use a GitHub-hosted runner, Node 24, npm 11.5.1 or newer, and
|
|
44
|
+
`npm publish --access public` without an npm token. OIDC trusted publishing
|
|
45
|
+
supplies authentication and provenance.
|
|
46
|
+
- Keep Bun as the package development, validation, build, and binary toolchain.
|
|
47
|
+
Node/npm is used only for the registry publication step and does not become a
|
|
48
|
+
RunX runtime dependency.
|
|
49
|
+
|
|
50
|
+
## Release Trial
|
|
51
|
+
|
|
52
|
+
The first automated npm publication trial is the Mirror-managed patch release
|
|
53
|
+
from `0.2.0` to `0.2.1`.
|
|
54
|
+
|
|
55
|
+
1. Land the workflow and documentation changes on `main` through a pull
|
|
56
|
+
request, because the default branch is protected.
|
|
57
|
+
2. Run the full RunX validation and `mirror version plan patch` before applying
|
|
58
|
+
the release.
|
|
59
|
+
3. Prepare the changelog from the planned version, commit release preparation,
|
|
60
|
+
and apply the patch with Mirror so the release commit and
|
|
61
|
+
`@guiho/runx@0.2.1` tag remain Mirror-managed.
|
|
62
|
+
4. Push the protected release tag only after the release commit is part of the
|
|
63
|
+
protected-branch history.
|
|
64
|
+
5. Observe the Publish workflow and verify both the GitHub Release assets and
|
|
65
|
+
npm package publication.
|
|
66
|
+
|
|
67
|
+
## Failure and Retry Behavior
|
|
68
|
+
|
|
69
|
+
- GitHub Release creation/upload remains before npm publication because those
|
|
70
|
+
operations are idempotent and can be retried safely.
|
|
71
|
+
- If npm rejects OIDC configuration, the workflow fails at the npm step without
|
|
72
|
+
attempting a second version or modifying the existing tag.
|
|
73
|
+
- After correcting npm trusted-publisher settings, rerun the failed workflow;
|
|
74
|
+
the GitHub Release assets are updated in place before npm is retried.
|
|
75
|
+
- Never retry by republishing the same version after npm has accepted it;
|
|
76
|
+
confirm registry state first.
|
|
77
|
+
|
|
78
|
+
## Validation
|
|
79
|
+
|
|
80
|
+
- Validate workflow syntax and inspect the resulting diff.
|
|
81
|
+
- Run `bun run typecheck`, `bun test`, `bun run build`, and
|
|
82
|
+
`bun run binaries` before the release.
|
|
83
|
+
- Run XDocs strict metadata, tree, and doctor checks for every changed
|
|
84
|
+
documentation module.
|
|
85
|
+
- Confirm the npm trusted publisher names repository `CGuiho/runx`, workflow
|
|
86
|
+
`publish.yml`, environment `production`, and permission to run `npm publish`.
|
|
87
|
+
|
|
88
|
+
## Superseded Boundary
|
|
89
|
+
|
|
90
|
+
This decision supersedes only the alpha statement that RunX has CI without an
|
|
91
|
+
npm publishing job. The remaining safety, manifest, runtime, and scope
|
|
92
|
+
decisions in [RunX Alpha Boundaries](alpha-boundaries.md) remain in force.
|
package/docs/docs.xdocs.md
CHANGED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: RunX npm Trusted Publishing Release Plan
|
|
3
|
+
purpose: Sequence the workflow implementation, protected-branch delivery, Mirror patch release, and public publish verification for RunX 0.2.1.
|
|
4
|
+
description: Executable units for adding npm OIDC publishing without removing native releases, then triggering and observing the first trusted publication.
|
|
5
|
+
created: 2026-07-14
|
|
6
|
+
flags:
|
|
7
|
+
- approved
|
|
8
|
+
tags:
|
|
9
|
+
- plans
|
|
10
|
+
- release
|
|
11
|
+
- npm
|
|
12
|
+
keywords:
|
|
13
|
+
- runx
|
|
14
|
+
- trusted publishing
|
|
15
|
+
- github actions
|
|
16
|
+
- mirror patch
|
|
17
|
+
- 0.2.1
|
|
18
|
+
owner: runx-plans
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# RunX npm Trusted Publishing Release Plan
|
|
22
|
+
|
|
23
|
+
## Source Decision
|
|
24
|
+
|
|
25
|
+
- [RunX npm Trusted Publishing](../decisions/npm-trusted-publishing.md)
|
|
26
|
+
|
|
27
|
+
## Unit 1: Implement the Workflows
|
|
28
|
+
|
|
29
|
+
- Goal: Keep two GitHub workflows while adding npm OIDC publication to the
|
|
30
|
+
existing tag-triggered publish job.
|
|
31
|
+
- Owner: RunX repository.
|
|
32
|
+
- Dependencies: Accepted trusted-publishing decision; npm trusted publisher for
|
|
33
|
+
`CGuiho/runx`, `publish.yml`, and environment `production`.
|
|
34
|
+
- Files:
|
|
35
|
+
- `.github/workflows/ci.yml`
|
|
36
|
+
- `.github/workflows/publish.yml`
|
|
37
|
+
- `.github/workflows/workflows.xdocs.md`
|
|
38
|
+
- `scripts/runx-bin.ts`
|
|
39
|
+
- `scripts/scripts.xdocs.md`
|
|
40
|
+
- `AGENTS.md`
|
|
41
|
+
- Permissions: CI retains `contents: read`; Publish retains `contents: write`
|
|
42
|
+
and gains `id-token: write` only for npm OIDC.
|
|
43
|
+
- Checks: Inspect YAML, run `git diff --check`, and validate the package with
|
|
44
|
+
Bun before delivery.
|
|
45
|
+
- Acceptance:
|
|
46
|
+
- CI validates install, typecheck, tests, build, and native builds.
|
|
47
|
+
- Publish retains tag trigger `@guiho/runx@*`, environment `production`, and
|
|
48
|
+
twelve-asset GitHub Release handling.
|
|
49
|
+
- Publish uses Node 24 with npm 11.5.1 or newer and runs
|
|
50
|
+
`npm publish --access public` without an npm token.
|
|
51
|
+
- The published `runx` bin launcher prefers the included compiled
|
|
52
|
+
`library/guiho-runx-bin.js` and retains the source launcher fallback only
|
|
53
|
+
for repository checkouts.
|
|
54
|
+
- `npm pack --dry-run --json` confirms the launcher and compiled library are
|
|
55
|
+
both included, and the packaged launcher can display RunX help through Bun.
|
|
56
|
+
- Stop conditions: Do not continue if the repository URL, workflow filename,
|
|
57
|
+
environment, OIDC permission, or public access does not match npm trusted
|
|
58
|
+
publisher configuration.
|
|
59
|
+
|
|
60
|
+
## Unit 2: Validate and Deliver Through the Protected Branch
|
|
61
|
+
|
|
62
|
+
- Goal: Land the workflow and documentation changes on `main` without bypassing
|
|
63
|
+
the new branch ruleset.
|
|
64
|
+
- Dependencies: Unit 1 complete.
|
|
65
|
+
- Checks:
|
|
66
|
+
- `bun run typecheck`
|
|
67
|
+
- `bun test`
|
|
68
|
+
- `bun run build`
|
|
69
|
+
- `bun run binaries`
|
|
70
|
+
- `xdocs meta .github --strict --format json`
|
|
71
|
+
- `xdocs tree`
|
|
72
|
+
- targeted XDocs doctor checks
|
|
73
|
+
- Delivery:
|
|
74
|
+
- Commit only understood RunX changes on a `codex/` feature branch.
|
|
75
|
+
- Push the feature branch, open a pull request, and wait for required checks.
|
|
76
|
+
- Merge without bypassing protections, then synchronize local `main`.
|
|
77
|
+
- Acceptance: Remote `main` contains the trusted-publishing workflow and its
|
|
78
|
+
required documentation before a release tag is pushed.
|
|
79
|
+
- Stop conditions: Stop on failed CI, unresolved required review, unexpected
|
|
80
|
+
worktree changes, or protection failures.
|
|
81
|
+
|
|
82
|
+
## Unit 3: Prepare and Apply Patch 0.2.1
|
|
83
|
+
|
|
84
|
+
- Goal: Use Mirror to create the `0.2.1` release commit and tag from the updated
|
|
85
|
+
protected-branch history.
|
|
86
|
+
- Dependencies: Unit 2 merged and local `main` synchronized.
|
|
87
|
+
- Sequence:
|
|
88
|
+
- Run `mirror config show` and confirm changelog and dirty-worktree policy.
|
|
89
|
+
- Confirm a clean worktree.
|
|
90
|
+
- Run typecheck, tests, build, and native binaries.
|
|
91
|
+
- Run `mirror version plan patch` and confirm `nextVersion` is `0.2.1`.
|
|
92
|
+
- Update `CHANGELOG.md` and its XDocs owner metadata if required.
|
|
93
|
+
- Commit release preparation before applying Mirror.
|
|
94
|
+
- Run `mirror version apply patch --yes` with the configured release commit.
|
|
95
|
+
- Acceptance: package version, Mirror release commit, and
|
|
96
|
+
`@guiho/runx@0.2.1` tag agree.
|
|
97
|
+
- Stop conditions: Stop if Mirror plans another version, validation fails, or
|
|
98
|
+
the worktree is dirty before apply.
|
|
99
|
+
|
|
100
|
+
## Unit 4: Push and Observe Trusted Publishing
|
|
101
|
+
|
|
102
|
+
- Goal: Trigger the public Publish workflow and verify npm trusted publishing.
|
|
103
|
+
- Dependencies: Unit 3 complete; explicit user authorization to test the public
|
|
104
|
+
release path.
|
|
105
|
+
- Delivery:
|
|
106
|
+
- Land the Mirror release commit through the protected branch when required.
|
|
107
|
+
- Push `@guiho/runx@0.2.1` only after its commit is part of `main` history.
|
|
108
|
+
- Monitor the public GitHub Actions run through completion.
|
|
109
|
+
- Verify the GitHub Release has twelve native assets.
|
|
110
|
+
- Verify npm reports `@guiho/runx@0.2.1` with trusted provenance.
|
|
111
|
+
- Acceptance: the public Publish run succeeds and both distribution channels
|
|
112
|
+
expose version `0.2.1`.
|
|
113
|
+
- Stop conditions: If npm fails, capture the exact public job failure and do not
|
|
114
|
+
create another version or replace the tag; correct trust configuration and
|
|
115
|
+
rerun the same workflow only after confirming npm did not accept the version.
|
|
116
|
+
|
|
117
|
+
## First Executable Unit
|
|
118
|
+
|
|
119
|
+
Unit 1: implement the workflows and their XDocs/agent documentation updates.
|
|
@@ -5,8 +5,10 @@ parent: runx-docs
|
|
|
5
5
|
children: []
|
|
6
6
|
files:
|
|
7
7
|
alpha-implementation.md: Breaks the accepted alpha into implementation and validation units.
|
|
8
|
+
npm-trusted-publishing-release.md: Sequences workflow implementation, protected delivery, Mirror patching, and public trusted-publishing verification.
|
|
8
9
|
documents:
|
|
9
10
|
alpha-implementation.md: Plan used for the initial RunX implementation.
|
|
11
|
+
npm-trusted-publishing-release.md: Approved executable plan for the RunX 0.2.1 trusted-publishing release trial.
|
|
10
12
|
tags:
|
|
11
13
|
- plans
|
|
12
14
|
keywords:
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: RunX npm Trusted Publishing Release Plan Review
|
|
3
|
+
purpose: Verify that the trusted-publishing workflow and patch-release plan is safe, sequenced, testable, and ready for execution.
|
|
4
|
+
description: Reviews protected-branch delivery, Mirror ordering, npm OIDC permissions, failure handling, documentation, and validation gates.
|
|
5
|
+
created: 2026-07-14
|
|
6
|
+
flags:
|
|
7
|
+
- approved
|
|
8
|
+
tags:
|
|
9
|
+
- reviews
|
|
10
|
+
- plans
|
|
11
|
+
- release
|
|
12
|
+
keywords:
|
|
13
|
+
- runx
|
|
14
|
+
- trusted publishing
|
|
15
|
+
- plan review
|
|
16
|
+
- mirror
|
|
17
|
+
- github actions
|
|
18
|
+
owner: runx-plan-reviews
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# RunX npm Trusted Publishing Release Plan Review
|
|
22
|
+
|
|
23
|
+
## Verdict
|
|
24
|
+
|
|
25
|
+
Ready for execution.
|
|
26
|
+
|
|
27
|
+
## Findings
|
|
28
|
+
|
|
29
|
+
- No blocker or high-severity findings remain.
|
|
30
|
+
- A package inspection found that the npm launcher referenced an excluded
|
|
31
|
+
`source/` fallback. Unit 1 now includes the bounded launcher correction and
|
|
32
|
+
pack/launcher verification, resolving the issue before publication.
|
|
33
|
+
- The plan traces to the accepted npm trusted-publishing decision and preserves
|
|
34
|
+
Bun as the RunX runtime and development toolchain.
|
|
35
|
+
- OIDC permission is limited to the publish workflow, and the plan explicitly
|
|
36
|
+
requires the configured `production` environment.
|
|
37
|
+
- Native GitHub Release publication precedes npm publication, making a failed
|
|
38
|
+
OIDC attempt safely rerunnable before npm accepts the version.
|
|
39
|
+
|
|
40
|
+
## Sequencing Review
|
|
41
|
+
|
|
42
|
+
- Workflow changes land on protected `main` before any release tag is pushed.
|
|
43
|
+
- Mirror plans the patch before changelog preparation and applies the version
|
|
44
|
+
only after validation and a clean worktree.
|
|
45
|
+
- The release branch is merged before its existing Mirror tag is pushed, so the
|
|
46
|
+
tagged release commit is already part of protected `main` history when the
|
|
47
|
+
public workflow starts.
|
|
48
|
+
|
|
49
|
+
## Acceptance and Validation Review
|
|
50
|
+
|
|
51
|
+
- Workflow contents, permissions, trigger, environment, native asset count,
|
|
52
|
+
npm command, and trusted-publisher identity are explicit.
|
|
53
|
+
- Bun typecheck, tests, build, native matrix, XDocs checks, GitHub Actions run,
|
|
54
|
+
GitHub Release assets, and npm registry state all have verification steps.
|
|
55
|
+
- Failure stop conditions prevent version replacement, duplicate publication,
|
|
56
|
+
or a second release when the first npm outcome is uncertain.
|
|
57
|
+
|
|
58
|
+
## TODO Alignment
|
|
59
|
+
|
|
60
|
+
The repository TODO currently contains completed package and protection tasks.
|
|
61
|
+
This release is a single approved execution session with a durable decision and
|
|
62
|
+
plan, so no additional long-running TODO task is required.
|
|
63
|
+
|
|
64
|
+
## First Executable Unit
|
|
65
|
+
|
|
66
|
+
Implement Unit 1 in
|
|
67
|
+
[RunX npm Trusted Publishing Release Plan](../../plans/npm-trusted-publishing-release.md):
|
|
68
|
+
update the two workflows and their XDocs/agent documentation.
|
|
69
|
+
|
|
70
|
+
## References
|
|
71
|
+
|
|
72
|
+
- [RunX npm Trusted Publishing Release Plan](../../plans/npm-trusted-publishing-release.md)
|
|
73
|
+
- [RunX npm Trusted Publishing](../../decisions/npm-trusted-publishing.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
subject: runx-plan-reviews
|
|
3
|
+
description: Execution-readiness reviews for RunX implementation and release plans.
|
|
4
|
+
parent: runx-reviews
|
|
5
|
+
children: []
|
|
6
|
+
files:
|
|
7
|
+
npm-trusted-publishing-release-review.md: Reviews sequencing, acceptance criteria, safety gates, and validation for the RunX 0.2.1 trusted-publishing plan.
|
|
8
|
+
documents:
|
|
9
|
+
npm-trusted-publishing-release-review.md: Ready-for-execution review of the npm trusted-publishing release plan.
|
|
10
|
+
tags:
|
|
11
|
+
- reviews
|
|
12
|
+
- plans
|
|
13
|
+
keywords:
|
|
14
|
+
- runx
|
|
15
|
+
- plan review
|
|
16
|
+
- trusted publishing
|
|
17
|
+
flags: []
|
|
18
|
+
status: stable
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
Plan reviews record whether RunX plans are safe and executable before implementation begins.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
subject: runx-reviews
|
|
3
|
+
description: Structured reviews of RunX architecture, plans, implementation, and release readiness.
|
|
4
|
+
parent: runx-docs
|
|
5
|
+
children:
|
|
6
|
+
- runx-plan-reviews
|
|
7
|
+
files: {}
|
|
8
|
+
documents: {}
|
|
9
|
+
tags:
|
|
10
|
+
- reviews
|
|
11
|
+
keywords:
|
|
12
|
+
- runx
|
|
13
|
+
- reviews
|
|
14
|
+
flags: []
|
|
15
|
+
status: stable
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
RunX reviews challenge durable plans and implementation evidence before execution or release.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: RunX npm Trusted Publishing 0.2.2 Validation
|
|
3
|
+
purpose: Record the release checks and GitHub result for the 0.2.2 trusted-publishing retry.
|
|
4
|
+
description: Documents successful build validation and the tag-ruleset rejection that prevented the Publish workflow from starting.
|
|
5
|
+
created: 2026-07-14
|
|
6
|
+
flags: []
|
|
7
|
+
tags:
|
|
8
|
+
- validation
|
|
9
|
+
- release
|
|
10
|
+
keywords:
|
|
11
|
+
- runx
|
|
12
|
+
- npm
|
|
13
|
+
- trusted publishing
|
|
14
|
+
owner: runx-validation
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# npm Trusted Publishing 0.2.2 Validation
|
|
18
|
+
|
|
19
|
+
## Result
|
|
20
|
+
|
|
21
|
+
The `0.2.2` package bump was merged to protected `main`, but GitHub rejected
|
|
22
|
+
creation of the `@guiho/runx@0.2.2` tag. Because the tag was not created, the
|
|
23
|
+
Publish workflow did not run and npm remained on `0.2.0`.
|
|
24
|
+
|
|
25
|
+
## Passed checks
|
|
26
|
+
|
|
27
|
+
- `bun run typecheck`
|
|
28
|
+
- `bun test`: 4 passed, 0 failed
|
|
29
|
+
- `bun run build`
|
|
30
|
+
- `bun run binary`
|
|
31
|
+
- `bun run binaries`: 12 native assets built and verified
|
|
32
|
+
- `mirror version plan patch`: planned `0.2.1` to `0.2.2`
|
|
33
|
+
- `xdocs meta . --documents --strict --owner runx --format json`
|
|
34
|
+
- Pull request `#4` CI: passed
|
|
35
|
+
|
|
36
|
+
## Release evidence
|
|
37
|
+
|
|
38
|
+
- Protected-main merge: `57c7d81`
|
|
39
|
+
- Mirror release commit: `6c67be5`
|
|
40
|
+
- Local annotated tag: `@guiho/runx@0.2.2`
|
|
41
|
+
- Remote tag: not created
|
|
42
|
+
- Publish workflow run: not started
|
|
43
|
+
- npm latest version after the attempt: `0.2.0`
|
|
44
|
+
|
|
45
|
+
## Blocking rules
|
|
46
|
+
|
|
47
|
+
GitHub rejected the tag with `GH013` because the active tag ruleset both
|
|
48
|
+
requires linear history and restricts tag creation. The reported merge-commit
|
|
49
|
+
violation was `f445631`. The ruleset had no bypass actors, and the authenticated
|
|
50
|
+
repository owner could not bypass it.
|
|
51
|
+
|
|
52
|
+
Trusted publishing itself was not exercised by this attempt. The tag ruleset
|
|
53
|
+
must permit the release actor to create the version tag before npm OIDC can be
|
|
54
|
+
validated.
|
|
@@ -7,6 +7,7 @@ files:
|
|
|
7
7
|
alpha-implementation-summary.md: Records the completed alpha implementation, checks, and release boundaries.
|
|
8
8
|
documents:
|
|
9
9
|
alpha-implementation-summary.md: Validation summary for the first RunX implementation.
|
|
10
|
+
npm-trusted-publishing-0.2.2.md: Validation evidence for the blocked 0.2.2 npm trusted-publishing retry.
|
|
10
11
|
tags:
|
|
11
12
|
- validation
|
|
12
13
|
keywords:
|
package/package.json
CHANGED
package/scripts/runx-bin.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const args = process.argv.slice(2)
|
|
4
4
|
const binaryPath = new URL(`../vendor/runx${process.platform === 'win32' ? '.exe' : ''}`, import.meta.url)
|
|
5
|
+
const libraryPath = new URL('../library/guiho-runx-bin.js', import.meta.url)
|
|
5
6
|
const sourcePath = new URL('../source/guiho-runx-bin.ts', import.meta.url)
|
|
6
7
|
|
|
7
8
|
if (await Bun.file(binaryPath).exists()) {
|
|
@@ -9,6 +10,11 @@ if (await Bun.file(binaryPath).exists()) {
|
|
|
9
10
|
process.exit(await child.exited)
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
if (await Bun.file(libraryPath).exists()) {
|
|
14
|
+
const child = Bun.spawn([process.execPath, Bun.fileURLToPath(libraryPath), ...args], { stdin: 'inherit', stdout: 'inherit', stderr: 'inherit' })
|
|
15
|
+
process.exit(await child.exited)
|
|
16
|
+
}
|
|
17
|
+
|
|
12
18
|
if (await Bun.file(sourcePath).exists()) {
|
|
13
19
|
const child = Bun.spawn([process.execPath, Bun.fileURLToPath(sourcePath), ...args], { stdin: 'inherit', stdout: 'inherit', stderr: 'inherit' })
|
|
14
20
|
process.exit(await child.exited)
|
package/scripts/scripts.xdocs.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Package-manager launcher scripts for RunX.
|
|
|
4
4
|
parent: runx
|
|
5
5
|
children: []
|
|
6
6
|
files:
|
|
7
|
-
runx-bin.ts: Executes a packaged native binary
|
|
7
|
+
runx-bin.ts: Executes a packaged native binary, the published compiled library launcher, or the source CLI fallback in a checkout.
|
|
8
8
|
documents: {}
|
|
9
9
|
tags:
|
|
10
10
|
- scripts
|
|
@@ -16,5 +16,5 @@ flags: []
|
|
|
16
16
|
status: stable
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
The package launcher preserves the `runx` bin command in
|
|
20
|
-
and
|
|
19
|
+
The package launcher preserves the `runx` bin command in installed npm packages
|
|
20
|
+
and development checkouts without requiring unpublished source files.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "RunX"
|
|
3
|
-
short_description: "Manage documented RunX command catalogs safely."
|
|
4
|
-
default_prompt: "Use the RunX CLI to inspect, validate, and run commands from runx.yaml safely."
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "RunX"
|
|
3
|
+
short_description: "Manage documented RunX command catalogs safely."
|
|
4
|
+
default_prompt: "Use the RunX CLI to inspect, validate, and run commands from runx.yaml safely."
|