Skip to content

feat(yarn-cli): distribute runtime through release assets#754

Open
TorinAsakura wants to merge 26 commits into
masterfrom
feat/release-asset-runtime-bundle
Open

feat(yarn-cli): distribute runtime through release assets#754
TorinAsakura wants to merge 26 commits into
masterfrom
feat/release-asset-runtime-bundle

Conversation

@TorinAsakura

Copy link
Copy Markdown
Member

Summary

Closes #745.

This moves the Raijin Yarn runtime bundle away from git/GraphQL as the distribution channel and into GitHub Release assets:

  • uploads the built yarn.mjs as a release asset on @atls/yarn-cli releases;
  • changes yarn set version atls and public quickstart docs to install the checked-in bootstrap path instead of raw master/yarn/cli/dist/yarn.mjs;
  • materializes .yarn/releases/yarn.mjs as a small bootstrap plus .yarn/releases/raijin-runtime.json during the post-merge bundle step;
  • removes tracked yarn/cli/dist/yarn.mjs and keeps it as an ignored local build artifact;
  • removes generic *.mjs from the final commit action file pattern so ignored runtime build outputs cannot be picked up by the signed GraphQL commit.

Migration Note

The PR head intentionally keeps .yarn/releases/yarn.mjs as a rebuilt full runtime bundle. The first release asset does not exist until this PR is merged and the publish workflow runs, and the PR checks themselves need a working yarnPath.

After merge, the updated publish workflow builds the runtime, uploads it to the @atls/yarn-cli GitHub Release, and commits only the small bootstrap plus manifest. That post-merge publish commit is the point where .yarn/releases/yarn.mjs stops being the heavy runtime in git.

Validation

  • yarn test unit release-create --test-reporter=tap
  • targeted yarn typecheck for changed release, GitHub, and set-version files
  • targeted yarn lint for changed release, GitHub, set-version, and bootstrap files
  • yarn workspace @atls/code-github build
  • yarn workspace @atls/yarn-plugin-release build
  • yarn workspace @atls/yarn-plugin-essentials build
  • yarn workspace @atls/yarn-cli build
  • cmp -s yarn/cli/dist/yarn.mjs .yarn/releases/yarn.mjs
  • bootstrap materialization smoke: generated bootstrap size 4216 bytes, manifest size 331 bytes, manifest sha256 matched built runtime sha256
  • yarn check
  • yarn raijin:check
  • git diff --check -- ':!.yarn/releases/yarn.mjs'

@TorinAsakura TorinAsakura self-assigned this Jun 18, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 610f586f36

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/actions/bundle/action.yml Outdated
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cf7d05a2fc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/plugin-essentials/sources/commands/set-version.command.ts
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c83d815789

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2444f85765

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/pack-utils/src/copy.utils.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d10c6dcc24

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/publish.yaml
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8dcdff3a0d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/actions/release/action.yaml
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d57039ecd2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs
Comment thread .github/actions/bundle/action.yml Outdated
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

"assetUrl": "https://github.com/atls/raijin/releases/download/%40atls%2Fyarn-cli%401.2.22/yarn.mjs",

P2 Badge Keep the legacy bootstrap self-contained until publish

Fresh evidence after the compatibility shim is that this checked-in legacy path is now a bootstrap pinned to the pre-publish @atls/yarn-cli@1.2.22 release asset. Existing installations still have a compiled yarn set version atls that downloads yarn/cli/dist/yarn.mjs; immediately after this PR merges, and permanently if the follow-up publish job fails before materializing a new bootstrap, that command will fetch this file and then fail trying to download a 1.2.22 asset that was never uploaded by the old release flow. Keep this compatibility file as the full runtime (or point it at an already-existing asset) until the first asset-backed publish commit lands.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@TorinAsakura

Copy link
Copy Markdown
Member Author

0d192c7

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d192c78d6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated
Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated
Comment thread yarn/pack-utils/src/copy.utils.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1b61fbcd0f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1cfa1f1918

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread yarn/cli/scripts/materialize-runtime-bootstrap.mjs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: be25d8c302

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +147 to +150
.map((line) => line.match(/^(httpProxy|httpsProxy|httpsCaFilePath)\\s*:\\s*(.*?)\\s*$/))
.filter(Boolean)
.map((match) => [match[1], parseYarnScalar(match[2])])
.filter(([, value]) => typeof value === 'string' && value.length > 0)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor matching networkSettings entries

Fresh evidence after the scoped-settings fix is that this parser now only collects top-level proxy/CA keys, so projects that configure egress only under Yarn networkSettings for GitHub hosts still cold-start without those settings. I checked node .yarn/releases/yarn.mjs config -v, which describes networkSettings as per-host network settings; with networkSettings: {github.com: {httpsProxy: ...}} or a matching CA entry, the bootstrap ignores the proxy/CA and fails before Yarn can apply its normal configuration. Please apply nested settings when the runtime API/download host matches instead of only reading globals.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Distribute Raijin Yarn runtime bundle through GitHub Release assets

1 participant