diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53ab6758..0637e1d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,19 +25,32 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm lint - test: - name: Test + matrix-job: + name: "Setup Matrix" + runs-on: ubuntu-latest + timeout-minutes: 1 + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + steps: + - uses: actions/checkout@v6 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v6 + with: + node-version: 24 + cache: 'pnpm' + - run: pnpm install + - id: set-matrix + run: echo "matrix=$(pnpm vitest-matrix --node 20 22 24 --os ubuntu-latest windows-latest)" >> $GITHUB_OUTPUT + + tests: + name: ${{ matrix.name }} - Node ${{matrix.node}} - ${{matrix.os}} runs-on: ${{ matrix.os }} + needs: "matrix-job" strategy: fail-fast: false matrix: - os: - - ubuntu-latest - - windows-latest - node: - - 20 - - 22 - - 24 + include: ${{fromJson(needs.matrix-job.outputs.matrix)}} steps: - uses: actions/checkout@v4 @@ -47,9 +60,9 @@ jobs: node-version: ${{ matrix.node }} cache: pnpm - name: Set TEMP to D:/Temp on windows - if: ${{matrix.os}} == windows-latest + if: ${{matrix.os == 'windows-latest'}} run: | mkdir "D:\\Temp" echo "TEMP=D:\\Temp" >> $env:GITHUB_ENV - run: pnpm install --frozen-lockfile - - run: pnpm test + - run: pnpm ${{matrix.command}} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 941cb277..33657c39 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,10 +33,9 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 registry-url: 'https://registry.npmjs.org' cache: pnpm - - run: npm install -g npm@latest # ensure that the globally installed npm is new enough to support OIDC - run: pnpm install --frozen-lockfile - name: Publish to NPM # pass --github-prerelease when we are only branch other than release diff --git a/CHANGELOG.md b/CHANGELOG.md index d5ebf858..155ac9a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,27 @@ # Changelog -## Release (2026-04-02) +## Release (2026-04-18) -* @ember/app-blueprint 6.12.0-beta.1 (minor) +* @ember/app-blueprint 6.12.1 (patch) + +#### :bug: Bug Fix +* `@ember/app-blueprint` + * [#251](https://github.com/ember-cli/ember-app-blueprint/pull/251) update ember-cli dependency to latest ([@mansona](https://github.com/mansona)) + +#### Committers: 1 +- Chris Manson ([@mansona](https://github.com/mansona)) + +## Release (2026-04-09) + +* @ember/app-blueprint 6.12.0 (minor) #### :rocket: Enhancement * `@ember/app-blueprint` - * [#238](https://github.com/ember-cli/ember-app-blueprint/pull/238) Promote 6.12 to beta and update dependencies ([@mansona](https://github.com/mansona)) + * [#243](https://github.com/ember-cli/ember-app-blueprint/pull/243) Promote Beta and update all dependencies for 6.12 release ([@mansona](https://github.com/mansona)) * [#144](https://github.com/ember-cli/ember-app-blueprint/pull/144) feat: move ember-cli-build to `mjs` ([@aklkv](https://github.com/aklkv)) #### :bug: Bug Fix * `@ember/app-blueprint` - * [#231](https://github.com/ember-cli/ember-app-blueprint/pull/231) update ember-cli dependency to latest ([@mansona](https://github.com/mansona)) - * [#226](https://github.com/ember-cli/ember-app-blueprint/pull/226) fix decorator-transforms runtime path in babel.config.mjs ([@mansona](https://github.com/mansona)) * [#215](https://github.com/ember-cli/ember-app-blueprint/pull/215) upgrade ember/optional-features to clear install deprecation warnings ([@void-mAlex](https://github.com/void-mAlex)) * [#119](https://github.com/ember-cli/ember-app-blueprint/pull/119) fix: align linters with recent changes in classic app blueprint ([@aklkv](https://github.com/aklkv)) * [#208](https://github.com/ember-cli/ember-app-blueprint/pull/208) [Bugfix release] Add `globals.browser` to eslint config for TS files ([@mkszepp](https://github.com/mkszepp)) @@ -23,6 +32,8 @@ #### :house: Internal * `@ember/app-blueprint` + * [#247](https://github.com/ember-cli/ember-app-blueprint/pull/247) update node for Publish CI to a version that doesn't need to update npm ([@mansona](https://github.com/mansona)) + * [#244](https://github.com/ember-cli/ember-app-blueprint/pull/244) split tests into individual matrix jobs ([@mansona](https://github.com/mansona)) * [#228](https://github.com/ember-cli/ember-app-blueprint/pull/228) Enable patch publish ([@mansona](https://github.com/mansona)) * [#211](https://github.com/ember-cli/ember-app-blueprint/pull/211) fix release-plan alpha tag ([@mansona](https://github.com/mansona)) diff --git a/files/package.json b/files/package.json index d6818efe..38e371f5 100644 --- a/files/package.json +++ b/files/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/runtime": "^7.28.6", + "@babel/runtime": "^7.29.2", "@babel/plugin-transform-runtime": "^7.29.0<% if (typescript) { %>", "@babel/plugin-transform-typescript": "^7.28.6<% } %>", "@babel/eslint-parser": "^7.28.6<% if (typescript) { %>", @@ -41,57 +41,57 @@ "@ember/string": "^4.0.1", "@ember/test-helpers": "^5.4.1", "@ember/test-waiters": "^4.1.1", - "@embroider/macros": "^1.19.7", - "@embroider/core": "^4.4.3", - "@embroider/vite": "^1.5.2", - "@embroider/compat": "^4.1.13", + "@embroider/macros": "^1.20.2", + "@embroider/core": "^4.4.7", + "@embroider/vite": "^1.7.2", + "@embroider/compat": "^4.1.17", "@embroider/router": "^3.0.6", "@embroider/config-meta-loader": "^1.0.0", "@embroider/legacy-inspector-support": "^0.1.3", - "@eslint/js": "^9.39.2", - "@glimmer/component": "^2.0.0<% if (typescript) { %>", - "@glint/ember-tsc": "^1.1.1", - "@glint/template": "^1.7.4", - "@glint/tsserver-plugin": "^2.1.0<% } %>", + "@eslint/js": "^9.39.4", + "@glimmer/component": "^2.1.1<% if (typescript) { %>", + "@glint/ember-tsc": "^1.5.0", + "@glint/template": "^1.7.7", + "@glint/tsserver-plugin": "^2.4.0<% } %>", "@rollup/plugin-babel": "^6.1.0<% if (typescript) { %>", "@types/qunit": "^2.19.13", "@types/rsvp": "^4.0.9<% } %><% if (warpDrive) { %>", - "@warp-drive/core": "~5.8.1", - "@warp-drive/ember": "~5.8.1", - "@warp-drive/json-api": "~5.8.1", - "@warp-drive/legacy": "~5.8.1", - "@warp-drive/utilities": "~5.8.1<% } %>", + "@warp-drive/core": "~5.8.2", + "@warp-drive/ember": "~5.8.2", + "@warp-drive/json-api": "~5.8.2", + "@warp-drive/legacy": "~5.8.2", + "@warp-drive/utilities": "~5.8.2<% } %>", "babel-plugin-ember-template-compilation": "^3.1.0", "concurrently": "^9.2.1", "decorator-transforms": "^2.3.1", - "ember-cli": "~6.11.0", + "ember-cli": "~6.12.0", "ember-cli-babel": "^8.3.1", "ember-cli-deprecation-workflow": "^3.4.0", "ember-load-initializers": "^3.0.1", "ember-modifier": "^4.3.0", "ember-page-title": "^9.0.3", "ember-qunit": "^9.0.4", - "ember-resolver": "^13.1.1", - "ember-source": "~6.12.0-beta.1", + "ember-resolver": "^13.2.0", + "ember-source": "~7.0.0-beta.1", "ember-template-lint": "^7.9.3<% if (welcome) { %>", "ember-welcome-page": "^8.0.5<% } %>", - "eslint": "^9.39.2", + "eslint": "^9.39.4", "eslint-config-prettier": "^10.1.8", "eslint-plugin-ember": "^12.7.5", "eslint-plugin-n": "^17.24.0", "eslint-plugin-qunit": "^8.2.6<% if (warpDrive) { %>", - "eslint-plugin-warp-drive": "^5.8.1<% } %>", + "eslint-plugin-warp-drive": "^5.8.2<% } %>", "globals": "^16.5.0", - "prettier": "^3.8.1", - "prettier-plugin-ember-template-tag": "^2.1.3", + "prettier": "^3.8.3", + "prettier-plugin-ember-template-tag": "^2.1.5", "qunit": "^2.25.0", - "qunit-dom": "^3.5.0", + "qunit-dom": "^3.5.1", "stylelint": "^16.26.1", "stylelint-config-standard": "^38.0.0", - "testem": "^3.17.0<% if (typescript) { %>", + "testem": "^3.20.0<% if (typescript) { %>", "typescript": "^5.9.3", - "typescript-eslint": "^8.56.0<% } %>", - "vite": "^7.3.1" + "typescript-eslint": "^8.58.2<% } %>", + "vite": "^7.3.2" }, "engines": { "node": ">= 20.19.0" diff --git a/package.json b/package.json index 6d524e3b..7c0f8e76 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ember/app-blueprint", - "version": "6.12.0-beta.1", + "version": "7.0.0-beta.0", "description": "Blueprint for next generation of Ember apps", "keywords": [ "ember-blueprint" @@ -52,7 +52,8 @@ "release-plan": "^0.17.2", "strip-ansi": "^7.1.0", "tmp-promise": "^3.0.3", - "vitest": "^4.0.0-beta.17" + "vitest": "^4.0.0-beta.17", + "vitest-matrix": "^0.2.0" }, "packageManager": "pnpm@10.20.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5388fb32..3885f45b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,6 +72,9 @@ importers: vitest: specifier: ^4.0.0-beta.17 version: 4.0.0-beta.17(@types/node@22.15.2) + vitest-matrix: + specifier: ^0.2.0 + version: 0.2.0 packages: @@ -1275,6 +1278,10 @@ packages: resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} + commander@15.0.0-0: + resolution: {integrity: sha512-R2Kbbun8cjOe1aTbX4elymOwNvIdWenwSZl++AeuCu8nBGvJO5qCEwZ8Wa/8GMg5TXj/dBcPiQm/l1T9DO+Ryg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -1852,6 +1859,10 @@ packages: resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} engines: {node: ^18.19.0 || >=20.5.0} + execa@9.6.1: + resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} + engines: {node: ^18.19.0 || >=20.5.0} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -4055,6 +4066,10 @@ packages: yaml: optional: true + vitest-matrix@0.2.0: + resolution: {integrity: sha512-InT339N1+/nJj3XTaPuG+eiISiqAq5mlt7uO0D77skI2xlfXleIsDtLKziaIbdmMlYosx9oCE5mVvSNiqCcZYg==} + hasBin: true + vitest@4.0.0-beta.17: resolution: {integrity: sha512-R2vM2ErERS4hcmrZ0vrGhy/v9HEkCRnUXHJLhuvnQfO8uWspjuMNxIej1Ru/pBvR5pDfN2mqb1679Lk4yyJ7NA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -5593,6 +5608,8 @@ snapshots: colors@1.0.3: {} + commander@15.0.0-0: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -6190,6 +6207,21 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.1 + execa@9.6.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + exit@0.1.2: {} expand-brackets@2.1.4: @@ -8658,6 +8690,11 @@ snapshots: '@types/node': 22.15.2 fsevents: 2.3.3 + vitest-matrix@0.2.0: + dependencies: + commander: 15.0.0-0 + execa: 9.6.1 + vitest@4.0.0-beta.17(@types/node@22.15.2): dependencies: '@vitest/expect': 4.0.0-beta.17 diff --git a/tests/fixtures/tests-js-20/testem-dev.js b/tests/fixtures/tests-js-20/testem-dev.js index 563bf232..831ff8fd 100644 --- a/tests/fixtures/tests-js-20/testem-dev.js +++ b/tests/fixtures/tests-js-20/testem-dev.js @@ -20,7 +20,7 @@ function testemProxy(targetURL) { res && res.status && res.status(500).json(err); }); - app.all('*', (req, res, next) => { + app.all('*name', (req, res, next) => { let url = req.url; if (url === '/testem.js' || url.startsWith('/testem/')) { return next();