* [ci] Version packages and generate changelogs with changesets
PRs now add a changeset in .changeset/ instead of editing CHANGELOG.md.
The manual release workflow runs scripts/src/versionPackages.ts, which
runs `changeset version` for one fixed group of all packages, writes the
root CHANGELOG.md section with the existing emoji categories, and then
commits, tags, and pushes vX.Y.Z. The tag-driven publish is unchanged,
except that it reads the changelog section from the tagged commit.
The PR check validates changesets with @changesets/parse and rejects
direct CHANGELOG.md edits. The "no changelog" label still skips it.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Correct "no changelog" documentation in .changeset/README.md
* [ci] Fail on CHANGELOG.md edits even with the "no changelog" label
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* [ci] Skip the changeset check for Dependabot PRs
Dependabot PRs only update dependencies, so they need no changeset, and
their read-only token cannot post the PR comment. The job skips both for
them. The CHANGELOG.md check still runs. The workflow now sets explicit
token permissions.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Remove the "## main" block from CHANGELOG.md
Co-Authored-By: Claude Opus 5.5 <[email protected]>
---------
Co-authored-by: Claude Opus 5.5 <[email protected]>
* [eas-cli][local-build-plugin] Deprecate Node 20, use Node 22 in CI
Print a deprecation warning from the eas-cli and local-build-plugin
bin scripts when running on Node.js < 22. Develop and test on Node.js
22: bump mise, drop 20.18.3 from the test matrix, and move to
@tsconfig/node22 and @types/node 22. Published engines are unchanged.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
<!-- You can skip the changelog check by labeling the PR with "no changelog". -->
# Why
Follow-up to #4399 to upgrade typescript to latest version.
# How
Tell claude to upgrade to 6.x.
# Test Plan
CI, tests
<!-- You can skip the changelog check by labeling the PR with "no changelog". -->
# Why
This is a bit behind in typescript. 6.x is where most of our repos live.
First step is to get to highest 5.x.
# How
Tell claude to upgrade to highest 5.x.
It required a new version of `https-proxy-agent` to be compatible with new node types.
# Test Plan
`yarn start`, tests.
# Why
Supersedes #3968.
Dependabot alert 354 requires `lodash` and `lodash-es` 4.18.1. The original PR upgraded the worker's direct dependency and enforced the patched transitive version with a root resolution. That resolution is no longer needed: this PR upgrades the EAS-owned declarations and the GraphQL Code Generator packages that brought in the remaining restrictive `lodash ~4.17.0` dependency.
# How
- Upgrade direct Lodash declarations in build-tools, local-build-plugin, template-file, and worker to 4.18.1.
- Upgrade the scripts project's `lodash-es` declaration and its independent lockfile to 4.18.1.
- Upgrade the complete GraphQL Code Generator family used by EAS CLI:
- `@graphql-codegen/cli` 5.0.0 → 6.3.1
- `@graphql-codegen/introspection` 4.0.0 → 5.0.2
- `@graphql-codegen/typescript` 4.0.1 → 5.0.10
- `@graphql-codegen/typescript-operations` 4.0.1 → 5.1.0
- Regenerate the checked-in GraphQL TypeScript output.
- Keep the root free of `resolutions` and regenerate both affected lockfiles.
These are the newest aligned Codegen releases before `typescript-operations` v6. That v6 upgrade changes generated operation type semantics (including nullable response-field presence) and causes broad fixture/type failures across EAS CLI, so it should be handled as a separate GraphQL contract migration rather than bundled into this security dependency update. The selected packages use `@graphql-codegen/plugin-helpers` 6.3.x, which no longer depends on Lodash.
The root dependency graph now reports only `[email protected].1`, selected through ordinary declared dependency ranges. The separate scripts project reports only `[email protected].1`. There is no resolution or override.
# Test Plan
- `yarn install`
- `yarn why lodash` — only `[email protected].1`; no Codegen consumer
- `cd scripts && yarn install && yarn why lodash-es` — only `[email protected].1`
- `yarn build` — all 13 projects passed
- `yarn workspace eas-cli verify-graphql-code` — generated output compiles against the current live schema
- `cd scripts && yarn typecheck`
- `yarn lint-changelog`
- template-file tests — 7 passed
- worker tests — 51 passed
- `yarn fmt`
<!-- If this PR requires a changelog entry, add it by commenting the PR with the command `/changelog-entry [breaking-change|new-feature|bug-fix|chore] [message]`. -->
<!-- You can skip the changelog check by labeling the PR with "no changelog". -->
# Why
We're moving to Oxc in universe too. The toolset is faster than ESLint / Prettier.
# How
Asked Codex to migrate the repository. I don't think all rules got migrated, unfortunately, but also the lint are in a bit weird state (different rules in `eas-cli` vs the rest of the repo). I hope we can unify the rules soon.
# Test Plan
CI should pass.
<!-- If this PR requires a changelog entry, add it by commenting the PR with the command `/changelog-entry [breaking-change|new-feature|bug-fix|chore] [message]`. -->
<!-- You can skip the changelog check by labeling the PR with "no changelog". -->
# Why
Noticed we're not running tests on Node 18 anymore (since https://github.com/expo/eas-cli/commit/6bb09c4e99950a6b46b0b908a93e8fcd9b3002aa). I think we probably want to officially drop support for Node 18 too.
# How
Looked at https://github.com/expo/eas-cli/commit/eb4c5e073d02f38d7f90fbd6a1b2b5491dc40464, pinned Node to a newer version, updated types, adjusted `engines`.
# Test Plan
CI should pass.
* chore: update node versions to test with to 18, 20, 22
* update CHANGELOG.md
* chore(eas-cli)!: bump minimum supported Node version to 18
This makes the PR a breaking change.
* docs(eas-cli): add breaking change(log) entry
* chore: update `engines.node` to 18 everywhere
* test against node 20 and drop support for node 14
* update CHANGELOG.md
* update @types/node
* bump yarn version
* Revert "update @types/node"
This reverts commit 027e26b002.
* update @types/node
* try to debug
* Revert "try to debug"
This reverts commit 0d557d02f8.
* test sth
* update lock
* Revert "update lock"
This reverts commit 184b412655.
* Revert "test sth"
This reverts commit 77606cf5be.
* diff once again
* fix issues
* Revert "diff once again"
This reverts commit 526ab57453.