UNPKG

69.6 kBMarkdownView Raw
1# @backstage/cli
2
3## 0.18.0
4
5### Minor Changes
6
7- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
8
9 - `app:build` - Use `package build` instead
10 - `app:serve` - Use `package start` instead
11 - `backend:build` - Use `package build` instead
12 - `backend:bundle` - Use `package build` instead
13 - `backend:dev` - Use `package start` instead
14 - `plugin:build` - Use `package build` instead
15 - `plugin:serve` - Use `package start` instead
16 - `build` - Use `package build` instead
17 - `lint` - Use `package lint` instead
18 - `prepack` - Use `package prepack` instead
19 - `postpack` - Use `package postpack` instead
20
21 In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
22
23### Patch Changes
24
25- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
26- d2256c0384: Fix `webpack-dev-server` deprecations.
27- a70869e775: Updated dependency `msw` to `^0.43.0`.
28- 72622d9143: Updated dependency `yaml` to `^2.0.0`.
29- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
30- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
31- e8ed804d4f: Updated dependency `@spotify/prettier-config` to `^14.0.0`.
32 Updated dependency `@spotify/eslint-config-base` to `^14.0.0`.
33 Updated dependency `@spotify/eslint-config-react` to `^14.0.0`.
34 Updated dependency `@spotify/eslint-config-typescript` to `^14.0.0`.
35- e662b573cf: Updated dependency `@octokit/request` to `^6.0.0`.
36- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
37- Updated dependencies
38 - @backstage/config-loader@1.1.3
39 - @backstage/release-manifests@0.0.5
40 - @backstage/errors@1.1.0
41
42## 0.18.0-next.3
43
44### Patch Changes
45
46- a70869e775: Updated dependency `msw` to `^0.43.0`.
47- 72622d9143: Updated dependency `yaml` to `^2.0.0`.
48- e662b573cf: Updated dependency `@octokit/request` to `^6.0.0`.
49- Updated dependencies
50 - @backstage/config-loader@1.1.3-next.1
51 - @backstage/release-manifests@0.0.5-next.0
52
53## 0.18.0-next.2
54
55### Patch Changes
56
57- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
58
59## 0.18.0-next.1
60
61### Minor Changes
62
63- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
64
65 - `app:build` - Use `package build` instead
66 - `app:serve` - Use `package start` instead
67 - `backend:build` - Use `package build` instead
68 - `backend:bundle` - Use `package build` instead
69 - `backend:dev` - Use `package start` instead
70 - `plugin:build` - Use `package build` instead
71 - `plugin:serve` - Use `package start` instead
72 - `build` - Use `package build` instead
73 - `lint` - Use `package lint` instead
74 - `prepack` - Use `package prepack` instead
75 - `postpack` - Use `package postpack` instead
76
77 In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
78
79### Patch Changes
80
81- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
82- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
83- Updated dependencies
84 - @backstage/errors@1.1.0-next.0
85 - @backstage/config-loader@1.1.3-next.0
86
87## 0.17.3-next.0
88
89### Patch Changes
90
91- d2256c0384: Fix `webpack-dev-server` deprecations.
92
93## 0.17.2
94
95### Patch Changes
96
97- 026cfe525a: Fix the public path configuration of the frontend app build so that a trailing `/` is always appended when needed.
98- 4f73352608: Updated Lockfile to support new versions of yarn as well as the legacy 1 version
99- 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.
100- bd58365d09: Updated dependency `run-script-webpack-plugin` to `^0.0.14`.
101- 9002ebd76b: Updated dependency `@rollup/plugin-commonjs` to `^22.0.0`.
102- 8f7b1835df: Updated dependency `msw` to `^0.41.0`.
103- 1a33e8b287: Updated dependency `minimatch` to `5.1.0`.
104- 6de866ea74: Added console warning to frontend start when the `app.baseUrl` and `backend.baseUrl` are identical
105- Updated dependencies
106 - @backstage/config-loader@1.1.2
107 - @backstage/release-manifests@0.0.4
108
109## 0.17.2-next.2
110
111### Patch Changes
112
113- 026cfe525a: Fix the public path configuration of the frontend app build so that a trailing `/` is always appended when needed.
114- 9002ebd76b: Updated dependency `@rollup/plugin-commonjs` to `^22.0.0`.
115- 1a33e8b287: Updated dependency `minimatch` to `5.1.0`.
116
117## 0.17.2-next.1
118
119### Patch Changes
120
121- bd58365d09: Updated dependency `run-script-webpack-plugin` to `^0.0.14`.
122- 8f7b1835df: Updated dependency `msw` to `^0.41.0`.
123- Updated dependencies
124 - @backstage/config-loader@1.1.2-next.0
125 - @backstage/release-manifests@0.0.4-next.0
126
127## 0.17.2-next.0
128
129### Patch Changes
130
131- 4f73352608: Updated Lockfile to support new versions of yarn as well as the legacy 1 version
132- 6de866ea74: Added console warning to frontend start when the `app.baseUrl` and `backend.baseUrl` are identical
133
134## 0.17.1
135
136### Patch Changes
137
138- 52fb9920ac: Fixed coverage configuration when using `BACKSTAGE_NEXT_TESTS`.
139- 6cd1f50ae1: Extended lint rule to prevents imports of stories or tests from production code.
140- 97cce67ac7: Add instructions to `create-github-app` command.
141- 08e12a3a14: Add package global-agent to support behind a proxy for backstage-cli commands like versions:bump.
142- 4d8736eded: Changed Rollup configuration for TypeScript definition plugin to ignore `css`,
143 `scss`, `sass`, `svg`, `eot`, `woff`, `woff2` and `ttf` files.
144- cfc0f19699: Updated dependency `fs-extra` to `10.1.0`.
145- 2737777e02: Added the ability to help a user get started with a new organization
146- 344ea56acc: Bump `commander` to version 9.1.0
147- 8ab2a8226b: Updated the `create-github-app` command to throw an error if the organization argument is a user or a non existing organization.
148- 632be18bbc: Updated `create-github-app` command to prompt for read or write permissions to simplify setup.
149- Updated dependencies
150 - @backstage/cli-common@0.1.9
151 - @backstage/config@1.0.1
152 - @backstage/release-manifests@0.0.3
153 - @backstage/config-loader@1.1.1
154
155## 0.17.1-next.2
156
157### Patch Changes
158
159- 632be18bbc: Updated `create-github-app` command to prompt for read or write permissions to simplify setup.
160- Updated dependencies
161 - @backstage/cli-common@0.1.9-next.0
162 - @backstage/config@1.0.1-next.0
163 - @backstage/release-manifests@0.0.3-next.0
164 - @backstage/config-loader@1.1.1-next.1
165
166## 0.17.1-next.1
167
168### Patch Changes
169
170- 52fb9920ac: Fixed coverage configuration when using `BACKSTAGE_NEXT_TESTS`.
171- 6cd1f50ae1: Extended lint rule to prevents imports of stories or tests from production code.
172- 4d8736eded: Changed Rollup configuration for TypeScript definition plugin to ignore `css`,
173 `scss`, `sass`, `svg`, `eot`, `woff`, `woff2` and `ttf` files.
174- 2737777e02: Added the ability to help a user get started with a new organization
175
176## 0.17.1-next.0
177
178### Patch Changes
179
180- 97cce67ac7: Add instructions to `create-github-app` command.
181- 08e12a3a14: Add package global-agent to support behind a proxy for backstage-cli commands like versions:bump.
182- cfc0f19699: Updated dependency `fs-extra` to `10.1.0`.
183- 344ea56acc: Bump `commander` to version 9.1.0
184- 8ab2a8226b: Updated the `create-github-app` command to throw an error if the organization argument is a user or a non existing organization.
185- Updated dependencies
186 - @backstage/config-loader@1.1.1-next.0
187
188## 0.17.0
189
190### Minor Changes
191
192- 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).
193
194 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.
195
196 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.
197
198### Patch Changes
199
200- e80ecad93c: Bump the `rushstack` api generator libraries to their latest versions
201- c54ce828bd: build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2
202- f151dfee5a: build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1
203- 7e7ba704be: build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0
204- ecd72391fb: build(deps): bump `@spotify/eslint-config-typescript`
205- 6a341b2d87: build(deps): bump `@spotify/eslint-config-react` from 12.0.0 to 13.0.0
206- 3c26b2edb5: build(deps): bump `npm-packlist` from 3.0.0 to 5.0.0
207- 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.
208
209 This new configuration is not enabled by default. It is enabled by setting the environment variable `BACKSTAGE_NEXT_TESTS` to a non-empty value.
210
211- 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.
212- 5b3079694e: Stop logging "Stopped watcher" when shutting down the development backend.
213- f512554910: Updated the plugin template to install version 14 of `@testing-library/user-event`.
214
215 To apply this change to your own project, update the `devDependencies` section in your `package.json` files:
216
217 ```diff
218 "devDependencies": {
219 ... omitted dev dependencies ...
220 - "@testing-library/user-event": "^13.1.8",
221 + "@testing-library/user-event": "^14.0.0",
222 ... omitted dev dependencies ...
223 }
224 ```
225
226- df7862cfa6: Fixed a bug were the `react-hot-loader` transform was being applied to backend development builds.
227- 230ad0826f: Bump to using `@types/node` v16
228- c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.
229- 948a56f401: Added a new experimental `repo list-deprecations` command, which scans the entire project for usage of deprecated APIs.
230- 4782f9e925: Fixed misleading log message during frontend plugin creation.
231- 0383cd0228: The `versions:*` commands no longer warns about duplicate plugin libraries, such as `@backstage/plugin-catalog-common`.
232- Updated dependencies
233 - @backstage/config-loader@1.1.0
234
235## 0.17.0-next.3
236
237### Patch Changes
238
239- e80ecad93c: Bump the `rushstack` api generator libraries to their latest versions
240- 3c26b2edb5: build(deps): bump `npm-packlist` from 3.0.0 to 5.0.0
241- f512554910: Updated the plugin template to install version 14 of `@testing-library/user-event`.
242
243 To apply this change to your own project, update the `devDependencies` section in your `package.json` files:
244
245 ```diff
246 "devDependencies": {
247 ... omitted dev dependencies ...
248 - "@testing-library/user-event": "^13.1.8",
249 + "@testing-library/user-event": "^14.0.0",
250 ... omitted dev dependencies ...
251 }
252 ```
253
254- df7862cfa6: Fixed a bug were the `react-hot-loader` transform was being applied to backend development builds.
255- 230ad0826f: Bump to using `@types/node` v16
256- 0383cd0228: The `versions:*` commands no longer warns about duplicate plugin libraries, such as `@backstage/plugin-catalog-common`.
257- Updated dependencies
258 - @backstage/config-loader@1.1.0-next.1
259
260## 0.17.0-next.2
261
262### Patch Changes
263
264- 6a341b2d87: build(deps): bump `@spotify/eslint-config-react` from 12.0.0 to 13.0.0
265- 4782f9e925: Fixed misleading log message during frontend plugin creation.
266
267## 0.17.0-next.1
268
269### Minor Changes
270
271- 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).
272
273 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.
274
275 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.
276
277### Patch Changes
278
279- c54ce828bd: build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2
280- f151dfee5a: build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1
281- 7e7ba704be: build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0
282- ecd72391fb: build(deps): bump `@spotify/eslint-config-typescript`
283- 5b3079694e: Stop logging "Stopped watcher" when shutting down the development backend.
284
285## 0.16.1-next.0
286
287### Patch Changes
288
289- 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.
290- c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.
291- 948a56f401: Added a new experimental `repo list-deprecations` command, which scans the entire project for usage of deprecated APIs.
292- Updated dependencies
293 - @backstage/config-loader@1.0.1-next.0
294
295## 0.16.0
296
297### Minor Changes
298
299- 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.
300
301### Patch Changes
302
303- 947ae3b40e: Applied the fix from version `0.15.3` of this package, which is part of the `v0.71.1` release of Backstage.
304- 19eed0edd9: Fix for `overrides` not being properly forwarded from the extra configuration passed to `@backstage/cli/config/eslint-factory`.
305- f24ef7864e: Minor typo fixes
306- Updated dependencies
307 - @backstage/config-loader@1.0.0
308 - @backstage/config@1.0.0
309 - @backstage/errors@1.0.0
310 - @backstage/types@1.0.0
311
312## 0.15.3
313
314### Patch Changes
315
316- 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`.
317
318## 0.15.2
319
320### Patch Changes
321
322- 2c528506aa: Added `--since <ref>` flag for `repo build` command.`
323- 60799cc5be: build(deps-dev): bump `@types/npm-packlist` from 1.1.2 to 3.0.0
324- d3d1b82198: chore(deps): bump `minimatch` from 5.0.0 to 5.0.1
325- e0a69ba49f: build(deps): bump `fs-extra` from 9.1.0 to 10.0.1
326- 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`.
327
328 Introduced a new `backstage-cli migrate package-lint-configs` command, which migrates old lint configurations to use `@backstage/cli/config/eslint-factory`.
329
330- b1aacbf96a: Applied the fix from version `0.15.1` of this package, which was part of the `v0.70.1` release of Backstage.
331- 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).
332
333 The new `package`, `repo`, and `migrate` command categories are now marked as stable.
334
335 Marked all commands that are being replaced by the new `package` and `repo` commands as deprecated.
336
337 The package templates used by the `create` command have all been updated to use package roles.
338
339- f06da37290: The backend development setup now ignores the `"browser"` and `"module"` entry points in `package.json`, and instead always uses `"main"`.
340- 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.
341- dc6002a7b9: The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available.
342- Updated dependencies
343 - @backstage/config-loader@0.9.7
344
345## 0.15.2-next.0
346
347### Patch Changes
348
349- 2c528506aa: Added `--since <ref>` flag for `repo build` command.`
350- d3d1b82198: chore(deps): bump `minimatch` from 5.0.0 to 5.0.1
351- e0a69ba49f: build(deps): bump `fs-extra` from 9.1.0 to 10.0.1
352- 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`.
353
354 Introduced a new `backstage-cli migrate package-lint-configs` command, which migrates old lint configurations to use `@backstage/cli/config/eslint-factory`.
355
356- b1aacbf96a: Applied the fix from version `0.15.1` of this package, which was part of the `v0.70.1` release of Backstage.
357- 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).
358
359 The new `package`, `repo`, and `migrate` command categories are now marked as stable.
360
361 Marked all commands that are being replaced by the new `package` and `repo` commands as deprecated.
362
363 The package templates used by the `create` command have all been updated to use package roles.
364
365- f06da37290: The backend development setup now ignores the `"browser"` and `"module"` entry points in `package.json`, and instead always uses `"main"`.
366- 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.
367- dc6002a7b9: The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available.
368- Updated dependencies
369 - @backstage/config-loader@0.9.7-next.0
370
371## 0.15.1
372
373### Patch Changes
374
375- Fixed an issue where the release stage entry point of packages were not resolved correctly.
376
377## 0.15.0
378
379### Minor Changes
380
381- 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.
382
383### Patch Changes
384
385- 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.
386
387## 0.14.1
388
389### Patch Changes
390
391- 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.
392- 49ae6c9573: chore(deps-dev): bump `@types/rollup-plugin-postcss` from 2.0.1 to 3.1.4
393- d64b8d3678: chore(deps): bump `minimatch` from 3.0.4 to 5.0.0
394- d2e9d2a34f: chore(deps): bump `@hot-loader/react-dom` from 16.13.0 to 17.0.2
395- c2f3a548cf: Fix building of backends with `repo build --all`, where it would previously only work if the build was executed within the backend package.
396- 3d7ed5377a: Ignore setupTests and the file inside ./dev folder recursively. Eslint
397 can not resolve relative paths as we defined in the rule import/no-extraneous-dependencies, and it does not apply this rule.
398
399 A downside to use a recursive definition would be to checking all `dev` folders, which might not be wanted. Ensure you don't use
400 the `dev` folder out of scope (must be used for dev. env. only)
401
402- Updated dependencies
403 - @backstage/config-loader@0.9.6
404
405## 0.14.0
406
407### Minor Changes
408
409- 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.
410
411### Patch Changes
412
413- 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`.
414- 532dae9c4c: The `versions:bump --release next` command is updated to compare the `main` and `next` release manifests and prefer the latest.
415- 1ed305728b: Bump `node-fetch` to version 2.6.7 and `cross-fetch` to version 3.1.5
416- c77c5c7eb6: Added `backstage.role` to `package.json`
417- 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.
418- 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.
419- 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.
420
421 Renamed the `backstage-cli migrate package-role` command to `backstage-cli migrate package-roles`.
422
423 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`
424
425 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.
426
427 The `script` command category has been renamed to `package`.
428
429 The `backstage-cli package build` command set an incorrect target directory for `app` and `backend` packages, which has been fixed.
430
431 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.
432
433- 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.
434- 7410e12268: The `test` command now automatically adds `--passWithNoTests` to the Jest invocation. To revert this behavior, pass `--passWithNoTests=false` or `--no-passWithNoTests`.
435- Updated dependencies
436 - @backstage/config-loader@0.9.4
437 - @backstage/errors@0.2.1
438 - @backstage/release-manifests@0.0.2
439 - @backstage/cli-common@0.1.7
440 - @backstage/config@0.1.14
441 - @backstage/types@0.1.2
442
443## 0.13.2
444
445### Patch Changes
446
447- bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`.
448- 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.
449- aeb5c69abb: Introduces a new `--release` parameter to the `backstage-cli versions:bump` command.
450 The release can be either a specific version, for example `0.99.1`, or the latest `main` or `next` release.
451 The default behavior is to bump to the latest `main` release.
452- d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread.
453- 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package.
454- 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope.
455- 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:
456
457 ```js
458 'import/no-duplicates': 'warn'
459 ```
460
461- 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.
462- d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process.
463- d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages.
464- Updated dependencies
465 - @backstage/release-manifests@0.0.1
466
467## 0.13.2-next.0
468
469### Patch Changes
470
471- bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`.
472- 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.
473- d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread.
474- 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package.
475- 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope.
476- 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:
477
478 ```js
479 'import/no-duplicates': 'warn'
480 ```
481
482- 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.
483- d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process.
484- d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages.
485
486## 0.13.1
487
488### Patch Changes
489
490- 5bd0ce9e62: chore(deps): bump `inquirer` from 7.3.3 to 8.2.0
491- 80f510caee: Log warning if unable to parse yarn.lock
492
493## 0.13.1-next.1
494
495### Patch Changes
496
497- 5bd0ce9e62: chore(deps): bump `inquirer` from 7.3.3 to 8.2.0
498
499## 0.13.1-next.0
500
501### Patch Changes
502
503- 80f510caee: Log warning if unable to parse yarn.lock
504
505## 0.13.0
506
507### Minor Changes
508
509- 1ddf6d9d5a: Removes the previously deprecated `remove-plugin` command alongside the `--lax` option to `app:build`.
510
511### Patch Changes
512
513- c372a5032f: chore(deps): bump `jest-transform-yaml` from 0.1.1 to 1.0.0
514- 1b4ab0d44c: Updated the dependency warning that is baked into `app:serve` to only warn about packages that are not allowed to have duplicates.
515- dc46efa2cc: Switched the `WebpackDevServer` configuration to use client-side detection of the WebSocket protocol.
516- 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.
517
518## 0.12.0
519
520### Minor Changes
521
522- 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`:
523
524 ```json
525 "dependencies": {
526 ...
527 "typescript": "~4.5.4",
528 }
529 ```
530
531 We recommend using a `~` version range since TypeScript releases do not adhere to semver.
532
533 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`:
534
535 ```json
536 "compilerOptions": {
537 ...
538 "useUnknownInCatchVariables": false
539 }
540 ```
541
542 Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
543
544 ```ts
545 import { assertError, isError } from '@backstage/errors';
546
547 try {
548 ...
549 } catch (error) {
550 assertError(error);
551 ...
552 // OR
553 if (isError(error)) {
554 ...
555 }
556 }
557 ```
558
559 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:
560
561 ```plain
562 node_modules/react-use/lib/usePermission.d.ts:1:54 - error TS2304: Cannot find name 'DevicePermissionDescriptor'.
563
564 1 declare type PermissionDesc = PermissionDescriptor | DevicePermissionDescriptor | MidiPermissionDescriptor | PushPermissionDescriptor;
565 ```
566
567 If you encounter this error, the simplest fix is to replace full imports of `react-use` with more specific ones. For example, the following:
568
569 ```ts
570 import { useAsync } from 'react-use';
571 ```
572
573 Would be converted into this:
574
575 ```ts
576 import useAsync from 'react-use/lib/useAsync';
577 ```
578
579### Patch Changes
580
581- 6e34e2cfbf: Introduce `--deprecated` option to `config:check` to log all deprecated app configuration properties
582
583 ```sh
584 $ yarn backstage-cli config:check --lax --deprecated
585 config:check --lax --deprecated
586 Loaded config from app-config.yaml
587 The configuration key 'catalog.processors.githubOrg' of app-config.yaml is deprecated and may be removed soon. Configure a GitHub integration instead.
588 ```
589
590- 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.
591- 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.
592
593 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`.
594
595 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.
596
597- Updated dependencies
598 - @backstage/config@0.1.13
599 - @backstage/config-loader@0.9.3
600
601## 0.12.0-next.0
602
603### Minor Changes
604
605- 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`:
606
607 ```json
608 "dependencies": {
609 ...
610 "typescript": "~4.5.4",
611 }
612 ```
613
614 We recommend using a `~` version range since TypeScript releases do not adhere to semver.
615
616 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`:
617
618 ```json
619 "compilerOptions": {
620 ...
621 "useUnknownInCatchVariables": false
622 }
623 ```
624
625 Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
626
627 ```ts
628 import { assertError, isError } from '@backstage/errors';
629
630 try {
631 ...
632 } catch (error) {
633 assertError(error);
634 ...
635 // OR
636 if (isError(error)) {
637 ...
638 }
639 }
640 ```
641
642### Patch Changes
643
644- 6e34e2cfbf: Introduce `--deprecated` option to `config:check` to log all deprecated app configuration properties
645
646 ```sh
647 $ yarn backstage-cli config:check --lax --deprecated
648 config:check --lax --deprecated
649 Loaded config from app-config.yaml
650 The configuration key 'catalog.processors.githubOrg' of app-config.yaml is deprecated and may be removed soon. Configure a GitHub integration instead.
651 ```
652
653- 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.
654
655 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`.
656
657 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.
658
659- Updated dependencies
660 - @backstage/config@0.1.13-next.0
661 - @backstage/config-loader@0.9.3-next.0
662
663## 0.11.0
664
665### Minor Changes
666
667- 14e980acee: ESLint upgraded to version 8 and all it's plugins updated to newest version.
668
669 If you use any custom plugins for ESLint please check compatibility.
670
671 ```diff
672 - "@typescript-eslint/eslint-plugin": "^v4.33.0",
673 - "@typescript-eslint/parser": "^v4.28.3",
674 + "@typescript-eslint/eslint-plugin": "^5.9.0",
675 + "@typescript-eslint/parser": "^5.9.0",
676 - "eslint": "^7.30.0",
677 + "eslint": "^8.6.0",
678 - "eslint-plugin-import": "^2.20.2",
679 - "eslint-plugin-jest": "^24.1.0",
680 - "eslint-plugin-jsx-a11y": "^6.2.1",
681 + "eslint-plugin-import": "^2.25.4",
682 + "eslint-plugin-jest": "^25.3.4",
683 + "eslint-plugin-jsx-a11y": "^6.5.1",
684 - "eslint-plugin-react": "^7.12.4",
685 - "eslint-plugin-react-hooks": "^4.0.0",
686 + "eslint-plugin-react": "^7.28.0",
687 + "eslint-plugin-react-hooks": "^4.3.0",
688 ```
689
690 Please consult changelogs from packages if you find any problems.
691
692### Patch Changes
693
694- f302d24d34: Switch Webpack minification to use `esbuild` instead of `terser`.
695- bee7082094: Update `config/eslint.js` to forbid imports of `@material-ui/icons/` as well.
696- 7946418729: Switched to using `@manypkg/get-packages` to list monorepo packages, which provides better support for different kind of monorepo setups.
697- Updated dependencies
698 - @backstage/config@0.1.12
699 - @backstage/errors@0.2.0
700 - @backstage/config-loader@0.9.2
701
702## 0.10.5
703
704### Patch Changes
705
706- 37123b4851: Bump `css-loader` from `5.2.6` to `6.5.1`
707- 9534391ae4: Add --pattern option to override matching glob patterns for backstage versioning
708- 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead.
709
710## 0.10.4
711
712### Patch Changes
713
714- 1d26017090: Fix issue with plugin:serve for Plugins not using Lerna monorepo.
715- 9c3aaf3512: Bump `@typescript-eslint/eslint-plugin` to `4.33.0`
716- 808828e4fa: remove inline CSS from serve_index.html
717- 6e4080d31b: Add option to build command for minifying the generated code
718- Updated dependencies
719 - @backstage/config-loader@0.9.1
720
721## 0.10.3
722
723### Patch Changes
724
725- dfc1110dc4: Added peerPluginDependencies option to experimentalInstallationRecipe for install command to install plugins it depends on.
726- 58b0262dd9: Pruned unused dependencies.
727- 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.
728
729 For example, to access the app title, you would now do the following:
730
731 ```html
732 <title><%= config.getString('app.title') %></title>
733 ```
734
735 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.
736
737 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.
738
739- Updated dependencies
740 - @backstage/config-loader@0.9.0
741
742## 0.10.2
743
744### Patch Changes
745
746- 25dfc2d483: Add support for `.cjs` and `.mjs` extensions in local and dependency modules.
747
748## 0.10.1
749
750### Patch Changes
751
752- 0ebb05eee2: Add cli option to minify the generated code of a plugin or backend package
753
754 ```
755 backstage-cli plugin:build --minify
756 backstage-cli backend:build --minify
757 ```
758
759- 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.
760
761## 0.10.0
762
763### Minor Changes
764
765- ea99ef5198: Remove the `backend:build-image` command from the CLI and added more deprecation warnings to other deprecated fields like `--lax` and `remove-plugin`
766
767### Patch Changes
768
769- e7230ef814: Bump react-dev-utils to v12
770- 416b68675d: build(dependencies): bump `style-loader` from 1.2.1 to 3.3.1
771- Updated dependencies
772 - @backstage/config-loader@0.8.1
773
774## 0.9.1
775
776### Patch Changes
777
778- 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.
779- 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.
780- bab752e2b3: Change default port of backend from 7000 to 7007.
781
782 This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
783
784 You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
785
786 ```
787 backend:
788 listen: 0.0.0.0:7123
789 baseUrl: http://localhost:7123
790 ```
791
792 More information can be found here: https://backstage.io/docs/conf/writing
793
794- ee055cf6db: Update the default routes to use id instead of title
795- Updated dependencies
796 - @backstage/errors@0.1.5
797
798## 0.9.0
799
800### Minor Changes
801
802- 25f637f39f: Tweaked style insertion logic to make sure that JSS stylesheets always receive the highest priority.
803
804### Patch Changes
805
806- 677bfc2dd0: Keep backstage.json in sync
807
808 The `versions:bump` script now takes care about updating the `version` property inside `backstage.json` file. The file is created if is not present.
809
810- 8809b6c0dd: Update the json-schema dependency version.
811- fdfd2f8a62: remove double config dep
812- 1e99c73c75: Update internal usage of `configLoader.loadConfig` that now returns an object instead of an array of configs.
813- 6dcfe227a2: Added a scaffolder backend module template for the `create` command.
814- 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.
815- 867ea81d15: bump `@rollup/plugin-commonjs` from 17.1.0 to 21.0.1
816- 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.
817- Updated dependencies
818 - @backstage/config-loader@0.8.0
819 - @backstage/cli-common@0.1.6
820
821## 0.8.2
822
823### Patch Changes
824
825- dd355bca46: Switched to dynamically determining the packages that are unsafe to repack when executing the CLI within the Backstage main repo.
826- 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.
827- 0611f3b3e2: Reading app config from a remote server
828- ec64d9590c: Make `ExitCodeError` call `super` early to avoid compiler warnings
829- 8af66229e7: Bumped `@spotify/eslint-config-react` from `v10` to `v12`, dropping support for Node.js v12.
830- a197708da9: Bumped `@spotify/eslint-config-typescript` from `v10` to `v12`, dropping support for Node.js v12.
831- Updated dependencies
832 - @backstage/config-loader@0.7.2
833
834## 0.8.1
835
836### Patch Changes
837
838- f1e96dc5b1: Update usage of msw in default plugin template
839- b0dc1fd241: bump `@spotify/eslint-config-base` from 9.0.2 to 12.0.0
840- c5bb1df55d: Bump `msw` to `v0.35.0` to resolve [CVE-2021-32796](https://github.com/advisories/GHSA-5fg8-2547-mr8q).
841- 10615525f3: Switch to use the json and observable types from `@backstage/types`
842- Updated dependencies
843 - @backstage/config@0.1.11
844 - @backstage/cli-common@0.1.5
845 - @backstage/errors@0.1.4
846 - @backstage/config-loader@0.7.1
847
848## 0.8.0
849
850### Minor Changes
851
852- b486adb8c6: The Jest configuration that's included with the Backstage CLI has received several changes.
853
854 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.
855
856 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.
857
858 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.
859
860 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.
861
862 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.
863
864### Patch Changes
865
866- 36e67d2f24: Internal updates to apply more strict checks to throw errors.
867- Updated dependencies
868 - @backstage/config-loader@0.7.0
869 - @backstage/errors@0.1.3
870
871## 0.7.16
872
873### Patch Changes
874
875- 53bdc66623: add a --from <location> option to the plugin install command
876- 84e24fcdaf: Bump sucrase to version 3.20.2
877- 6583c6ac40: Add semicolon in template to make prettier happy
878- c6f927d819: Bump mini-css-extract-plugin to v2
879- 16f044cb6b: Update default backend ESLint configuration to allow usage of `__dirname` in tests.
880- 1ef9e64901: Add an experimental `install <plugin>` command.
881
882 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).
883
884## 0.7.15
885
886### Patch Changes
887
888- ae4680b88d: The `create-plugin` command now passes the extension name via the `name` key
889 in `createRoutableExtension()` calls in newly created plugins.
890- df1242ffe4: Adding `--inspect-brk` as an option when debugging backend for development
891- c7f2a2307d: When creating a backend plugin with `--backend` flag, don't add `-backend` if it's already suffixed
892- 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.
893- Updated dependencies
894 - @backstage/config-loader@0.6.10
895 - @backstage/cli-common@0.1.4
896
897## 0.7.14
898
899### Patch Changes
900
901- 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.
902- 40199b61d6: Configuration schema is now also collected from the root `package.json` if it exists.
903- 2a6c393c06: The `create-plugin` command now prefers dependency versions ranges that are already in the lockfile.
904- 58f91943ab: Improved ´plugin:diff´ check for the `package.json` `"files"` field.
905- 12e074a6e4: Fix duplication checks to stop looking for the old core packages, and to allow some explicitly
906- Updated dependencies
907 - @backstage/config-loader@0.6.9
908
909## 0.7.13
910
911### Patch Changes
912
913- 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).
914- e9f332a51c: Restrict imports on the form `../../plugins/x/src`
915- febddedcb2: Bump `lodash` to remediate `SNYK-JS-LODASH-590103` security vulnerability
916- 050797c5b3: Switched the Jest YAML transform from `yaml-jest` to `jest-transform-yaml`, which works with newer versions of Node.js.
917- Updated dependencies
918 - @backstage/config@0.1.10
919
920## 0.7.12
921
922### Patch Changes
923
924- d835d112fe: replace the deprecated file-loader for fonts with assets module
925- 15e324ce60: Set the default TZ (Timezone) env for the test command to be UTC so any date related tests are consistent across timezones.
926- 9f1362dcc1: Upgrade `@material-ui/lab` to `4.0.0-alpha.57`.
927
928## 0.7.11
929
930### Patch Changes
931
932- 13895db37: Support importing font files in tests.
933 This fixes remaining issues from [#7019](https://github.com/backstage/backstage/pull/7019).
934- Updated dependencies
935 - @backstage/cli-common@0.1.3
936 - @backstage/config-loader@0.6.8
937 - @backstage/config@0.1.9
938
939## 0.7.10
940
941### Patch Changes
942
943- 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.
944- b5118ff76: Updated dependencies
945
946## 0.7.9
947
948### Patch Changes
949
950- f3bba3d2b: Remove debug logging
951- 8ea1e96b3: Fix file path handling in diff commands on Windows.
952- 2518aab58: Compensate for error formatting mismatch between Webpack 5 and react-dev-utils
953- 1ac2961c3: Reintroduce Node.js shims that were removed in the Webpack 5 migration.
954- 8d07a8b03: Add Buffer to `ProvidePlugin` since this is no longer provided in `webpack@5`
955- fe506a0cf: Remove Webpack deprecation message when running build.
956- 485438a56: Fix `backstage-cli backend:dev` argument passing
957- Updated dependencies
958 - @backstage/config@0.1.7
959 - @backstage/config-loader@0.6.7
960
961## 0.7.8
962
963### Patch Changes
964
965- c4ef9181a: Migrate to using `webpack@5` 🎉
966
967## 0.7.7
968
969### Patch Changes
970
971- 6aa7c3db7: bump node-tar version to the latest
972- e9d3983ee: Keep track of filtered configuration values when running frontend in development mode.
973- Updated dependencies
974 - @backstage/config@0.1.6
975 - @backstage/config-loader@0.6.6
976
977## 0.7.6
978
979### Patch Changes
980
981- 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`.
982 - Switching out `material-table` to `@material-table/core` for support for the later versions of `material-ui/core`
983 - This causes a minor API change to `@backstage/core-components` as the interface for `Table` re-exports the `prop` from the underlying `Table` components.
984 - `onChangeRowsPerPage` has been renamed to `onRowsPerPageChange`
985 - `onChangePage` has been renamed to `onPageChange`
986 - Migration guide is here: https://material-table-core.com/docs/breaking-changes
987
988## 0.7.5
989
990### Patch Changes
991
992- 9a96b5da7: chore: bump `eslint` to `7.30.0`
993
994## 0.7.4
995
996### Patch Changes
997
998- ae84b20cf: Revert the upgrade to `fs-extra@10.0.0` as that seemed to have broken all installs inexplicably.
999- Updated dependencies
1000 - @backstage/config-loader@0.6.5
1001
1002## 0.7.3
1003
1004### Patch Changes
1005
1006- a93e60fdc: Updated dependencies
1007- 55f49fcc7: Update dependencies
1008- ab5cc376f: Use new `isChildPath` export from `@backstage/cli-common`
1009- Updated dependencies
1010 - @backstage/cli-common@0.1.2
1011
1012## 0.7.2
1013
1014### Patch Changes
1015
1016- 953a7e66f: updated plugin template to generate path equals plugin id for the root page
1017- 04248b8f9: chore: bump `msw` dependency in `create-plugin`
1018- e3d31b381: Make the `create-github-app` command disable webhooks by default.
1019- 8f100db75: chore: bump `@typescript-eslint/eslint-plugin` from 4.26.0 to 4.27.0
1020- 95e572305: chore: bump `del` from 5.1.0 to 6.0.0
1021- ece2b5dd1: chore: bump `@spotify/eslint-config-typescript` from 9.0.0 to 10.0.0
1022- 0ec31e596: chore: bump `@rollup/plugin-node-resolve` from 11.2.1 to 13.0.0
1023- 48c9fcd33: Migrated to use the new `@backstage/core-*` packages rather than `@backstage/core`.
1024
1025## 0.7.1
1026
1027### Patch Changes
1028
1029- 3108ff7bf: Make `yarn dev` in newly created backend plugins respect the `PLUGIN_PORT` environment variable.
1030
1031 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:
1032
1033 ```ts
1034 const service = createServiceBuilder(module)
1035 .enableCors({ origin: 'http://localhost:3000' })
1036 .addRouter('/my-plugin', router);
1037 ```
1038
1039 With something like the following:
1040
1041 ```ts
1042 let service = createServiceBuilder(module)
1043 .setPort(options.port)
1044 .addRouter('/my-plugin', router);
1045 if (options.enableCors) {
1046 service = service.enableCors({ origin: 'http://localhost:3000' });
1047 }
1048 ```
1049
1050- Updated dependencies
1051 - @backstage/config-loader@0.6.4
1052
1053## 0.7.0
1054
1055### Minor Changes
1056
1057- 9cd3c533c: Switch from `ts-jest` to `@sucrase/jest-plugin`, improving performance and aligning transpilation with bundling.
1058
1059 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`:
1060
1061 ```json
1062 "jest": {
1063 "globals": {
1064 "ts-jest": {
1065 "isolatedModules": true
1066 }
1067 },
1068 "transform": {
1069 "\\.esm\\.js$": "@backstage/cli/config/jestEsmTransform.js",
1070 "\\.(js|jsx|ts|tsx)$": "ts-jest",
1071 "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$": "@backstage/cli/config/jestFileTransform.js",
1072 "\\.(yaml)$": "yaml-jest"
1073 }
1074 }
1075 ```
1076
1077 Note that this will override the default jest transforms included with the `@backstage/cli`.
1078
1079 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.
1080
1081 Consider the following code:
1082
1083 ```ts
1084 import * as utils from './utils';
1085
1086 jest.spyOn(utils, 'myUtility').mockReturnValue(3);
1087 ```
1088
1089 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`.
1090
1091 ```ts
1092 import * as utils from './utils/myUtility';
1093
1094 jest.spyOn(utils, 'myUtility').mockReturnValue(3);
1095 ```
1096
1097### Patch Changes
1098
1099- 7f7443308: Updated dependencies
1100- 21e8ebef5: Fix error message formatting in the packaging process.
1101
1102 error.errors can be undefined which will lead to a TypeError, swallowing the actual error message in the process.
1103
1104 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.
1105
1106## 0.6.14
1107
1108### Patch Changes
1109
1110- ee4eb5b40: Adjust the Webpack `devtool` module filename template to correctly resolve via the source maps to the source files.
1111- 84160313e: Mark the `create-github-app` command as ready for use and reveal it in the command list.
1112- 7e7c71417: Exclude core packages from package dependency diff.
1113- e7c5e4b30: Update installation instructions in README.
1114- 2305ab8fc: chore(deps): bump `@spotify/eslint-config-react` from 9.0.0 to 10.0.0
1115- 054bcd029: Deprecated the `backend:build-image` command, pointing to the newer `backend:bundle` command.
1116
1117## 0.6.13
1118
1119### Patch Changes
1120
1121- 1cd0cacd9: Add support for transforming yaml files in jest with 'yaml-jest'
1122- 7a7da5146: Bumped `eslint-config-prettier` to `8.x`.
1123- 3a181cff1: Bump webpack-node-externals from `2.5.2` to `3.0.0`.
1124- Updated dependencies [2cf98d279]
1125- Updated dependencies [438a512eb]
1126 - @backstage/config-loader@0.6.3
1127
1128## 0.6.12
1129
1130### Patch Changes
1131
1132- 2bfec55a6: Update `fork-ts-checker-webpack-plugin`
1133- Updated dependencies [290405276]
1134 - @backstage/config-loader@0.6.2
1135
1136## 0.6.11
1137
1138### Patch Changes
1139
1140- 2cd70e164: Add context for versions:bump on what version it was bumped to. Updated tests for the same.
1141- 3be844496: chore: bump `ts-node` versions to 9.1.1
1142- e3fc89df6: update plugins created to use react-use 17.2.4
1143
1144## 0.6.10
1145
1146### Patch Changes
1147
1148- f65adcde7: Fix some transitive dependency warnings in yarn
1149- fc79a6dd3: Added lax option to backstage-cli app:build command
1150- d8b81fd28: Bump `json-schema` dependency from `0.2.5` to `0.3.0`.
1151- Updated dependencies [d8b81fd28]
1152 - @backstage/config-loader@0.6.1
1153 - @backstage/config@0.1.5
1154
1155## 0.6.9
1156
1157### Patch Changes
1158
1159- 4e5c94249: Add `config:docs` command that opens up reference documentation for the local configuration schema in a browser.
1160- 1373f4f12: No longer add newly created plugins to `plugins.ts` in the app, as it is no longer needed.
1161- 479b29124: Added support for Datadog rum events
1162
1163## 0.6.8
1164
1165### Patch Changes
1166
1167- 60ce64aa2: Disable hot reloading in CI environments.
1168
1169## 0.6.7
1170
1171### Patch Changes
1172
1173- Updated dependencies [82c66b8cd]
1174 - @backstage/config-loader@0.6.0
1175
1176## 0.6.6
1177
1178### Patch Changes
1179
1180- 598f5bcfb: Lock down the version of webpack-dev-server as it's causing some nasty bugs someplace
1181- 4d248725e: Make the backend plugin template use the correct latest version of `express-promise-router`
1182
1183## 0.6.5
1184
1185### Patch Changes
1186
1187- 84972540b: Lint storybook files, i.e. `*.stories.*`, as if they were tests.
1188- Updated dependencies [0434853a5]
1189 - @backstage/config@0.1.4
1190
1191## 0.6.4
1192
1193### Patch Changes
1194
1195- 5ab5864f6: Add support for most TypeScript 4.1 syntax.
1196
1197## 0.6.3
1198
1199### Patch Changes
1200
1201- 507513fed: Bump `@svgr/webpack` from `5.4.x` to `5.5.x`.
1202- 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`.
1203- 11c6208fe: Fixed an issue where the `backend:dev` command would get stuck executing the backend process multiple times, causing port conflict issues.
1204- 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`.
1205- b93538acc: Fix for type declaration input being required for build even if types aren't being built.
1206- 8871e7523: Bump `ts-loader` dependency range from `^7.0.4` to `^8.0.17`.
1207
1208## 0.6.2
1209
1210### Patch Changes
1211
1212- e780e119c: Add missing `file-loader` dependency which could cause issues with loading images and other assets.
1213- 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.
1214- Updated dependencies [a1f5e6545]
1215 - @backstage/config@0.1.3
1216
1217## 0.6.1
1218
1219### Patch Changes
1220
1221- 257a753ff: Updated transform of `.esm.js` files to be able to handle dynamic imports.
1222- 9337f509d: Tweak error message in lockfile parsing to include more information.
1223- 532bc0ec0: Upgrading to lerna@4.0.0.
1224
1225## 0.6.0
1226
1227### Minor Changes
1228
1229- 19fe61c27: We have updated the default `eslint` rules in the `@backstage/cli` package.
1230
1231 ```diff
1232 -'@typescript-eslint/no-shadow': 'off',
1233 -'@typescript-eslint/no-redeclare': 'off',
1234 +'no-shadow': 'off',
1235 +'no-redeclare': 'off',
1236 +'@typescript-eslint/no-shadow': 'error',
1237 +'@typescript-eslint/no-redeclare': 'error',
1238 ```
1239
1240 The rules are documented [here](https://eslint.org/docs/rules/no-shadow) and [here](https://eslint.org/docs/rules/no-redeclare).
1241
1242 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
1243 affected. We consider these rules important, and the primary recommendation is to try to update your code according to the
1244 documentation above. But those that prefer to not enable the rules, or need time to perform the updates, may update their
1245 local `.eslintrc.js` file(s) in the repo root and/or in individual plugins as they see fit:
1246
1247 ```js
1248 module.exports = {
1249 // ... other declarations
1250 rules: {
1251 '@typescript-eslint/no-shadow': 'off',
1252 '@typescript-eslint/no-redeclare': 'off',
1253 },
1254 };
1255 ```
1256
1257 Because of the nature of this change, we're unable to provide a grace period for the update :(
1258
1259### Patch Changes
1260
1261- 398e1f83e: Update `create-plugin` template to use the new composability API, by switching to exporting a single routable extension component.
1262- 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.
1263- a08c4b0b0: Add check for outdated/duplicate packages to yarn start
1264- Updated dependencies [062df71db]
1265- Updated dependencies [e9aab60c7]
1266 - @backstage/config-loader@0.5.1
1267
1268## 0.5.0
1269
1270### Minor Changes
1271
1272- 12a56cdfe: We've bumped the `@eslint-typescript` packages to the latest, which now add some additional rules that might cause lint failures.
1273 The main one which could become an issue is the [no-use-before-define](https://eslint.org/docs/rules/no-use-before-define) rule.
1274
1275 Every plugin and app has the ability to override these rules if you want to ignore them for now.
1276
1277 You can reset back to the default behaviour by using the following in your own `.eslint.js`
1278
1279 ```js
1280 rules: {
1281 'no-use-before-define': 'off'
1282 }
1283 ```
1284
1285 Because of the nature of this change, we're unable to provide a grace period for the update :(
1286
1287### Patch Changes
1288
1289- ef7957be4: Add `--lax` option to `config:print` and `config:check`, which causes all environment variables to be assumed to be set.
1290- Updated dependencies [ef7957be4]
1291- Updated dependencies [ef7957be4]
1292- Updated dependencies [ef7957be4]
1293 - @backstage/config-loader@0.5.0
1294
1295## 0.4.7
1296
1297### Patch Changes
1298
1299- b604a9d41: Append `-credentials.yaml` to credentials file generated by `backstage-cli create-github-app` and display warning about sensitive contents.
1300
1301## 0.4.6
1302
1303### Patch Changes
1304
1305- 94fdf4955: Get rid of all usages of @octokit/types, and bump the rest of the octokit dependencies to the latest version
1306- 08e9893d2: Handle no npm info
1307- 9cf71f8bf: Added experimental `create-github-app` command.
1308
1309## 0.4.5
1310
1311### Patch Changes
1312
1313- 37a7d26c4: Use consistent file extensions for JS output when building packages.
1314- 818d45e94: Fix detection of external package child directories
1315- 0588be01f: Add `backend:bundle` command for bundling a backend package with dependencies into a deployment archive.
1316- 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.
1317- Updated dependencies [ad5c56fd9]
1318 - @backstage/config-loader@0.4.1
1319
1320## 0.4.4
1321
1322### Patch Changes
1323
1324- d45efbc9b: Fix typo in .app.listen.port config schema
1325
1326## 0.4.3
1327
1328### Patch Changes
1329
1330- 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`
1331- 7d72f9b09: Fix for `app.listen.host` configuration not properly overriding listening host.
1332
1333## 0.4.2
1334
1335### Patch Changes
1336
1337- c36a01b4c: Re-enable symlink resolution during bundling, and switch to using a resolve plugin for external linked packages.
1338
1339## 0.4.1
1340
1341### Patch Changes
1342
1343- 06dbe707b: Update experimental backend bundle command to only output archives to `dist/` instead of a full workspace mirror in `dist-workspace/`.
1344- 011708102: Fixes a big in the bundling logic that caused `node_modules` inside local monorepo packages to be transformed.
1345- 61897fb2c: Fix config schema for `.app.listen`
1346- Updated dependencies [e3bd9fc2f]
1347- Updated dependencies [e3bd9fc2f]
1348 - @backstage/config@0.1.2
1349
1350## 0.4.0
1351
1352### Minor Changes
1353
1354- 00670a96e: sort product panels and navigation menu by greatest cost
1355 update tsconfig.json to use ES2020 api
1356
1357### Patch Changes
1358
1359- b4488ddb0: Added a type alias for PositionError = GeolocationPositionError
1360- 4a655c89d: Bump versions of `esbuild` and `rollup-plugin-esbuild`
1361- 8a16e8af8: Support `.npmrc` when building with private NPM registries
1362- Updated dependencies [4e7091759]
1363- Updated dependencies [b4488ddb0]
1364 - @backstage/config-loader@0.4.0
1365
1366## 0.3.2
1367
1368### Patch Changes
1369
1370- 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.
1371- 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.
1372- 8697dea5b: Bump Rollup
1373- b623cc275: Narrow down the version range of rollup-plugin-esbuild to avoid breaking change in newer version
1374
1375## 0.3.1
1376
1377### Patch Changes
1378
1379- 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.
1380- faf311c26: New lint rule to disallow <type> assertions and promote `as` assertions. - @typescript-eslint/consistent-type-assertions
1381- 31d8b6979: Add experimental backend:bundle command
1382- 991345969: Add new `versions:check` and `versions:bump` commands to simplify version management and avoid conflicts
1383
1384## 0.3.0
1385
1386### Minor Changes
1387
1388- 1722cb53c: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
1389
1390 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.
1391
1392 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.
1393
1394 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.
1395
1396 TypeScript configuration schema files should export a single `Config` type, for example:
1397
1398 ```ts
1399 export interface Config {
1400 app: {
1401 /**
1402 * Frontend root URL
1403 * @visibility frontend
1404 */
1405 baseUrl: string;
1406 };
1407 }
1408 ```
1409
1410### Patch Changes
1411
1412- 1722cb53c: Added configuration schema
1413- 902340451: Support specifying listen host/port for frontend
1414- Updated dependencies [1722cb53c]
1415 - @backstage/config-loader@0.3.0
1416
1417## 0.2.0
1418
1419### Minor Changes
1420
1421- 28edd7d29: Create backend plugin through CLI
1422- 1d0aec70f: Upgrade dependency `esbuild@0.7.7`
1423- 72f6cda35: Adds a new `BACKSTAGE_CLI_BUILD_PARELLEL` environment variable to control
1424 parallelism for some build steps.
1425
1426 This is useful in CI to help avoid out of memory issues when using `terser`. The
1427 `BACKSTAGE_CLI_BUILD_PARELLEL` environment variable can be set to
1428 `true | false | [integer]` to override the default behaviour. See
1429 [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin#parallel)
1430 for more details.
1431
1432- 8c2b76e45: **BREAKING CHANGE**
1433
1434 The existing loading of additional config files like `app-config.development.yaml` using APP_ENV or NODE_ENV has been removed.
1435 Instead, the CLI and backend process now accept one or more `--config` flags to load config files.
1436
1437 Without passing any flags, `app-config.yaml` and, if it exists, `app-config.local.yaml` will be loaded.
1438 If passing any `--config <path>` flags, only those files will be loaded, **NOT** the default `app-config.yaml` one.
1439
1440 The old behaviour of for example `APP_ENV=development` can be replicated using the following flags:
1441
1442 ```bash
1443 --config ../../app-config.yaml --config ../../app-config.development.yaml
1444 ```
1445
1446- 8afce088a: Use APP_ENV before NODE_ENV for determining what config to load
1447
1448### Patch Changes
1449
1450- 3472c8be7: Add codeowners processor
1451
1452 - Include ESNext.Promise in TypeScript compilation
1453
1454- a3840bed2: Upgrade dependency rollup-plugin-typescript2 to ^0.27.3
1455- cba4e4d97: Including source maps with all packages
1456- 9a3b3dbf1: Fixed duplicate help output, and print help on invalid command
1457- 7bbeb049f: Change loadBackendConfig to return the config directly
1458- Updated dependencies [8c2b76e45]
1459- Updated dependencies [ce5512bc0]
1460 - @backstage/config-loader@0.2.0
1461
\No newline at end of file