UNPKG

110 kBMarkdownView Raw
1# @backstage/cli
2
3## 0.22.7
4
5### Patch Changes
6
7- 473db605a4f: Enable strict config checking during `backstage-cli config:check` with the new `--strict` option which will surface schema errors.
8- d548886872d: Deprecated the use of React 16
9- Updated dependencies
10 - @backstage/config-loader@1.3.0
11 - @backstage/cli-common@0.1.12
12 - @backstage/cli-node@0.1.0
13 - @backstage/config@1.0.7
14 - @backstage/errors@1.1.5
15 - @backstage/eslint-plugin@0.1.3
16 - @backstage/release-manifests@0.0.9
17 - @backstage/types@1.0.2
18
19## 0.22.7-next.0
20
21### Patch Changes
22
23- Updated dependencies
24 - @backstage/config-loader@1.3.0-next.0
25 - @backstage/cli-common@0.1.12
26 - @backstage/cli-node@0.1.0
27 - @backstage/config@1.0.7
28 - @backstage/errors@1.1.5
29 - @backstage/eslint-plugin@0.1.3
30 - @backstage/release-manifests@0.0.9
31 - @backstage/types@1.0.2
32
33## 0.22.6
34
35### Patch Changes
36
37- 24432ae52fb: Fix the build for packages with multiple entry points to avoid duplicated modules.
38- 8075b67e64c: When building a backend package with dependencies any `--config <path>` options will now be forwarded to any dependent app package builds, unless the build script in the app package already contains a `--config` option.
39- 79e91d4c30a: Support importing `.md` files in build loader
40- 3156b0d85dc: Internal refactor to move many internal utilities to the new `@backstage/cli-node` package.
41- b9839d7135c: Fixed backend start command on Windows by removing the use of platform dependent path joins.
42- 1e4f5e91b8e: Bump `zod` and `zod-to-json-schema` dependencies.
43- 29ba8267d69: Updated dependency `@material-ui/lab` to `4.0.0-alpha.61`.
44- 9bbb00d5b49: Updated dependency `@swc/helpers` to `^0.5.0`.
45- b588ab73972: Ensure that the `package prepack` command and backend bundling uses posix paths in `package.json` on all OSes.
46- c07c3b7364b: Add `onboard` command. While still in development, this command aims to guide users in setting up their Backstage App.
47- e0c6e8b9c3c: Update peer dependencies
48- Updated dependencies
49 - @backstage/cli-node@0.1.0
50 - @backstage/config-loader@1.2.0
51 - @backstage/eslint-plugin@0.1.3
52 - @backstage/cli-common@0.1.12
53 - @backstage/config@1.0.7
54 - @backstage/errors@1.1.5
55 - @backstage/release-manifests@0.0.9
56 - @backstage/types@1.0.2
57
58## 0.22.6-next.3
59
60### Patch Changes
61
62- 3156b0d85dc: Internal refactor to move many internal utilities to the new `@backstage/cli-node` package.
63- 9bbb00d5b49: Updated dependency `@swc/helpers` to `^0.5.0`.
64- Updated dependencies
65 - @backstage/cli-node@0.1.0-next.0
66 - @backstage/cli-common@0.1.12
67 - @backstage/config@1.0.7
68 - @backstage/config-loader@1.1.9
69 - @backstage/errors@1.1.5
70 - @backstage/eslint-plugin@0.1.3-next.0
71 - @backstage/release-manifests@0.0.9
72 - @backstage/types@1.0.2
73
74## 0.22.6-next.2
75
76### Patch Changes
77
78- 8075b67e64c: When building a backend package with dependencies any `--config <path>` options will now be forwarded to any dependent app package builds, unless the build script in the app package already contains a `--config` option.
79- Updated dependencies
80 - @backstage/cli-common@0.1.12
81 - @backstage/config@1.0.7
82 - @backstage/config-loader@1.1.9
83 - @backstage/errors@1.1.5
84 - @backstage/eslint-plugin@0.1.3-next.0
85 - @backstage/release-manifests@0.0.9
86 - @backstage/types@1.0.2
87
88## 0.22.6-next.1
89
90### Patch Changes
91
92- 24432ae52fb: Fix the build for packages with multiple entry points to avoid duplicated modules.
93- 79e91d4c30a: Support importing `.md` files in build loader
94- 1e4f5e91b8e: Bump `zod` and `zod-to-json-schema` dependencies.
95- 29ba8267d69: Updated dependency `@material-ui/lab` to `4.0.0-alpha.61`.
96- b588ab73972: Ensure that the `package prepack` command and backend bundling uses posix paths in `package.json` on all OSes.
97- e0c6e8b9c3c: Update peer dependencies
98- Updated dependencies
99 - @backstage/cli-common@0.1.12
100 - @backstage/config@1.0.7
101 - @backstage/config-loader@1.1.9
102 - @backstage/errors@1.1.5
103 - @backstage/eslint-plugin@0.1.3-next.0
104 - @backstage/release-manifests@0.0.9
105 - @backstage/types@1.0.2
106
107## 0.22.6-next.0
108
109### Patch Changes
110
111- b9839d7135c: Fixed backend start command on Windows by removing the use of platform dependent path joins.
112- c07c3b7364b: Add `onboard` command. While still in development, this command aims to guide users in setting up their Backstage App.
113- Updated dependencies
114 - @backstage/eslint-plugin@0.1.3-next.0
115 - @backstage/config@1.0.7
116 - @backstage/release-manifests@0.0.9
117 - @backstage/cli-common@0.1.12
118 - @backstage/config-loader@1.1.9
119 - @backstage/errors@1.1.5
120 - @backstage/types@1.0.2
121
122## 0.22.4
123
124### Patch Changes
125
126- 1ad8d885d30: Fixed a bug where additional backend package entry points where not properly marked as internal during local development.
127- 2011b86052c: Added templates for new plugin Web and Node.js libraries.
128- 867f4752ca1: Updated the ESLint plugin configuration that is enabled through `yarn start --check` to only pick up valid source files.
129- b4cd145b574: Added a new `migrate package-exports` command that synchronizes package exports fields in all `package.json`s.
130- 9bf50a36674: Bumped the `msw` version in templates to 1.0.0
131- 8bf24946c66: Adjust express dependencies to be the same as the rest of the project
132- 17271841de8: Updated frontend plugin template to use some more recent features
133- 4b4998466b4: Updated dependency `del` to `^7.0.0`.
134- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
135- a11b9a23f5a: Keep custom exports entry points in package.json
136- 482dae5de1c: Updated link to docs.
137- Updated dependencies
138 - @backstage/eslint-plugin@0.1.2
139 - @backstage/errors@1.1.5
140 - @backstage/config-loader@1.1.9
141 - @backstage/release-manifests@0.0.9
142 - @backstage/cli-common@0.1.12
143 - @backstage/config@1.0.7
144 - @backstage/types@1.0.2
145
146## 0.22.4-next.1
147
148### Patch Changes
149
150- 1ad8d885d30: Fixed a bug where additional backend package entry points where not properly marked as internal during local development.
151- 867f4752ca1: Updated the ESLint plugin configuration that is enabled through `yarn start --check` to only pick up valid source files.
152- 9bf50a36674: Bumped the `msw` version in templates to 1.0.0
153- 4b4998466b4: Updated dependency `del` to `^7.0.0`.
154- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
155- a11b9a23f5a: Keep custom exports entry points in package.json
156- 482dae5de1c: Updated link to docs.
157- Updated dependencies
158 - @backstage/errors@1.1.5-next.0
159 - @backstage/config-loader@1.1.9-next.0
160 - @backstage/release-manifests@0.0.9-next.0
161 - @backstage/cli-common@0.1.12-next.0
162 - @backstage/config@1.0.7-next.0
163 - @backstage/eslint-plugin@0.1.2-next.0
164 - @backstage/types@1.0.2
165
166## 0.22.4-next.0
167
168### Patch Changes
169
170- b4cd145b57: Added a new `migrate package-exports` command that synchronizes package exports fields in all `package.json`s.
171- 8bf24946c6: Adjust express dependencies to be the same as the rest of the project
172- 17271841de: Updated frontend plugin template to use some more recent features
173- Updated dependencies
174 - @backstage/eslint-plugin@0.1.2-next.0
175 - @backstage/cli-common@0.1.11
176 - @backstage/config@1.0.6
177 - @backstage/config-loader@1.1.8
178 - @backstage/errors@1.1.4
179 - @backstage/release-manifests@0.0.8
180 - @backstage/types@1.0.2
181
182## 0.22.2
183
184### Patch Changes
185
186- 561df21ea3: The `backstage-cli repo test` command now sets a default Jest `--workerIdleMemoryLimit` of 1GB. If needed to ensure that tests are not run in band, `--maxWorkers=2` is set as well. This is the recommended workaround for dealing with Jest workers leaking memory and eventually hitting the heap limit.
187- 2815981057: Show module name causing error during build
188- dd8a9afe66: Replaced several monorepo lint rules with new rules from `@backstage/eslint-plugin`. See the [README](https://github.com/import-js/eslint-plugin-import/blob/main/packages/eslint-plugin/README.md) for a full list of rules.
189- a9c50af76b: Fixed Webpack loader patterns so that they properly match the file suffix only.
190- 66cf22fdc4: Updated dependency `esbuild` to `^0.17.0`.
191- 6d3abfded1: Switch to inline source maps for test transpilation, simplifying editor setups.
192- 90616df9a8: Added an experimental mode for the `package start` command for backend packages. Enabled by setting `EXPERIMENTAL_BACKEND_START`.
193- Updated dependencies
194 - @backstage/eslint-plugin@0.1.0
195 - @backstage/cli-common@0.1.11
196 - @backstage/config@1.0.6
197 - @backstage/config-loader@1.1.8
198 - @backstage/errors@1.1.4
199 - @backstage/release-manifests@0.0.8
200 - @backstage/types@1.0.2
201
202## 0.22.2-next.1
203
204### Patch Changes
205
206- dd8a9afe66: Replaced several monorepo lint rules with new rules from `@backstage/eslint-plugin`. See the [README](https://github.com/import-js/eslint-plugin-import/blob/main/packages/eslint-plugin/README.md) for a full list of rules.
207- 90616df9a8: Added an experimental mode for the `package start` command for backend packages. Enabled by setting `EXPERIMENTAL_BACKEND_START`.
208- Updated dependencies
209 - @backstage/eslint-plugin@0.1.0-next.0
210 - @backstage/cli-common@0.1.11
211 - @backstage/config@1.0.6
212 - @backstage/config-loader@1.1.8
213 - @backstage/errors@1.1.4
214 - @backstage/release-manifests@0.0.8
215 - @backstage/types@1.0.2
216
217## 0.22.2-next.0
218
219### Patch Changes
220
221- 561df21ea3: The `backstage-cli repo test` command now sets a default Jest `--workerIdleMemoryLimit` of 1GB. If needed to ensure that tests are not run in band, `--maxWorkers=2` is set as well. This is the recommended workaround for dealing with Jest workers leaking memory and eventually hitting the heap limit.
222- 2815981057: Show module name causing error during build
223- 66cf22fdc4: Updated dependency `esbuild` to `^0.17.0`.
224- 6d3abfded1: Switch to inline source maps for test transpilation, simplifying editor setups.
225- Updated dependencies
226 - @backstage/cli-common@0.1.11
227 - @backstage/config@1.0.6
228 - @backstage/config-loader@1.1.8
229 - @backstage/errors@1.1.4
230 - @backstage/release-manifests@0.0.8
231 - @backstage/types@1.0.2
232
233## 0.22.1
234
235### Patch Changes
236
237- db2e137744: Removed unnecessary usage of `ThemeProvider` from the `ExampleComponent` test in the plugin template.
238- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3.
239- 2b435be4cf: Updated backend plugin ID during creation to match user-entered input.
240- 4b572126f1: Add experimental environment variable to enable caching for production builds.
241- 7b407b303b: Slightly improve readability of "base URL conflict" error handling code
242- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`.
243- d06a7890c6: Removed unused package `type-fest`
244- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since <ref>` flag even if you have `yarn.lock` changes.
245- e1b71e142e: Workspace ranges are no longer considered invalid by version commands.
246- Updated dependencies
247 - @backstage/config@1.0.6
248 - @backstage/cli-common@0.1.11
249 - @backstage/config-loader@1.1.8
250 - @backstage/errors@1.1.4
251 - @backstage/release-manifests@0.0.8
252 - @backstage/types@1.0.2
253
254## 0.22.1-next.2
255
256### Patch Changes
257
258- 7b407b303b: Slightly improve readability of "base URL conflict" error handling code
259- d06a7890c6: Removed unused package `type-fest`
260- Updated dependencies
261 - @backstage/cli-common@0.1.11
262 - @backstage/config@1.0.6-next.0
263 - @backstage/config-loader@1.1.8-next.0
264 - @backstage/errors@1.1.4
265 - @backstage/release-manifests@0.0.8
266 - @backstage/types@1.0.2
267
268## 0.22.1-next.1
269
270### Patch Changes
271
272- db2e137744: Removed unnecessary usage of `ThemeProvider` from the `ExampleComponent` test in the plugin template.
273- 4b572126f1: Add experimental environment variable to enable caching for production builds.
274- Updated dependencies
275 - @backstage/config@1.0.6-next.0
276 - @backstage/cli-common@0.1.11
277 - @backstage/config-loader@1.1.8-next.0
278 - @backstage/errors@1.1.4
279 - @backstage/release-manifests@0.0.8
280 - @backstage/types@1.0.2
281
282## 0.22.1-next.0
283
284### Patch Changes
285
286- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3.
287- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`.
288- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since <ref>` flag even if you have `yarn.lock` changes.
289- e1b71e142e: Workspace ranges are no longer considered invalid by version commands.
290- Updated dependencies
291 - @backstage/cli-common@0.1.11
292 - @backstage/config@1.0.5
293 - @backstage/config-loader@1.1.7
294 - @backstage/errors@1.1.4
295 - @backstage/release-manifests@0.0.8
296 - @backstage/types@1.0.2
297
298## 0.22.0
299
300### Minor Changes
301
302- 736f893f72: The Jest configuration that was previously enabled with `BACKSTAGE_NEXT_TESTS` is now enabled by default. To revert to the old configuration you can now instead set `BACKSTAGE_OLD_TESTS`.
303
304 This new configuration uses the `babel` coverage provider rather than `v8`. It used to be that `v8` worked better when using Sucrase for transpilation, but now that we have switched to SWC, `babel` seems to work better. In addition, the new configuration also enables source maps by default, as they no longer have a negative impact on code coverage accuracy, and it also enables a modified Jest runtime with additional caching of script objects.
305
306### Patch Changes
307
308- 91d050c140: changed tests created by create-plugin to follow eslint-rules best practices particularly testing-library/prefer-screen-queries and testing-library/render-result-naming-convention
309- 43b2b9c791: Removed the unused dependency on `@sucrase/jest-plugin`.
310- dd721148b5: Updated Jest coverage configuration to only apply either in the root project or package configuration, depending on whether repo or package tests are run.
311- 5850ef9b84: Fix webpack dev server issue where it wasn't serving `index.html` from correct endpoint on subsequent requests.
312- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries
313- 459a3457e1: Bump `msw` version in default plugin/app templates
314- c27eabef6b: Adds new web-library package option when generating a new plugin
315- 8fffe42708: JSX and React Fast Refresh transforms are no longer enabled when bundling backend code.
316- 309f2daca4: Updated dependency `esbuild` to `^0.16.0`.
317- ee14bab716: Updated dependency `minimatch` to `5.1.1` and switch version range to `^`.
318- 3280711113: Updated dependency `msw` to `^0.49.0`.
319- ed0cf59c59: Updated dependency `@rollup/plugin-commonjs` to `^23.0.0`.
320- 16b7c2fccd: Updated dependency `@rollup/plugin-yaml` to `^4.0.0`.
321- 086c0bbb45: Updated dependency `@rollup/plugin-json` to `^5.0.0`.
322- 8015ff1258: Tweaked wording to use inclusive terminology
323- d9d9a7a134: Removed all copyright notices from package templates.
324- 8e0358e18d: Added `--skip-install` parameter to `backstage-cli versions:bump`
325- Updated dependencies
326 - @backstage/errors@1.1.4
327 - @backstage/config-loader@1.1.7
328 - @backstage/release-manifests@0.0.8
329 - @backstage/types@1.0.2
330 - @backstage/cli-common@0.1.11
331 - @backstage/config@1.0.5
332
333## 0.22.0-next.4
334
335### Minor Changes
336
337- 736f893f72: The Jest configuration that was previously enabled with `BACKSTAGE_NEXT_TESTS` is now enabled by default. To revert to the old configuration you can now instead set `BACKSTAGE_OLD_TESTS`.
338
339 This new configuration uses the `babel` coverage provider rather than `v8`. It used to be that `v8` worked better when using Sucrase for transpilation, but now that we have switched to SWC, `babel` seems to work better. In addition, the new configuration also enables source maps by default, as they no longer have a negative impact on code coverage accuracy, and it also enables a modified Jest runtime with additional caching of script objects.
340
341### Patch Changes
342
343- dd721148b5: Updated Jest coverage configuration to only apply either in the root project or package configuration, depending on whether repo or package tests are run.
344- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries
345- c27eabef6b: Adds new web-library package option when generating a new plugin
346- 309f2daca4: Updated dependency `esbuild` to `^0.16.0`.
347- d9d9a7a134: Removed all copyright notices from package templates.
348- Updated dependencies
349 - @backstage/cli-common@0.1.11-next.0
350 - @backstage/config@1.0.5-next.1
351 - @backstage/config-loader@1.1.7-next.2
352 - @backstage/errors@1.1.4-next.1
353 - @backstage/release-manifests@0.0.8-next.0
354 - @backstage/types@1.0.2-next.1
355
356## 0.21.2-next.3
357
358### Patch Changes
359
360- 43b2b9c791: Removed the unused dependency on `@sucrase/jest-plugin`.
361- Updated dependencies
362 - @backstage/cli-common@0.1.11-next.0
363 - @backstage/config@1.0.5-next.1
364 - @backstage/config-loader@1.1.7-next.2
365 - @backstage/errors@1.1.4-next.1
366 - @backstage/release-manifests@0.0.8-next.0
367 - @backstage/types@1.0.2-next.1
368
369## 0.21.2-next.2
370
371### Patch Changes
372
373- 5850ef9b84: Fix webpack dev server issue where it wasn't serving `index.html` from correct endpoint on subsequent requests.
374- ee14bab716: Updated dependency `minimatch` to `5.1.1` and switch version range to `^`.
375- ed0cf59c59: Updated dependency `@rollup/plugin-commonjs` to `^23.0.0`.
376- 16b7c2fccd: Updated dependency `@rollup/plugin-yaml` to `^4.0.0`.
377- 086c0bbb45: Updated dependency `@rollup/plugin-json` to `^5.0.0`.
378- 8015ff1258: Tweaked wording to use inclusive terminology
379- Updated dependencies
380 - @backstage/cli-common@0.1.11-next.0
381 - @backstage/config@1.0.5-next.1
382 - @backstage/config-loader@1.1.7-next.2
383 - @backstage/errors@1.1.4-next.1
384 - @backstage/release-manifests@0.0.8-next.0
385 - @backstage/types@1.0.2-next.1
386
387## 0.21.2-next.1
388
389### Patch Changes
390
391- 8fffe42708: JSX and React Fast Refresh transforms are no longer enabled when bundling backend code.
392- Updated dependencies
393 - @backstage/types@1.0.2-next.1
394 - @backstage/config-loader@1.1.7-next.1
395 - @backstage/config@1.0.5-next.1
396 - @backstage/release-manifests@0.0.8-next.0
397 - @backstage/cli-common@0.1.10
398 - @backstage/errors@1.1.4-next.1
399
400## 0.21.2-next.0
401
402### Patch Changes
403
404- 91d050c140: changed tests created by create-plugin to follow eslint-rules best practices particularly testing-library/prefer-screen-queries and testing-library/render-result-naming-convention
405- 459a3457e1: Bump `msw` version in default plugin/app templates
406- 3280711113: Updated dependency `msw` to `^0.49.0`.
407- Updated dependencies
408 - @backstage/config-loader@1.1.7-next.0
409 - @backstage/release-manifests@0.0.8-next.0
410 - @backstage/types@1.0.2-next.0
411 - @backstage/cli-common@0.1.10
412 - @backstage/config@1.0.5-next.0
413 - @backstage/errors@1.1.4-next.0
414
415## 0.21.0
416
417### Minor Changes
418
419- 7539b36748: Added a new ESLint rule that restricts imports of Link from @material-ui
420
421 The rule can be can be overridden in the following way:
422
423 ```diff
424 module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, {
425 + restrictedImports: [
426 + { name: '@material-ui/core', importNames: [] },
427 + { name: '@material-ui/core/Link', importNames: [] },
428 + ],
429 });
430 ```
431
432- 384eaa2307: Switched `tsconfig.json` to target and support `ES2021`, in line with the bump to Node.js 16 & 18.
433
434### Patch Changes
435
436- e52d6ad861: Updated the `backstage-cli` so that the `list-deprecations` command is visible and also removed the "[EXPERIMENTAL]" tag.
437- 88f99b8b13: Bumped `tar` dependency to `^6.1.12` in order to ensure Node.js v18 compatibility.
438- df21bbd4ad: Removed googleAnalyticsTrackingId configSchema.
439- 286d474675: Minor update to the `index.html` template that updates the comment at the end to be more accurate.
440- 4c16213e7d: The built-in Jest configuration now always uses the Jest environments that are bundled with the CLI by default. This avoids a situation where Jest potentially picks up an incompatible version of the environment package from a different dependency in the project.
441- 4091c73e68: Updated `@swc/core` to version 1.3.9 which fixes a `.tsx` parser bug
442- 969a8444ea: Updated dependency `esbuild` to `^0.15.0`.
443- 9c767e8f45: Updated dependency `@svgr/plugin-jsx` to `6.5.x`.
444 Updated dependency `@svgr/plugin-svgo` to `6.5.x`.
445 Updated dependency `@svgr/rollup` to `6.5.x`.
446 Updated dependency `@svgr/webpack` to `6.5.x`.
447- Updated dependencies
448 - @backstage/release-manifests@0.0.7
449 - @backstage/types@1.0.1
450 - @backstage/cli-common@0.1.10
451 - @backstage/config@1.0.4
452 - @backstage/config-loader@1.1.6
453 - @backstage/errors@1.1.3
454
455## 0.21.0-next.1
456
457### Minor Changes
458
459- 384eaa2307: Switched `tsconfig.json` to target and support `ES2021`, in line with the bump to Node.js 16 & 18.
460
461### Patch Changes
462
463- 88f99b8b13: Bumped `tar` dependency to `^6.1.12` in order to ensure Node.js v18 compatibility.
464- 969a8444ea: Updated dependency `esbuild` to `^0.15.0`.
465- Updated dependencies
466 - @backstage/release-manifests@0.0.7-next.0
467 - @backstage/cli-common@0.1.10
468 - @backstage/config@1.0.4-next.0
469 - @backstage/config-loader@1.1.6-next.0
470 - @backstage/errors@1.1.3-next.0
471 - @backstage/types@1.0.1-next.0
472
473## 0.21.0-next.0
474
475### Minor Changes
476
477- 7539b36748: Added a new ESLint rule that restricts imports of Link from @material-ui
478
479 The rule can be can be overridden in the following way:
480
481 ```diff
482 module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, {
483 + restrictedImports: [
484 + { name: '@material-ui/core', importNames: [] },
485 + { name: '@material-ui/core/Link', importNames: [] },
486 + ],
487 });
488 ```
489
490### Patch Changes
491
492- 4091c73e68: Updated `@swc/core` to version 1.3.9 which fixes a `.tsx` parser bug
493- 9c767e8f45: Updated dependency `@svgr/plugin-jsx` to `6.5.x`.
494 Updated dependency `@svgr/plugin-svgo` to `6.5.x`.
495 Updated dependency `@svgr/rollup` to `6.5.x`.
496 Updated dependency `@svgr/webpack` to `6.5.x`.
497- Updated dependencies
498 - @backstage/types@1.0.1-next.0
499 - @backstage/cli-common@0.1.10
500 - @backstage/config@1.0.4-next.0
501 - @backstage/config-loader@1.1.6-next.0
502 - @backstage/errors@1.1.3-next.0
503 - @backstage/release-manifests@0.0.6
504
505## 0.20.0
506
507### Minor Changes
508
509- f368ad7279: **BREAKING**: Bumped `jest`, `jest-runtime`, and `jest-environment-jsdom` to v29. This is up from v27, so check out both the [v28](https://jestjs.io/docs/28.x/upgrading-to-jest28) and [v29](https://jestjs.io/docs/upgrading-to-jest29) (later [here](https://jestjs.io/docs/29.x/upgrading-to-jest29)) migration guides.
510
511 Particular changes that where encountered in the main Backstage repo are:
512
513 - The updated snapshot format.
514 - `jest.useFakeTimers('legacy')` is now `jest.useFakeTimers({ legacyFakeTimers: true })`.
515 - Error objects collected by `withLogCollector` from `@backstage/test-utils` are now objects with a `detail` property rather than a string.
516
517### Patch Changes
518
519- 78d5eb299e: Tweak the Jest Caching loader to only operate when in `watch` mode
520- 9c595302cb: Normalize on winston version ^3.2.1
521- 24b40140c4: Treat files in `__testUtils__` and `__mocks__` directories as test files for linting
522 purposes.
523
524 Updates the parts of the eslint configuration generator that specify which files
525 should be treated as test code to include any files under two additional
526 directories:
527
528 - `__mocks__`: this is the directory used by Jest[0] for mock code.
529 - `__testUtils__`: a suggested location for utility code executed only when
530 running tests.
531
532 [0]: https://jestjs.io/docs/manual-mocks#mocking-user-modules
533
534- 3e309107ca: Updated fallback versions of dependencies in all templates.
535- 292a088807: Added a new `repo test` command.
536- ba63cae41c: Updated lockfile parsing to have better support for Yarn 3.
537- 2d3a5f09ab: Use `response.json` rather than `response.send` where appropriate, as outlined in `SECURITY.md`
538- 2dddb32fea: Switched the Jest transform for YAML files to use a custom one available at `@backstage/cli/config/jestYamlTransform.js`.
539- a541a3a78a: Switch to upfront resolution of `swc-loader` in Webpack config.
540- cfb3598410: Removed `tsx` and `jsx` as supported extensions in backend packages. For most
541 repos, this will not have any effect. But if you inadvertently had added some
542 `tsx`/`jsx` files to your backend package, you may now start to see `code: 'MODULE_NOT_FOUND'` errors when launching the backend locally. The reason for
543 this is that the offending files get ignored during transpilation. Hence, the
544 importing file can no longer find anything to import.
545
546 The fix is to rename any `.tsx` files in your backend packages to `.ts` instead,
547 or `.jsx` to `.js`.
548
549- Updated dependencies
550 - @backstage/cli-common@0.1.10
551 - @backstage/config@1.0.3
552 - @backstage/config-loader@1.1.5
553 - @backstage/errors@1.1.2
554 - @backstage/release-manifests@0.0.6
555 - @backstage/types@1.0.0
556
557## 0.20.0-next.2
558
559### Patch Changes
560
561- 2d3a5f09ab: Use `response.json` rather than `response.send` where appropriate, as outlined in `SECURITY.md`
562- Updated dependencies
563 - @backstage/cli-common@0.1.10
564 - @backstage/config@1.0.3-next.2
565 - @backstage/config-loader@1.1.5-next.2
566 - @backstage/errors@1.1.2-next.2
567 - @backstage/release-manifests@0.0.6
568 - @backstage/types@1.0.0
569
570## 0.20.0-next.1
571
572### Patch Changes
573
574- 78d5eb299e: Tweak the Jest Caching loader to only operate when in `watch` mode
575- Updated dependencies
576 - @backstage/cli-common@0.1.10
577 - @backstage/config@1.0.3-next.1
578 - @backstage/config-loader@1.1.5-next.1
579 - @backstage/errors@1.1.2-next.1
580 - @backstage/release-manifests@0.0.6
581 - @backstage/types@1.0.0
582
583## 0.20.0-next.0
584
585### Minor Changes
586
587- f368ad7279: **BREAKING**: Bumped `jest`, `jest-runtime`, and `jest-environment-jsdom` to v29. This is up from v27, so check out both the [v28](https://jestjs.io/docs/28.x/upgrading-to-jest28) and [v29](https://jestjs.io/docs/upgrading-to-jest29) (later [here](https://jestjs.io/docs/29.x/upgrading-to-jest29)) migration guides.
588
589 Particular changes that where encountered in the main Backstage repo are:
590
591 - The updated snapshot format.
592 - `jest.useFakeTimers('legacy')` is now `jest.useFakeTimers({ legacyFakeTimers: true })`.
593 - Error objects collected by `withLogCollector` from `@backstage/test-utils` are now objects with a `detail` property rather than a string.
594
595### Patch Changes
596
597- 3e309107ca: Updated fallback versions of dependencies in all templates.
598- 292a088807: Added a new `repo test` command.
599- ba63cae41c: Updated lockfile parsing to have better support for Yarn 3.
600- 2dddb32fea: Switched the Jest transform for YAML files to use a custom one available at `@backstage/cli/config/jestYamlTransform.js`.
601- a541a3a78a: Switch to upfront resolution of `swc-loader` in Webpack config.
602- cfb3598410: Removed `tsx` and `jsx` as supported extensions in backend packages. For most
603 repos, this will not have any effect. But if you inadvertently had added some
604 `tsx`/`jsx` files to your backend package, you may now start to see `code: 'MODULE_NOT_FOUND'` errors when launching the backend locally. The reason for
605 this is that the offending files get ignored during transpilation. Hence, the
606 importing file can no longer find anything to import.
607
608 The fix is to rename any `.tsx` files in your backend packages to `.ts` instead,
609 or `.jsx` to `.js`.
610
611- Updated dependencies
612 - @backstage/cli-common@0.1.10
613 - @backstage/config@1.0.3-next.0
614 - @backstage/config-loader@1.1.5-next.0
615 - @backstage/errors@1.1.2-next.0
616 - @backstage/release-manifests@0.0.6
617 - @backstage/types@1.0.0
618
619## 0.19.0
620
621### Minor Changes
622
623- 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`.
624
625 Note that this major update to the Jest plugin contains some breaking changes.
626 This means that some of your tests may start seeing some new lint errors. [Read
627 about them
628 here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28).
629
630 These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them
631 corrected.
632
633### Patch Changes
634
635- 8d886dd33e: The `create-plugin` and `create` commands have both been deprecated in favor of a new `new` command. The `new` command is functionally identical to `create`, but the new naming makes it possible to use as yarn script, since `yarn create` is reserved.
636- cc63eb8611: Sort entries in skeleton.tar.gz for better docker layer caching
637- 548053614a: Deprecated the `plugin:diff` command. If you wish to keep running similar checks in your project we recommend using bespoke scripts. A useful utility for such scripts is `@manypkg/get-packages`, which helps you enumerate all packages in a monorepo.
638- 513b4dd4ef: The `versions:bump` command will now update dependency ranges in `package.json`, even if the new version is within the current range.
639- 221e951298: Added support for custom certificate for webpack dev server.
640- 934cc34563: Avoid validating the backend configuration schema when loading static configuration for building the frontend.
641- 3d4f5daadf: Remove use of deprecated trimLeft/trimRight
642- 817f3196f6: Added a new `migrate react-router-deps` command to aid in the migration to React Router v6 stable.
643- 742cb4f3d7: Fix issue when using `.jsx` files inside tests
644- e7600bdb04: Tweaked workspace packaging to not rewrite existing `package.json` files.
645- 6ae0f6a719: Switch out `sucrase` for `swc` for transpilation.
646
647 `sucrase` is a little more relaxed when it comes to supporting the ways of mocking in `jest`. You might have to make some changes to your tests to meet the `jest` standard and spec if your tests seems to start failing.
648
649 Mocks that look like this are invalid, and they will throw a reference error in line with the `jest` documentation [here on example 3](https://jestjs.io/docs/es6-class-mocks#calling-jestmock-with-the-module-factory-parameter)
650
651 ```ts
652 const mockCommandExists = jest.fn();
653 jest.mock('command-exists', () => mockCommandExists);
654 ```
655
656 You might need to update these mocks to look a little like the following to defer the call to the `jest.fn()` spy until the mock is called.
657
658 ```ts
659 const mockCommandExists = jest.fn();
660 jest.mock(
661 'command-exists',
662 () =>
663 (...args: any[]) =>
664 commandExists(...args),
665 );
666 ```
667
668 Also, imports are immutable. So it means that you might get some errors when trying to use `jest.spyOn` with starred imports. You might see an error like this:
669
670 ```log
671 TypeError: Cannot redefine property: executeFrameHandlerStrategy
672 at Function.defineProperty (<anonymous>)
673
674 20 | import { AuthResolverContext } from '../types';
675 21 |
676 > 22 | const mockFrameHandler = jest.spyOn(
677 | ^
678 23 | helpers,
679 24 | 'executeFrameHandlerStrategy',
680 25 | ) as unknown as jest.MockedFunction<
681 ```
682
683 This happens when you try to do `import * as something from './something'` and then `jest.spyOn(something, 'test)`. You will need to add a `jest.mock` call to mock out the required starred import to return `jest.fn()` functions from the start. Something like this fixes the above test:
684
685 ```ts
686 jest.mock('../../helpers', () => ({
687 executeFrameHandlerStrategy: jest.fn(),
688 }));
689 ```
690
691 You can also remove any occurrence of `hot(App)` and any import of `react-hot-loader` if you're using the that package locally, as all this has now been replaced with [React Refresh](https://www.npmjs.com/package/react-refresh) which you will get out of the box with the new CLI.
692
693 **Note** If you're experiencing difficulties with running tests after the migration, please reach out to us on Discord to see if we can help, or raise an issue. But in the meantime you can switch back to the existing behaviour by using the following config in your root `package.json`.
694
695 ```json
696 "jest": {
697 "transform": {
698 "\\.(js|jsx|ts|tsx|mjs|cjs)$": "@backstage/cli/config/jestSucraseTransform.js",
699 "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$": "@backstage/cli/config/jestFileTransform.js",
700 "\\.(yaml)$": "jest-transform-yaml"
701 }
702 }
703 ```
704
705- 1cb078ad9f: Fixed a misconfiguration where all modules where treated as ESM by the React Refresh plugin for Webpack.
706- 1fd4f2746f: Removed internal dependencies on Lerna. It is now no longer necessary to have Lerna installed in a project to use all features of the Backstage CLI.
707- 667d917488: Updated dependency `msw` to `^0.47.0`.
708- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`.
709- bf5e9030eb: Updated dependency `msw` to `^0.45.0`.
710- 33fbd9f9a4: Updated dependency `@types/minimatch` to `^5.0.0`.
711- 68c2697077: Added a new `backstage-cli repo clean` command that cleans the repo root and runs the clean script in all packages.
712- 7d47def9c4: Added dependency on `@types/jest` v27. The `@types/jest` dependency has also been removed from the plugin template and should be removed from any of your own internal packages. If you wish to override the version of `@types/jest` or `jest`, use Yarn resolutions.
713- a7e82c9b01: Updated `versions:bump` command to be compatible with Yarn 3.
714- Updated dependencies
715 - @backstage/config-loader@1.1.4
716 - @backstage/cli-common@0.1.10
717 - @backstage/config@1.0.2
718 - @backstage/errors@1.1.1
719 - @backstage/release-manifests@0.0.6
720
721## 0.19.0-next.3
722
723### Patch Changes
724
725- 7d47def9c4: Added dependency on `@types/jest` v27. The `@types/jest` dependency has also been removed from the plugin template and should be removed from any of your own internal packages. If you wish to override the version of `@types/jest` or `jest`, use Yarn resolutions.
726- a7e82c9b01: Updated `versions:bump` command to be compatible with Yarn 3.
727- Updated dependencies
728 - @backstage/config-loader@1.1.4-next.2
729 - @backstage/cli-common@0.1.10-next.0
730 - @backstage/config@1.0.2-next.0
731 - @backstage/errors@1.1.1-next.0
732 - @backstage/release-manifests@0.0.6-next.2
733
734## 0.19.0-next.2
735
736### Patch Changes
737
738- 8d886dd33e: The `create-plugin` and `create` commands have both been deprecated in favor of a new `new` command. The `new` command is functionally identical to `create`, but the new naming makes it possible to use as yarn script, since `yarn create` is reserved.
739- 548053614a: Deprecated the `plugin:diff` command. If you wish to keep running similar checks in your project we recommend using bespoke scripts. A useful utility for such scripts is `@manypkg/get-packages`, which helps you enumerate all packages in a monorepo.
740- 513b4dd4ef: The `versions:bump` command will now update dependency ranges in `package.json`, even if the new version is within the current range.
741- 221e951298: Added support for custom certificate for webpack dev server.
742- 934cc34563: Avoid validating the backend configuration schema when loading static configuration for building the frontend.
743- 3d4f5daadf: Remove use of deprecated trimLeft/trimRight
744- 742cb4f3d7: Fix issue when using `.jsx` files inside tests
745- e7600bdb04: Tweaked workspace packaging to not rewrite existing `package.json` files.
746- 1cb078ad9f: Fixed a misconfiguration where all modules where treated as ESM by the React Refresh plugin for Webpack.
747- 1fd4f2746f: Removed internal dependencies on Lerna. It is now no longer necessary to have Lerna installed in a project to use all features of the Backstage CLI.
748- 667d917488: Updated dependency `msw` to `^0.47.0`.
749- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`.
750- 68c2697077: Added a new `backstage-cli repo clean` command that cleans the repo root and runs the clean script in all packages.
751- Updated dependencies
752 - @backstage/config-loader@1.1.4-next.1
753 - @backstage/release-manifests@0.0.6-next.1
754
755## 0.19.0-next.1
756
757### Minor Changes
758
759- 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`.
760
761 Note that this major update to the Jest plugin contains some breaking changes.
762 This means that some of your tests may start seeing some new lint errors. [Read
763 about them
764 here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28).
765
766 These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them
767 corrected.
768
769### Patch Changes
770
771- 817f3196f6: Added a new `migrate react-router-deps` command to aid in the migration to React Router v6 stable.
772- 33fbd9f9a4: Updated dependency `@types/minimatch` to `^5.0.0`.
773
774## 0.18.2-next.0
775
776### Patch Changes
777
778- 6ae0f6a719: Switch out `sucrase` for `swc` for transpilation.
779
780 `sucrase` is a little more relaxed when it comes to supporting the ways of mocking in `jest`. You might have to make some changes to your tests to meet the `jest` standard and spec if your tests seems to start failing.
781
782 Mocks that look like this are invalid, and they will throw a reference error in line with the `jest` documentation [here on example 3](https://jestjs.io/docs/es6-class-mocks#calling-jestmock-with-the-module-factory-parameter)
783
784 ```ts
785 const mockCommandExists = jest.fn();
786 jest.mock('command-exists', () => mockCommandExists);
787 ```
788
789 You might need to update these mocks to look a little like the following to defer the call to the `jest.fn()` spy until the mock is called.
790
791 ```ts
792 const mockCommandExists = jest.fn();
793 jest.mock(
794 'command-exists',
795 () =>
796 (...args: any[]) =>
797 commandExists(...args),
798 );
799 ```
800
801 Also, imports are immutable. So it means that you might get some errors when trying to use `jest.spyOn` with starred imports. You might see an error like this:
802
803 ```log
804 TypeError: Cannot redefine property: executeFrameHandlerStrategy
805 at Function.defineProperty (<anonymous>)
806
807 20 | import { AuthResolverContext } from '../types';
808 21 |
809 > 22 | const mockFrameHandler = jest.spyOn(
810 | ^
811 23 | helpers,
812 24 | 'executeFrameHandlerStrategy',
813 25 | ) as unknown as jest.MockedFunction<
814 ```
815
816 This happens when you try to do `import * as something from './something'` and then `jest.spyOn(something, 'test)`. You will need to add a `jest.mock` call to mock out the required starred import to return `jest.fn()` functions from the start. Something like this fixes the above test:
817
818 ```ts
819 jest.mock('../../helpers', () => ({
820 executeFrameHandlerStrategy: jest.fn(),
821 }));
822 ```
823
824 You can also remove any occurrence of `hot(App)` and any import of `react-hot-loader` if you're using the that package locally, as all this has now been replaced with [React Refresh](https://www.npmjs.com/package/react-refresh) which you will get out of the box with the new CLI.
825
826 **Note** If you're experiencing difficulties with running tests after the migration, please reach out to us on Discord to see if we can help, or raise an issue. But in the meantime you can switch back to the existing behaviour by using the following config in your root `package.json`.
827
828 ```json
829 "jest": {
830 "transform": {
831 "\\.(js|jsx|ts|tsx|mjs|cjs)$": "@backstage/cli/config/jestSucraseTransform.js",
832 "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$": "@backstage/cli/config/jestFileTransform.js",
833 "\\.(yaml)$": "jest-transform-yaml"
834 }
835 }
836 ```
837
838- bf5e9030eb: Updated dependency `msw` to `^0.45.0`.
839- Updated dependencies
840 - @backstage/config-loader@1.1.4-next.0
841 - @backstage/release-manifests@0.0.6-next.0
842
843## 0.18.1
844
845### Patch Changes
846
847- d45bbfeb69: Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`.
848- 72c228fdb8: Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external.
849- a539564c0d: Added Backstage version to output of `yarn backstage-cli info` command
850- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults.
851- 94155a41e0: Updated dependencies `@svgr/*` to `6.3.x`.
852
853## 0.18.1-next.1
854
855### Patch Changes
856
857- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults.
858
859## 0.18.1-next.0
860
861### Patch Changes
862
863- a539564c0d: Added Backstage version to output of `yarn backstage-cli info` command
864- 94155a41e0: Updated dependencies `@svgr/*` to `6.3.x`.
865
866## 0.18.0
867
868### Minor Changes
869
870- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
871
872 - `app:build` - Use `package build` instead
873 - `app:serve` - Use `package start` instead
874 - `backend:build` - Use `package build` instead
875 - `backend:bundle` - Use `package build` instead
876 - `backend:dev` - Use `package start` instead
877 - `plugin:build` - Use `package build` instead
878 - `plugin:serve` - Use `package start` instead
879 - `build` - Use `package build` instead
880 - `lint` - Use `package lint` instead
881 - `prepack` - Use `package prepack` instead
882 - `postpack` - Use `package postpack` instead
883
884 In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
885
886### Patch Changes
887
888- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
889- d2256c0384: Fix `webpack-dev-server` deprecations.
890- a70869e775: Updated dependency `msw` to `^0.43.0`.
891- 72622d9143: Updated dependency `yaml` to `^2.0.0`.
892- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
893- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
894- e8ed804d4f: Updated dependency `@spotify/prettier-config` to `^14.0.0`.
895 Updated dependency `@spotify/eslint-config-base` to `^14.0.0`.
896 Updated dependency `@spotify/eslint-config-react` to `^14.0.0`.
897 Updated dependency `@spotify/eslint-config-typescript` to `^14.0.0`.
898- e662b573cf: Updated dependency `@octokit/request` to `^6.0.0`.
899- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
900- Updated dependencies
901 - @backstage/config-loader@1.1.3
902 - @backstage/release-manifests@0.0.5
903 - @backstage/errors@1.1.0
904
905## 0.18.0-next.3
906
907### Patch Changes
908
909- a70869e775: Updated dependency `msw` to `^0.43.0`.
910- 72622d9143: Updated dependency `yaml` to `^2.0.0`.
911- e662b573cf: Updated dependency `@octokit/request` to `^6.0.0`.
912- Updated dependencies
913 - @backstage/config-loader@1.1.3-next.1
914 - @backstage/release-manifests@0.0.5-next.0
915
916## 0.18.0-next.2
917
918### Patch Changes
919
920- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
921
922## 0.18.0-next.1
923
924### Minor Changes
925
926- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
927
928 - `app:build` - Use `package build` instead
929 - `app:serve` - Use `package start` instead
930 - `backend:build` - Use `package build` instead
931 - `backend:bundle` - Use `package build` instead
932 - `backend:dev` - Use `package start` instead
933 - `plugin:build` - Use `package build` instead
934 - `plugin:serve` - Use `package start` instead
935 - `build` - Use `package build` instead
936 - `lint` - Use `package lint` instead
937 - `prepack` - Use `package prepack` instead
938 - `postpack` - Use `package postpack` instead
939
940 In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
941
942### Patch Changes
943
944- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
945- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
946- Updated dependencies
947 - @backstage/errors@1.1.0-next.0
948 - @backstage/config-loader@1.1.3-next.0
949
950## 0.17.3-next.0
951
952### Patch Changes
953
954- d2256c0384: Fix `webpack-dev-server` deprecations.
955
956## 0.17.2
957
958### Patch Changes
959
960- 026cfe525a: Fix the public path configuration of the frontend app build so that a trailing `/` is always appended when needed.
961- 4f73352608: Updated Lockfile to support new versions of yarn as well as the legacy 1 version
962- b8970b8941: Improved the `create-github-app` permissions selection prompt by converting it into a multi-select with clearer descriptions. The `members` permission is now also included in the list which is required for ingesting user data into the catalog.
963- bd58365d09: Updated dependency `run-script-webpack-plugin` to `^0.0.14`.
964- 9002ebd76b: Updated dependency `@rollup/plugin-commonjs` to `^22.0.0`.
965- 8f7b1835df: Updated dependency `msw` to `^0.41.0`.
966- 1a33e8b287: Updated dependency `minimatch` to `5.1.0`.
967- 6de866ea74: Added console warning to frontend start when the `app.baseUrl` and `backend.baseUrl` are identical
968- Updated dependencies
969 - @backstage/config-loader@1.1.2
970 - @backstage/release-manifests@0.0.4
971
972## 0.17.2-next.2
973
974### Patch Changes
975
976- 026cfe525a: Fix the public path configuration of the frontend app build so that a trailing `/` is always appended when needed.
977- 9002ebd76b: Updated dependency `@rollup/plugin-commonjs` to `^22.0.0`.
978- 1a33e8b287: Updated dependency `minimatch` to `5.1.0`.
979
980## 0.17.2-next.1
981
982### Patch Changes
983
984- bd58365d09: Updated dependency `run-script-webpack-plugin` to `^0.0.14`.
985- 8f7b1835df: Updated dependency `msw` to `^0.41.0`.
986- Updated dependencies
987 - @backstage/config-loader@1.1.2-next.0
988 - @backstage/release-manifests@0.0.4-next.0
989
990## 0.17.2-next.0
991
992### Patch Changes
993
994- 4f73352608: Updated Lockfile to support new versions of yarn as well as the legacy 1 version
995- 6de866ea74: Added console warning to frontend start when the `app.baseUrl` and `backend.baseUrl` are identical
996
997## 0.17.1
998
999### Patch Changes
1000
1001- 52fb9920ac: Fixed coverage configuration when using `BACKSTAGE_NEXT_TESTS`.
1002- 6cd1f50ae1: Extended lint rule to prevents imports of stories or tests from production code.
1003- 97cce67ac7: Add instructions to `create-github-app` command.
1004- 08e12a3a14: Add package global-agent to support behind a proxy for backstage-cli commands like versions:bump.
1005- 4d8736eded: Changed Rollup configuration for TypeScript definition plugin to ignore `css`,
1006 `scss`, `sass`, `svg`, `eot`, `woff`, `woff2` and `ttf` files.
1007- cfc0f19699: Updated dependency `fs-extra` to `10.1.0`.
1008- 2737777e02: Added the ability to help a user get started with a new organization
1009- 344ea56acc: Bump `commander` to version 9.1.0
1010- 8ab2a8226b: Updated the `create-github-app` command to throw an error if the organization argument is a user or a non existing organization.
1011- 632be18bbc: Updated `create-github-app` command to prompt for read or write permissions to simplify setup.
1012- Updated dependencies
1013 - @backstage/cli-common@0.1.9
1014 - @backstage/config@1.0.1
1015 - @backstage/release-manifests@0.0.3
1016 - @backstage/config-loader@1.1.1
1017
1018## 0.17.1-next.2
1019
1020### Patch Changes
1021
1022- 632be18bbc: Updated `create-github-app` command to prompt for read or write permissions to simplify setup.
1023- Updated dependencies
1024 - @backstage/cli-common@0.1.9-next.0
1025 - @backstage/config@1.0.1-next.0
1026 - @backstage/release-manifests@0.0.3-next.0
1027 - @backstage/config-loader@1.1.1-next.1
1028
1029## 0.17.1-next.1
1030
1031### Patch Changes
1032
1033- 52fb9920ac: Fixed coverage configuration when using `BACKSTAGE_NEXT_TESTS`.
1034- 6cd1f50ae1: Extended lint rule to prevents imports of stories or tests from production code.
1035- 4d8736eded: Changed Rollup configuration for TypeScript definition plugin to ignore `css`,
1036 `scss`, `sass`, `svg`, `eot`, `woff`, `woff2` and `ttf` files.
1037- 2737777e02: Added the ability to help a user get started with a new organization
1038
1039## 0.17.1-next.0
1040
1041### Patch Changes
1042
1043- 97cce67ac7: Add instructions to `create-github-app` command.
1044- 08e12a3a14: Add package global-agent to support behind a proxy for backstage-cli commands like versions:bump.
1045- cfc0f19699: Updated dependency `fs-extra` to `10.1.0`.
1046- 344ea56acc: Bump `commander` to version 9.1.0
1047- 8ab2a8226b: Updated the `create-github-app` command to throw an error if the organization argument is a user or a non existing organization.
1048- Updated dependencies
1049 - @backstage/config-loader@1.1.1-next.0
1050
1051## 0.17.0
1052
1053### Minor Changes
1054
1055- 1f7d4763ab: **BREAKING**: Bump the version range of `jest` from `^26.0.1` to `^27.5.1`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0).
1056
1057 We strongly recommend to have completed the [package role migration](https://backstage.io/docs/tutorials/package-role-migration) before upgrading to this version, as the package roles are used to automatically determine the testing environment for each package. If you instead want to set an explicit test environment for each package, you can do so for example in the `"jest"` section in `package.json`. The default test environment for all packages is now `node`, which is also the new Jest default.
1058
1059 Note that one of the breaking changes of Jest 27 is that the `jsdom` environment no longer includes `setImmediate` and `clearImmediate`, which means you might need to update some of your frontend packages. Another notable change is that `jest.useFakeTimers` now defaults to the `'modern'` implementation, which also mocks microtasks.
1060
1061### Patch Changes
1062
1063- e80ecad93c: Bump the `rushstack` api generator libraries to their latest versions
1064- c54ce828bd: build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2
1065- f151dfee5a: build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1
1066- 7e7ba704be: build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0
1067- ecd72391fb: build(deps): bump `@spotify/eslint-config-typescript`
1068- 6a341b2d87: build(deps): bump `@spotify/eslint-config-react` from 12.0.0 to 13.0.0
1069- 3c26b2edb5: build(deps): bump `npm-packlist` from 3.0.0 to 5.0.0
1070- ed3551b7be: Introduced a new experimental test configuration with a number of changes. It switches the coverage provider from `v8` to the default Babel provider, along with always enabling source maps in the Sucrase transform. It also adds a custom module loader that caches both file transforms and VM script objects across all projects in a test run, which provides a big performance boost when running tests from the project root, increasing speed and reducing memory usage.
1071
1072 This new configuration is not enabled by default. It is enabled by setting the environment variable `BACKSTAGE_NEXT_TESTS` to a non-empty value.
1073
1074- 6ad0c45648: Added an experimental `package fix` command which applies automated fixes to the target package. The initial fix that is available is to add missing monorepo dependencies to the target package.
1075- 5b3079694e: Stop logging "Stopped watcher" when shutting down the development backend.
1076- f512554910: Updated the plugin template to install version 14 of `@testing-library/user-event`.
1077
1078 To apply this change to your own project, update the `devDependencies` section in your `package.json` files:
1079
1080 ```diff
1081 "devDependencies": {
1082 ... omitted dev dependencies ...
1083 - "@testing-library/user-event": "^13.1.8",
1084 + "@testing-library/user-event": "^14.0.0",
1085 ... omitted dev dependencies ...
1086 }
1087 ```
1088
1089- df7862cfa6: Fixed a bug were the `react-hot-loader` transform was being applied to backend development builds.
1090- 230ad0826f: Bump to using `@types/node` v16
1091- c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.
1092- 948a56f401: Added a new experimental `repo list-deprecations` command, which scans the entire project for usage of deprecated APIs.
1093- 4782f9e925: Fixed misleading log message during frontend plugin creation.
1094- 0383cd0228: The `versions:*` commands no longer warns about duplicate plugin libraries, such as `@backstage/plugin-catalog-common`.
1095- Updated dependencies
1096 - @backstage/config-loader@1.1.0
1097
1098## 0.17.0-next.3
1099
1100### Patch Changes
1101
1102- e80ecad93c: Bump the `rushstack` api generator libraries to their latest versions
1103- 3c26b2edb5: build(deps): bump `npm-packlist` from 3.0.0 to 5.0.0
1104- f512554910: Updated the plugin template to install version 14 of `@testing-library/user-event`.
1105
1106 To apply this change to your own project, update the `devDependencies` section in your `package.json` files:
1107
1108 ```diff
1109 "devDependencies": {
1110 ... omitted dev dependencies ...
1111 - "@testing-library/user-event": "^13.1.8",
1112 + "@testing-library/user-event": "^14.0.0",
1113 ... omitted dev dependencies ...
1114 }
1115 ```
1116
1117- df7862cfa6: Fixed a bug were the `react-hot-loader` transform was being applied to backend development builds.
1118- 230ad0826f: Bump to using `@types/node` v16
1119- 0383cd0228: The `versions:*` commands no longer warns about duplicate plugin libraries, such as `@backstage/plugin-catalog-common`.
1120- Updated dependencies
1121 - @backstage/config-loader@1.1.0-next.1
1122
1123## 0.17.0-next.2
1124
1125### Patch Changes
1126
1127- 6a341b2d87: build(deps): bump `@spotify/eslint-config-react` from 12.0.0 to 13.0.0
1128- 4782f9e925: Fixed misleading log message during frontend plugin creation.
1129
1130## 0.17.0-next.1
1131
1132### Minor Changes
1133
1134- 1f7d4763ab: **BREAKING**: Bump the version range of `jest` from `^26.0.1` to `^27.5.1`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0).
1135
1136 We strongly recommend to have completed the [package role migration](https://backstage.io/docs/tutorials/package-role-migration) before upgrading to this version, as the package roles are used to automatically determine the testing environment for each package. If you instead want to set an explicit test environment for each package, you can do so for example in the `"jest"` section in `package.json`. The default test environment for all packages is now `node`, which is also the new Jest default.
1137
1138 Note that one of the breaking changes of Jest 27 is that the `jsdom` environment no longer includes `setImmediate` and `clearImmediate`, which means you might need to update some of your frontend packages. Another notable change is that `jest.useFakeTimers` now defaults to the `'modern'` implementation, which also mocks microtasks.
1139
1140### Patch Changes
1141
1142- c54ce828bd: build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2
1143- f151dfee5a: build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1
1144- 7e7ba704be: build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0
1145- ecd72391fb: build(deps): bump `@spotify/eslint-config-typescript`
1146- 5b3079694e: Stop logging "Stopped watcher" when shutting down the development backend.
1147
1148## 0.16.1-next.0
1149
1150### Patch Changes
1151
1152- 6ad0c45648: Added an experimental `package fix` command which applies automated fixes to the target package. The initial fix that is available is to add missing monorepo dependencies to the target package.
1153- c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.
1154- 948a56f401: Added a new experimental `repo list-deprecations` command, which scans the entire project for usage of deprecated APIs.
1155- Updated dependencies
1156 - @backstage/config-loader@1.0.1-next.0
1157
1158## 0.16.0
1159
1160### Minor Changes
1161
1162- 217547ae51: **BREAKING**: The provided Jest configuration now only matches files with a `.test.` infix, rather than any files that is suffixed with `test.<ext>`. In particular this means that files named just `test.ts` will no longer be considered a test file.
1163
1164### Patch Changes
1165
1166- 947ae3b40e: Applied the fix from version `0.15.3` of this package, which is part of the `v0.71.1` release of Backstage.
1167- 19eed0edd9: Fix for `overrides` not being properly forwarded from the extra configuration passed to `@backstage/cli/config/eslint-factory`.
1168- f24ef7864e: Minor typo fixes
1169- Updated dependencies
1170 - @backstage/config-loader@1.0.0
1171 - @backstage/config@1.0.0
1172 - @backstage/errors@1.0.0
1173 - @backstage/types@1.0.0
1174
1175## 0.15.3
1176
1177### Patch Changes
1178
1179- Fixed an issue where the CLI would try and fail to require the `package.json` of other Backstage packages, like `@backstage/dev-utils/package.json`.
1180
1181## 0.15.2
1182
1183### Patch Changes
1184
1185- 2c528506aa: Added `--since <ref>` flag for `repo build` command.`
1186- 60799cc5be: build(deps-dev): bump `@types/npm-packlist` from 1.1.2 to 3.0.0
1187- d3d1b82198: chore(deps): bump `minimatch` from 5.0.0 to 5.0.1
1188- e0a69ba49f: build(deps): bump `fs-extra` from 9.1.0 to 10.0.1
1189- 44cc7c3b95: Added a new ESLint configuration setup for packages, which utilizes package roles to generate the correct configuration. The new configuration is available at `@backstage/cli/config/eslint-factory`.
1190
1191 Introduced a new `backstage-cli migrate package-lint-configs` command, which migrates old lint configurations to use `@backstage/cli/config/eslint-factory`.
1192
1193- b1aacbf96a: Applied the fix from version `0.15.1` of this package, which was part of the `v0.70.1` release of Backstage.
1194- d2ecde959b: Package roles are now marked as stable and migration is encouraged. Please check out the [migration guide](https://backstage.io/docs/tutorials/package-role-migration).
1195
1196 The new `package`, `repo`, and `migrate` command categories are now marked as stable.
1197
1198 Marked all commands that are being replaced by the new `package` and `repo` commands as deprecated.
1199
1200 The package templates used by the `create` command have all been updated to use package roles.
1201
1202- f06da37290: The backend development setup now ignores the `"browser"` and `"module"` entry points in `package.json`, and instead always uses `"main"`.
1203- 6a1fe077ad: Changed the logic for how modules are marked as external in the Rollup build of packages. Rather than only marking dependencies and build-in Node.js modules as external, all non-relative imports are now considered external.
1204- dc6002a7b9: The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available.
1205- Updated dependencies
1206 - @backstage/config-loader@0.9.7
1207
1208## 0.15.2-next.0
1209
1210### Patch Changes
1211
1212- 2c528506aa: Added `--since <ref>` flag for `repo build` command.`
1213- d3d1b82198: chore(deps): bump `minimatch` from 5.0.0 to 5.0.1
1214- e0a69ba49f: build(deps): bump `fs-extra` from 9.1.0 to 10.0.1
1215- 44cc7c3b95: Added a new ESLint configuration setup for packages, which utilizes package roles to generate the correct configuration. The new configuration is available at `@backstage/cli/config/eslint-factory`.
1216
1217 Introduced a new `backstage-cli migrate package-lint-configs` command, which migrates old lint configurations to use `@backstage/cli/config/eslint-factory`.
1218
1219- b1aacbf96a: Applied the fix from version `0.15.1` of this package, which was part of the `v0.70.1` release of Backstage.
1220- d2ecde959b: Package roles are now marked as stable and migration is encouraged. Please check out the [migration guide](https://backstage.io/docs/tutorials/package-role-migration).
1221
1222 The new `package`, `repo`, and `migrate` command categories are now marked as stable.
1223
1224 Marked all commands that are being replaced by the new `package` and `repo` commands as deprecated.
1225
1226 The package templates used by the `create` command have all been updated to use package roles.
1227
1228- f06da37290: The backend development setup now ignores the `"browser"` and `"module"` entry points in `package.json`, and instead always uses `"main"`.
1229- 6a1fe077ad: Changed the logic for how modules are marked as external in the Rollup build of packages. Rather than only marking dependencies and build-in Node.js modules as external, all non-relative imports are now considered external.
1230- dc6002a7b9: The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available.
1231- Updated dependencies
1232 - @backstage/config-loader@0.9.7-next.0
1233
1234## 0.15.1
1235
1236### Patch Changes
1237
1238- Fixed an issue where the release stage entry point of packages were not resolved correctly.
1239
1240## 0.15.0
1241
1242### Minor Changes
1243
1244- 8c3f30cb28: **BREAKING**: Removed the deprecated `app.<key>` template variables from the `index.html` templating. These should be replaced by using `config.getString("app.<key>")` instead.
1245
1246### Patch Changes
1247
1248- 46a19c599f: The CLI now bundles both version 16 and 17 of the patched `@hot-loader/react-dom` dependency, and selects the appropriate one based on what version of `react-dom` is installed within the app.
1249
1250## 0.14.1
1251
1252### Patch Changes
1253
1254- 5cc7f48400: Fixed a bug in the built-in Jest configuration that prevented it from identifying packages that had migrated to using the new package scripts to run tests.
1255- 49ae6c9573: chore(deps-dev): bump `@types/rollup-plugin-postcss` from 2.0.1 to 3.1.4
1256- d64b8d3678: chore(deps): bump `minimatch` from 3.0.4 to 5.0.0
1257- d2e9d2a34f: chore(deps): bump `@hot-loader/react-dom` from 16.13.0 to 17.0.2
1258- c2f3a548cf: Fix building of backends with `repo build --all`, where it would previously only work if the build was executed within the backend package.
1259- 3d7ed5377a: Ignore setupTests and the file inside ./dev folder recursively. Eslint
1260 can not resolve relative paths as we defined in the rule import/no-extraneous-dependencies, and it does not apply this rule.
1261
1262 A downside to use a recursive definition would be to checking all `dev` folders, which might not be wanted. Ensure you don't use
1263 the `dev` folder out of scope (must be used for dev. env. only)
1264
1265- Updated dependencies
1266 - @backstage/config-loader@0.9.6
1267
1268## 0.14.0
1269
1270### Minor Changes
1271
1272- 1fc0cd3896: Bumped Webpack and Rollup `svgr` dependencies and updated the AST template for `.icon.svg` modules. This means that SVG icon imports are now using SVGO v2.
1273
1274### Patch Changes
1275
1276- 0b74c72987: Added a new experimental and hidden `backstage-cli repo lint` command that can be used to lint all packages in the project, similar to `lerna run lint`.
1277- 532dae9c4c: The `versions:bump --release next` command is updated to compare the `main` and `next` release manifests and prefer the latest.
1278- 1ed305728b: Bump `node-fetch` to version 2.6.7 and `cross-fetch` to version 3.1.5
1279- c77c5c7eb6: Added `backstage.role` to `package.json`
1280- 22862486de: The `versions:bump` command now filters out `npm_` environment configuration when running `yarn install`. This has the effect of allowing it to consider local configuration files within the repository, which is the behavior that one would expect.
1281- 22862486de: The `versions:bump` command now also considers the root `package.json` when searching for updates. It has also received updates to its output, including a link the [Backstage upgrade helper](https://backstage.github.io/upgrade-helper) and silenced `yarn install` output.
1282- 7410e12268: Several changes were made to the new experimental package roles system. Unless you have been experimenting with using this new system, these changes have no affect on your project.
1283
1284 Renamed the `backstage-cli migrate package-role` command to `backstage-cli migrate package-roles`.
1285
1286 Updated the package role definitions by renaming `app` to `frontend`, `plugin-frontend` to `frontend-plugin`, `plugin-frontend-module` to `frontend-plugin-module`, `plugin-backend` to `backend-plugin`, and `plugin-backend-module` to `backend-plugin-module`
1287
1288 The `backstage-cli migrate package-scripts` received several tweaks to make it more accurate. It now tries to maintain existing script arguments, like `--config` parameters for `build` and `start` scripts.
1289
1290 The `script` command category has been renamed to `package`.
1291
1292 The `backstage-cli package build` command set an incorrect target directory for `app` and `backend` packages, which has been fixed.
1293
1294 The `backend:bundle` and `repo build` command for the `backend` role was previously ignoring building of bundled packages that had migrated to use package roles and the standard build script, this has now been fixed.
1295
1296- c6bbafb516: Updated the default [sucrase](https://github.com/alangpierce/sucrase)-based Jest transform to include source maps if the environment variable `ENABLE_SOURCE_MAPS` is non-empty. This can be used to better support editor test debugging integrations.
1297- 7410e12268: The `test` command now automatically adds `--passWithNoTests` to the Jest invocation. To revert this behavior, pass `--passWithNoTests=false` or `--no-passWithNoTests`.
1298- Updated dependencies
1299 - @backstage/config-loader@0.9.4
1300 - @backstage/errors@0.2.1
1301 - @backstage/release-manifests@0.0.2
1302 - @backstage/cli-common@0.1.7
1303 - @backstage/config@0.1.14
1304 - @backstage/types@0.1.2
1305
1306## 0.13.2
1307
1308### Patch Changes
1309
1310- bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`.
1311- eaf67f0578: Introduced initial support for an experimental `backstage.role` field in package.json, as well as experimental and hidden `migrate` and `script` sub-commands. We do not recommend usage of any of these additions yet.
1312- aeb5c69abb: Introduces a new `--release` parameter to the `backstage-cli versions:bump` command.
1313 The release can be either a specific version, for example `0.99.1`, or the latest `main` or `next` release.
1314 The default behavior is to bump to the latest `main` release.
1315- d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread.
1316- 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package.
1317- 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope.
1318- fae2aee878: Removed the `import/no-duplicates` lint rule from the frontend and backend ESLint configurations. This rule is quite expensive to execute and only provides a purely cosmetic benefit, so we opted to remove it from the set of default rules. If you would like to keep this rule you can add it back in your local ESLint configuration:
1319
1320 ```js
1321 'import/no-duplicates': 'warn'
1322 ```
1323
1324- b906f98119: Rather than calling `yarn pack`, the `build-workspace` and `backend-bundle` commands now move files directly whenever possible. This cuts out several `yarn` invocations and speeds the packing process up by several orders of magnitude.
1325- d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process.
1326- d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages.
1327- Updated dependencies
1328 - @backstage/release-manifests@0.0.1
1329
1330## 0.13.2-next.0
1331
1332### Patch Changes
1333
1334- bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`.
1335- eaf67f0578: Introduced initial support for an experimental `backstage.role` field in package.json, as well as experimental and hidden `migrate` and `script` sub-commands. We do not recommend usage of any of these additions yet.
1336- d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread.
1337- 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package.
1338- 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope.
1339- fae2aee878: Removed the `import/no-duplicates` lint rule from the frontend and backend ESLint configurations. This rule is quite expensive to execute and only provides a purely cosmetic benefit, so we opted to remove it from the set of default rules. If you would like to keep this rule you can add it back in your local ESLint configuration:
1340
1341 ```js
1342 'import/no-duplicates': 'warn'
1343 ```
1344
1345- b906f98119: Rather than calling `yarn pack`, the `build-workspace` and `backend-bundle` commands now move files directly whenever possible. This cuts out several `yarn` invocations and speeds the packing process up by several orders of magnitude.
1346- d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process.
1347- d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages.
1348
1349## 0.13.1
1350
1351### Patch Changes
1352
1353- 5bd0ce9e62: chore(deps): bump `inquirer` from 7.3.3 to 8.2.0
1354- 80f510caee: Log warning if unable to parse yarn.lock
1355
1356## 0.13.1-next.1
1357
1358### Patch Changes
1359
1360- 5bd0ce9e62: chore(deps): bump `inquirer` from 7.3.3 to 8.2.0
1361
1362## 0.13.1-next.0
1363
1364### Patch Changes
1365
1366- 80f510caee: Log warning if unable to parse yarn.lock
1367
1368## 0.13.0
1369
1370### Minor Changes
1371
1372- 1ddf6d9d5a: Removes the previously deprecated `remove-plugin` command alongside the `--lax` option to `app:build`.
1373
1374### Patch Changes
1375
1376- c372a5032f: chore(deps): bump `jest-transform-yaml` from 0.1.1 to 1.0.0
1377- 1b4ab0d44c: Updated the dependency warning that is baked into `app:serve` to only warn about packages that are not allowed to have duplicates.
1378- dc46efa2cc: Switched the `WebpackDevServer` configuration to use client-side detection of the WebSocket protocol.
1379- 10086f5873: Upgraded `webpack`, `webpack-dev-server`,`fork-ts-checker-webpack-plugin`, `react-dev-utils`, and `react-hot-loader`. Since `ForkTsCheckerWebpackPlugin` no longer runs ESLint, we now include the `ESLintPlugin` from `eslint-webpack-plugin` if the `--check` flag is passed.
1380
1381## 0.12.0
1382
1383### Minor Changes
1384
1385- 08fa6a604a: Removed the `typescript` dependency from the Backstage CLI in order to decouple the TypeScript version in Backstage projects. To keep using a specific TypeScript version, be sure to add an explicit dependency in your root `package.json`:
1386
1387 ```json
1388 "dependencies": {
1389 ...
1390 "typescript": "~4.5.4",
1391 }
1392 ```
1393
1394 We recommend using a `~` version range since TypeScript releases do not adhere to semver.
1395
1396 It may be the case that you end up with errors if you upgrade the TypeScript version. This is because there was a change to TypeScript not long ago that defaulted the type of errors caught in `catch` blocks to `unknown`. You can work around this by adding `"useUnknownInCatchVariables": false` to the `"compilerOptions"` in your `tsconfig.json`:
1397
1398 ```json
1399 "compilerOptions": {
1400 ...
1401 "useUnknownInCatchVariables": false
1402 }
1403 ```
1404
1405 Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
1406
1407 ```ts
1408 import { assertError, isError } from '@backstage/errors';
1409
1410 try {
1411 ...
1412 } catch (error) {
1413 assertError(error);
1414 ...
1415 // OR
1416 if (isError(error)) {
1417 ...
1418 }
1419 }
1420 ```
1421
1422 Yet another issue you might run into when upgrading TypeScript is incompatibilities in the types from `react-use`. The error you would run into looks something like this:
1423
1424 ```plain
1425 node_modules/react-use/lib/usePermission.d.ts:1:54 - error TS2304: Cannot find name 'DevicePermissionDescriptor'.
1426
1427 1 declare type PermissionDesc = PermissionDescriptor | DevicePermissionDescriptor | MidiPermissionDescriptor | PushPermissionDescriptor;
1428 ```
1429
1430 If you encounter this error, the simplest fix is to replace full imports of `react-use` with more specific ones. For example, the following:
1431
1432 ```ts
1433 import { useAsync } from 'react-use';
1434 ```
1435
1436 Would be converted into this:
1437
1438 ```ts
1439 import useAsync from 'react-use/lib/useAsync';
1440 ```
1441
1442### Patch Changes
1443
1444- 6e34e2cfbf: Introduce `--deprecated` option to `config:check` to log all deprecated app configuration properties
1445
1446 ```sh
1447 $ yarn backstage-cli config:check --lax --deprecated
1448 config:check --lax --deprecated
1449 Loaded config from app-config.yaml
1450 The configuration key 'catalog.processors.githubOrg' of app-config.yaml is deprecated and may be removed soon. Configure a GitHub integration instead.
1451 ```
1452
1453- f2fe4d240b: Switched to only apply `@hot-loader/react-dom` [Webpack aliasing](https://github.com/hot-loader/react-dom/tree/master/source#webpack) when using React 16.
1454- 2a42d573d2: Introduced a new `--experimental-type-build` option to the various package build commands. This option switches the type definition build to be executed using API Extractor rather than a `rollup` plugin. In order for this experimental switch to work, you must also have `@microsoft/api-extractor` installed within your project, as it is an optional peer dependency.
1455
1456 The biggest difference between the existing mode and the experimental one is that rather than just building a single `dist/index.d.ts` file, API Extractor will output `index.d.ts`, `index.beta.d.ts`, and `index.alpha.d.ts`, all in the `dist` directory. Each of these files will have exports from more unstable release stages stripped, meaning that `index.d.ts` will omit all exports marked with `@alpha` or `@beta`, while `index.beta.d.ts` will omit all exports marked with `@alpha`.
1457
1458 In addition, the `prepack` command now has support for `alphaTypes` and `betaTypes` fields in the `publishConfig` of `package.json`. These optional fields can be pointed to `dist/types.alpha.d.ts` and `dist/types.beta.d.ts` respectively, which will cause `<name>/alpha` and `<name>/beta` entry points to be generated for the package. See the [`@backstage/catalog-model`](https://github.com/backstage/backstage/blob/master/packages/catalog-model/package.json) package for an example of how this can be used in practice.
1459
1460- Updated dependencies
1461 - @backstage/config@0.1.13
1462 - @backstage/config-loader@0.9.3
1463
1464## 0.12.0-next.0
1465
1466### Minor Changes
1467
1468- 08fa6a604a: Removed the `typescript` dependency from the Backstage CLI in order to decouple the TypeScript version in Backstage projects. To keep using a specific TypeScript version, be sure to add an explicit dependency in your root `package.json`:
1469
1470 ```json
1471 "dependencies": {
1472 ...
1473 "typescript": "~4.5.4",
1474 }
1475 ```
1476
1477 We recommend using a `~` version range since TypeScript releases do not adhere to semver.
1478
1479 It may be the case that you end up with errors if you upgrade the TypeScript version. This is because there was a change to TypeScript not long ago that defaulted the type of errors caught in `catch` blocks to `unknown`. You can work around this by adding `"useUnknownInCatchVariables": false` to the `"compilerOptions"` in your `tsconfig.json`:
1480
1481 ```json
1482 "compilerOptions": {
1483 ...
1484 "useUnknownInCatchVariables": false
1485 }
1486 ```
1487
1488 Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
1489
1490 ```ts
1491 import { assertError, isError } from '@backstage/errors';
1492
1493 try {
1494 ...
1495 } catch (error) {
1496 assertError(error);
1497 ...
1498 // OR
1499 if (isError(error)) {
1500 ...
1501 }
1502 }
1503 ```
1504
1505### Patch Changes
1506
1507- 6e34e2cfbf: Introduce `--deprecated` option to `config:check` to log all deprecated app configuration properties
1508
1509 ```sh
1510 $ yarn backstage-cli config:check --lax --deprecated
1511 config:check --lax --deprecated
1512 Loaded config from app-config.yaml
1513 The configuration key 'catalog.processors.githubOrg' of app-config.yaml is deprecated and may be removed soon. Configure a GitHub integration instead.
1514 ```
1515
1516- 2a42d573d2: Introduced a new `--experimental-type-build` option to the various package build commands. This option switches the type definition build to be executed using API Extractor rather than a `rollup` plugin. In order for this experimental switch to work, you must also have `@microsoft/api-extractor` installed within your project, as it is an optional peer dependency.
1517
1518 The biggest difference between the existing mode and the experimental one is that rather than just building a single `dist/index.d.ts` file, API Extractor will output `index.d.ts`, `index.beta.d.ts`, and `index.alpha.d.ts`, all in the `dist` directory. Each of these files will have exports from more unstable release stages stripped, meaning that `index.d.ts` will omit all exports marked with `@alpha` or `@beta`, while `index.beta.d.ts` will omit all exports marked with `@alpha`.
1519
1520 In addition, the `prepack` command now has support for `alphaTypes` and `betaTypes` fields in the `publishConfig` of `package.json`. These optional fields can be pointed to `dist/types.alpha.d.ts` and `dist/types.beta.d.ts` respectively, which will cause `<name>/alpha` and `<name>/beta` entry points to be generated for the package. See the [`@backstage/catalog-model`](https://github.com/backstage/backstage/blob/master/packages/catalog-model/package.json) package for an example of how this can be used in practice.
1521
1522- Updated dependencies
1523 - @backstage/config@0.1.13-next.0
1524 - @backstage/config-loader@0.9.3-next.0
1525
1526## 0.11.0
1527
1528### Minor Changes
1529
1530- 14e980acee: ESLint upgraded to version 8 and all it's plugins updated to newest version.
1531
1532 If you use any custom plugins for ESLint please check compatibility.
1533
1534 ```diff
1535 - "@typescript-eslint/eslint-plugin": "^v4.33.0",
1536 - "@typescript-eslint/parser": "^v4.28.3",
1537 + "@typescript-eslint/eslint-plugin": "^5.9.0",
1538 + "@typescript-eslint/parser": "^5.9.0",
1539 - "eslint": "^7.30.0",
1540 + "eslint": "^8.6.0",
1541 - "eslint-plugin-import": "^2.20.2",
1542 - "eslint-plugin-jest": "^24.1.0",
1543 - "eslint-plugin-jsx-a11y": "^6.2.1",
1544 + "eslint-plugin-import": "^2.25.4",
1545 + "eslint-plugin-jest": "^25.3.4",
1546 + "eslint-plugin-jsx-a11y": "^6.5.1",
1547 - "eslint-plugin-react": "^7.12.4",
1548 - "eslint-plugin-react-hooks": "^4.0.0",
1549 + "eslint-plugin-react": "^7.28.0",
1550 + "eslint-plugin-react-hooks": "^4.3.0",
1551 ```
1552
1553 Please consult changelogs from packages if you find any problems.
1554
1555### Patch Changes
1556
1557- f302d24d34: Switch Webpack minification to use `esbuild` instead of `terser`.
1558- bee7082094: Update `config/eslint.js` to forbid imports of `@material-ui/icons/` as well.
1559- 7946418729: Switched to using `@manypkg/get-packages` to list monorepo packages, which provides better support for different kind of monorepo setups.
1560- Updated dependencies
1561 - @backstage/config@0.1.12
1562 - @backstage/errors@0.2.0
1563 - @backstage/config-loader@0.9.2
1564
1565## 0.10.5
1566
1567### Patch Changes
1568
1569- 37123b4851: Bump `css-loader` from `5.2.6` to `6.5.1`
1570- 9534391ae4: Add --pattern option to override matching glob patterns for backstage versioning
1571- 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead.
1572
1573## 0.10.4
1574
1575### Patch Changes
1576
1577- 1d26017090: Fix issue with plugin:serve for Plugins not using Lerna monorepo.
1578- 9c3aaf3512: Bump `@typescript-eslint/eslint-plugin` to `4.33.0`
1579- 808828e4fa: remove inline CSS from serve_index.html
1580- 6e4080d31b: Add option to build command for minifying the generated code
1581- Updated dependencies
1582 - @backstage/config-loader@0.9.1
1583
1584## 0.10.3
1585
1586### Patch Changes
1587
1588- dfc1110dc4: Added peerPluginDependencies option to experimentalInstallationRecipe for install command to install plugins it depends on.
1589- 58b0262dd9: Pruned unused dependencies.
1590- 5fdc8df0e8: The frontend configuration is now available as a `config` global during templating of the `index.html` file. This allows for much more flexibility as the values available during templating is not longer hardcoded to a fixed set of values.
1591
1592 For example, to access the app title, you would now do the following:
1593
1594 ```html
1595 <title><%= config.getString('app.title') %></title>
1596 ```
1597
1598 Along with this change, usage of the existing `app.<key>` values has been deprecated and will be removed in a future release. The general pattern for migrating existing usage is to replace `<%= app.<key> %>` with `<%= config.getString('app.<key>') %>`, although in some cases you may need to use for example `config.has('app.<key>')` or `config.getOptionalString('app.<key>')` instead.
1599
1600 The [`@backstage/create-app` changelog](https://github.com/backstage/backstage/blob/master/packages/create-app/CHANGELOG.md#049) also contains more details how to migrate existing usage.
1601
1602- Updated dependencies
1603 - @backstage/config-loader@0.9.0
1604
1605## 0.10.2
1606
1607### Patch Changes
1608
1609- 25dfc2d483: Add support for `.cjs` and `.mjs` extensions in local and dependency modules.
1610
1611## 0.10.1
1612
1613### Patch Changes
1614
1615- 0ebb05eee2: Add cli option to minify the generated code of a plugin or backend package
1616
1617 ```
1618 backstage-cli plugin:build --minify
1619 backstage-cli backend:build --minify
1620 ```
1621
1622- cd450844f6: Updated the frontend plugin template to put React dependencies in `peerDependencies` by default, as well as allowing both React v16 and v17. This change can be applied to existing plugins by running `yarn backstage-cli plugin:diff` within the plugin package directory.
1623
1624## 0.10.0
1625
1626### Minor Changes
1627
1628- ea99ef5198: Remove the `backend:build-image` command from the CLI and added more deprecation warnings to other deprecated fields like `--lax` and `remove-plugin`
1629
1630### Patch Changes
1631
1632- e7230ef814: Bump react-dev-utils to v12
1633- 416b68675d: build(dependencies): bump `style-loader` from 1.2.1 to 3.3.1
1634- Updated dependencies
1635 - @backstage/config-loader@0.8.1
1636
1637## 0.9.1
1638
1639### Patch Changes
1640
1641- dde216acf4: Switch the default test coverage provider from the jest default one to `'v8'`, which provides much better coverage information when using the default Backstage test setup. This is considered a bug fix as the current coverage information is often very inaccurate.
1642- 719cc87d2f: Disable ES transforms in tests transformed by the `jestSucraseTransform.js`. This is not considered a breaking change since all code is already transpiled this way in the development setup.
1643- bab752e2b3: Change default port of backend from 7000 to 7007.
1644
1645 This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
1646
1647 You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
1648
1649 ```
1650 backend:
1651 listen: 0.0.0.0:7123
1652 baseUrl: http://localhost:7123
1653 ```
1654
1655 More information can be found here: https://backstage.io/docs/conf/writing
1656
1657- ee055cf6db: Update the default routes to use id instead of title
1658- Updated dependencies
1659 - @backstage/errors@0.1.5
1660
1661## 0.9.0
1662
1663### Minor Changes
1664
1665- 25f637f39f: Tweaked style insertion logic to make sure that JSS stylesheets always receive the highest priority.
1666
1667### Patch Changes
1668
1669- 677bfc2dd0: Keep backstage.json in sync
1670
1671 The `versions:bump` script now takes care about updating the `version` property inside `backstage.json` file. The file is created if is not present.
1672
1673- 8809b6c0dd: Update the json-schema dependency version.
1674- fdfd2f8a62: remove double config dep
1675- 1e99c73c75: Update internal usage of `configLoader.loadConfig` that now returns an object instead of an array of configs.
1676- 6dcfe227a2: Added a scaffolder backend module template for the `create` command.
1677- 4ca3542fdd: Fixed a bug where calling `backstage-cli backend:bundle --build-dependencies` with no dependencies to be built would cause all monorepo packages to be built instead.
1678- 867ea81d15: bump `@rollup/plugin-commonjs` from 17.1.0 to 21.0.1
1679- 16d06f6ac3: Introduces new `backstage-cli create` command to replace `create-plugin` and make space for creating a wider array of things. The create command also adds a new template for creating isomorphic common plugin packages.
1680- Updated dependencies
1681 - @backstage/config-loader@0.8.0
1682 - @backstage/cli-common@0.1.6
1683
1684## 0.8.2
1685
1686### Patch Changes
1687
1688- dd355bca46: Switched to dynamically determining the packages that are unsafe to repack when executing the CLI within the Backstage main repo.
1689- b393c4d4be: Fixed the `config:check` command that was incorrectly only validating frontend configuration. Also added a `--frontend` flag to the command which maintains that behavior.
1690- 0611f3b3e2: Reading app config from a remote server
1691- ec64d9590c: Make `ExitCodeError` call `super` early to avoid compiler warnings
1692- 8af66229e7: Bumped `@spotify/eslint-config-react` from `v10` to `v12`, dropping support for Node.js v12.
1693- a197708da9: Bumped `@spotify/eslint-config-typescript` from `v10` to `v12`, dropping support for Node.js v12.
1694- Updated dependencies
1695 - @backstage/config-loader@0.7.2
1696
1697## 0.8.1
1698
1699### Patch Changes
1700
1701- f1e96dc5b1: Update usage of msw in default plugin template
1702- b0dc1fd241: bump `@spotify/eslint-config-base` from 9.0.2 to 12.0.0
1703- c5bb1df55d: Bump `msw` to `v0.35.0` to resolve [CVE-2021-32796](https://github.com/advisories/GHSA-5fg8-2547-mr8q).
1704- 10615525f3: Switch to use the json and observable types from `@backstage/types`
1705- Updated dependencies
1706 - @backstage/config@0.1.11
1707 - @backstage/cli-common@0.1.5
1708 - @backstage/errors@0.1.4
1709 - @backstage/config-loader@0.7.1
1710
1711## 0.8.0
1712
1713### Minor Changes
1714
1715- b486adb8c6: The Jest configuration that's included with the Backstage CLI has received several changes.
1716
1717 As a part of migrating to more widespread usage of ESM modules, the default configuration now transforms all source files everywhere, including those within `node_modules`. Due to this change the existing `transformModules` option has been removed and will be ignored. There is also a list of known packages that do not require transforms in the CLI, which will evolve over time. If needed there will also be an option to add packages to this list in the future, but it is not included yet to avoid clutter.
1718
1719 To counteract the slowdown of the additional transforms that have been introduced, the default configuration has also been reworked to enable caching across different packages. Previously each package in a Backstage monorepo would have its own isolated Jest cache, but it is now shared between packages that have a similar enough Jest configuration.
1720
1721 Another change that will speed up test execution is that the transformer for `.esm.js` files has been switched. It used to be an ESM transformer based on Babel, but it is also done by sucrase now since it is significantly faster.
1722
1723 The changes above are not strictly breaking as all tests should still work. It may however cause excessive slowdowns in projects that have configured custom transforms in the `jest` field within `package.json` files. In this case it is either best to consider removing the custom transforms, or overriding the `transformIgnorePatterns` to instead use Jest's default `'/node_modules/'` pattern.
1724
1725 This change also removes the `@backstage/cli/config/jestEsmTransform.js` transform, which can be replaced by using the `@backstage/cli/config/sucraseEsmTransform.js` transform instead.
1726
1727### Patch Changes
1728
1729- 36e67d2f24: Internal updates to apply more strict checks to throw errors.
1730- Updated dependencies
1731 - @backstage/config-loader@0.7.0
1732 - @backstage/errors@0.1.3
1733
1734## 0.7.16
1735
1736### Patch Changes
1737
1738- 53bdc66623: add a --from <location> option to the plugin install command
1739- 84e24fcdaf: Bump sucrase to version 3.20.2
1740- 6583c6ac40: Add semicolon in template to make prettier happy
1741- c6f927d819: Bump mini-css-extract-plugin to v2
1742- 16f044cb6b: Update default backend ESLint configuration to allow usage of `__dirname` in tests.
1743- 1ef9e64901: Add an experimental `install <plugin>` command.
1744
1745 Given a `pluginId`, the command looks for NPM packages matching `@backstage/plugin-{pluginId}` or `backstage-plugin-{pluginId}` or `{pluginId}`. It looks for the `experimentalInstallationRecipe` in their `package.json` for the steps of installation. Detailed documentation and API Spec to follow (and to be decided as well).
1746
1747## 0.7.15
1748
1749### Patch Changes
1750
1751- ae4680b88d: The `create-plugin` command now passes the extension name via the `name` key
1752 in `createRoutableExtension()` calls in newly created plugins.
1753- df1242ffe4: Adding `--inspect-brk` as an option when debugging backend for development
1754- c7f2a2307d: When creating a backend plugin with `--backend` flag, don't add `-backend` if it's already suffixed
1755- 185fec5c0c: The default jest configuration used by the `test` command now supports yarn workspaces. By running `backstage-cli test` in the root of a monorepo, all packages will now automatically be included in the test suite and it will run just like it does within a package. Each package in the monorepo will still use its own local jest configuration, and only packages that have `backstage-cli test` in the `test` script within `package.json` will be included.
1756- Updated dependencies
1757 - @backstage/config-loader@0.6.10
1758 - @backstage/cli-common@0.1.4
1759
1760## 0.7.14
1761
1762### Patch Changes
1763
1764- 3a8704f16b: Only serve static assets if there is a public folder during `app:serve` and `plugin:serve`. This fixes a common bug that would break `plugin:serve` with an `EBUSY` error.
1765- 40199b61d6: Configuration schema is now also collected from the root `package.json` if it exists.
1766- 2a6c393c06: The `create-plugin` command now prefers dependency versions ranges that are already in the lockfile.
1767- 58f91943ab: Improved ´plugin:diff´ check for the `package.json` `"files"` field.
1768- 12e074a6e4: Fix duplication checks to stop looking for the old core packages, and to allow some explicitly
1769- Updated dependencies
1770 - @backstage/config-loader@0.6.9
1771
1772## 0.7.13
1773
1774### Patch Changes
1775
1776- c0c51c9710: Disabled ECMAScript transforms in app and backend builds in order to reduce bundle size and runtime performance. For the rationale and a full list of syntax that is no longer transformed, see https://github.com/alangpierce/sucrase#transforms. This also enables TypeScripts `useDefineForClassFields` flag by default, which in rare occasions could cause build failures. For instructions on how to mitigate issues due to the flag, see the [TypeScript documentation](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#the-usedefineforclassfields-flag-and-the-declare-property-modifier).
1777- e9f332a51c: Restrict imports on the form `../../plugins/x/src`
1778- febddedcb2: Bump `lodash` to remediate `SNYK-JS-LODASH-590103` security vulnerability
1779- 050797c5b3: Switched the Jest YAML transform from `yaml-jest` to `jest-transform-yaml`, which works with newer versions of Node.js.
1780- Updated dependencies
1781 - @backstage/config@0.1.10
1782
1783## 0.7.12
1784
1785### Patch Changes
1786
1787- d835d112fe: replace the deprecated file-loader for fonts with assets module
1788- 15e324ce60: Set the default TZ (Timezone) env for the test command to be UTC so any date related tests are consistent across timezones.
1789- 9f1362dcc1: Upgrade `@material-ui/lab` to `4.0.0-alpha.57`.
1790
1791## 0.7.11
1792
1793### Patch Changes
1794
1795- 13895db37: Support importing font files in tests.
1796 This fixes remaining issues from [#7019](https://github.com/backstage/backstage/pull/7019).
1797- Updated dependencies
1798 - @backstage/cli-common@0.1.3
1799 - @backstage/config-loader@0.6.8
1800 - @backstage/config@0.1.9
1801
1802## 0.7.10
1803
1804### Patch Changes
1805
1806- 5e803edb8: Added support for importing font files. Imports in CSS via `url()` are supported for the final frontend bundle, but not for packages that are built for publishing. Module imports of fonts files from TypeScript are supported everywhere.
1807- b5118ff76: Updated dependencies
1808
1809## 0.7.9
1810
1811### Patch Changes
1812
1813- f3bba3d2b: Remove debug logging
1814- 8ea1e96b3: Fix file path handling in diff commands on Windows.
1815- 2518aab58: Compensate for error formatting mismatch between Webpack 5 and react-dev-utils
1816- 1ac2961c3: Reintroduce Node.js shims that were removed in the Webpack 5 migration.
1817- 8d07a8b03: Add Buffer to `ProvidePlugin` since this is no longer provided in `webpack@5`
1818- fe506a0cf: Remove Webpack deprecation message when running build.
1819- 485438a56: Fix `backstage-cli backend:dev` argument passing
1820- Updated dependencies
1821 - @backstage/config@0.1.7
1822 - @backstage/config-loader@0.6.7
1823
1824## 0.7.8
1825
1826### Patch Changes
1827
1828- c4ef9181a: Migrate to using `webpack@5` 🎉
1829
1830## 0.7.7
1831
1832### Patch Changes
1833
1834- 6aa7c3db7: bump node-tar version to the latest
1835- e9d3983ee: Keep track of filtered configuration values when running frontend in development mode.
1836- Updated dependencies
1837 - @backstage/config@0.1.6
1838 - @backstage/config-loader@0.6.6
1839
1840## 0.7.6
1841
1842### Patch Changes
1843
1844- 9d40fcb1e: - Bumping `material-ui/core` version to at least `4.12.2` as they made some breaking changes in later versions which broke `Pagination` of the `Table`.
1845 - Switching out `material-table` to `@material-table/core` for support for the later versions of `material-ui/core`
1846 - This causes a minor API change to `@backstage/core-components` as the interface for `Table` re-exports the `prop` from the underlying `Table` components.
1847 - `onChangeRowsPerPage` has been renamed to `onRowsPerPageChange`
1848 - `onChangePage` has been renamed to `onPageChange`
1849 - Migration guide is here: https://material-table-core.com/docs/breaking-changes
1850
1851## 0.7.5
1852
1853### Patch Changes
1854
1855- 9a96b5da7: chore: bump `eslint` to `7.30.0`
1856
1857## 0.7.4
1858
1859### Patch Changes
1860
1861- ae84b20cf: Revert the upgrade to `fs-extra@10.0.0` as that seemed to have broken all installs inexplicably.
1862- Updated dependencies
1863 - @backstage/config-loader@0.6.5
1864
1865## 0.7.3
1866
1867### Patch Changes
1868
1869- a93e60fdc: Updated dependencies
1870- 55f49fcc7: Update dependencies
1871- ab5cc376f: Use new `isChildPath` export from `@backstage/cli-common`
1872- Updated dependencies
1873 - @backstage/cli-common@0.1.2
1874
1875## 0.7.2
1876
1877### Patch Changes
1878
1879- 953a7e66f: updated plugin template to generate path equals plugin id for the root page
1880- 04248b8f9: chore: bump `msw` dependency in `create-plugin`
1881- e3d31b381: Make the `create-github-app` command disable webhooks by default.
1882- 8f100db75: chore: bump `@typescript-eslint/eslint-plugin` from 4.26.0 to 4.27.0
1883- 95e572305: chore: bump `del` from 5.1.0 to 6.0.0
1884- ece2b5dd1: chore: bump `@spotify/eslint-config-typescript` from 9.0.0 to 10.0.0
1885- 0ec31e596: chore: bump `@rollup/plugin-node-resolve` from 11.2.1 to 13.0.0
1886- 48c9fcd33: Migrated to use the new `@backstage/core-*` packages rather than `@backstage/core`.
1887
1888## 0.7.1
1889
1890### Patch Changes
1891
1892- 3108ff7bf: Make `yarn dev` in newly created backend plugins respect the `PLUGIN_PORT` environment variable.
1893
1894 You can achieve the same in your created backend plugins by making sure to properly call the port and CORS methods on your service builder. Typically in a file named `src/service/standaloneServer.ts` inside your backend plugin package, replace the following:
1895
1896 ```ts
1897 const service = createServiceBuilder(module)
1898 .enableCors({ origin: 'http://localhost:3000' })
1899 .addRouter('/my-plugin', router);
1900 ```
1901
1902 With something like the following:
1903
1904 ```ts
1905 let service = createServiceBuilder(module)
1906 .setPort(options.port)
1907 .addRouter('/my-plugin', router);
1908 if (options.enableCors) {
1909 service = service.enableCors({ origin: 'http://localhost:3000' });
1910 }
1911 ```
1912
1913- Updated dependencies
1914 - @backstage/config-loader@0.6.4
1915
1916## 0.7.0
1917
1918### Minor Changes
1919
1920- 9cd3c533c: Switch from `ts-jest` to `@sucrase/jest-plugin`, improving performance and aligning transpilation with bundling.
1921
1922 In order to switch back to `ts-jest`, install `ts-jest@^26.4.3` as a dependency in the root of your repo and add the following in the root `package.json`:
1923
1924 ```json
1925 "jest": {
1926 "globals": {
1927 "ts-jest": {
1928 "isolatedModules": true
1929 }
1930 },
1931 "transform": {
1932 "\\.esm\\.js$": "@backstage/cli/config/jestEsmTransform.js",
1933 "\\.(js|jsx|ts|tsx)$": "ts-jest",
1934 "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$": "@backstage/cli/config/jestFileTransform.js",
1935 "\\.(yaml)$": "yaml-jest"
1936 }
1937 }
1938 ```
1939
1940 Note that this will override the default jest transforms included with the `@backstage/cli`.
1941
1942 It is possible that some test code needs a small migration as a result of this change, which stems from a difference in how `sucrase` and `ts-jest` transform module re-exports.
1943
1944 Consider the following code:
1945
1946 ```ts
1947 import * as utils from './utils';
1948
1949 jest.spyOn(utils, 'myUtility').mockReturnValue(3);
1950 ```
1951
1952 If the `./utils` import for example refers to an index file that in turn re-exports from `./utils/myUtility`, you would have to change the code to the following to work around the fact that the exported object from `./utils` ends up not having configurable properties, thus breaking `jest.spyOn`.
1953
1954 ```ts
1955 import * as utils from './utils/myUtility';
1956
1957 jest.spyOn(utils, 'myUtility').mockReturnValue(3);
1958 ```
1959
1960### Patch Changes
1961
1962- 7f7443308: Updated dependencies
1963- 21e8ebef5: Fix error message formatting in the packaging process.
1964
1965 error.errors can be undefined which will lead to a TypeError, swallowing the actual error message in the process.
1966
1967 For instance, if you break your tsconfig.json with invalid syntax, backstage-cli will not be able to build anything and it will be very hard to find out why because the underlying error message is hidden behind a TypeError.
1968
1969## 0.6.14
1970
1971### Patch Changes
1972
1973- ee4eb5b40: Adjust the Webpack `devtool` module filename template to correctly resolve via the source maps to the source files.
1974- 84160313e: Mark the `create-github-app` command as ready for use and reveal it in the command list.
1975- 7e7c71417: Exclude core packages from package dependency diff.
1976- e7c5e4b30: Update installation instructions in README.
1977- 2305ab8fc: chore(deps): bump `@spotify/eslint-config-react` from 9.0.0 to 10.0.0
1978- 054bcd029: Deprecated the `backend:build-image` command, pointing to the newer `backend:bundle` command.
1979
1980## 0.6.13
1981
1982### Patch Changes
1983
1984- 1cd0cacd9: Add support for transforming yaml files in jest with 'yaml-jest'
1985- 7a7da5146: Bumped `eslint-config-prettier` to `8.x`.
1986- 3a181cff1: Bump webpack-node-externals from `2.5.2` to `3.0.0`.
1987- Updated dependencies [2cf98d279]
1988- Updated dependencies [438a512eb]
1989 - @backstage/config-loader@0.6.3
1990
1991## 0.6.12
1992
1993### Patch Changes
1994
1995- 2bfec55a6: Update `fork-ts-checker-webpack-plugin`
1996- Updated dependencies [290405276]
1997 - @backstage/config-loader@0.6.2
1998
1999## 0.6.11
2000
2001### Patch Changes
2002
2003- 2cd70e164: Add context for versions:bump on what version it was bumped to. Updated tests for the same.
2004- 3be844496: chore: bump `ts-node` versions to 9.1.1
2005- e3fc89df6: update plugins created to use react-use 17.2.4
2006
2007## 0.6.10
2008
2009### Patch Changes
2010
2011- f65adcde7: Fix some transitive dependency warnings in yarn
2012- fc79a6dd3: Added lax option to backstage-cli app:build command
2013- d8b81fd28: Bump `json-schema` dependency from `0.2.5` to `0.3.0`.
2014- Updated dependencies [d8b81fd28]
2015 - @backstage/config-loader@0.6.1
2016 - @backstage/config@0.1.5
2017
2018## 0.6.9
2019
2020### Patch Changes
2021
2022- 4e5c94249: Add `config:docs` command that opens up reference documentation for the local configuration schema in a browser.
2023- 1373f4f12: No longer add newly created plugins to `plugins.ts` in the app, as it is no longer needed.
2024- 479b29124: Added support for Datadog rum events
2025
2026## 0.6.8
2027
2028### Patch Changes
2029
2030- 60ce64aa2: Disable hot reloading in CI environments.
2031
2032## 0.6.7
2033
2034### Patch Changes
2035
2036- Updated dependencies [82c66b8cd]
2037 - @backstage/config-loader@0.6.0
2038
2039## 0.6.6
2040
2041### Patch Changes
2042
2043- 598f5bcfb: Lock down the version of webpack-dev-server as it's causing some nasty bugs someplace
2044- 4d248725e: Make the backend plugin template use the correct latest version of `express-promise-router`
2045
2046## 0.6.5
2047
2048### Patch Changes
2049
2050- 84972540b: Lint storybook files, i.e. `*.stories.*`, as if they were tests.
2051- Updated dependencies [0434853a5]
2052 - @backstage/config@0.1.4
2053
2054## 0.6.4
2055
2056### Patch Changes
2057
2058- 5ab5864f6: Add support for most TypeScript 4.1 syntax.
2059
2060## 0.6.3
2061
2062### Patch Changes
2063
2064- 507513fed: Bump `@svgr/webpack` from `5.4.x` to `5.5.x`.
2065- e37d2de99: Bump `@testing-library/react` in the plugin template from `^10.4.1` to `^11.2.5`. To apply this to an existing plugin, update the dependency in your `package.json`.
2066- 11c6208fe: Fixed an issue where the `backend:dev` command would get stuck executing the backend process multiple times, causing port conflict issues.
2067- d4f0a1406: New config command to export the configuration schema. When running backstage-cli with yarn, consider using `yarn --silent backstage-cli config:schema` to get a clean output on `stdout`.
2068- b93538acc: Fix for type declaration input being required for build even if types aren't being built.
2069- 8871e7523: Bump `ts-loader` dependency range from `^7.0.4` to `^8.0.17`.
2070
2071## 0.6.2
2072
2073### Patch Changes
2074
2075- e780e119c: Add missing `file-loader` dependency which could cause issues with loading images and other assets.
2076- 6266ddd11: The `yarn backstage-cli app:diff` has been broken since a couple of months. The command to perform updates `yarn backstage-cli versions:bump` prints change logs which seems to be a good replacement for this command.
2077- Updated dependencies [a1f5e6545]
2078 - @backstage/config@0.1.3
2079
2080## 0.6.1
2081
2082### Patch Changes
2083
2084- 257a753ff: Updated transform of `.esm.js` files to be able to handle dynamic imports.
2085- 9337f509d: Tweak error message in lockfile parsing to include more information.
2086- 532bc0ec0: Upgrading to lerna@4.0.0.
2087
2088## 0.6.0
2089
2090### Minor Changes
2091
2092- 19fe61c27: We have updated the default `eslint` rules in the `@backstage/cli` package.
2093
2094 ```diff
2095 -'@typescript-eslint/no-shadow': 'off',
2096 -'@typescript-eslint/no-redeclare': 'off',
2097 +'no-shadow': 'off',
2098 +'no-redeclare': 'off',
2099 +'@typescript-eslint/no-shadow': 'error',
2100 +'@typescript-eslint/no-redeclare': 'error',
2101 ```
2102
2103 The rules are documented [here](https://eslint.org/docs/rules/no-shadow) and [here](https://eslint.org/docs/rules/no-redeclare).
2104
2105 This involved a large number of small changes to the code base. When you compile your own code using the CLI, you may also be
2106 affected. We consider these rules important, and the primary recommendation is to try to update your code according to the
2107 documentation above. But those that prefer to not enable the rules, or need time to perform the updates, may update their
2108 local `.eslintrc.js` file(s) in the repo root and/or in individual plugins as they see fit:
2109
2110 ```js
2111 module.exports = {
2112 // ... other declarations
2113 rules: {
2114 '@typescript-eslint/no-shadow': 'off',
2115 '@typescript-eslint/no-redeclare': 'off',
2116 },
2117 };
2118 ```
2119
2120 Because of the nature of this change, we're unable to provide a grace period for the update :(
2121
2122### Patch Changes
2123
2124- 398e1f83e: Update `create-plugin` template to use the new composability API, by switching to exporting a single routable extension component.
2125- e9aab60c7: Fixed module resolution of external libraries during backend development. Modules used to be resolved relative to the backend entrypoint, but are now resolved relative to each individual module.
2126- a08c4b0b0: Add check for outdated/duplicate packages to yarn start
2127- Updated dependencies [062df71db]
2128- Updated dependencies [e9aab60c7]
2129 - @backstage/config-loader@0.5.1
2130
2131## 0.5.0
2132
2133### Minor Changes
2134
2135- 12a56cdfe: We've bumped the `@eslint-typescript` packages to the latest, which now add some additional rules that might cause lint failures.
2136 The main one which could become an issue is the [no-use-before-define](https://eslint.org/docs/rules/no-use-before-define) rule.
2137
2138 Every plugin and app has the ability to override these rules if you want to ignore them for now.
2139
2140 You can reset back to the default behaviour by using the following in your own `.eslint.js`
2141
2142 ```js
2143 rules: {
2144 'no-use-before-define': 'off'
2145 }
2146 ```
2147
2148 Because of the nature of this change, we're unable to provide a grace period for the update :(
2149
2150### Patch Changes
2151
2152- ef7957be4: Add `--lax` option to `config:print` and `config:check`, which causes all environment variables to be assumed to be set.
2153- Updated dependencies [ef7957be4]
2154- Updated dependencies [ef7957be4]
2155- Updated dependencies [ef7957be4]
2156 - @backstage/config-loader@0.5.0
2157
2158## 0.4.7
2159
2160### Patch Changes
2161
2162- b604a9d41: Append `-credentials.yaml` to credentials file generated by `backstage-cli create-github-app` and display warning about sensitive contents.
2163
2164## 0.4.6
2165
2166### Patch Changes
2167
2168- 94fdf4955: Get rid of all usages of @octokit/types, and bump the rest of the octokit dependencies to the latest version
2169- 08e9893d2: Handle no npm info
2170- 9cf71f8bf: Added experimental `create-github-app` command.
2171
2172## 0.4.5
2173
2174### Patch Changes
2175
2176- 37a7d26c4: Use consistent file extensions for JS output when building packages.
2177- 818d45e94: Fix detection of external package child directories
2178- 0588be01f: Add `backend:bundle` command for bundling a backend package with dependencies into a deployment archive.
2179- b8abdda57: Add color to output from `versions:bump` in order to make it easier to spot changes. Also highlight possible breaking changes and link to changelogs.
2180- Updated dependencies [ad5c56fd9]
2181 - @backstage/config-loader@0.4.1
2182
2183## 0.4.4
2184
2185### Patch Changes
2186
2187- d45efbc9b: Fix typo in .app.listen.port config schema
2188
2189## 0.4.3
2190
2191### Patch Changes
2192
2193- 19554f6d6: Added GitHub Actions for Create React App, and allow better imports of files inside a module when they're exposed using `files` in `package.json`
2194- 7d72f9b09: Fix for `app.listen.host` configuration not properly overriding listening host.
2195
2196## 0.4.2
2197
2198### Patch Changes
2199
2200- c36a01b4c: Re-enable symlink resolution during bundling, and switch to using a resolve plugin for external linked packages.
2201
2202## 0.4.1
2203
2204### Patch Changes
2205
2206- 06dbe707b: Update experimental backend bundle command to only output archives to `dist/` instead of a full workspace mirror in `dist-workspace/`.
2207- 011708102: Fixes a big in the bundling logic that caused `node_modules` inside local monorepo packages to be transformed.
2208- 61897fb2c: Fix config schema for `.app.listen`
2209- Updated dependencies [e3bd9fc2f]
2210- Updated dependencies [e3bd9fc2f]
2211 - @backstage/config@0.1.2
2212
2213## 0.4.0
2214
2215### Minor Changes
2216
2217- 00670a96e: sort product panels and navigation menu by greatest cost
2218 update tsconfig.json to use ES2020 api
2219
2220### Patch Changes
2221
2222- b4488ddb0: Added a type alias for PositionError = GeolocationPositionError
2223- 4a655c89d: Bump versions of `esbuild` and `rollup-plugin-esbuild`
2224- 8a16e8af8: Support `.npmrc` when building with private NPM registries
2225- Updated dependencies [4e7091759]
2226- Updated dependencies [b4488ddb0]
2227 - @backstage/config-loader@0.4.0
2228
2229## 0.3.2
2230
2231### Patch Changes
2232
2233- 294295453: Only load config that applies to the target package for frontend build and serve tasks. Also added `--package <name>` flag to scope the config schema used by the `config:print` and `config:check` commands.
2234- f538e2c56: Make versions:bump install new versions of dependencies that were within the specified range as well as install new versions of transitive @backstage dependencies.
2235- 8697dea5b: Bump Rollup
2236- b623cc275: Narrow down the version range of rollup-plugin-esbuild to avoid breaking change in newer version
2237
2238## 0.3.1
2239
2240### Patch Changes
2241
2242- 29a0ccab2: The CLI now detects and transforms linked packages. You can link in external packages by adding them to both the `lerna.json` and `package.json` workspace paths.
2243- faf311c26: New lint rule to disallow <type> assertions and promote `as` assertions. - @typescript-eslint/consistent-type-assertions
2244- 31d8b6979: Add experimental backend:bundle command
2245- 991345969: Add new `versions:check` and `versions:bump` commands to simplify version management and avoid conflicts
2246
2247## 0.3.0
2248
2249### Minor Changes
2250
2251- 1722cb53c: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
2252
2253 The new `loadConfigSchema` function exported by `@backstage/config-loader` allows for the collection and merging of configuration schemas from all nearby dependencies of the project.
2254
2255 A configuration schema is declared using the `https://backstage.io/schema/config-v1` JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the custom `visibility` keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values are `frontend`, `backend`, and `secret`, where `backend` is the default. A visibility of `secret` has the same scope at runtime, but it will be treated with more care in certain contexts, and defining both `frontend` and `secret` for the same value in two different schemas will result in an error during schema merging.
2256
2257 Packages that wish to contribute configuration schema should declare it in a root `"configSchema"` field in `package.json`. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either `.json` or `.d.ts` format.
2258
2259 TypeScript configuration schema files should export a single `Config` type, for example:
2260
2261 ```ts
2262 export interface Config {
2263 app: {
2264 /**
2265 * Frontend root URL
2266 * @visibility frontend
2267 */
2268 baseUrl: string;
2269 };
2270 }
2271 ```
2272
2273### Patch Changes
2274
2275- 1722cb53c: Added configuration schema
2276- 902340451: Support specifying listen host/port for frontend
2277- Updated dependencies [1722cb53c]
2278 - @backstage/config-loader@0.3.0
2279
2280## 0.2.0
2281
2282### Minor Changes
2283
2284- 28edd7d29: Create backend plugin through CLI
2285- 1d0aec70f: Upgrade dependency `esbuild@0.7.7`
2286- 72f6cda35: Adds a new `BACKSTAGE_CLI_BUILD_PARELLEL` environment variable to control
2287 parallelism for some build steps.
2288
2289 This is useful in CI to help avoid out of memory issues when using `terser`. The
2290 `BACKSTAGE_CLI_BUILD_PARELLEL` environment variable can be set to
2291 `true | false | [integer]` to override the default behaviour. See
2292 [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin#parallel)
2293 for more details.
2294
2295- 8c2b76e45: **BREAKING CHANGE**
2296
2297 The existing loading of additional config files like `app-config.development.yaml` using APP_ENV or NODE_ENV has been removed.
2298 Instead, the CLI and backend process now accept one or more `--config` flags to load config files.
2299
2300 Without passing any flags, `app-config.yaml` and, if it exists, `app-config.local.yaml` will be loaded.
2301 If passing any `--config <path>` flags, only those files will be loaded, **NOT** the default `app-config.yaml` one.
2302
2303 The old behaviour of for example `APP_ENV=development` can be replicated using the following flags:
2304
2305 ```bash
2306 --config ../../app-config.yaml --config ../../app-config.development.yaml
2307 ```
2308
2309- 8afce088a: Use APP_ENV before NODE_ENV for determining what config to load
2310
2311### Patch Changes
2312
2313- 3472c8be7: Add codeowners processor
2314
2315 - Include ESNext.Promise in TypeScript compilation
2316
2317- a3840bed2: Upgrade dependency rollup-plugin-typescript2 to ^0.27.3
2318- cba4e4d97: Including source maps with all packages
2319- 9a3b3dbf1: Fixed duplicate help output, and print help on invalid command
2320- 7bbeb049f: Change loadBackendConfig to return the config directly
2321- Updated dependencies [8c2b76e45]
2322- Updated dependencies [ce5512bc0]
2323 - @backstage/config-loader@0.2.0
2324
\No newline at end of file