UNPKG

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