UNPKG

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