ember-cli 6.9.0-beta.1 → 6.10.0-alpha.1

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 CHANGED
@@ -1,57 +1,64 @@
1
1
  # ember-cli Changelog
2
2
 
3
- ## Release (2025-10-15)
3
+ ## Release (2025-12-10)
4
4
 
5
- * ember-cli 6.9.0-beta.1 (minor)
6
- * @ember-tooling/classic-build-addon-blueprint 6.9.0-beta.1 (minor)
7
- * @ember-tooling/classic-build-app-blueprint 6.9.0-beta.1 (minor)
5
+ * ember-cli 6.10.0-alpha.1 (minor)
6
+ * @ember-tooling/classic-build-addon-blueprint 6.10.0-alpha.1 (minor)
7
+ * @ember-tooling/classic-build-app-blueprint 6.10.0-alpha.1 (minor)
8
+ * @ember-tooling/blueprint-blueprint 0.3.0 (minor)
9
+ * @ember-tooling/blueprint-model 0.5.0 (minor)
8
10
 
9
11
  #### :rocket: Enhancement
10
12
  * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
11
- * [#10856](https://github.com/ember-cli/ember-cli/pull/10856) Prepare 6.9 Beta ([@mansona](https://github.com/mansona))
13
+ * [#10873](https://github.com/ember-cli/ember-cli/pull/10873) Prepare 6.10 Alpha ([@mansona](https://github.com/mansona))
12
14
  * [#10853](https://github.com/ember-cli/ember-cli/pull/10853) Promote Beta and update all dependencies for 6.8 release ([@mansona](https://github.com/mansona))
15
+ * `ember-cli`
16
+ * [#10870](https://github.com/ember-cli/ember-cli/pull/10870) Upgrade broccoli ([@kategengler](https://github.com/kategengler))
17
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
18
+ * [#10856](https://github.com/ember-cli/ember-cli/pull/10856) Prepare 6.9 Beta ([@mansona](https://github.com/mansona))
19
+
20
+ #### :bug: Bug Fix
21
+ * `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
22
+ * [#10876](https://github.com/ember-cli/ember-cli/pull/10876) bump minimum node version to 20.19 ([@mansona](https://github.com/mansona))
23
+
24
+ #### :memo: Documentation
25
+ * `ember-cli`
26
+ * [#10857](https://github.com/ember-cli/ember-cli/pull/10857) Update RELEASE.md with more notes ([@mansona](https://github.com/mansona))
13
27
 
14
28
  #### :house: Internal
15
29
  * `ember-cli`
16
- * [#10809](https://github.com/ember-cli/ember-cli/pull/10809) Update RELEASE ([@mansona](https://github.com/mansona))
17
- * [#10813](https://github.com/ember-cli/ember-cli/pull/10813) Document need for future vite experiment test cleanup ([@ef4](https://github.com/ef4))
30
+ * [#10878](https://github.com/ember-cli/ember-cli/pull/10878) stop using internal package cache for smoke-test-slow ([@mansona](https://github.com/mansona))
31
+ * [#10863](https://github.com/ember-cli/ember-cli/pull/10863) Missed a script -- fix updating output repos ([@kategengler](https://github.com/kategengler))
32
+ * [#10862](https://github.com/ember-cli/ember-cli/pull/10862) Fix typo in output repo workflow ([@kategengler](https://github.com/kategengler))
33
+ * [#10861](https://github.com/ember-cli/ember-cli/pull/10861) Fix output repo generation with new tag format ([@kategengler](https://github.com/kategengler))
34
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
35
+ * [#10854](https://github.com/ember-cli/ember-cli/pull/10854) Prepare Beta Release ([@mansona](https://github.com/mansona))
18
36
 
19
37
  #### Committers: 2
20
38
  - Chris Manson ([@mansona](https://github.com/mansona))
21
- - Edward Faulkner ([@ef4](https://github.com/ef4))
39
+ - Katie Gengler ([@kategengler](https://github.com/kategengler))
22
40
 
23
41
  ## Release (2025-10-14)
24
42
 
25
- * ember-cli 6.8.0 (minor)
26
- * @ember-tooling/classic-build-addon-blueprint 6.8.0 (minor)
27
- * @ember-tooling/classic-build-app-blueprint 6.8.0 (minor)
43
+ * ember-cli 6.9.0-alpha.2 (minor)
44
+ * @ember-tooling/classic-build-addon-blueprint 6.9.0-alpha.2 (minor)
45
+ * @ember-tooling/classic-build-app-blueprint 6.9.0-alpha.2 (minor)
46
+ * @ember-tooling/blueprint-blueprint 0.2.1 (patch)
47
+ * @ember-tooling/blueprint-model 0.4.1 (patch)
28
48
 
29
49
  #### :rocket: Enhancement
30
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
31
- * [#10853](https://github.com/ember-cli/ember-cli/pull/10853) Promote Beta and update all dependencies for 6.8 release ([@mansona](https://github.com/mansona))
32
- * [#10831](https://github.com/ember-cli/ember-cli/pull/10831) [bugfix beta] enable `--strict` by default to match new app blueprint ([@mansona](https://github.com/mansona))
33
- * [#10808](https://github.com/ember-cli/ember-cli/pull/10808) Prepare 6.8 Beta ([@mansona](https://github.com/mansona))
34
50
  * `ember-cli`
35
51
  * [#10844](https://github.com/ember-cli/ember-cli/pull/10844) [beta] Error when `ember (generate|destroy) (http-proxy|http-mock|server)` is used in a Vite-based project ([@kategengler](https://github.com/kategengler))
36
- * [#10802](https://github.com/ember-cli/ember-cli/pull/10802) enable Vite by default ([@mansona](https://github.com/mansona))
37
- * [#10804](https://github.com/ember-cli/ember-cli/pull/10804) Support a `--ts` alias for the `addon`, `init` and `new` commands ([@bertdeblock](https://github.com/bertdeblock))
38
- * [#10781](https://github.com/ember-cli/ember-cli/pull/10781) Add new `VITE` experiment to generate app with new Vite blueprint ([@pichfl](https://github.com/pichfl))
39
- * [#10785](https://github.com/ember-cli/ember-cli/pull/10785) Depracate passing filenames and globs to `init` ([@pichfl](https://github.com/pichfl))
40
- * [#10776](https://github.com/ember-cli/ember-cli/pull/10776) Add deprecation warning for the `--embroider` argument ([@pichfl](https://github.com/pichfl))
41
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
42
- * [#10791](https://github.com/ember-cli/ember-cli/pull/10791) update the format of the ember-cli-update.json ([@mansona](https://github.com/mansona))
52
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
53
+ * [#10831](https://github.com/ember-cli/ember-cli/pull/10831) [bugfix beta] enable `--strict` by default to match new app blueprint ([@mansona](https://github.com/mansona))
43
54
 
44
55
  #### :bug: Bug Fix
45
56
  * `ember-cli`
46
57
  * [#10846](https://github.com/ember-cli/ember-cli/pull/10846) [beta bugfix] allow build --watch only in EMBROIDER_PREBUILD ([@mansona](https://github.com/mansona))
58
+ * [#10834](https://github.com/ember-cli/ember-cli/pull/10834) [bugfix release] Fix tests using wrong versions ([@mansona](https://github.com/mansona))
47
59
  * [#10826](https://github.com/ember-cli/ember-cli/pull/10826) move resolution of @ember/app-blueprint to prevent loading latest ([@mansona](https://github.com/mansona))
48
- * [#10782](https://github.com/ember-cli/ember-cli/pull/10782) update heimdall-fs-monitor ([@mansona](https://github.com/mansona))
49
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
50
- * [#10803](https://github.com/ember-cli/ember-cli/pull/10803) Add "ember-blueprint" to keywords in `package.json` for the classic blueprints ([@pichfl](https://github.com/pichfl))
51
- * `@ember-tooling/classic-build-app-blueprint`
52
- * [#10798](https://github.com/ember-cli/ember-cli/pull/10798) Add import from ember-data breakage/deprecation ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
53
- * `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
54
- * [#10707](https://github.com/ember-cli/ember-cli/pull/10707) Enabled recommended configs from eslint-plugin-n and eslint-plugin-qunit ([@ijlee2](https://github.com/ijlee2))
60
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
61
+ * [#10838](https://github.com/ember-cli/ember-cli/pull/10838) Add package license metadata to match repository ([@davidtaylorhq](https://github.com/davidtaylorhq))
55
62
 
56
63
  #### :memo: Documentation
57
64
  * `ember-cli`
@@ -60,75 +67,233 @@
60
67
  * [#10835](https://github.com/ember-cli/ember-cli/pull/10835) Update deprecation message for --embroider option ([@kategengler](https://github.com/kategengler))
61
68
 
62
69
  #### :house: Internal
70
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
71
+ * [#10851](https://github.com/ember-cli/ember-cli/pull/10851) Merge beta into master ([@mansona](https://github.com/mansona))
72
+ * [#10848](https://github.com/ember-cli/ember-cli/pull/10848) merge origin/release into beta ([@mansona](https://github.com/mansona))
63
73
  * `ember-cli`, `@ember-tooling/classic-build-app-blueprint`
64
74
  * [#10847](https://github.com/ember-cli/ember-cli/pull/10847) Prepare Beta Release ([@mansona](https://github.com/mansona))
65
75
  * [#10825](https://github.com/ember-cli/ember-cli/pull/10825) Prepare Beta Release ([@mansona](https://github.com/mansona))
66
76
  * [#10820](https://github.com/ember-cli/ember-cli/pull/10820) Prepare Beta Release ([@mansona](https://github.com/mansona))
77
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
78
+ * [#10836](https://github.com/ember-cli/ember-cli/pull/10836) Prepare Beta Release ([@mansona](https://github.com/mansona))
67
79
  * `ember-cli`
68
80
  * [#10845](https://github.com/ember-cli/ember-cli/pull/10845) [beta] update @ember/app-blueprint to latest beta ([@mansona](https://github.com/mansona))
69
81
  * [#10833](https://github.com/ember-cli/ember-cli/pull/10833) [bugfix beta] bump the @ember/app-blueprint version ([@mansona](https://github.com/mansona))
70
82
  * [#10823](https://github.com/ember-cli/ember-cli/pull/10823) fix incorrect ember-cli-update version in tests ([@mansona](https://github.com/mansona))
71
83
  * [#10819](https://github.com/ember-cli/ember-cli/pull/10819) update @ember/app-blueprint beta version ([@mansona](https://github.com/mansona))
72
- * [#10806](https://github.com/ember-cli/ember-cli/pull/10806) skip build watch tests when vite is enabled ([@mansona](https://github.com/mansona))
73
- * [#10790](https://github.com/ember-cli/ember-cli/pull/10790) Reorganize tests for `new` and `addon` commands ([@pichfl](https://github.com/pichfl))
74
- * [#10783](https://github.com/ember-cli/ember-cli/pull/10783) remove unused changelog script ([@mansona](https://github.com/mansona))
75
- * [#10764](https://github.com/ember-cli/ember-cli/pull/10764) fix double CI run on release-plan PR ([@mansona](https://github.com/mansona))
76
- * [#10750](https://github.com/ember-cli/ember-cli/pull/10750) Add more notes to the Release.md ([@mansona](https://github.com/mansona))
84
+ * [#10809](https://github.com/ember-cli/ember-cli/pull/10809) Update RELEASE ([@mansona](https://github.com/mansona))
85
+
86
+ #### Committers: 3
87
+ - Chris Manson ([@mansona](https://github.com/mansona))
88
+ - David Taylor ([@davidtaylorhq](https://github.com/davidtaylorhq))
89
+ - Katie Gengler ([@kategengler](https://github.com/kategengler))
90
+
91
+ ## Release (2025-09-17)
92
+
93
+ * ember-cli 6.9.0-alpha.1 (minor)
94
+ * @ember-tooling/classic-build-addon-blueprint 6.9.0-alpha.1 (minor)
95
+ * @ember-tooling/classic-build-app-blueprint 6.9.0-alpha.1 (minor)
96
+ * @ember-tooling/blueprint-blueprint 0.2.0 (minor)
97
+ * @ember-tooling/blueprint-model 0.4.0 (minor)
98
+
99
+ #### :rocket: Enhancement
100
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
101
+ * [#10808](https://github.com/ember-cli/ember-cli/pull/10808) Prepare 6.8 Beta ([@mansona](https://github.com/mansona))
77
102
  * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
78
- * [#10799](https://github.com/ember-cli/ember-cli/pull/10799) Prepare Alpha Release ([@mansona](https://github.com/mansona))
79
- * [#10778](https://github.com/ember-cli/ember-cli/pull/10778) Prepare Alpha Release ([@mansona](https://github.com/mansona))
80
- * [#10756](https://github.com/ember-cli/ember-cli/pull/10756) Prepare Alpha Release ([@mansona](https://github.com/mansona))
81
- * [#10763](https://github.com/ember-cli/ember-cli/pull/10763) Prepare 6.8-alpha ([@mansona](https://github.com/mansona))
103
+ * [#10796](https://github.com/ember-cli/ember-cli/pull/10796) Promote Beta and update all dependencies for 6.7 release ([@mansona](https://github.com/mansona))
104
+
105
+ #### :bug: Bug Fix
106
+ * `ember-cli`
107
+ * [#10794](https://github.com/ember-cli/ember-cli/pull/10794) Fix potential NPE ([@boris-petrov](https://github.com/boris-petrov))
82
108
 
83
- #### Committers: 6
109
+ #### :house: Internal
110
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
111
+ * [#10815](https://github.com/ember-cli/ember-cli/pull/10815) Merge beta into master and start 6.9 alpha ([@mansona](https://github.com/mansona))
112
+ * [#10810](https://github.com/ember-cli/ember-cli/pull/10810) Prepare Beta Release ([@mansona](https://github.com/mansona))
113
+ * `@ember-tooling/blueprint-model`
114
+ * [#10813](https://github.com/ember-cli/ember-cli/pull/10813) Document need for future vite experiment test cleanup ([@ef4](https://github.com/ef4))
115
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
116
+ * [#10797](https://github.com/ember-cli/ember-cli/pull/10797) Prepare Stable Release ([@mansona](https://github.com/mansona))
117
+ * [#10800](https://github.com/ember-cli/ember-cli/pull/10800) fix release-plan for stable release ([@mansona](https://github.com/mansona))
118
+ * `ember-cli`
119
+ * [#10801](https://github.com/ember-cli/ember-cli/pull/10801) update github-changelog ([@mansona](https://github.com/mansona))
120
+
121
+ #### Committers: 3
122
+ - Boris Petrov ([@boris-petrov](https://github.com/boris-petrov))
123
+ - Chris Manson ([@mansona](https://github.com/mansona))
124
+ - Edward Faulkner ([@ef4](https://github.com/ef4))
125
+
126
+ ## Release (2025-09-10)
127
+
128
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.5 (patch)
129
+ * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.5 (patch)
130
+ * @ember-tooling/blueprint-model 0.2.0 (minor)
131
+ * ember-cli 6.8.0-alpha.5 (patch)
132
+
133
+ #### :rocket: Enhancement
134
+ * `@ember-tooling/blueprint-model`
135
+ * [#10802](https://github.com/ember-cli/ember-cli/pull/10802) enable Vite by default ([@mansona](https://github.com/mansona))
136
+ * Other
137
+ * [#10804](https://github.com/ember-cli/ember-cli/pull/10804) Support a `--ts` alias for the `addon`, `init` and `new` commands ([@bertdeblock](https://github.com/bertdeblock))
138
+
139
+ #### :house: Internal
140
+ * [#10806](https://github.com/ember-cli/ember-cli/pull/10806) skip build watch tests when vite is enabled ([@mansona](https://github.com/mansona))
141
+
142
+ #### Committers: 2
84
143
  - Bert De Block ([@bertdeblock](https://github.com/bertdeblock))
85
144
  - Chris Manson ([@mansona](https://github.com/mansona))
145
+
146
+ ## Release (2025-09-09)
147
+
148
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.4 (patch)
149
+ * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.4 (patch)
150
+ * @ember-tooling/blueprint-blueprint 0.0.3 (patch)
151
+ * ember-cli 6.8.0-alpha.4 (patch)
152
+
153
+ #### :bug: Bug Fix
154
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`
155
+ * [#10803](https://github.com/ember-cli/ember-cli/pull/10803) Add "ember-blueprint" to keywords in `package.json` for the classic blueprints ([@pichfl](https://github.com/pichfl))
156
+ * `@ember-tooling/classic-build-app-blueprint`
157
+ * [#10798](https://github.com/ember-cli/ember-cli/pull/10798) Add import from ember-data breakage/deprecation ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
158
+
159
+ #### Committers: 2
86
160
  - Florian Pichler ([@pichfl](https://github.com/pichfl))
87
- - Isaac Lee ([@ijlee2](https://github.com/ijlee2))
88
- - Katie Gengler ([@kategengler](https://github.com/kategengler))
89
161
  - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
90
162
 
91
- ## Release (2025-10-08)
163
+ ## Release (2025-09-05)
92
164
 
93
- * ember-cli 6.7.2 (patch)
94
- * @ember-tooling/classic-build-addon-blueprint 6.7.1 (patch)
95
- * @ember-tooling/classic-build-app-blueprint 6.7.2 (patch)
165
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.3 (patch)
166
+ * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.3 (patch)
167
+ * @ember-tooling/blueprint-model 0.1.0 (minor)
168
+ * ember-cli 6.8.0-alpha.3 (patch)
96
169
 
97
- #### :bug: Bug Fix
98
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
99
- * [#10838](https://github.com/ember-cli/ember-cli/pull/10838) Add package license metadata to match repository ([@davidtaylorhq](https://github.com/davidtaylorhq))
170
+ #### :rocket: Enhancement
171
+ * `@ember-tooling/blueprint-model`
172
+ * [#10781](https://github.com/ember-cli/ember-cli/pull/10781) Add new `VITE` experiment to generate app with new Vite blueprint ([@pichfl](https://github.com/pichfl))
100
173
 
101
174
  #### Committers: 1
102
- - David Taylor ([@davidtaylorhq](https://github.com/davidtaylorhq))
175
+ - Florian Pichler ([@pichfl](https://github.com/pichfl))
176
+
177
+ ## Release (2025-09-01)
103
178
 
104
- ## Release (2025-10-06)
179
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.2 (minor)
180
+ * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.2 (minor)
181
+ * ember-cli 6.8.0-alpha.2 (patch)
105
182
 
106
- * ember-cli 6.7.1 (patch)
107
- * @ember-tooling/classic-build-app-blueprint 6.7.1 (patch)
183
+ #### :rocket: Enhancement
184
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
185
+ * [#10791](https://github.com/ember-cli/ember-cli/pull/10791) update the format of the ember-cli-update.json ([@mansona](https://github.com/mansona))
186
+ * Other
187
+ * [#10785](https://github.com/ember-cli/ember-cli/pull/10785) Depracate passing filenames and globs to `init` ([@pichfl](https://github.com/pichfl))
188
+ * [#10776](https://github.com/ember-cli/ember-cli/pull/10776) Add deprecation warning for the `--embroider` argument ([@pichfl](https://github.com/pichfl))
108
189
 
109
190
  #### :bug: Bug Fix
110
- * `ember-cli`
111
- * [#10834](https://github.com/ember-cli/ember-cli/pull/10834) [bugfix release] Fix tests using wrong versions ([@mansona](https://github.com/mansona))
191
+ * Other
192
+ * [#10782](https://github.com/ember-cli/ember-cli/pull/10782) update heimdall-fs-monitor ([@mansona](https://github.com/mansona))
112
193
  * `@ember-tooling/classic-build-app-blueprint`
113
- * [#10824](https://github.com/ember-cli/ember-cli/pull/10824) [bugfix release] fix app-blueprint being considered a blueprint ([@mansona](https://github.com/mansona))
194
+ * [#10707](https://github.com/ember-cli/ember-cli/pull/10707) Enabled recommended configs from eslint-plugin-n and eslint-plugin-qunit ([@ijlee2](https://github.com/ijlee2))
114
195
 
115
- #### Committers: 1
196
+ #### :house: Internal
197
+ * [#10790](https://github.com/ember-cli/ember-cli/pull/10790) Reorganize tests for `new` and `addon` commands ([@pichfl](https://github.com/pichfl))
198
+ * [#10783](https://github.com/ember-cli/ember-cli/pull/10783) remove unused changelog script ([@mansona](https://github.com/mansona))
199
+ * [#10764](https://github.com/ember-cli/ember-cli/pull/10764) fix double CI run on release-plan PR ([@mansona](https://github.com/mansona))
200
+ * [#10750](https://github.com/ember-cli/ember-cli/pull/10750) Add more notes to the Release.md ([@mansona](https://github.com/mansona))
201
+
202
+ #### Committers: 3
116
203
  - Chris Manson ([@mansona](https://github.com/mansona))
204
+ - Florian Pichler ([@pichfl](https://github.com/pichfl))
205
+ - Isaac Lee ([@ijlee2](https://github.com/ijlee2))
117
206
 
118
- ## Release (2025-09-06)
207
+ ## Release (2025-08-02)
119
208
 
120
- * ember-cli 6.7.0 (minor)
121
- * @ember-tooling/classic-build-addon-blueprint 6.7.0 (minor)
122
- * @ember-tooling/classic-build-app-blueprint 6.7.0 (minor)
209
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.1 (minor)
210
+ * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.1 (minor)
211
+ * ember-cli 6.8.0-alpha.1 (patch)
123
212
 
124
213
  #### :rocket: Enhancement
125
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
126
- * [#10796](https://github.com/ember-cli/ember-cli/pull/10796) Promote Beta and update all dependencies for 6.7 release ([@mansona](https://github.com/mansona))
214
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
215
+ * [#10755](https://github.com/ember-cli/ember-cli/pull/10755) Prepare 6.7-beta ([@mansona](https://github.com/mansona))
216
+ * Other
217
+ * [#10751](https://github.com/ember-cli/ember-cli/pull/10751) [BETA BACKPORT] Backport drop node 18 ([@mansona](https://github.com/mansona))
218
+
219
+ #### :house: Internal
220
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
221
+ * [#10763](https://github.com/ember-cli/ember-cli/pull/10763) Prepare 6.8-alpha ([@mansona](https://github.com/mansona))
222
+ * [#10754](https://github.com/ember-cli/ember-cli/pull/10754) Prepare Beta Release ([@github-actions[bot]](https://github.com/apps/github-actions))
223
+ * Other
224
+ * [#10761](https://github.com/ember-cli/ember-cli/pull/10761) update release-plan ([@mansona](https://github.com/mansona))
225
+
226
+ #### Committers: 2
227
+ - Chris Manson ([@mansona](https://github.com/mansona))
228
+ - [@github-actions[bot]](https://github.com/apps/github-actions)
229
+
230
+ ## Release (2025-07-26)
231
+
232
+ * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.4 (minor)
233
+ * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.4 (minor)
234
+ * ember-cli 6.7.0-alpha.4 (patch)
235
+
236
+ #### :rocket: Enhancement
237
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
127
238
  * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
128
239
 
129
240
  #### :bug: Bug Fix
241
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
242
+ * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
243
+
244
+ #### :memo: Documentation
245
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
246
+ * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
247
+
248
+ #### :house: Internal
249
+ * [#10748](https://github.com/ember-cli/ember-cli/pull/10748) update blueprint version of ember-cli as part of release plan ([@mansona](https://github.com/mansona))
250
+ * [#10747](https://github.com/ember-cli/ember-cli/pull/10747) only use the PAT for the PR creation in release-plan ([@mansona](https://github.com/mansona))
251
+ * [#10744](https://github.com/ember-cli/ember-cli/pull/10744) run tests on the release-plan PR ([@mansona](https://github.com/mansona))
252
+
253
+ #### Committers: 2
254
+ - Chris Manson ([@mansona](https://github.com/mansona))
255
+ - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
256
+
257
+ ## Release (2025-06-30)
258
+
259
+ * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.3 (patch)
260
+ * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.3 (patch)
261
+ * @ember-tooling/blueprint-blueprint 0.0.2 (patch)
262
+ * @ember-tooling/blueprint-model 0.0.2 (patch)
263
+ * ember-cli 6.7.0-alpha.3 (patch)
264
+
265
+ #### :house: Internal
266
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
267
+ * [#10738](https://github.com/ember-cli/ember-cli/pull/10738) add a repository for each of the packages ([@mansona](https://github.com/mansona))
268
+
269
+ #### Committers: 1
270
+ - Chris Manson ([@mansona](https://github.com/mansona))
271
+
272
+ ## Release (2025-06-30)
273
+
274
+ * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.2 (patch)
275
+ * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.2 (patch)
276
+ * @ember-tooling/blueprint-blueprint 0.0.1 (patch)
277
+ * @ember-tooling/blueprint-model 0.0.1 (patch)
278
+ * ember-cli 6.7.0-alpha.2 (patch)
279
+
280
+ #### :house: Internal
281
+ * Other
282
+ * [#10735](https://github.com/ember-cli/ember-cli/pull/10735) remove unnecessary project override ([@mansona](https://github.com/mansona))
283
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
284
+ * [#10736](https://github.com/ember-cli/ember-cli/pull/10736) update all sub-packages to have the @ember-tooling prefix ([@mansona](https://github.com/mansona))
285
+ * [#10671](https://github.com/ember-cli/ember-cli/pull/10671) Implement the built in app, addon, and blueprint blueprints by package lookup ([@mansona](https://github.com/mansona))
286
+
287
+ #### Committers: 1
288
+ - Chris Manson ([@mansona](https://github.com/mansona))
289
+
290
+ ## Release (2025-06-16)
291
+
292
+ * ember-cli 6.7.0-alpha.1 (minor)
293
+
294
+ #### :rocket: Enhancement
130
295
  * `ember-cli`
131
- * [#10794](https://github.com/ember-cli/ember-cli/pull/10794) Fix potential NPE ([@boris-petrov](https://github.com/boris-petrov))
296
+ * [#10705](https://github.com/ember-cli/ember-cli/pull/10705) add `--strict` flag for new app and addon generation ([@mansona](https://github.com/mansona))
132
297
 
133
298
  #### :memo: Documentation
134
299
  * `ember-cli`
@@ -136,32 +301,20 @@
136
301
 
137
302
  #### :house: Internal
138
303
  * `ember-cli`
139
- * [#10801](https://github.com/ember-cli/ember-cli/pull/10801) update github-changelog ([@mansona](https://github.com/mansona))
140
- * [#10761](https://github.com/ember-cli/ember-cli/pull/10761) update release-plan ([@mansona](https://github.com/mansona))
141
- * [#10748](https://github.com/ember-cli/ember-cli/pull/10748) update blueprint version of ember-cli as part of release plan ([@mansona](https://github.com/mansona))
142
- * [#10747](https://github.com/ember-cli/ember-cli/pull/10747) only use the PAT for the PR creation in release-plan ([@mansona](https://github.com/mansona))
143
- * [#10744](https://github.com/ember-cli/ember-cli/pull/10744) run tests on the release-plan PR ([@mansona](https://github.com/mansona))
144
- * [#10735](https://github.com/ember-cli/ember-cli/pull/10735) remove unnecessary project override ([@mansona](https://github.com/mansona))
145
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
146
- * [#10800](https://github.com/ember-cli/ember-cli/pull/10800) fix release-plan for stable release ([@mansona](https://github.com/mansona))
147
- * [#10736](https://github.com/ember-cli/ember-cli/pull/10736) update all sub-packages to have the @ember-tooling prefix ([@mansona](https://github.com/mansona))
148
- * [#10671](https://github.com/ember-cli/ember-cli/pull/10671) Implement the built in app, addon, and blueprint blueprints by package lookup ([@mansona](https://github.com/mansona))
149
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
150
- * [#10738](https://github.com/ember-cli/ember-cli/pull/10738) add a repository for each of the packages ([@mansona](https://github.com/mansona))
304
+ * [#10731](https://github.com/ember-cli/ember-cli/pull/10731) Prepare Alpha 6.7.0 ([@mansona](https://github.com/mansona))
305
+ * [#10728](https://github.com/ember-cli/ember-cli/pull/10728) Prepare Beta 6.6.0 ([@mansona](https://github.com/mansona))
306
+ * [#10726](https://github.com/ember-cli/ember-cli/pull/10726) use patched github-changelog for properly rolling up beta changelog ([@mansona](https://github.com/mansona))
307
+ * [#10717](https://github.com/ember-cli/ember-cli/pull/10717) pass --publish-branch to release-plan publish ([@mansona](https://github.com/mansona))
151
308
 
152
- #### Committers: 3
153
- - Boris Petrov ([@boris-petrov](https://github.com/boris-petrov))
309
+ #### Committers: 1
154
310
  - Chris Manson ([@mansona](https://github.com/mansona))
155
- - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
156
311
 
157
- ## Release (2025-07-29)
312
+ ## Release (2025-06-16)
158
313
 
159
- * ember-cli 6.6.0 (minor)
314
+ * ember-cli 6.6.0-beta.1 (minor)
160
315
 
161
316
  #### :rocket: Enhancement
162
317
  * `ember-cli`
163
- * [#10749](https://github.com/ember-cli/ember-cli/pull/10749) Update all dependencies for 6.6 release ([@mansona](https://github.com/mansona))
164
- * [#10751](https://github.com/ember-cli/ember-cli/pull/10751) [BETA BACKPORT] Backport drop node 18 ([@mansona](https://github.com/mansona))
165
318
  * [#10701](https://github.com/ember-cli/ember-cli/pull/10701) [ENHANCEMENT] Support Bun ([@hexadecy](https://github.com/hexadecy))
166
319
  * [#10664](https://github.com/ember-cli/ember-cli/pull/10664) [ENHANCEMENT] Remove ember-fetch ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
167
320
 
@@ -172,6 +325,8 @@
172
325
 
173
326
  #### :house: Internal
174
327
  * `ember-cli`
328
+ * [#10728](https://github.com/ember-cli/ember-cli/pull/10728) Prepare Beta 6.6.0 ([@mansona](https://github.com/mansona))
329
+ * [#10726](https://github.com/ember-cli/ember-cli/pull/10726) use patched github-changelog for properly rolling up beta changelog ([@mansona](https://github.com/mansona))
175
330
  * [#10699](https://github.com/ember-cli/ember-cli/pull/10699) Start using release-plan for releasing ember-cli ([@mansona](https://github.com/mansona))
176
331
  * [#10670](https://github.com/ember-cli/ember-cli/pull/10670) testing: don't generate temp directories in the repo ([@mansona](https://github.com/mansona))
177
332
 
package/RELEASE.md CHANGED
@@ -84,7 +84,7 @@ You can use [this saved search](https://github.com/ember-cli/ember-cli/pulls?q=i
84
84
  - Update blueprint dependencies to beta
85
85
 
86
86
  ```
87
- node ./dev/update-blueprint-dependencies.js --ember-source=beta --ember-data=beta
87
+ node ./dev/update-blueprint-dependencies.js --ember-source=beta --ember-data=<whatever version was in the alpha>
88
88
  ```
89
89
 
90
90
  - update the @ember/app-blueprint dependency `pnpm i -w @ember/app-blueprint@beta`
@@ -3,7 +3,7 @@
3
3
  "logo": "https://ember-cli.com/assets/images/ember-cli-logo-small-dark.png",
4
4
  "name": "ember-cli",
5
5
  "description": "Command line tool for developing ambitious ember.js apps",
6
- "version": "6.9.0-beta.1-beta-3a801add6e"
6
+ "version": "6.10.0-alpha.1-master-51bed22cb7"
7
7
  },
8
8
  "files": {
9
9
  "lib/broccoli/default-packager.js": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-cli",
3
- "version": "6.9.0-beta.1",
3
+ "version": "6.10.0-alpha.1",
4
4
  "description": "Command line tool for developing ambitious ember.js apps",
5
5
  "keywords": [
6
6
  "app",
@@ -31,16 +31,14 @@
31
31
  "minor": "prerelease",
32
32
  "patch": "prerelease"
33
33
  },
34
- "semverIncrementTag": "beta",
35
- "publishTag": "beta"
34
+ "semverIncrementTag": "alpha",
35
+ "publishTag": "alpha"
36
36
  },
37
37
  "dependencies": {
38
- "@ember-tooling/blueprint-blueprint": "^0.2.1",
39
- "@ember-tooling/blueprint-model": "^0.4.1",
40
- "@ember/app-blueprint": "~6.9.0-beta.1",
38
+ "@ember/app-blueprint": "~6.10.0-alpha.6",
41
39
  "@pnpm/find-workspace-dir": "^1000.1.0",
42
40
  "babel-remove-types": "^1.0.1",
43
- "broccoli": "^3.5.2",
41
+ "broccoli": "^4.0.0",
44
42
  "broccoli-concat": "^4.2.5",
45
43
  "broccoli-config-loader": "^1.0.1",
46
44
  "broccoli-config-replace": "^1.1.2",
@@ -120,8 +118,10 @@
120
118
  "watch-detector": "^1.0.2",
121
119
  "workerpool": "^9.2.0",
122
120
  "yam": "^1.0.0",
123
- "@ember-tooling/classic-build-addon-blueprint": "6.9.0-beta.1",
124
- "@ember-tooling/classic-build-app-blueprint": "6.9.0-beta.1"
121
+ "@ember-tooling/blueprint-blueprint": "0.3.0",
122
+ "@ember-tooling/classic-build-addon-blueprint": "6.10.0-alpha.1",
123
+ "@ember-tooling/classic-build-app-blueprint": "6.10.0-alpha.1",
124
+ "@ember-tooling/blueprint-model": "0.5.0"
125
125
  },
126
126
  "devDependencies": {
127
127
  "broccoli-plugin": "^4.0.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-addon-blueprint",
3
- "version": "6.9.0-beta.1",
3
+ "version": "6.10.0-alpha.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,7 +11,7 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "^0.4.1",
14
+ "@ember-tooling/blueprint-model": "workspace:*",
15
15
  "chalk": "^4.1.2",
16
16
  "ember-cli-normalize-entity-name": "^1.0.0",
17
17
  "ember-cli-string-utils": "^1.1.0",
@@ -26,7 +26,7 @@
26
26
  "minor": "prerelease",
27
27
  "patch": "prerelease"
28
28
  },
29
- "semverIncrementTag": "beta",
30
- "publishTag": "beta"
29
+ "semverIncrementTag": "alpha",
30
+ "publishTag": "alpha"
31
31
  }
32
32
  }
@@ -28,8 +28,8 @@
28
28
  "test:ember": "ember test"
29
29
  },
30
30
  "devDependencies": {
31
- "@babel/core": "^7.28.4",
32
- "@babel/eslint-parser": "^7.28.4",
31
+ "@babel/core": "^7.28.5",
32
+ "@babel/eslint-parser": "^7.28.5",
33
33
  "@babel/plugin-proposal-decorators": "^7.28.0<% if (typescript && emberData) { %>",
34
34
  "@ember-data/adapter": "~5.7.0",
35
35
  "@ember-data/graph": "~5.7.0",
@@ -41,26 +41,26 @@
41
41
  "@ember-data/serializer": "~5.7.0",
42
42
  "@ember-data/store": "~5.7.0",
43
43
  "@warp-drive/ember": "~5.7.0<% } %>",
44
- "@ember/optional-features": "^2.2.0",
45
- "@ember/test-helpers": "^5.3.0<% if (embroider) { %>",
46
- "@embroider/compat": "^3.9.1",
47
- "@embroider/core": "^3.5.7<% } %>",
48
- "@embroider/macros": "^1.19.1<% if (embroider) { %>",
49
- "@embroider/webpack": "^4.1.1<% } %>",
50
- "@eslint/js": "^9.37.0",
44
+ "@ember/optional-features": "^2.3.0",
45
+ "@ember/test-helpers": "^5.4.1<% if (embroider) { %>",
46
+ "@embroider/compat": "^3.9.3",
47
+ "@embroider/core": "^3.5.9<% } %>",
48
+ "@embroider/macros": "^1.19.5<% if (embroider) { %>",
49
+ "@embroider/webpack": "^4.1.2<% } %>",
50
+ "@eslint/js": "^9.39.1",
51
51
  "@glimmer/component": "^2.0.0",
52
52
  "@glimmer/tracking": "^1.1.2<% if (typescript) { %>",
53
53
  "@glint/environment-ember-loose": "^1.5.2",
54
54
  "@glint/environment-ember-template-imports": "^1.5.2",
55
- "@glint/template": "^1.6.1",
56
- "@tsconfig/ember": "^3.0.11",
55
+ "@glint/template": "^1.7.3",
56
+ "@tsconfig/ember": "^3.0.12",
57
57
  "@types/qunit": "^2.19.13",
58
58
  "@types/rsvp": "^4.0.9<% if (emberData) {%>",
59
59
  "@warp-drive/core-types": "~5.7.0<% }} %>",
60
60
  "broccoli-asset-rev": "^3.0.0",
61
61
  "concurrently": "^9.2.1",
62
- "ember-auto-import": "^2.11.1",
63
- "ember-cli": "~6.9.0-beta.1",
62
+ "ember-auto-import": "^2.12.0",
63
+ "ember-cli": "~6.10.0-alpha.1",
64
64
  "ember-cli-app-version": "^7.0.0",
65
65
  "ember-cli-babel": "^8.2.0",
66
66
  "ember-cli-clean-css": "^3.0.0",
@@ -76,30 +76,30 @@
76
76
  "ember-page-title": "^9.0.3",
77
77
  "ember-qunit": "^9.0.4",
78
78
  "ember-resolver": "^13.1.1",
79
- "ember-source": "~6.9.0-beta.1",
79
+ "ember-source": "~6.10.0-alpha.1",
80
80
  "ember-template-imports": "^4.3.0",
81
81
  "ember-template-lint": "^6.1.0<% if (welcome) { %>",
82
82
  "ember-welcome-page": "^7.0.2<% } %>",
83
- "eslint": "^9.37.0",
83
+ "eslint": "^9.39.1",
84
84
  "eslint-config-prettier": "^9.1.2",
85
- "eslint-plugin-ember": "^12.7.4",
85
+ "eslint-plugin-ember": "^12.7.5",
86
86
  "eslint-plugin-n": "^17.23.1",
87
87
  "eslint-plugin-qunit": "^8.2.5",
88
88
  "globals": "^15.15.0",
89
89
  "loader.js": "^4.7.0",
90
- "prettier": "^3.6.2",
91
- "prettier-plugin-ember-template-tag": "^2.1.0",
92
- "qunit": "^2.24.2",
90
+ "prettier": "^3.7.4",
91
+ "prettier-plugin-ember-template-tag": "^2.1.2",
92
+ "qunit": "^2.24.3",
93
93
  "qunit-dom": "^3.5.0",
94
- "stylelint": "^16.25.0",
94
+ "stylelint": "^16.26.1",
95
95
  "stylelint-config-standard": "^36.0.1",
96
96
  "tracked-built-ins": "^3.4.0<% if (typescript) { %>",
97
97
  "typescript": "^5.9.3",
98
- "typescript-eslint": "^8.46.1<% } %>",
99
- "webpack": "^5.102.1"
98
+ "typescript-eslint": "^8.49.0<% } %>",
99
+ "webpack": "^5.103.0"
100
100
  },
101
101
  "engines": {
102
- "node": ">= 20.11"
102
+ "node": ">= 20.19"
103
103
  },
104
104
  "ember": {
105
105
  "edition": "octane"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-app-blueprint",
3
- "version": "6.9.0-beta.1",
3
+ "version": "6.10.0-alpha.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,7 +11,7 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "^0.4.1",
14
+ "@ember-tooling/blueprint-model": "workspace:*",
15
15
  "chalk": "^4.1.2",
16
16
  "ember-cli-string-utils": "^1.1.0"
17
17
  },
@@ -20,7 +20,7 @@
20
20
  "minor": "prerelease",
21
21
  "patch": "prerelease"
22
22
  },
23
- "semverIncrementTag": "beta",
24
- "publishTag": "beta"
23
+ "semverIncrementTag": "alpha",
24
+ "publishTag": "alpha"
25
25
  }
26
26
  }
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ description: ''
5
+
6
+ // locals(options) {
7
+ // // Return custom template variables here.
8
+ // return {
9
+ // foo: options.entity.options.foo
10
+ // };
11
+ // }
12
+
13
+ // afterInstall(options) {
14
+ // // Perform extra work here.
15
+ // }
16
+ };
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ description: 'Generates a blueprint and definition.',
5
+ };
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@ember-tooling/blueprint-blueprint",
3
+ "version": "0.3.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/ember-cli/ember-cli.git",
7
+ "directory": "packages/blueprint-blueprint"
8
+ },
9
+ "license": "MIT",
10
+ "keywords": [
11
+ "ember-blueprint"
12
+ ]
13
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@ember-tooling/blueprint-model",
3
+ "version": "0.5.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/ember-cli/ember-cli.git",
7
+ "directory": "packages/blueprint-model"
8
+ },
9
+ "license": "MIT",
10
+ "dependencies": {
11
+ "chalk": "^4.1.2",
12
+ "diff": "^7.0.0",
13
+ "isbinaryfile": "^5.0.4",
14
+ "lodash": "^4.17.21",
15
+ "promise.hash.helper": "^1.0.8",
16
+ "quick-temp": "^0.1.8",
17
+ "silent-error": "^1.1.1"
18
+ }
19
+ }
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ const path = require('path');
4
+
5
+ /**
6
+ * Derive a directory name from a package name.
7
+ * Takes scoped packages into account.
8
+ *
9
+ * @method directoryForPackageName
10
+ * @param {String} packageName
11
+ * @return {String} Derived directory name.
12
+ */
13
+ module.exports = function directoryForPackageName(packageName) {
14
+ let isScoped = packageName[0] === '@' && packageName.includes('/');
15
+
16
+ if (isScoped) {
17
+ let slashIndex = packageName.indexOf('/');
18
+ let scopeName = packageName.substring(1, slashIndex);
19
+ let packageNameWithoutScope = packageName.substring(slashIndex + 1);
20
+ let pathParts = process.cwd().split(path.sep);
21
+ let parentDirectoryContainsScopeName = pathParts.includes(scopeName);
22
+
23
+ if (parentDirectoryContainsScopeName) {
24
+ return packageNameWithoutScope;
25
+ } else {
26
+ return `${scopeName}-${packageNameWithoutScope}`;
27
+ }
28
+ } else {
29
+ return packageName;
30
+ }
31
+ };
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const util = require('util');
5
+ const jsdiff = require('diff');
6
+ const quickTemp = require('quick-temp');
7
+ const path = require('path');
8
+ const SilentError = require('silent-error');
9
+ const openEditor = require('./open-editor');
10
+ const hash = require('promise.hash.helper');
11
+
12
+ const readFile = util.promisify(fs.readFile);
13
+ const writeFile = util.promisify(fs.writeFile);
14
+
15
+ class EditFileDiff {
16
+ constructor(options) {
17
+ this.info = options.info;
18
+
19
+ quickTemp.makeOrRemake(this, 'tmpDifferenceDir');
20
+ }
21
+
22
+ edit() {
23
+ return hash({
24
+ input: this.info.render(),
25
+ output: readFile(this.info.outputPath),
26
+ })
27
+ .then(this.invokeEditor.bind(this))
28
+ .then(this.applyPatch.bind(this))
29
+ .finally(this.cleanUp.bind(this));
30
+ }
31
+
32
+ cleanUp() {
33
+ quickTemp.remove(this, 'tmpDifferenceDir');
34
+ }
35
+
36
+ applyPatch(resultHash) {
37
+ return hash({
38
+ diffString: readFile(resultHash.diffPath),
39
+ currentString: readFile(resultHash.outputPath),
40
+ }).then((result) => {
41
+ let appliedDiff = jsdiff.applyPatch(result.currentString.toString(), result.diffString.toString());
42
+
43
+ if (!appliedDiff) {
44
+ let message = 'Patch was not cleanly applied.';
45
+ this.info.ui.writeLine(`${message} Please choose another action.`);
46
+ throw new SilentError(message);
47
+ }
48
+
49
+ return writeFile(resultHash.outputPath, appliedDiff);
50
+ });
51
+ }
52
+
53
+ invokeEditor(result) {
54
+ let info = this.info;
55
+ let diff = jsdiff.createPatch(info.outputPath, result.output.toString(), result.input);
56
+ let diffPath = path.join(this.tmpDifferenceDir, 'currentDiff.diff');
57
+
58
+ return writeFile(diffPath, diff)
59
+ .then(() => openEditor(diffPath))
60
+ .then(() => ({ outputPath: info.outputPath, diffPath }));
61
+ }
62
+ }
63
+
64
+ module.exports = EditFileDiff;
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ const chalk = require('chalk');
4
+
5
+ /*
6
+ If you're here to remove the VITE experiment flag in favor of it being
7
+ permanently on, you can't do that until addressing
8
+ https://github.com/ember-cli/ember-cli/pull/10781#pullrequestreview-3230644293
9
+
10
+ A lot of test coverage would otherwise be lost, because valid tests are being
11
+ run only when the VITE experiment is off.
12
+ */
13
+ const availableExperiments = Object.freeze(['EMBROIDER', 'CLASSIC', 'VITE']);
14
+
15
+ const deprecatedExperiments = Object.freeze([]);
16
+ const enabledExperiments = Object.freeze(['VITE']);
17
+ const deprecatedExperimentsDeprecationsIssued = [];
18
+
19
+ function isExperimentEnabled(experimentName) {
20
+ if (!availableExperiments.includes(experimentName)) {
21
+ return false;
22
+ }
23
+
24
+ if (process.env.EMBER_CLI_ENABLE_ALL_EXPERIMENTS && deprecatedExperiments.includes(experimentName)) {
25
+ return false;
26
+ }
27
+
28
+ if (process.env.EMBER_CLI_ENABLE_ALL_EXPERIMENTS) {
29
+ return true;
30
+ }
31
+
32
+ if (process.env.EMBER_CLI_CLASSIC && experimentName === 'EMBROIDER') {
33
+ return false;
34
+ }
35
+
36
+ let experimentEnvironmentVariable = `EMBER_CLI_${experimentName}`;
37
+ let experimentValue = process.env[experimentEnvironmentVariable];
38
+
39
+ if (deprecatedExperiments.includes(experimentName)) {
40
+ let deprecationPreviouslyIssued = deprecatedExperimentsDeprecationsIssued.includes(experimentName);
41
+ let isSpecifiedByUser = experimentValue !== undefined;
42
+
43
+ if (!deprecationPreviouslyIssued && isSpecifiedByUser) {
44
+ console.warn(
45
+ chalk.yellow(`The ${experimentName} experiment in ember-cli has been deprecated and will be removed.`)
46
+ );
47
+ deprecatedExperimentsDeprecationsIssued.push(experimentName);
48
+ }
49
+ }
50
+
51
+ if (enabledExperiments.includes(experimentName)) {
52
+ return experimentValue !== 'false';
53
+ } else {
54
+ return experimentValue !== undefined && experimentValue !== 'false';
55
+ }
56
+ }
57
+
58
+ module.exports = {
59
+ isExperimentEnabled,
60
+
61
+ // exported for testing purposes
62
+ _deprecatedExperimentsDeprecationsIssued: deprecatedExperimentsDeprecationsIssued,
63
+ };
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const util = require('util');
5
+ const chalk = require('chalk');
6
+ const EditFileDiff = require('./edit-file-diff');
7
+ const EOL = require('os').EOL;
8
+ const rxEOL = new RegExp(EOL, 'g');
9
+ const isBinaryFile = require('isbinaryfile').isBinaryFileSync;
10
+ const hash = require('promise.hash.helper');
11
+ const canEdit = require('./open-editor').canEdit;
12
+ const processTemplate = require('./process-template');
13
+
14
+ const readFile = util.promisify(fs.readFile);
15
+ const lstat = util.promisify(fs.stat);
16
+
17
+ function diffHighlight(line) {
18
+ if (line[0] === '+') {
19
+ return chalk.green(line);
20
+ } else if (line[0] === '-') {
21
+ return chalk.red(line);
22
+ } else if (/^@@/.test(line)) {
23
+ return chalk.cyan(line);
24
+ } else {
25
+ return line;
26
+ }
27
+ }
28
+
29
+ const NOOP = (_) => _;
30
+ class FileInfo {
31
+ constructor(options) {
32
+ this.action = options.action;
33
+ this.outputBasePath = options.outputBasePath;
34
+ this.outputPath = options.outputPath;
35
+ this.displayPath = options.displayPath;
36
+ this.inputPath = options.inputPath;
37
+ this.templateVariables = options.templateVariables;
38
+ this.replacer = options.replacer || NOOP;
39
+ this.ui = options.ui;
40
+ }
41
+
42
+ confirmOverwrite(path) {
43
+ let promptOptions = {
44
+ type: 'expand',
45
+ name: 'answer',
46
+ default: false,
47
+ message: `${chalk.red('Overwrite')} ${path}?`,
48
+ choices: [
49
+ { key: 'y', name: 'Yes, overwrite', value: 'overwrite' },
50
+ { key: 'n', name: 'No, skip', value: 'skip' },
51
+ ],
52
+ };
53
+
54
+ let outputPathIsFile = false;
55
+ try {
56
+ outputPathIsFile = fs.statSync(this.outputPath).isFile();
57
+ } catch (err) {
58
+ /* ignore */
59
+ }
60
+
61
+ let canDiff = !isBinaryFile(this.inputPath) && (!outputPathIsFile || !isBinaryFile(this.outputPath));
62
+
63
+ if (canDiff) {
64
+ promptOptions.choices.push({ key: 'd', name: 'Diff', value: 'diff' });
65
+
66
+ if (canEdit()) {
67
+ promptOptions.choices.push({ key: 'e', name: 'Edit', value: 'edit' });
68
+ }
69
+ }
70
+
71
+ return this.ui.prompt(promptOptions).then((response) => response.answer);
72
+ }
73
+
74
+ displayDiff() {
75
+ let info = this,
76
+ jsdiff = require('diff');
77
+ return hash({
78
+ input: this.render(),
79
+ output: readFile(info.outputPath),
80
+ }).then((result) => {
81
+ let diff = jsdiff.createPatch(
82
+ info.outputPath,
83
+ result.output.toString().replace(rxEOL, '\n'),
84
+ result.input.replace(rxEOL, '\n')
85
+ );
86
+ let lines = diff.split('\n');
87
+
88
+ for (let i = 0; i < lines.length; i++) {
89
+ info.ui.write(diffHighlight(lines[i] + EOL));
90
+ }
91
+ });
92
+ }
93
+
94
+ async render() {
95
+ if (!this.rendered) {
96
+ let result = await this._render();
97
+ this.rendered = this.replacer(result, this);
98
+ }
99
+
100
+ return this.rendered;
101
+ }
102
+
103
+ _render() {
104
+ let path = this.inputPath;
105
+ let context = this.templateVariables;
106
+
107
+ return readFile(path).then((content) =>
108
+ lstat(path).then((fileStat) => {
109
+ if (isBinaryFile(content, fileStat.size)) {
110
+ return content;
111
+ } else {
112
+ try {
113
+ return processTemplate(content.toString(), context);
114
+ } catch (err) {
115
+ err.message += ` (Error in blueprint template: ${path})`;
116
+ throw err;
117
+ }
118
+ }
119
+ })
120
+ );
121
+ }
122
+
123
+ checkForConflict() {
124
+ return this.render().then((input) => {
125
+ input = input.toString().replace(rxEOL, '\n');
126
+
127
+ return readFile(this.outputPath)
128
+ .then((output) => {
129
+ output = output.toString().replace(rxEOL, '\n');
130
+
131
+ return input === output ? 'identical' : 'confirm';
132
+ })
133
+ .catch((e) => {
134
+ if (e.code === 'ENOENT') {
135
+ return 'none';
136
+ }
137
+
138
+ throw e;
139
+ });
140
+ });
141
+ }
142
+
143
+ confirmOverwriteTask() {
144
+ let info = this;
145
+
146
+ return function () {
147
+ function doConfirm() {
148
+ return info.confirmOverwrite(info.displayPath).then((action) => {
149
+ if (action === 'diff') {
150
+ return info.displayDiff().then(doConfirm);
151
+ } else if (action === 'edit') {
152
+ let editFileDiff = new EditFileDiff({ info });
153
+ return editFileDiff
154
+ .edit()
155
+ .then(() => (info.action = action))
156
+ .catch(() => doConfirm())
157
+ .then(() => info);
158
+ } else {
159
+ info.action = action;
160
+ return info;
161
+ }
162
+ });
163
+ }
164
+
165
+ return doConfirm();
166
+ };
167
+ }
168
+ }
169
+
170
+ module.exports = FileInfo;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ const spawn = require('child_process').spawn;
4
+
5
+ function openEditor(file) {
6
+ if (!openEditor.canEdit()) {
7
+ throw new Error('EDITOR environment variable is not set');
8
+ }
9
+
10
+ if (!file) {
11
+ throw new Error('No `file` option provided');
12
+ }
13
+
14
+ let editorArgs = openEditor._env().EDITOR.split(' ');
15
+ let editor = editorArgs.shift();
16
+ const args = [file].concat(editorArgs);
17
+ let editProcess = openEditor._spawn(editor, args, { stdio: 'inherit' });
18
+
19
+ return new Promise((resolve, reject) => {
20
+ editProcess.on('close', (code) => {
21
+ if (code === 0) {
22
+ resolve();
23
+ } else {
24
+ reject(
25
+ new Error(`Spawn('${editor}', [${args.join(',')}]) exited with a non zero error status code: '${code}'`)
26
+ );
27
+ }
28
+ });
29
+ });
30
+ }
31
+
32
+ openEditor.canEdit = function () {
33
+ return openEditor._env().EDITOR !== undefined;
34
+ };
35
+
36
+ openEditor._env = function () {
37
+ return process.env;
38
+ };
39
+
40
+ openEditor._spawn = function () {
41
+ return spawn.apply(this, arguments);
42
+ };
43
+
44
+ module.exports = openEditor;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ function supportEmoji() {
4
+ const hasEmojiTurnedOff = process.argv.indexOf('--no-emoji') > -1;
5
+ return process.stdout.isTTY && process.platform !== 'win32' && !hasEmojiTurnedOff;
6
+ }
7
+
8
+ const areEmojiSupported = supportEmoji();
9
+
10
+ module.exports = function prependEmoji(emoji, msg) {
11
+ return areEmojiSupported ? `${emoji} ${msg}` : msg;
12
+ };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ module.exports = function processTemplate(content, context) {
4
+ let options = {
5
+ evaluate: /<%([\s\S]+?)%>/g,
6
+ interpolate: /<%=([\s\S]+?)%>/g,
7
+ escape: /<%-([\s\S]+?)%>/g,
8
+ };
9
+ return require('lodash/template')(content, options)(context);
10
+ };
@@ -3,6 +3,10 @@
3
3
  const symlinkOrCopySync = require('symlink-or-copy').sync;
4
4
  const path = require('path');
5
5
  const fs = require('fs-extra');
6
+ // eslint-disable-next-line n/no-unpublished-require
7
+ const tmp = require('tmp-promise');
8
+ const execa = require('execa');
9
+
6
10
  const runCommand = require('./run-command');
7
11
  const hasGlobalYarn = require('../helpers/has-global-yarn');
8
12
 
@@ -59,6 +63,13 @@ function applyCommand(command, name /*, ...flags*/) {
59
63
  * @return {Promise} The result of the running the command
60
64
  */
61
65
  function createTestTargets(projectName, options) {
66
+ console.warn(`**********************************************
67
+ ** DO NOT USE createTestTargets ANY MORE! **
68
+ **********************************************
69
+
70
+ Use createAndInstallTestTargets() which doesn't use a complicated packageCache system
71
+ and relies on the pnpm store for caching instead.`);
72
+
62
73
  let outputDir = quickTemp.makeOrReuse(dirs, projectName);
63
74
 
64
75
  options = options || {};
@@ -115,7 +126,46 @@ function cleanupRun(projectName) {
115
126
  quickTemp.remove(dirs, `${projectName}-clone`);
116
127
  }
117
128
 
129
+ /**
130
+ *
131
+ * @param {string} projectName
132
+ * @param {string} options.command defaults to new
133
+ * @returns {Promise<{ result: string, path: string, cleanup: () => void }>} an object containing command result, path, and a cleanup function;
134
+ */
135
+ async function createAndInstallTestTargets(projectName, options) {
136
+ let outputDir = await tmp.dir({ unsafeCleanup: true });
137
+
138
+ let command = options?.command ?? 'new';
139
+
140
+ let result = await applyCommand(command, projectName, '--skip-npm', `--directory=${outputDir.path}`);
141
+
142
+ await execa('pnpm', ['install', '--prefer-offline'], {
143
+ preferLocal: true,
144
+ cwd: outputDir.path,
145
+ });
146
+
147
+ for (let pkg of [
148
+ '.',
149
+ 'packages/blueprint-model',
150
+ 'packages/blueprint-blueprint',
151
+ 'packages/app-blueprint',
152
+ 'packages/addon-blueprint',
153
+ ]) {
154
+ await execa('pnpm', ['link', path.join(__dirname, `../../${pkg}`)], {
155
+ preferLocal: true,
156
+ cwd: outputDir.path,
157
+ });
158
+ }
159
+
160
+ return {
161
+ result,
162
+ cleanup: outputDir.cleanup,
163
+ path: outputDir.path,
164
+ };
165
+ }
166
+
118
167
  module.exports = {
168
+ createAndInstallTestTargets,
119
169
  createTestTargets,
120
170
  linkDependencies,
121
171
  teardownTestTargets,