@ember/app-blueprint 6.12.0-beta.0 → 6.12.0
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/.github/workflows/ci.yml +27 -12
- package/.github/workflows/plan-alpha-release.yml +15 -50
- package/.github/workflows/plan-beta-release.yml +16 -51
- package/.github/workflows/plan-stable-release.yml +16 -51
- package/.github/workflows/publish.yml +52 -0
- package/.prettierrc.mjs +3 -0
- package/.release-plan.json +4 -4
- package/CHANGELOG.md +65 -22
- package/RELEASE.md +29 -1
- package/conditional-files/_js_babel.config.mjs +3 -2
- package/conditional-files/_js_eslint.config.mjs +8 -5
- package/conditional-files/_ts_babel.config.mjs +3 -2
- package/conditional-files/_ts_eslint.config.mjs +15 -6
- package/eslint.config.mjs +2 -2
- package/files/.prettierrc.mjs +2 -27
- package/files/app/app.ts +2 -2
- package/files/app/config/environment.js +27 -0
- package/files/app/config/environment.ts +5 -5
- package/files/{ember-cli-build.js → ember-cli-build.mjs} +8 -8
- package/files/gitignore +0 -7
- package/files/package.json +25 -25
- package/files/tests/test-helper.ts +2 -2
- package/index.js +10 -1
- package/package.json +3 -10
- package/.github/workflows/publish-alpha.yml +0 -42
- package/.github/workflows/publish-beta.yml +0 -42
- package/.github/workflows/publish-stable.yml +0 -42
- package/.prettierrc.cjs +0 -13
package/RELEASE.md
CHANGED
|
@@ -19,7 +19,8 @@ The release process during release week should look like this:
|
|
|
19
19
|
- Wait for `ember-source` to be released first
|
|
20
20
|
- Merge any outstanding `Prepare Alpha Release` branches
|
|
21
21
|
- Do an intial stable release from the `release` branch
|
|
22
|
-
-
|
|
22
|
+
- do the initial stable release on the `ember-cli/ember-cli` repo
|
|
23
|
+
- update the ember-cli dependency on this repo and continue the release process here
|
|
23
24
|
- Merge `release` into `beta`
|
|
24
25
|
- Do a `beta` release
|
|
25
26
|
- Merge `beta` into `main`
|
|
@@ -60,6 +61,28 @@ You can use [this saved search](https://github.com/ember-cli/ember-app-blueprint
|
|
|
60
61
|
- Merge the `Prepare Release` branch when you are ready to release
|
|
61
62
|
- Check the `Release Stable` GitHub action to make sure the release succeeded
|
|
62
63
|
|
|
64
|
+
### Release ember-cli and update that dependency
|
|
65
|
+
|
|
66
|
+
- Go to the [ember-cli release process](https://github.com/ember-cli/ember-cli/blob/master/RELEASE.md) and complete the initial stable release
|
|
67
|
+
- Make sure that the ember-cli release process is completed and the new stabel release is on npm before continuing here
|
|
68
|
+
- fetch latest from origin `git fetch`
|
|
69
|
+
- create a new branch to update the ember-cli dependency e.g. `git checkout --no-track -b update-ember-cli origin/release`
|
|
70
|
+
- Update ember-cli
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
pnpm dlx update-blueprint-deps --filter ember-cli --tag latest files/package.json
|
|
74
|
+
```
|
|
75
|
+
- commit this update `git commit -am "update ember-cli dependency to latest"`
|
|
76
|
+
- push and open a PR targeting `release` with a PR title like `Update ember-cli to 6.4`
|
|
77
|
+
- mark this PR as a `bug` to make sure it goes out in a patch release
|
|
78
|
+
- check that everything is ok (i.e. that CI has run correctly and that you have the changes you expect)
|
|
79
|
+
- merge the PR
|
|
80
|
+
- check that the `Prepare Release` PR has been correctly opened by `release-plan`
|
|
81
|
+
- note: if there are a lot of unrelated PRs (e.g. for previous releases) that you don't want in the release notes you can add the `ignore` label to them
|
|
82
|
+
- Merge the `Prepare Release` branch when you are ready to release
|
|
83
|
+
- Check the `Release Stable` GitHub action to make sure the release succeeded
|
|
84
|
+
|
|
85
|
+
|
|
63
86
|
### Beta release from the `beta` branch
|
|
64
87
|
|
|
65
88
|
- fetch latest from origin `git fetch`
|
|
@@ -70,11 +93,13 @@ You can use [this saved search](https://github.com/ember-cli/ember-app-blueprint
|
|
|
70
93
|
- **make sure to not update any .github/workflows/publish.yml file** this should still publish a beta release
|
|
71
94
|
- make sure to not update the version in the package.json during this step, that step comes later
|
|
72
95
|
- make sure to not remove the `release-plan` config section of the the `package.json` during this step.
|
|
96
|
+
- commit this merge
|
|
73
97
|
- merge master into this new branch too e.g. `git merge origin/main --no-ff`
|
|
74
98
|
- **make sure to not update the .release-plan file** this should only ever be changed by the release-plan github scripts
|
|
75
99
|
- **make sure to not update the CHANGELOG.md file** in this step. It should match the changelog on `origin/release` at this stage.
|
|
76
100
|
- update the alpha version in package.json to be a beta i.e. if the incoming merge is `"version": "6.6.0-alpha.3",` update it to `"version": "6.6.0-beta.0",`
|
|
77
101
|
- make sure not to update the `release-plan` config in `package.json`
|
|
102
|
+
- commit this merge
|
|
78
103
|
- Update blueprint dependencies to beta
|
|
79
104
|
|
|
80
105
|
```
|
|
@@ -88,6 +113,7 @@ You can use [this saved search](https://github.com/ember-cli/ember-app-blueprint
|
|
|
88
113
|
- merge the `merge-release` branch into `beta` in GitHub
|
|
89
114
|
- check that the `Prepare Beta Release` PR has been correctly opened by `release-plan`
|
|
90
115
|
- note: the release-plan config will automatically make this version a pre-release
|
|
116
|
+
- note: if there are a lot of PRs for previous releases that you don't want in the release notes you can add the `ignore` label to them
|
|
91
117
|
- Merge the `Prepare Beta Release` when you are ready to release the next beta version
|
|
92
118
|
- Check the `Release Beta` GitHub action to make sure the release succeeded
|
|
93
119
|
|
|
@@ -116,6 +142,8 @@ You can use [this saved search](https://github.com/ember-cli/ember-app-blueprint
|
|
|
116
142
|
- check that everything is ok i.e. CI passes
|
|
117
143
|
- merge the `merge-beta` branch into `main` in GitHub
|
|
118
144
|
- check that the `Prepare Alpha Release` PR has been correctly opened by `release-plan`
|
|
145
|
+
- note: the release-plan config will automatically make this version a pre-release
|
|
146
|
+
- note: if there are a lot of PRs for previous releases that you don't want in the release notes you can add the `ignore` label to them
|
|
119
147
|
- Merge the `Prepare Alpha Release` when you are ready to release the next alpha version
|
|
120
148
|
- Check the `Release Alpha` GitHub action to make sure the release succeeded
|
|
121
149
|
|
|
@@ -10,7 +10,6 @@ export default {
|
|
|
10
10
|
[
|
|
11
11
|
'babel-plugin-ember-template-compilation',
|
|
12
12
|
{
|
|
13
|
-
compilerPath: 'ember-source/dist/ember-template-compiler.js',
|
|
14
13
|
enableLegacyModules: [
|
|
15
14
|
'ember-cli-htmlbars',
|
|
16
15
|
'ember-cli-htmlbars-inline-precompile',
|
|
@@ -23,7 +22,9 @@ export default {
|
|
|
23
22
|
'module:decorator-transforms',
|
|
24
23
|
{
|
|
25
24
|
runtime: {
|
|
26
|
-
import:
|
|
25
|
+
import: fileURLToPath(
|
|
26
|
+
import.meta.resolve('decorator-transforms/runtime-esm'),
|
|
27
|
+
),
|
|
27
28
|
},
|
|
28
29
|
},
|
|
29
30
|
],
|
|
@@ -17,8 +17,8 @@ import js from '@eslint/js';
|
|
|
17
17
|
import { defineConfig, globalIgnores } from 'eslint/config';
|
|
18
18
|
|
|
19
19
|
import ember from 'eslint-plugin-ember/recommended';
|
|
20
|
-
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended'
|
|
21
|
-
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
20
|
+
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended';
|
|
21
|
+
<% } %>import eslintConfigPrettier from 'eslint-config-prettier';
|
|
22
22
|
import qunit from 'eslint-plugin-qunit';
|
|
23
23
|
import n from 'eslint-plugin-n';
|
|
24
24
|
|
|
@@ -35,8 +35,8 @@ export default defineConfig([
|
|
|
35
35
|
eslintConfigPrettier,
|
|
36
36
|
ember.configs.base,
|
|
37
37
|
ember.configs.gjs,
|
|
38
|
-
<% if (warpDrive) { %>...WarpDrive
|
|
39
|
-
|
|
38
|
+
<% if (warpDrive) { %>...WarpDrive,
|
|
39
|
+
<% } %>/**
|
|
40
40
|
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
|
|
41
41
|
*/
|
|
42
42
|
{
|
|
@@ -60,6 +60,7 @@ export default defineConfig([
|
|
|
60
60
|
},
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
|
+
...qunit.configs.recommended,
|
|
63
64
|
files: ['tests/**/*-test.{js,gjs}'],
|
|
64
65
|
plugins: {
|
|
65
66
|
qunit,
|
|
@@ -69,7 +70,8 @@ export default defineConfig([
|
|
|
69
70
|
* CJS node files
|
|
70
71
|
*/
|
|
71
72
|
{
|
|
72
|
-
|
|
73
|
+
...n.configs['flat/recommended-script'],
|
|
74
|
+
files: ['**/*.cjs', 'config/**/*.js'],
|
|
73
75
|
plugins: {
|
|
74
76
|
n,
|
|
75
77
|
},
|
|
@@ -86,6 +88,7 @@ export default defineConfig([
|
|
|
86
88
|
* ESM node files
|
|
87
89
|
*/
|
|
88
90
|
{
|
|
91
|
+
...n.configs['flat/recommended-module'],
|
|
89
92
|
files: ['**/*.mjs'],
|
|
90
93
|
plugins: {
|
|
91
94
|
n,
|
|
@@ -18,7 +18,6 @@ export default {
|
|
|
18
18
|
[
|
|
19
19
|
'babel-plugin-ember-template-compilation',
|
|
20
20
|
{
|
|
21
|
-
compilerPath: 'ember-source/dist/ember-template-compiler.js',
|
|
22
21
|
enableLegacyModules: [
|
|
23
22
|
'ember-cli-htmlbars',
|
|
24
23
|
'ember-cli-htmlbars-inline-precompile',
|
|
@@ -31,7 +30,9 @@ export default {
|
|
|
31
30
|
'module:decorator-transforms',
|
|
32
31
|
{
|
|
33
32
|
runtime: {
|
|
34
|
-
import:
|
|
33
|
+
import: fileURLToPath(
|
|
34
|
+
import.meta.resolve('decorator-transforms/runtime-esm'),
|
|
35
|
+
),
|
|
35
36
|
},
|
|
36
37
|
},
|
|
37
38
|
],
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* npx eslint --inspect-config
|
|
13
13
|
*
|
|
14
14
|
*/
|
|
15
|
+
import { dirname } from 'node:path';
|
|
16
|
+
import { fileURLToPath } from 'node:url';
|
|
17
|
+
|
|
15
18
|
import globals from 'globals';
|
|
16
19
|
import js from '@eslint/js';
|
|
17
20
|
import { defineConfig, globalIgnores } from 'eslint/config';
|
|
@@ -19,8 +22,8 @@ import { defineConfig, globalIgnores } from 'eslint/config';
|
|
|
19
22
|
import ts from 'typescript-eslint';
|
|
20
23
|
|
|
21
24
|
import ember from 'eslint-plugin-ember/recommended';
|
|
22
|
-
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended'
|
|
23
|
-
|
|
25
|
+
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended';
|
|
26
|
+
<% } %>
|
|
24
27
|
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
25
28
|
import qunit from 'eslint-plugin-qunit';
|
|
26
29
|
import n from 'eslint-plugin-n';
|
|
@@ -35,7 +38,7 @@ const parserOptions = {
|
|
|
35
38
|
},
|
|
36
39
|
ts: {
|
|
37
40
|
projectService: true,
|
|
38
|
-
tsconfigRootDir: import.meta.
|
|
41
|
+
tsconfigRootDir: dirname(fileURLToPath(import.meta.url)),
|
|
39
42
|
},
|
|
40
43
|
},
|
|
41
44
|
};
|
|
@@ -46,8 +49,8 @@ export default defineConfig([
|
|
|
46
49
|
ember.configs.base,
|
|
47
50
|
ember.configs.gjs,
|
|
48
51
|
ember.configs.gts,
|
|
49
|
-
<% if (warpDrive) { %>...WarpDrive
|
|
50
|
-
eslintConfigPrettier,
|
|
52
|
+
<% if (warpDrive) { %>...WarpDrive,
|
|
53
|
+
<% } %>eslintConfigPrettier,
|
|
51
54
|
/**
|
|
52
55
|
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
|
|
53
56
|
*/
|
|
@@ -76,10 +79,14 @@ export default defineConfig([
|
|
|
76
79
|
languageOptions: {
|
|
77
80
|
parser: ember.parser,
|
|
78
81
|
parserOptions: parserOptions.esm.ts,
|
|
82
|
+
globals: {
|
|
83
|
+
...globals.browser,
|
|
84
|
+
},
|
|
79
85
|
},
|
|
80
86
|
extends: [...ts.configs.recommendedTypeChecked, ember.configs.gts],
|
|
81
87
|
},
|
|
82
88
|
{
|
|
89
|
+
...qunit.configs.recommended,
|
|
83
90
|
files: ['tests/**/*-test.{js,gjs,ts,gts}'],
|
|
84
91
|
plugins: {
|
|
85
92
|
qunit,
|
|
@@ -89,7 +96,8 @@ export default defineConfig([
|
|
|
89
96
|
* CJS node files
|
|
90
97
|
*/
|
|
91
98
|
{
|
|
92
|
-
|
|
99
|
+
...n.configs['flat/recommended-script'],
|
|
100
|
+
files: ['**/*.cjs', 'config/**/*.js'],
|
|
93
101
|
plugins: {
|
|
94
102
|
n,
|
|
95
103
|
},
|
|
@@ -106,6 +114,7 @@ export default defineConfig([
|
|
|
106
114
|
* ESM node files
|
|
107
115
|
*/
|
|
108
116
|
{
|
|
117
|
+
...n.configs['flat/recommended-module'],
|
|
109
118
|
files: ['**/*.mjs'],
|
|
110
119
|
plugins: {
|
|
111
120
|
n,
|
package/eslint.config.mjs
CHANGED
|
@@ -9,7 +9,7 @@ export default [
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
files: [
|
|
12
|
-
'files
|
|
12
|
+
'files/app/**/*.js',
|
|
13
13
|
'files-override/**/*.mjs',
|
|
14
14
|
'files-override/*/app/**/*.js',
|
|
15
15
|
'files-override/*/tests/**/*.js',
|
|
@@ -27,7 +27,7 @@ export default [
|
|
|
27
27
|
{
|
|
28
28
|
ignores: [
|
|
29
29
|
'tests/fixtures/*',
|
|
30
|
-
'files/ember-cli-build.
|
|
30
|
+
'files/ember-cli-build.mjs',
|
|
31
31
|
'conditional-files/_js_*',
|
|
32
32
|
'conditional-files/_ts_*',
|
|
33
33
|
],
|
package/files/.prettierrc.mjs
CHANGED
|
@@ -1,36 +1,11 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
plugins: ['prettier-plugin-ember-template-tag'],
|
|
3
|
-
singleQuote: true,
|
|
4
3
|
overrides: [
|
|
5
4
|
{
|
|
6
|
-
files:
|
|
7
|
-
options: {
|
|
8
|
-
trailingComma: 'es5',
|
|
9
|
-
},
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
files: ['*.html'],
|
|
13
|
-
options: {
|
|
14
|
-
singleQuote: false,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
files: ['*.json'],
|
|
19
|
-
options: {
|
|
20
|
-
singleQuote: false,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
files: ['*.hbs'],
|
|
25
|
-
options: {
|
|
26
|
-
singleQuote: false,
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
files: ['*.gjs', '*.gts'],
|
|
5
|
+
files: '*.{js,gjs,ts,gts,mjs,mts,cjs,cts}',
|
|
31
6
|
options: {
|
|
7
|
+
singleQuote: true,
|
|
32
8
|
templateSingleQuote: false,
|
|
33
|
-
trailingComma: 'es5',
|
|
34
9
|
},
|
|
35
10
|
},
|
|
36
11
|
],
|
package/files/app/app.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<% if (warpDrive) { %>import '@warp-drive/ember/install'
|
|
2
|
-
import Application from '@ember/application';
|
|
1
|
+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
|
|
2
|
+
<% } %>import Application from '@ember/application';
|
|
3
3
|
import compatModules from '@embroider/virtual/compat-modules';
|
|
4
4
|
import Resolver from 'ember-resolver';
|
|
5
5
|
import loadInitializers from 'ember-load-initializers';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import loadConfigFromMeta from '@embroider/config-meta-loader';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
|
|
4
|
+
const config = loadConfigFromMeta('<%= name %>');
|
|
5
|
+
|
|
6
|
+
assert(
|
|
7
|
+
'config is not an object',
|
|
8
|
+
typeof config === 'object' && config !== null,
|
|
9
|
+
);
|
|
10
|
+
assert(
|
|
11
|
+
'modulePrefix was not detected on your config',
|
|
12
|
+
'modulePrefix' in config && typeof config.modulePrefix === 'string',
|
|
13
|
+
);
|
|
14
|
+
assert(
|
|
15
|
+
'locationType was not detected on your config',
|
|
16
|
+
'locationType' in config && typeof config.locationType === 'string',
|
|
17
|
+
);
|
|
18
|
+
assert(
|
|
19
|
+
'rootURL was not detected on your config',
|
|
20
|
+
'rootURL' in config && typeof config.rootURL === 'string',
|
|
21
|
+
);
|
|
22
|
+
assert(
|
|
23
|
+
'APP was not detected on your config',
|
|
24
|
+
'APP' in config && typeof config.APP === 'object',
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export default config;
|
|
@@ -5,23 +5,23 @@ const config = loadConfigFromMeta('<%= name %>') as unknown;
|
|
|
5
5
|
|
|
6
6
|
assert(
|
|
7
7
|
'config is not an object',
|
|
8
|
-
typeof config === 'object' && config !== null
|
|
8
|
+
typeof config === 'object' && config !== null,
|
|
9
9
|
);
|
|
10
10
|
assert(
|
|
11
11
|
'modulePrefix was not detected on your config',
|
|
12
|
-
'modulePrefix' in config && typeof config.modulePrefix === 'string'
|
|
12
|
+
'modulePrefix' in config && typeof config.modulePrefix === 'string',
|
|
13
13
|
);
|
|
14
14
|
assert(
|
|
15
15
|
'locationType was not detected on your config',
|
|
16
|
-
'locationType' in config && typeof config.locationType === 'string'
|
|
16
|
+
'locationType' in config && typeof config.locationType === 'string',
|
|
17
17
|
);
|
|
18
18
|
assert(
|
|
19
19
|
'rootURL was not detected on your config',
|
|
20
|
-
'rootURL' in config && typeof config.rootURL === 'string'
|
|
20
|
+
'rootURL' in config && typeof config.rootURL === 'string',
|
|
21
21
|
);
|
|
22
22
|
assert(
|
|
23
23
|
'APP was not detected on your config',
|
|
24
|
-
'APP' in config && typeof config.APP === 'object'
|
|
24
|
+
'APP' in config && typeof config.APP === 'object',
|
|
25
25
|
);
|
|
26
26
|
|
|
27
27
|
export default config as {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
<% if (warpDrive) {%>import { dirname } from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
<% } %>import EmberApp from 'ember-cli/lib/broccoli/ember-app.js';
|
|
4
|
+
import { compatBuild } from '@embroider/compat';
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
const { compatBuild } = require('@embroider/compat');
|
|
5
|
-
|
|
6
|
-
module.exports = async function (defaults) {
|
|
6
|
+
export default async function (defaults) {
|
|
7
7
|
<% if (warpDrive) {%>const { setConfig } = await import('@warp-drive/core/build-config');
|
|
8
8
|
<% } %>const { buildOnce } = await import('@embroider/vite');
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
const app = new EmberApp(defaults, {
|
|
11
11
|
// Add options here
|
|
12
12
|
});
|
|
13
13
|
<% if (warpDrive) {%>
|
|
14
|
-
setConfig(app,
|
|
14
|
+
setConfig(app, dirname(fileURLToPath(import.meta.url)), {
|
|
15
15
|
// this should be the most recent <major>.<minor> version for
|
|
16
16
|
// which all deprecations have been fully resolved
|
|
17
17
|
// and should be updated when that changes
|
|
@@ -22,4 +22,4 @@ module.exports = async function (defaults) {
|
|
|
22
22
|
});
|
|
23
23
|
<% } %>
|
|
24
24
|
return compatBuild(app, buildOnce);
|
|
25
|
-
}
|
|
25
|
+
}
|
package/files/gitignore
CHANGED
package/files/package.json
CHANGED
|
@@ -31,28 +31,28 @@
|
|
|
31
31
|
"./*": "./app/*"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@babel/core": "^7.
|
|
35
|
-
"@babel/runtime": "^7.
|
|
36
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
34
|
+
"@babel/core": "^7.29.0",
|
|
35
|
+
"@babel/runtime": "^7.29.2",
|
|
36
|
+
"@babel/plugin-transform-runtime": "^7.29.0<% if (typescript) { %>",
|
|
37
37
|
"@babel/plugin-transform-typescript": "^7.28.6<% } %>",
|
|
38
38
|
"@babel/eslint-parser": "^7.28.6<% if (typescript) { %>",
|
|
39
39
|
"@ember/app-tsconfig": "^1.0.3<% } %>",
|
|
40
|
-
"@ember/optional-features": "^
|
|
40
|
+
"@ember/optional-features": "^3.0.0",
|
|
41
41
|
"@ember/string": "^4.0.1",
|
|
42
42
|
"@ember/test-helpers": "^5.4.1",
|
|
43
43
|
"@ember/test-waiters": "^4.1.1",
|
|
44
|
-
"@embroider/macros": "^1.
|
|
45
|
-
"@embroider/core": "^4.4.
|
|
46
|
-
"@embroider/vite": "^1.
|
|
47
|
-
"@embroider/compat": "^4.1.
|
|
44
|
+
"@embroider/macros": "^1.20.2",
|
|
45
|
+
"@embroider/core": "^4.4.7",
|
|
46
|
+
"@embroider/vite": "^1.7.2",
|
|
47
|
+
"@embroider/compat": "^4.1.17",
|
|
48
48
|
"@embroider/router": "^3.0.6",
|
|
49
49
|
"@embroider/config-meta-loader": "^1.0.0",
|
|
50
50
|
"@embroider/legacy-inspector-support": "^0.1.3",
|
|
51
|
-
"@eslint/js": "^9.39.
|
|
51
|
+
"@eslint/js": "^9.39.4",
|
|
52
52
|
"@glimmer/component": "^2.0.0<% if (typescript) { %>",
|
|
53
|
-
"@glint/ember-tsc": "^1.0
|
|
54
|
-
"@glint/template": "^1.7.
|
|
55
|
-
"@glint/tsserver-plugin": "^2.0
|
|
53
|
+
"@glint/ember-tsc": "^1.5.0",
|
|
54
|
+
"@glint/template": "^1.7.7",
|
|
55
|
+
"@glint/tsserver-plugin": "^2.4.0<% } %>",
|
|
56
56
|
"@rollup/plugin-babel": "^6.1.0<% if (typescript) { %>",
|
|
57
57
|
"@types/qunit": "^2.19.13",
|
|
58
58
|
"@types/rsvp": "^4.0.9<% } %><% if (warpDrive) { %>",
|
|
@@ -64,37 +64,37 @@
|
|
|
64
64
|
"babel-plugin-ember-template-compilation": "^3.1.0",
|
|
65
65
|
"concurrently": "^9.2.1",
|
|
66
66
|
"decorator-transforms": "^2.3.1",
|
|
67
|
-
"ember-cli": "~6.
|
|
68
|
-
"ember-cli-babel": "^8.
|
|
67
|
+
"ember-cli": "~6.11.2",
|
|
68
|
+
"ember-cli-babel": "^8.3.1",
|
|
69
69
|
"ember-cli-deprecation-workflow": "^3.4.0",
|
|
70
70
|
"ember-load-initializers": "^3.0.1",
|
|
71
|
-
"ember-modifier": "^4.
|
|
71
|
+
"ember-modifier": "^4.3.0",
|
|
72
72
|
"ember-page-title": "^9.0.3",
|
|
73
73
|
"ember-qunit": "^9.0.4",
|
|
74
|
-
"ember-resolver": "^13.
|
|
75
|
-
"ember-source": "~6.
|
|
74
|
+
"ember-resolver": "^13.2.0",
|
|
75
|
+
"ember-source": "~6.12.0",
|
|
76
76
|
"ember-template-lint": "^7.9.3<% if (welcome) { %>",
|
|
77
77
|
"ember-welcome-page": "^8.0.5<% } %>",
|
|
78
|
-
"eslint": "^9.39.
|
|
78
|
+
"eslint": "^9.39.4",
|
|
79
79
|
"eslint-config-prettier": "^10.1.8",
|
|
80
80
|
"eslint-plugin-ember": "^12.7.5",
|
|
81
|
-
"eslint-plugin-n": "^17.
|
|
82
|
-
"eslint-plugin-qunit": "^8.2.
|
|
81
|
+
"eslint-plugin-n": "^17.24.0",
|
|
82
|
+
"eslint-plugin-qunit": "^8.2.6<% if (warpDrive) { %>",
|
|
83
83
|
"eslint-plugin-warp-drive": "^5.8.1<% } %>",
|
|
84
84
|
"globals": "^16.5.0",
|
|
85
|
-
"prettier": "^3.8.
|
|
86
|
-
"prettier-plugin-ember-template-tag": "^2.1.
|
|
85
|
+
"prettier": "^3.8.1",
|
|
86
|
+
"prettier-plugin-ember-template-tag": "^2.1.3",
|
|
87
87
|
"qunit": "^2.25.0",
|
|
88
88
|
"qunit-dom": "^3.5.0",
|
|
89
89
|
"stylelint": "^16.26.1",
|
|
90
90
|
"stylelint-config-standard": "^38.0.0",
|
|
91
|
-
"testem": "^3.
|
|
91
|
+
"testem": "^3.19.1<% if (typescript) { %>",
|
|
92
92
|
"typescript": "^5.9.3",
|
|
93
|
-
"typescript-eslint": "^8.
|
|
93
|
+
"typescript-eslint": "^8.58.0<% } %>",
|
|
94
94
|
"vite": "^7.3.1"
|
|
95
95
|
},
|
|
96
96
|
"engines": {
|
|
97
|
-
"node": ">= 20"
|
|
97
|
+
"node": ">= 20.19.0"
|
|
98
98
|
},
|
|
99
99
|
"ember": {
|
|
100
100
|
"edition": "octane"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<% if (warpDrive) { %>import '@warp-drive/ember/install'
|
|
2
|
-
import Application from '<%= modulePrefix %>/app';
|
|
1
|
+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
|
|
2
|
+
<% } %>import Application from '<%= modulePrefix %>/app';
|
|
3
3
|
import config from '<%= modulePrefix %>/config/environment';
|
|
4
4
|
import * as QUnit from 'qunit';
|
|
5
5
|
import { setApplication } from '@ember/test-helpers';
|
package/index.js
CHANGED
|
@@ -136,11 +136,20 @@ module.exports = {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
if (!options.typescript) {
|
|
139
|
+
// Exclude TypeScript-only files for JavaScript apps.
|
|
140
|
+
// Note: app/config/environment.ts is excluded explicitly because
|
|
141
|
+
// shouldTransformTypeScript strips trailing commas when converting to JS,
|
|
142
|
+
// causing Prettier failures. We use a separate .js file instead.
|
|
139
143
|
files = files.filter(
|
|
140
144
|
(file) =>
|
|
141
|
-
|
|
145
|
+
file !== 'tsconfig.json' &&
|
|
146
|
+
file !== 'app/config/environment.ts' &&
|
|
147
|
+
!file.startsWith('types/') &&
|
|
142
148
|
!file.endsWith('.d.ts'),
|
|
143
149
|
);
|
|
150
|
+
} else {
|
|
151
|
+
// For TypeScript apps, exclude the JS version of app/config/environment
|
|
152
|
+
files = files.filter((file) => file !== 'app/config/environment.js');
|
|
144
153
|
}
|
|
145
154
|
|
|
146
155
|
const warpDrive = options.warpDrive || options.emberData;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ember/app-blueprint",
|
|
3
|
-
"version": "6.12.0
|
|
3
|
+
"version": "6.12.0",
|
|
4
4
|
"description": "Blueprint for next generation of Ember apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-blueprint"
|
|
@@ -12,14 +12,6 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"author": "",
|
|
14
14
|
"main": "index.js",
|
|
15
|
-
"release-plan": {
|
|
16
|
-
"semverIncrementAs": {
|
|
17
|
-
"minor": "prerelease",
|
|
18
|
-
"patch": "prerelease"
|
|
19
|
-
},
|
|
20
|
-
"semverIncrementTag": "beta",
|
|
21
|
-
"publishTag": "beta"
|
|
22
|
-
},
|
|
23
15
|
"dependencies": {
|
|
24
16
|
"chalk": "^4.1.2",
|
|
25
17
|
"ejs": "^3.1.10",
|
|
@@ -43,7 +35,8 @@
|
|
|
43
35
|
"release-plan": "^0.17.2",
|
|
44
36
|
"strip-ansi": "^7.1.0",
|
|
45
37
|
"tmp-promise": "^3.0.3",
|
|
46
|
-
"vitest": "^4.0.0-beta.17"
|
|
38
|
+
"vitest": "^4.0.0-beta.17",
|
|
39
|
+
"vitest-matrix": "^0.2.0"
|
|
47
40
|
},
|
|
48
41
|
"scripts": {
|
|
49
42
|
"lint": "concurrently 'pnpm:lint:*(!fix)'",
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# For every push to the primary branch with .release-plan.json modified,
|
|
2
|
-
# runs release-plan.
|
|
3
|
-
|
|
4
|
-
name: Publish Alpha
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
push:
|
|
9
|
-
branches:
|
|
10
|
-
- main
|
|
11
|
-
paths:
|
|
12
|
-
- '.release-plan.json'
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: publish-${{ github.head_ref || github.ref }}
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
publish:
|
|
20
|
-
name: "NPM Publish"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
permissions:
|
|
23
|
-
contents: write
|
|
24
|
-
pull-requests: write
|
|
25
|
-
id-token: write
|
|
26
|
-
attestations: write
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: pnpm/action-setup@v4
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 18
|
|
34
|
-
# This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable
|
|
35
|
-
registry-url: 'https://registry.npmjs.org'
|
|
36
|
-
cache: pnpm
|
|
37
|
-
- run: pnpm install --frozen-lockfile
|
|
38
|
-
- name: Publish to NPM
|
|
39
|
-
run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish --github-prerelease
|
|
40
|
-
env:
|
|
41
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# For every push to the primary branch with .release-plan.json modified,
|
|
2
|
-
# runs release-plan.
|
|
3
|
-
|
|
4
|
-
name: Publish Beta
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
push:
|
|
9
|
-
branches:
|
|
10
|
-
- beta
|
|
11
|
-
paths:
|
|
12
|
-
- '.release-plan.json'
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: publish-${{ github.head_ref || github.ref }}
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
publish:
|
|
20
|
-
name: "NPM Publish"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
permissions:
|
|
23
|
-
contents: write
|
|
24
|
-
pull-requests: write
|
|
25
|
-
id-token: write
|
|
26
|
-
attestations: write
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: pnpm/action-setup@v4
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 18
|
|
34
|
-
# This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable
|
|
35
|
-
registry-url: 'https://registry.npmjs.org'
|
|
36
|
-
cache: pnpm
|
|
37
|
-
- run: pnpm install --frozen-lockfile
|
|
38
|
-
- name: Publish to NPM
|
|
39
|
-
run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish --publish-branch=beta --github-prerelease
|
|
40
|
-
env:
|
|
41
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|