From 9306dc035c7283473830f24e5e17e5c1ab1e6932 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Aug 2020 17:29:46 +0200 Subject: [PATCH 01/15] packages: add cli-common --- packages/cli-common/.eslintrc.js | 3 + packages/cli-common/README.md | 12 ++ packages/cli-common/package.json | 39 +++++++ packages/cli-common/src/index.ts | 18 +++ packages/cli-common/src/paths.test.ts | 92 +++++++++++++++ packages/cli-common/src/paths.ts | 155 ++++++++++++++++++++++++++ 6 files changed, 319 insertions(+) create mode 100644 packages/cli-common/.eslintrc.js create mode 100644 packages/cli-common/README.md create mode 100644 packages/cli-common/package.json create mode 100644 packages/cli-common/src/index.ts create mode 100644 packages/cli-common/src/paths.test.ts create mode 100644 packages/cli-common/src/paths.ts diff --git a/packages/cli-common/.eslintrc.js b/packages/cli-common/.eslintrc.js new file mode 100644 index 0000000000..16a033dbc6 --- /dev/null +++ b/packages/cli-common/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint.backend')], +}; diff --git a/packages/cli-common/README.md b/packages/cli-common/README.md new file mode 100644 index 0000000000..3488003a76 --- /dev/null +++ b/packages/cli-common/README.md @@ -0,0 +1,12 @@ +# @backstage/cli-common + +This package provides config loading functionality used by the backend, and CLI. + +## Installation + +Do not install this package directly, it is an internal package used by [@backstage/cli](https://www.npmjs.com/package/@backstage/cli), and [@backstage/create-app](https://www.npmjs.com/package/@backstage/create-app). Depend on either of those instead. + +## Documentation + +- [Backstage Readme](https://github.com/spotify/backstage/blob/master/README.md) +- [Backstage Documentation](https://github.com/spotify/backstage/blob/master/docs/README.md) diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json new file mode 100644 index 0000000000..1d2dc35cd9 --- /dev/null +++ b/packages/cli-common/package.json @@ -0,0 +1,39 @@ +{ + "name": "@backstage/cli-common", + "description": "Common functionality used by cli, backend, and create-app", + "version": "0.1.1-alpha.16", + "private": false, + "main": "src/index.ts", + "types": "src/index.ts", + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/spotify/backstage", + "directory": "packages/cli-common" + }, + "keywords": [ + "backstage" + ], + "license": "Apache-2.0", + "scripts": { + "build": "backstage-cli build --outputs cjs,types", + "lint": "backstage-cli lint", + "test": "backstage-cli test", + "prepack": "backstage-cli prepack", + "postpack": "backstage-cli postpack", + "clean": "backstage-cli clean" + }, + "devDependencies": { + "@backstage/cli": "^0.1.1-alpha.16", + "@types/jest": "^26.0.7", + "@types/node": "^12.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/packages/cli-common/src/index.ts b/packages/cli-common/src/index.ts new file mode 100644 index 0000000000..a080f49b6b --- /dev/null +++ b/packages/cli-common/src/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { findPaths } from './paths'; +export type { Paths } from './paths'; diff --git a/packages/cli-common/src/paths.test.ts b/packages/cli-common/src/paths.test.ts new file mode 100644 index 0000000000..087f95af38 --- /dev/null +++ b/packages/cli-common/src/paths.test.ts @@ -0,0 +1,92 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { resolve as resolvePath } from 'path'; +import { findPaths, findRootPath, findOwnDir, findOwnRootDir } from './paths'; + +describe('paths', () => { + it('findOwnDir and findOwnRootDir should find owns paths', () => { + const dir = findOwnDir(__dirname); + const root = findOwnRootDir(dir); + + expect(dir).toBe(resolvePath(__dirname, '..')); + expect(root).toBe(resolvePath(__dirname, '../../..')); + }); + + it('findRootPath should find a root path', () => { + expect(findRootPath(__dirname, () => true)).toBe( + resolvePath(__dirname, '..'), + ); + + expect(findRootPath(__dirname, () => false)).toBeUndefined(); + + expect( + findRootPath( + __dirname, + path => path !== resolvePath(__dirname, '../package.json'), + ), + ).toBe(resolvePath(__dirname, '../../..')); + }); + + it('findPaths should find package paths', () => { + const dir = resolvePath(__dirname, '..'); + const root = resolvePath(__dirname, '../../..'); + + const paths = findPaths(__dirname); + + expect(paths.ownDir).toBe(dir); + expect(paths.ownRoot).toBe(root); + expect(paths.resolveOwn('./derp.txt')).toBe(resolvePath(dir, 'derp.txt')); + expect(paths.resolveOwnRoot('./derp.txt')).toBe( + resolvePath(root, 'derp.txt'), + ); + expect(paths.targetDir).toBe(dir); + expect(paths.targetRoot).toBe(root); + expect(paths.resolveTarget('./derp.txt')).toBe( + resolvePath(dir, 'derp.txt'), + ); + expect(paths.resolveTargetRoot('./derp.txt')).toBe( + resolvePath(root, 'derp.txt'), + ); + }); + + it('findPaths should find mocked package paths', () => { + const mockCwd = resolvePath(__dirname, '../../core'); + const mockDir = resolvePath(__dirname, '../../cli'); + const root = resolvePath(__dirname, '../../..'); + + jest.spyOn(process, 'cwd').mockReturnValue(mockCwd); + + const paths = findPaths(resolvePath(mockDir, 'src/lib')); + + expect(paths.ownDir).toBe(mockDir); + expect(paths.ownRoot).toBe(root); + expect(paths.resolveOwn('./derp.txt')).toBe( + resolvePath(mockDir, 'derp.txt'), + ); + expect(paths.resolveOwnRoot('./derp.txt')).toBe( + resolvePath(root, 'derp.txt'), + ); + expect(paths.targetDir).toBe(mockCwd); + expect(paths.targetRoot).toBe(root); + expect(paths.resolveTarget('./derp.txt')).toBe( + resolvePath(mockCwd, 'derp.txt'), + ); + expect(paths.resolveTargetRoot('./derp.txt')).toBe( + resolvePath(root, 'derp.txt'), + ); + }); +}); diff --git a/packages/cli-common/src/paths.ts b/packages/cli-common/src/paths.ts new file mode 100644 index 0000000000..70761ad2d7 --- /dev/null +++ b/packages/cli-common/src/paths.ts @@ -0,0 +1,155 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import fs from 'fs'; +import { dirname, resolve as resolvePath } from 'path'; + +export type ResolveFunc = (...paths: string[]) => string; + +// Common paths and resolve functions used by the cli. +// Currently assumes it is being executed within a monorepo. +export type Paths = { + // Root dir of the cli itself, containing package.json + ownDir: string; + + // Monorepo root dir of the cli itself. Only accessible when running inside Backstage repo. + ownRoot: string; + + // The location of the app that the cli is being executed in + targetDir: string; + + // The monorepo root package of the app that the cli is being executed in. + targetRoot: string; + + // Resolve a path relative to own repo + resolveOwn: ResolveFunc; + + // Resolve a path relative to own monorepo root. Only accessible when running inside Backstage repo. + resolveOwnRoot: ResolveFunc; + + // Resolve a path relative to the app + resolveTarget: ResolveFunc; + + // Resolve a path relative to the app repo root + resolveTargetRoot: ResolveFunc; +}; + +// Looks for a package.json with a workspace config to identify the root of the monorepo +export function findRootPath( + searchDir: string, + filterFunc: (pkgJsonPath: string) => boolean, +): string | undefined { + let path = searchDir; + + // Some sanity check to avoid infinite loop + for (let i = 0; i < 1000; i++) { + const packagePath = resolvePath(path, 'package.json'); + const exists = fs.existsSync(packagePath); + if (exists && filterFunc(packagePath)) { + return path; + } + + const newPath = dirname(path); + if (newPath === path) { + return undefined; + } + path = newPath; + } + + throw new Error( + `Iteration limit reached when searching for root package.json at ${searchDir}`, + ); +} + +// Finds the root of a given package +export function findOwnDir(searchDir: string) { + const path = findRootPath(searchDir, () => true); + if (!path) { + throw new Error( + `No package.json found while searching for package root of ${searchDir}`, + ); + } + return path; +} + +// Finds the root of the monorepo that the package exists in. Only accessible when running inside Backstage repo. +export function findOwnRootDir(ownDir: string) { + const isLocal = fs.existsSync(resolvePath(ownDir, 'src')); + if (!isLocal) { + throw new Error( + 'Tried to access monorepo package root dir outside of Backstage repository', + ); + } + + return resolvePath(ownDir, '../..'); +} + +/** + * Find paths related to a package and its execution context. + * + * @example + * + * const paths = findPaths(__dirname) + */ +export function findPaths(searchDir: string): Paths { + const ownDir = findOwnDir(searchDir); + const targetDir = fs.realpathSync(process.cwd()); + + // Lazy load this as it will throw an error if we're not inside the Backstage repo. + let ownRoot = ''; + const getOwnRoot = () => { + if (!ownRoot) { + ownRoot = findOwnRootDir(ownDir); + } + return ownRoot; + }; + + // We're not always running in a monorepo, so we lazy init this to only crash commands + // that require a monorepo when we're not in one. + let targetRoot = ''; + const getTargetRoot = () => { + if (!targetRoot) { + targetRoot = + findRootPath(targetDir, path => { + try { + const content = fs.readFileSync(path, 'utf8'); + const data = JSON.parse(content); + return Boolean(data.workspaces?.packages); + } catch (error) { + throw new Error( + `Failed to parse package.json file while searching for root, ${error}`, + ); + } + }) ?? targetDir; // We didn't find any root package.json, assume we're not in a monorepo + } + return targetRoot; + }; + + return { + ownDir, + get ownRoot() { + return getOwnRoot(); + }, + targetDir, + get targetRoot() { + return getTargetRoot(); + }, + resolveOwn: (...paths) => resolvePath(ownDir, ...paths), + resolveOwnRoot: (...paths) => resolvePath(getOwnRoot(), ...paths), + resolveTarget: (...paths) => resolvePath(targetDir, ...paths), + resolveTargetRoot: (...paths) => resolvePath(getTargetRoot(), ...paths), + }; +} From 2f76581b6097fe928d57694c4d23e8b440bd78b8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Aug 2020 18:17:58 +0200 Subject: [PATCH 02/15] cli: use cli-common to discover paths --- packages/cli/package.json | 1 + packages/cli/src/lib/paths.ts | 133 +--------------------------------- 2 files changed, 3 insertions(+), 131 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 250aa5f796..f6fdaf8e5d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -29,6 +29,7 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { + "@backstage/cli-common": "^0.1.1-alpha.16", "@backstage/config": "^0.1.1-alpha.16", "@backstage/config-loader": "^0.1.1-alpha.16", "@hot-loader/react-dom": "^16.13.0", diff --git a/packages/cli/src/lib/paths.ts b/packages/cli/src/lib/paths.ts index ab3578ca1c..06c8f2ab38 100644 --- a/packages/cli/src/lib/paths.ts +++ b/packages/cli/src/lib/paths.ts @@ -14,135 +14,6 @@ * limitations under the License. */ -import fs from 'fs-extra'; -import { dirname, resolve as resolvePath } from 'path'; +import { findPaths } from '@backstage/cli-common'; -export type ResolveFunc = (...paths: string[]) => string; - -// Common paths and resolve functions used by the cli. -// Currently assumes it is being executed within a monorepo. -export type Paths = { - // Root dir of the cli itself, containing package.json - ownDir: string; - - // Monorepo root dir of the cli itself. Only accessible when running inside Backstage repo. - ownRoot: string; - - // The location of the app that the cli is being executed in - targetDir: string; - - // The monorepo root package of the app that the cli is being executed in. - targetRoot: string; - - // Resolve a path relative to own repo - resolveOwn: ResolveFunc; - - // Resolve a path relative to own monorepo root. Only accessible when running inside Backstage repo. - resolveOwnRoot: ResolveFunc; - - // Resolve a path relative to the app - resolveTarget: ResolveFunc; - - // Resolve a path relative to the app repo root - resolveTargetRoot: ResolveFunc; -}; - -// Looks for a package.json with a workspace config to identify the root of the monorepo -export function findRootPath(topPath: string): string { - let path = topPath; - - // Some sanity check to avoid infinite loop - for (let i = 0; i < 1000; i++) { - const packagePath = resolvePath(path, 'package.json'); - const exists = fs.pathExistsSync(packagePath); - if (exists) { - try { - const data = fs.readJsonSync(packagePath); - if (data.workspaces?.packages) { - return path; - } - } catch (error) { - throw new Error( - `Failed to parse package.json file while searching for root, ${error}`, - ); - } - } - - const newPath = dirname(path); - if (newPath === path) { - return topPath; // We didn't find any root package.json, assume we're not in a monorepo - } - path = newPath; - } - - throw new Error( - `Iteration limit reached when searching for root package.json at ${topPath}`, - ); -} - -// Finds the root of the cli package itself -export function findOwnDir() { - // Known relative locations of package in dist/dev - const pathDist = '..'; - const pathDev = '../..'; - - // Check the closest dir first - const pkgInDist = resolvePath(__dirname, pathDist, 'package.json'); - const isDist = fs.pathExistsSync(pkgInDist); - - const path = isDist ? pathDist : pathDev; - return resolvePath(__dirname, path); -} - -// Finds the root of the monorepo that the cli exists in. Only accessible when running inside Backstage repo. -export function findOwnRootPath(ownDir: string) { - const isLocal = fs.pathExistsSync(resolvePath(ownDir, 'src')); - if (!isLocal) { - throw new Error( - 'Tried to access monorepo package root dir outside of Backstage repository', - ); - } - - return resolvePath(ownDir, '../..'); -} - -export function findPaths(): Paths { - const ownDir = findOwnDir(); - const targetDir = fs.realpathSync(process.cwd()); - - // Lazy load this as it will throw an error if we're not inside the Backstage repo. - let ownRoot = ''; - const getOwnRoot = () => { - if (!ownRoot) { - ownRoot = findOwnRootPath(ownDir); - } - return ownRoot; - }; - - // We're not always running in a monorepo, so we lazy init this to only crash commands - // that require a monorepo when we're not in one. - let targetRoot = ''; - const getTargetRoot = () => { - if (!targetRoot) { - targetRoot = findRootPath(targetDir); - } - return targetRoot; - }; - - return { - ownDir, - get ownRoot() { - return getOwnRoot(); - }, - targetDir, - get targetRoot() { - return getTargetRoot(); - }, - resolveOwn: (...paths) => resolvePath(ownDir, ...paths), - resolveOwnRoot: (...paths) => resolvePath(getOwnRoot(), ...paths), - resolveTarget: (...paths) => resolvePath(targetDir, ...paths), - resolveTargetRoot: (...paths) => resolvePath(getTargetRoot(), ...paths), - }; -} - -export const paths = findPaths(); +export const paths = findPaths(__dirname); From 0a09976548df83050d7890122bc3e7600281bc05 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Aug 2020 18:18:51 +0200 Subject: [PATCH 03/15] create-app: use cli-common to discover paths and import version directly --- packages/create-app/package.json | 1 + packages/create-app/src/createApp.ts | 6 +- packages/create-app/src/index.ts | 4 +- packages/create-app/src/lib/paths.ts | 150 ------------------------- packages/create-app/src/lib/version.ts | 26 ----- 5 files changed, 7 insertions(+), 180 deletions(-) delete mode 100644 packages/create-app/src/lib/paths.ts delete mode 100644 packages/create-app/src/lib/version.ts diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 79b14fc379..9cd9ee7920 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -25,6 +25,7 @@ "lint": "backstage-cli lint" }, "dependencies": { + "@backstage/cli-common": "^0.1.1-alpha.16", "commander": "^4.1.1", "chalk": "^4.0.0", "fs-extra": "^9.0.0", diff --git a/packages/create-app/src/createApp.ts b/packages/create-app/src/createApp.ts index b4564b1ff8..28e3805ce8 100644 --- a/packages/create-app/src/createApp.ts +++ b/packages/create-app/src/createApp.ts @@ -21,10 +21,10 @@ import { Command } from 'commander'; import inquirer, { Answers, Question } from 'inquirer'; import { exec as execCb } from 'child_process'; import { resolve as resolvePath } from 'path'; +import { findPaths } from '@backstage/cli-common'; +import { version } from '../package.json'; import os from 'os'; import { Task, templatingTask } from './lib/tasks'; -import { paths } from './lib/paths'; -import { version } from './lib/version'; const exec = promisify(execCb); @@ -88,6 +88,8 @@ async function moveApp(tempDir: string, destination: string, id: string) { } export default async (cmd: Command): Promise => { + const paths = findPaths(__dirname); + const questions: Question[] = [ { type: 'input', diff --git a/packages/create-app/src/index.ts b/packages/create-app/src/index.ts index 93c10c8c99..d8c0f55572 100644 --- a/packages/create-app/src/index.ts +++ b/packages/create-app/src/index.ts @@ -17,7 +17,7 @@ import program from 'commander'; import chalk from 'chalk'; import { exitWithError } from './lib/errors'; -import { version } from './lib/version'; +import { version } from '../package.json'; import createApp from './createApp'; const main = (argv: string[]) => { @@ -29,7 +29,7 @@ const main = (argv: string[]) => { '--skip-install', 'Skip the install and builds steps after creating the app', ) - .action(createApp) + .action(createApp); if (!process.argv.slice(2).length) { program.outputHelp(chalk.yellow); diff --git a/packages/create-app/src/lib/paths.ts b/packages/create-app/src/lib/paths.ts deleted file mode 100644 index be3f3dcee8..0000000000 --- a/packages/create-app/src/lib/paths.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { dirname, resolve as resolvePath } from 'path'; - -export type ResolveFunc = (...paths: string[]) => string; - -// Common paths and resolve functions used by the cli. -// Currently assumes it is being executed within a monorepo. -export type Paths = { - // Root dir of the cli itself, containing package.json - ownDir: string; - - // Monorepo root dir of the cli itself. Only accessible when running inside Backstage repo. - ownRoot: string; - - // The location of the app that the cli is being executed in - targetDir: string; - - // The monorepo root package of the app that the cli is being executed in. - targetRoot: string; - - // Resolve a path relative to own repo - resolveOwn: ResolveFunc; - - // Resolve a path relative to own monorepo root. Only accessible when running inside Backstage repo. - resolveOwnRoot: ResolveFunc; - - // Resolve a path relative to the app - resolveTarget: ResolveFunc; - - // Resolve a path relative to the app repo root - resolveTargetRoot: ResolveFunc; -}; - -// Looks for a package.json that has name: "root" to identify the root of the monorepo -export function findRootPath(topPath: string): string { - let path = topPath; - - // Some sanity check to avoid infinite loop - for (let i = 0; i < 1000; i++) { - const packagePath = resolvePath(path, 'package.json'); - const exists = fs.pathExistsSync(packagePath); - if (exists) { - try { - const data = fs.readJsonSync(packagePath); - if (data.name === 'root' || data.name.includes('backstage-e2e')) { - return path; - } - } catch (error) { - throw new Error( - `Failed to parse package.json file while searching for root, ${error}`, - ); - } - } - - const newPath = dirname(path); - if (newPath === path) { - throw new Error( - `No package.json with name "root" found as a parent of ${topPath}`, - ); - } - path = newPath; - } - - throw new Error( - `Iteration limit reached when searching for root package.json at ${topPath}`, - ); -} - -// Finds the root of the cli package itself -export function findOwnDir() { - // Known relative locations of package in dist/dev - const pathDist = '..'; - const pathDev = '../..'; - - // Check the closest dir first - const pkgInDist = resolvePath(__dirname, pathDist, 'package.json'); - const isDist = fs.pathExistsSync(pkgInDist); - - const path = isDist ? pathDist : pathDev; - return resolvePath(__dirname, path); -} - -// Finds the root of the monorepo that the cli exists in. Only accessible when running inside Backstage repo. -export function findOwnRootPath(ownDir: string) { - const isLocal = fs.pathExistsSync(resolvePath(ownDir, 'src')); - if (!isLocal) { - throw new Error( - 'Tried to access monorepo package root dir outside of Backstage repository', - ); - } - - return resolvePath(ownDir, '../..'); -} - -export function findPaths(): Paths { - const ownDir = findOwnDir(); - const targetDir = fs.realpathSync(process.cwd()); - - // Lazy load this as it will throw an error if we're not inside the Backstage repo. - let ownRoot = ''; - const getOwnRoot = () => { - if (!ownRoot) { - ownRoot = findOwnRootPath(ownDir); - } - return ownRoot; - }; - - // We're not always running in a monorepo, so we lazy init this to only crash commands - // that require a monorepo when we're not in one. - let targetRoot = ''; - const getTargetRoot = () => { - if (!targetRoot) { - targetRoot = findRootPath(targetDir); - } - return targetRoot; - }; - - return { - ownDir, - get ownRoot() { - return getOwnRoot(); - }, - targetDir, - get targetRoot() { - return getTargetRoot(); - }, - resolveOwn: (...paths) => resolvePath(ownDir, ...paths), - resolveOwnRoot: (...paths) => resolvePath(getOwnRoot(), ...paths), - resolveTarget: (...paths) => resolvePath(targetDir, ...paths), - resolveTargetRoot: (...paths) => resolvePath(getTargetRoot(), ...paths), - }; -} - -export const paths = findPaths(); diff --git a/packages/create-app/src/lib/version.ts b/packages/create-app/src/lib/version.ts deleted file mode 100644 index 24734b87cc..0000000000 --- a/packages/create-app/src/lib/version.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { paths } from './paths'; - -export function findVersion() { - const pkgContent = fs.readFileSync(paths.resolveOwn('package.json'), 'utf8'); - return JSON.parse(pkgContent).version; -} - -export const version = findVersion(); -export const isDev = fs.pathExistsSync(paths.resolveOwn('src')); From aa265769d2c364ee45c094cfca3f9d36fa22c8e5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Aug 2020 18:19:19 +0200 Subject: [PATCH 04/15] techdocs-cli: import version from techdocs-cli directly --- packages/techdocs-cli/src/index.ts | 2 +- packages/techdocs-cli/src/lib/paths.ts | 150 ----------------------- packages/techdocs-cli/src/lib/version.ts | 26 ---- 3 files changed, 1 insertion(+), 177 deletions(-) delete mode 100644 packages/techdocs-cli/src/lib/paths.ts delete mode 100644 packages/techdocs-cli/src/lib/version.ts diff --git a/packages/techdocs-cli/src/index.ts b/packages/techdocs-cli/src/index.ts index 1469089d52..b48f03d35b 100644 --- a/packages/techdocs-cli/src/index.ts +++ b/packages/techdocs-cli/src/index.ts @@ -15,7 +15,7 @@ */ import { spawn, ChildProcess } from 'child_process'; import program from 'commander'; -import { version } from './lib/version'; +import { version } from '../package.json'; import path from 'path'; import HTTPServer from './lib/httpServer'; import openBrowser from 'react-dev-utils/openBrowser'; diff --git a/packages/techdocs-cli/src/lib/paths.ts b/packages/techdocs-cli/src/lib/paths.ts deleted file mode 100644 index be3f3dcee8..0000000000 --- a/packages/techdocs-cli/src/lib/paths.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { dirname, resolve as resolvePath } from 'path'; - -export type ResolveFunc = (...paths: string[]) => string; - -// Common paths and resolve functions used by the cli. -// Currently assumes it is being executed within a monorepo. -export type Paths = { - // Root dir of the cli itself, containing package.json - ownDir: string; - - // Monorepo root dir of the cli itself. Only accessible when running inside Backstage repo. - ownRoot: string; - - // The location of the app that the cli is being executed in - targetDir: string; - - // The monorepo root package of the app that the cli is being executed in. - targetRoot: string; - - // Resolve a path relative to own repo - resolveOwn: ResolveFunc; - - // Resolve a path relative to own monorepo root. Only accessible when running inside Backstage repo. - resolveOwnRoot: ResolveFunc; - - // Resolve a path relative to the app - resolveTarget: ResolveFunc; - - // Resolve a path relative to the app repo root - resolveTargetRoot: ResolveFunc; -}; - -// Looks for a package.json that has name: "root" to identify the root of the monorepo -export function findRootPath(topPath: string): string { - let path = topPath; - - // Some sanity check to avoid infinite loop - for (let i = 0; i < 1000; i++) { - const packagePath = resolvePath(path, 'package.json'); - const exists = fs.pathExistsSync(packagePath); - if (exists) { - try { - const data = fs.readJsonSync(packagePath); - if (data.name === 'root' || data.name.includes('backstage-e2e')) { - return path; - } - } catch (error) { - throw new Error( - `Failed to parse package.json file while searching for root, ${error}`, - ); - } - } - - const newPath = dirname(path); - if (newPath === path) { - throw new Error( - `No package.json with name "root" found as a parent of ${topPath}`, - ); - } - path = newPath; - } - - throw new Error( - `Iteration limit reached when searching for root package.json at ${topPath}`, - ); -} - -// Finds the root of the cli package itself -export function findOwnDir() { - // Known relative locations of package in dist/dev - const pathDist = '..'; - const pathDev = '../..'; - - // Check the closest dir first - const pkgInDist = resolvePath(__dirname, pathDist, 'package.json'); - const isDist = fs.pathExistsSync(pkgInDist); - - const path = isDist ? pathDist : pathDev; - return resolvePath(__dirname, path); -} - -// Finds the root of the monorepo that the cli exists in. Only accessible when running inside Backstage repo. -export function findOwnRootPath(ownDir: string) { - const isLocal = fs.pathExistsSync(resolvePath(ownDir, 'src')); - if (!isLocal) { - throw new Error( - 'Tried to access monorepo package root dir outside of Backstage repository', - ); - } - - return resolvePath(ownDir, '../..'); -} - -export function findPaths(): Paths { - const ownDir = findOwnDir(); - const targetDir = fs.realpathSync(process.cwd()); - - // Lazy load this as it will throw an error if we're not inside the Backstage repo. - let ownRoot = ''; - const getOwnRoot = () => { - if (!ownRoot) { - ownRoot = findOwnRootPath(ownDir); - } - return ownRoot; - }; - - // We're not always running in a monorepo, so we lazy init this to only crash commands - // that require a monorepo when we're not in one. - let targetRoot = ''; - const getTargetRoot = () => { - if (!targetRoot) { - targetRoot = findRootPath(targetDir); - } - return targetRoot; - }; - - return { - ownDir, - get ownRoot() { - return getOwnRoot(); - }, - targetDir, - get targetRoot() { - return getTargetRoot(); - }, - resolveOwn: (...paths) => resolvePath(ownDir, ...paths), - resolveOwnRoot: (...paths) => resolvePath(getOwnRoot(), ...paths), - resolveTarget: (...paths) => resolvePath(targetDir, ...paths), - resolveTargetRoot: (...paths) => resolvePath(getTargetRoot(), ...paths), - }; -} - -export const paths = findPaths(); diff --git a/packages/techdocs-cli/src/lib/version.ts b/packages/techdocs-cli/src/lib/version.ts deleted file mode 100644 index 24734b87cc..0000000000 --- a/packages/techdocs-cli/src/lib/version.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { paths } from './paths'; - -export function findVersion() { - const pkgContent = fs.readFileSync(paths.resolveOwn('package.json'), 'utf8'); - return JSON.parse(pkgContent).version; -} - -export const version = findVersion(); -export const isDev = fs.pathExistsSync(paths.resolveOwn('src')); From 62222b543cf0ee9bd870cce5ba54ff7f3ab7b9dc Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Aug 2020 18:21:03 +0200 Subject: [PATCH 05/15] config-loader,backend-common: refactor config loading to pass in path and use common util for backend --- packages/backend-common/package.json | 2 + .../src/config.ts} | 18 ++++-- packages/backend-common/src/index.ts | 1 + packages/backend/package.json | 1 - packages/backend/src/index.ts | 4 +- packages/cli/src/commands/app/build.ts | 3 +- packages/cli/src/commands/app/serve.ts | 3 +- packages/cli/src/commands/backend/dev.ts | 3 +- packages/cli/src/commands/plugin/export.ts | 3 +- packages/cli/src/commands/plugin/serve.ts | 3 +- packages/config-loader/src/lib/paths.ts | 57 ------------------- packages/config-loader/src/lib/resolver.ts | 14 +---- packages/config-loader/src/loader.ts | 6 +- .../packages/backend/package.json.hbs | 5 +- .../packages/backend/src/index.ts.hbs | 4 +- plugins/auth-backend/package.json | 1 - .../src/service/standaloneServer.ts | 9 ++- plugins/proxy-backend/package.json | 1 - .../proxy-backend/src/service/router.test.ts | 4 +- .../src/service/standaloneServer.ts | 8 ++- 20 files changed, 50 insertions(+), 100 deletions(-) rename packages/{config-loader/src/lib/paths.test.ts => backend-common/src/config.ts} (63%) delete mode 100644 packages/config-loader/src/lib/paths.ts diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 18131236df..b8a4e372ab 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -29,7 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { + "@backstage/cli-common": "^0.1.1-alpha.16", "@backstage/config": "^0.1.1-alpha.16", + "@backstage/config-loader": "^0.1.1-alpha.16", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", diff --git a/packages/config-loader/src/lib/paths.test.ts b/packages/backend-common/src/config.ts similarity index 63% rename from packages/config-loader/src/lib/paths.test.ts rename to packages/backend-common/src/config.ts index dd5ed14748..8391ed4104 100644 --- a/packages/config-loader/src/lib/paths.test.ts +++ b/packages/backend-common/src/config.ts @@ -14,11 +14,17 @@ * limitations under the License. */ -import { findRootPath } from './paths'; +import { findPaths } from '@backstage/cli-common'; +import { loadConfig } from '@backstage/config-loader'; -describe('findRootPath', () => { - it('should find root path', () => { - const rootPath = findRootPath(process.cwd()); - expect(typeof rootPath).toBe('string'); +/** + * Load configuration for a Backend + */ +export async function loadBackendConfig() { + const paths = findPaths(__dirname); + const configs = await loadConfig({ + rootPath: paths.targetRoot, + shouldReadSecrets: true, }); -}); + return configs; +} diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index 0e4e5b2c6b..a3f57ed9df 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +export * from './config'; export * from './errors'; export * from './logging'; export * from './middleware'; diff --git a/packages/backend/package.json b/packages/backend/package.json index 7ca11fc636..1de51948d8 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -21,7 +21,6 @@ "@backstage/backend-common": "^0.1.1-alpha.16", "@backstage/catalog-model": "^0.1.1-alpha.16", "@backstage/config": "^0.1.1-alpha.16", - "@backstage/config-loader": "^0.1.1-alpha.16", "@backstage/plugin-auth-backend": "^0.1.1-alpha.16", "@backstage/plugin-catalog-backend": "^0.1.1-alpha.16", "@backstage/plugin-identity-backend": "^0.1.1-alpha.16", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 3fccfe9c59..261a4d2894 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -24,11 +24,11 @@ import { createServiceBuilder, + loadBackendConfig, getRootLogger, useHotMemoize, } from '@backstage/backend-common'; import { ConfigReader, AppConfig } from '@backstage/config'; -import { loadConfig } from '@backstage/config-loader'; import knex, { PgConnectionConfig } from 'knex'; import healthcheck from './plugins/healthcheck'; import auth from './plugins/auth'; @@ -85,7 +85,7 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { } async function main() { - const configs = await loadConfig({ shouldReadSecrets: true }); + const configs = await loadBackendConfig(); const configReader = ConfigReader.fromConfigs(configs); const createEnv = makeCreateEnv(configs); diff --git a/packages/cli/src/commands/app/build.ts b/packages/cli/src/commands/app/build.ts index 4ecf54f532..b3ec5ad2bf 100644 --- a/packages/cli/src/commands/app/build.ts +++ b/packages/cli/src/commands/app/build.ts @@ -17,10 +17,11 @@ import { Command } from 'commander'; import { loadConfig } from '@backstage/config-loader'; import { ConfigReader } from '@backstage/config'; +import { paths } from '../../lib/paths'; import { buildBundle } from '../../lib/bundler'; export default async (cmd: Command) => { - const appConfigs = await loadConfig(); + const appConfigs = await loadConfig({ rootPath: paths.targetRoot }); await buildBundle({ entry: 'src/index', statsJsonEnabled: cmd.stats, diff --git a/packages/cli/src/commands/app/serve.ts b/packages/cli/src/commands/app/serve.ts index 023a3a4663..732370ef3b 100644 --- a/packages/cli/src/commands/app/serve.ts +++ b/packages/cli/src/commands/app/serve.ts @@ -17,10 +17,11 @@ import { Command } from 'commander'; import { loadConfig } from '@backstage/config-loader'; import { ConfigReader } from '@backstage/config'; +import { paths } from '../../lib/paths'; import { serveBundle } from '../../lib/bundler'; export default async (cmd: Command) => { - const appConfigs = await loadConfig(); + const appConfigs = await loadConfig({ rootPath: paths.targetRoot }); const waitForExit = await serveBundle({ entry: 'src/index', checksEnabled: cmd.check, diff --git a/packages/cli/src/commands/backend/dev.ts b/packages/cli/src/commands/backend/dev.ts index f04f904e09..03d9464722 100644 --- a/packages/cli/src/commands/backend/dev.ts +++ b/packages/cli/src/commands/backend/dev.ts @@ -17,10 +17,11 @@ import { ConfigReader } from '@backstage/config'; import { loadConfig } from '@backstage/config-loader'; import { Command } from 'commander'; +import { paths } from '../../lib/paths'; import { serveBackend } from '../../lib/bundler/backend'; export default async (cmd: Command) => { - const appConfigs = await loadConfig(); + const appConfigs = await loadConfig({ rootPath: paths.targetRoot }); const waitForExit = await serveBackend({ entry: 'src/index', checksEnabled: cmd.check, diff --git a/packages/cli/src/commands/plugin/export.ts b/packages/cli/src/commands/plugin/export.ts index b6db0d8ddd..be6df707f3 100644 --- a/packages/cli/src/commands/plugin/export.ts +++ b/packages/cli/src/commands/plugin/export.ts @@ -17,10 +17,11 @@ import { Command } from 'commander'; import { loadConfig } from '@backstage/config-loader'; import { ConfigReader } from '@backstage/config'; +import { paths } from '../../lib/paths'; import { buildBundle } from '../../lib/bundler'; export default async (cmd: Command) => { - const appConfigs = await loadConfig(); + const appConfigs = await loadConfig({ rootPath: paths.targetRoot }); await buildBundle({ entry: 'dev/index', statsJsonEnabled: cmd.stats, diff --git a/packages/cli/src/commands/plugin/serve.ts b/packages/cli/src/commands/plugin/serve.ts index 57b939fa63..5ee4b70a1e 100644 --- a/packages/cli/src/commands/plugin/serve.ts +++ b/packages/cli/src/commands/plugin/serve.ts @@ -17,10 +17,11 @@ import { Command } from 'commander'; import { loadConfig } from '@backstage/config-loader'; import { ConfigReader } from '@backstage/config'; +import { paths } from '../../lib/paths'; import { serveBundle } from '../../lib/bundler'; export default async (cmd: Command) => { - const appConfigs = await loadConfig(); + const appConfigs = await loadConfig({ rootPath: paths.targetRoot }); const waitForExit = await serveBundle({ entry: 'dev/index', checksEnabled: cmd.check, diff --git a/packages/config-loader/src/lib/paths.ts b/packages/config-loader/src/lib/paths.ts deleted file mode 100644 index d0e7e96e36..0000000000 --- a/packages/config-loader/src/lib/paths.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { dirname, resolve as resolvePath } from 'path'; - -/** - * Looks for a package.json that has name: "root" to identify the root of the monorepo - * - * This is a copy of the same function in the CLI - */ -export function findRootPath(topPath: string): string { - let path = topPath; - - // Some sanity check to avoid infinite loop - for (let i = 0; i < 1000; i++) { - const packagePath = resolvePath(path, 'package.json'); - const exists = fs.pathExistsSync(packagePath); - if (exists) { - try { - const data = fs.readJsonSync(packagePath); - if (data.name === 'root' || data.name.includes('backstage-e2e')) { - return path; - } - } catch (error) { - throw new Error( - `Failed to parse package.json file while searching for root, ${error}`, - ); - } - } - - const newPath = dirname(path); - if (newPath === path) { - throw new Error( - `No package.json with name "root" found as a parent of ${topPath}`, - ); - } - path = newPath; - } - - throw new Error( - `Iteration limit reached when searching for root package.json at ${topPath}`, - ); -} diff --git a/packages/config-loader/src/lib/resolver.ts b/packages/config-loader/src/lib/resolver.ts index 4a06f3ebca..a3921f07aa 100644 --- a/packages/config-loader/src/lib/resolver.ts +++ b/packages/config-loader/src/lib/resolver.ts @@ -14,13 +14,11 @@ * limitations under the License. */ -import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; -import { findRootPath } from './paths'; type ResolveOptions = { - // Same as configPath in LoadConfigOptions - configPath?: string; + // Root path for search for app-config.yaml + rootPath: string; }; /** @@ -31,13 +29,7 @@ export async function resolveStaticConfig( ): Promise { // TODO: We'll want this to be a bit more elaborate, probably adding configs for // specific env, and maybe local config for plugins. - let { configPath } = options; - if (!configPath) { - configPath = resolvePath( - findRootPath(fs.realpathSync(process.cwd())), - 'app-config.yaml', - ); - } + const configPath = resolvePath(options.rootPath, 'app-config.yaml'); return [configPath]; } diff --git a/packages/config-loader/src/loader.ts b/packages/config-loader/src/loader.ts index 1b6c8f34da..ce0e09e815 100644 --- a/packages/config-loader/src/loader.ts +++ b/packages/config-loader/src/loader.ts @@ -25,8 +25,8 @@ import { } from './lib'; export type LoadConfigOptions = { - // Config path, defaults to app-config.yaml in project root - configPath?: string; + // Root path for search for app-config.yaml + rootPath: string; // Whether to read secrets or omit them, defaults to false. shouldReadSecrets?: boolean; @@ -59,7 +59,7 @@ class Context { } export async function loadConfig( - options: LoadConfigOptions = {}, + options: LoadConfigOptions, ): Promise { const configs = []; diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 93c076a967..a978349b02 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -19,8 +19,7 @@ "dependencies": { "@backstage/backend-common": "^{{version}}", "@backstage/catalog-model": "^{{version}}", - "@backstage/config": "^0.1.1-alpha.13", - "@backstage/config-loader": "^0.1.1-alpha.13", + "@backstage/config": "^{{version}}", "@backstage/plugin-auth-backend": "^{{version}}", "@backstage/plugin-catalog-backend": "^{{version}}", "@backstage/plugin-identity-backend": "^{{version}}", @@ -42,7 +41,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.15", + "@backstage/cli": "^{{version}}", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs b/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs index 591fa1a28f..ec050970d7 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs @@ -24,11 +24,11 @@ import { createServiceBuilder, + loadBackendConfig, getRootLogger, useHotMemoize, } from '@backstage/backend-common'; import { ConfigReader, AppConfig } from '@backstage/config'; -import { loadConfig } from '@backstage/config-loader'; {{#if dbTypePG}} import knex, { PgConnectionConfig } from 'knex'; {{/if}} @@ -78,7 +78,7 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { } async function main() { - const configs = await loadConfig(); + const configs = await loadBackendConfig(); const configReader = ConfigReader.fromConfigs(configs); const createEnv = makeCreateEnv(configs); diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index b16c1e5a4f..a0a863618f 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -22,7 +22,6 @@ "dependencies": { "@backstage/backend-common": "^0.1.1-alpha.16", "@backstage/config": "^0.1.1-alpha.16", - "@backstage/config-loader": "^0.1.1-alpha.16", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", diff --git a/plugins/auth-backend/src/service/standaloneServer.ts b/plugins/auth-backend/src/service/standaloneServer.ts index d2372a7e91..dc91c92631 100644 --- a/plugins/auth-backend/src/service/standaloneServer.ts +++ b/plugins/auth-backend/src/service/standaloneServer.ts @@ -18,9 +18,12 @@ import Knex from 'knex'; import { Server } from 'http'; import { Logger } from 'winston'; import { ConfigReader } from '@backstage/config'; -import { loadConfig } from '@backstage/config-loader'; import { createRouter } from './router'; -import { createServiceBuilder, useHotMemoize } from '@backstage/backend-common'; +import { + createServiceBuilder, + useHotMemoize, + loadBackendConfig, +} from '@backstage/backend-common'; export interface ServerOptions { logger: Logger; @@ -30,7 +33,7 @@ export async function startStandaloneServer( options: ServerOptions, ): Promise { const logger = options.logger.child({ service: 'auth-backend' }); - const config = ConfigReader.fromConfigs(await loadConfig()); + const config = ConfigReader.fromConfigs(await loadBackendConfig()); const database = useHotMemoize(module, () => { const knex = Knex({ diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index e80bf0e00f..f65e3a7298 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -21,7 +21,6 @@ "dependencies": { "@backstage/backend-common": "^0.1.1-alpha.16", "@backstage/config": "^0.1.1-alpha.16", - "@backstage/config-loader": "^0.1.1-alpha.16", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", diff --git a/plugins/proxy-backend/src/service/router.test.ts b/plugins/proxy-backend/src/service/router.test.ts index 699ed9b99d..10690dfbdd 100644 --- a/plugins/proxy-backend/src/service/router.test.ts +++ b/plugins/proxy-backend/src/service/router.test.ts @@ -17,12 +17,12 @@ import { createRouter } from './router'; import winston from 'winston'; import { ConfigReader } from '@backstage/config'; -import { loadConfig } from '@backstage/config-loader'; +import { loadBackendConfig } from '@backstage/backend-common'; describe('createRouter', () => { it('works', async () => { const logger = winston.createLogger(); - const config = ConfigReader.fromConfigs(await loadConfig()); + const config = ConfigReader.fromConfigs(await loadBackendConfig()); const router = await createRouter({ config, logger, diff --git a/plugins/proxy-backend/src/service/standaloneServer.ts b/plugins/proxy-backend/src/service/standaloneServer.ts index 84c803eeac..f75c044f0f 100644 --- a/plugins/proxy-backend/src/service/standaloneServer.ts +++ b/plugins/proxy-backend/src/service/standaloneServer.ts @@ -14,12 +14,14 @@ * limitations under the License. */ -import { createServiceBuilder } from '@backstage/backend-common'; +import { + createServiceBuilder, + loadBackendConfig, +} from '@backstage/backend-common'; import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; import { ConfigReader } from '@backstage/config'; -import { loadConfig } from '@backstage/config-loader'; export interface ServerOptions { port: number; @@ -34,7 +36,7 @@ export async function startStandaloneServer( logger.debug('Creating application...'); - const config = ConfigReader.fromConfigs(await loadConfig()); + const config = ConfigReader.fromConfigs(await loadBackendConfig()); const router = await createRouter({ config, logger, From 843c6bf3a5f88cbff320623d96f372c745b1c4b8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 4 Aug 2020 01:03:05 +0200 Subject: [PATCH 06/15] packages/cli: fix packaging of packages without deps --- packages/cli/src/lib/packager/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts index f4a2181b40..d65d1af304 100644 --- a/packages/cli/src/lib/packager/index.ts +++ b/packages/cli/src/lib/packager/index.ts @@ -136,7 +136,7 @@ async function findTargetPackages(pkgNames: string[]): Promise { // Don't include dependencies of packages that are marked as bundled if (!node.pkg.get('bundled')) { - const pkgDeps = Object.keys(node.pkg.dependencies); + const pkgDeps = Object.keys(node.pkg.dependencies ?? {}); const localDeps: string[] = Array.from(node.localDependencies.keys()); const filteredDeps = localDeps.filter(dep => pkgDeps.includes(dep)); From 3d95f5925dc8baf67a4e970a6cd9486c27b8f5a5 Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Fri, 31 Jul 2020 06:47:45 -0400 Subject: [PATCH 07/15] feat: add simple healthcheck to app container --- docker/default.conf.template | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker/default.conf.template b/docker/default.conf.template index 29252f9625..23fdf271d3 100644 --- a/docker/default.conf.template +++ b/docker/default.conf.template @@ -11,6 +11,10 @@ server { try_files $uri /index.html; } + location /healthcheck { + return 204; + } + #error_page 404 /404.html; # redirect server error pages to the static page /50x.html From ae9f757ac3b0d552003cb2dd2c0bfec8b188d34e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2020 08:38:52 +0000 Subject: [PATCH 08/15] chore(deps): bump helmet from 3.23.2 to 4.0.0 Bumps [helmet](https://github.com/helmetjs/helmet) from 3.23.2 to 4.0.0. - [Release notes](https://github.com/helmetjs/helmet/releases) - [Changelog](https://github.com/helmetjs/helmet/blob/master/CHANGELOG.md) - [Commits](https://github.com/helmetjs/helmet/compare/v3.23.2...v4.0.0) Signed-off-by: dependabot-preview[bot] --- packages/backend-common/package.json | 2 +- plugins/auth-backend/package.json | 2 +- plugins/identity-backend/package.json | 2 +- plugins/rollbar-backend/package.json | 2 +- plugins/scaffolder-backend/package.json | 2 +- plugins/sentry-backend/package.json | 2 +- yarn.lock | 119 ++---------------------- 7 files changed, 15 insertions(+), 116 deletions(-) diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 18131236df..3eac0f11e4 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -36,7 +36,7 @@ "cors": "^2.8.5", "express": "^4.17.1", "express-promise-router": "^3.0.3", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "morgan": "^1.10.0", "stoppable": "^1.1.0", "winston": "^3.2.1" diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index b16c1e5a4f..8556ca9751 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -31,7 +31,7 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.0", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "jose": "^1.27.1", "jwt-decode": "2.2.0", "knex": "^0.21.1", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index 2e049b78df..6a2f533c5c 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -27,7 +27,7 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.0", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "morgan": "^1.10.0", "winston": "^3.2.1", "yn": "^4.0.0" diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 2b2577fa73..8a975e14c8 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -29,7 +29,7 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.0", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "lodash": "^4.17.15", "morgan": "^1.10.0", "winston": "^3.2.1", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 597d57a170..0a05055d9a 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -35,7 +35,7 @@ "fs-extra": "^9.0.0", "git-url-parse": "^11.1.2", "globby": "^11.0.0", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "morgan": "^1.10.0", "nodegit": "0.26.5", "uuid": "^8.2.0", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index 04669b5c8b..c2ca7c9f9a 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -28,7 +28,7 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.0", - "helmet": "^3.22.0", + "helmet": "^4.0.0", "morgan": "^1.10.0", "winston": "^3.2.1", "yn": "^4.0.0" diff --git a/yarn.lock b/yarn.lock index dd71017b47..92cab9c623 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6338,11 +6338,6 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -bowser@2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" - integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== - bowser@^1.7.3: version "1.9.4" resolved "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" @@ -6783,11 +6778,6 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== -camelize@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" - integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= - can-use-dom@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" @@ -7461,11 +7451,6 @@ content-disposition@0.5.3: dependencies: safe-buffer "5.1.2" -content-security-policy-builder@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb" - integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ== - content-type@~1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" @@ -8157,11 +8142,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -dasherize@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308" - integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg= - dashify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" @@ -8406,16 +8386,16 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + deprecated-decorator@^0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" @@ -8728,11 +8708,6 @@ domutils@^2.0.0: domelementtype "^2.0.1" domhandler "^3.0.0" -dont-sniff-mimetype@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2" - integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug== - dot-case@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" @@ -9536,11 +9511,6 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect-ct@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62" - integrity sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g== - expect@^26.0.1: version "26.0.1" resolved "https://registry.npmjs.org/expect/-/expect-26.0.1.tgz#18697b9611a7e2725e20ba3ceadda49bc9865421" @@ -9781,11 +9751,6 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -feature-policy@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069" - integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ== - fecha@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" @@ -10148,11 +10113,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -frameguard@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22" - integrity sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g== - fresh@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -11007,50 +10967,16 @@ headers-utils@^1.1.9, headers-utils@^1.2.0: resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== -helmet-crossdomain@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e" - integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA== - -helmet-csp@2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz#685dde1747bc16c5e28ad9d91e229a69f0a85e84" - integrity sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w== - dependencies: - bowser "2.9.0" - camelize "1.0.0" - content-security-policy-builder "2.1.0" - dasherize "2.0.0" - -helmet@^3.22.0: - version "3.23.2" - resolved "https://registry.npmjs.org/helmet/-/helmet-3.23.2.tgz#390bb6f3f5e593f90f441bdd91000912c543a898" - integrity sha512-pe0UiHw3aHbP8Lon9McCq4AN2XLUMSbhwxJnUY6U2t8wTda7F1SsYg0/pBa1BPugaRqAtx9e1/FyF6E9PsUU5A== - dependencies: - depd "2.0.0" - dont-sniff-mimetype "1.1.0" - expect-ct "0.2.0" - feature-policy "0.3.0" - frameguard "3.1.0" - helmet-crossdomain "0.4.0" - helmet-csp "2.10.0" - hide-powered-by "1.1.0" - hpkp "2.0.0" - hsts "2.2.0" - nocache "2.1.0" - referrer-policy "1.2.0" - x-xss-protection "1.3.0" +helmet@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/helmet/-/helmet-4.0.0.tgz#34c187894ed001834f997c688f2b2df19846b193" + integrity sha512-HyoRKKHhWhO6+EBfgRLkuZR4/+NXc1nJB7x0bWwW89i9eoPciK0qUqyZNOA/zowpgrW9C4+J5toqMkZrpBOlkg== hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hide-powered-by@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a" - integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg== - highlight.js@~9.13.0: version "9.13.1" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" @@ -11111,11 +11037,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hpkp@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672" - integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI= - hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" @@ -11126,13 +11047,6 @@ hsla-regex@^1.0.0: resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -hsts@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964" - integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ== - dependencies: - depd "2.0.0" - html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" @@ -14451,11 +14365,6 @@ no-case@^3.0.3: lower-case "^2.0.1" tslib "^1.10.0" -nocache@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" - integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== - node-dir@^0.1.10: version "0.1.17" resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -17438,11 +17347,6 @@ redux@^4.0.4: loose-envify "^1.4.0" symbol-observable "^1.2.0" -referrer-policy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e" - integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA== - refractor@^2.4.1: version "2.10.1" resolved "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz#166c32f114ed16fd96190ad21d5193d3afc7d34e" @@ -20996,11 +20900,6 @@ x-is-string@^0.1.0: resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= -x-xss-protection@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz#3e3a8dd638da80421b0e9fff11a2dbe168f6d52c" - integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" From cd6febaf2dfdf2d219b4112b2ef5d97e31eb7da4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 11:34:17 +0200 Subject: [PATCH 09/15] cli: update e2e-test to include dist versions of backend packages --- packages/cli/e2e-test/cli-e2e-test.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index e9635de6bb..c90433db1d 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -73,6 +73,8 @@ async function buildDistWorkspace(workspaceName, rootDir) { '@backstage/core', '@backstage/dev-utils', '@backstage/test-utils', + // We don't use the backend itself, but want all of its dependencies + 'example-backend', ]); print('Pinning yarn version in workspace'); @@ -180,13 +182,15 @@ async function overrideModuleResolutions(appDir, workspaceDir) { pkgJson.resolutions = pkgJson.resolutions || {}; pkgJson.dependencies = pkgJson.dependencies || {}; - const packageNames = await fs.readdir(resolvePath(workspaceDir, 'packages')); - for (const name of packageNames) { - const pkgPath = joinPath('..', 'workspace', 'packages', name); + for (const dir of ['packages', 'plugins']) { + const packageNames = await fs.readdir(resolvePath(workspaceDir, dir)); + for (const name of packageNames) { + const pkgPath = joinPath('..', 'workspace', dir, name); - pkgJson.dependencies[`@backstage/${name}`] = `file:${pkgPath}`; - pkgJson.resolutions[`@backstage/${name}`] = `file:${pkgPath}`; - delete pkgJson.devDependencies[`@backstage/${name}`]; + pkgJson.dependencies[`@backstage/${name}`] = `file:${pkgPath}`; + pkgJson.resolutions[`@backstage/${name}`] = `file:${pkgPath}`; + delete pkgJson.devDependencies[`@backstage/${name}`]; + } } fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 }); } From 7db913e36b5a7f84a2b96d71622f48d01fd76220 Mon Sep 17 00:00:00 2001 From: David Tuite Date: Wed, 5 Aug 2020 13:43:06 +0100 Subject: [PATCH 10/15] Add api-catalog.yaml file (#1822) Also added ARD008 to explain the decision. This is linked from `mkdocs.yaml` and `docs/README.md`. Co-authored-by: David Tuite --- catalog-info.yaml | 12 ++++++++++ docs/README.md | 1 + .../adr008-default-catalog-file-name.md | 22 +++++++++++++++++++ mkdocs.yml | 1 + 4 files changed, 36 insertions(+) create mode 100644 catalog-info.yaml create mode 100644 docs/architecture-decisions/adr008-default-catalog-file-name.md diff --git a/catalog-info.yaml b/catalog-info.yaml new file mode 100644 index 0000000000..db16aabd51 --- /dev/null +++ b/catalog-info.yaml @@ -0,0 +1,12 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage + description: | + Backstage is an open-source developer portal that puts the developer experience first. + annotations: + github.com/project-slug: 'spotify/backstage' +spec: + type: library + owner: Spotify + lifecycle: experimental diff --git a/docs/README.md b/docs/README.md index b6ff4fbd6d..9c25505d10 100644 --- a/docs/README.md +++ b/docs/README.md @@ -95,6 +95,7 @@ better yet, a pull request. - [ADR005 - Catalog Core Entities](architecture-decisions/adr005-catalog-core-entities.md) - [ADR006 - Avoid React.FC and React.SFC](architecture-decisions/adr006-avoid-react-fc.md) - [ADR007 - Use MSW for Mocking Network Requests](architecture-decisions/adr007-use-msw-to-mock-service-requests.md) + - [ADR008 - Default Catalog File Name](architecture-decisions/adr008-default-catalog-file-name.md) - [Contribute](../CONTRIBUTING.md) - [Support](overview/support.md) - [FAQ](FAQ.md) diff --git a/docs/architecture-decisions/adr008-default-catalog-file-name.md b/docs/architecture-decisions/adr008-default-catalog-file-name.md new file mode 100644 index 0000000000..23910f634f --- /dev/null +++ b/docs/architecture-decisions/adr008-default-catalog-file-name.md @@ -0,0 +1,22 @@ +# ADR008: Default Catalog File Name + +## Background + +While the spec for the catalog file format is well described in +[ADR002](./adr002-default-catalog-file-format.md), guidance was note provided as +to the name of the catalog file. + +Following discussion in +[Issue 1822](https://github.com/spotify/backstage/pull/1822#pullrequestreview-461253670), +a decision was made. + +## Name + +The catalog file should be named + +```shell +catalog-info.yaml +``` + +This name is a default, **not a requirement**. The catalog file will work with +Backstage irregardless of its name. diff --git a/mkdocs.yml b/mkdocs.yml index 7d5d58b64a..43e05580d1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -92,6 +92,7 @@ nav: - ADR005 - Catalog Core Entities: 'architecture-decisions/adr005-catalog-core-entities.md' - ADR006 - Avoid React.FC and React.SFC: 'architecture-decisions/adr006-avoid-react-fc.md' - ADR007 - Use MSW for Network Request Mocking: 'architecture-decisions/adr007-use-msw-to-mock-service-requests.md' + - ADR008 - Default Catalog File Name: 'architecture-decisions/adr008-default-catalog-file-name.md' - Contribute: '../CONTRIBUTING.md' - Support: 'overview/support.md' - FAQ: FAQ.md From 5eba6dafa98477d70189f753317edfde307b3d7d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 18:08:48 +0200 Subject: [PATCH 11/15] cli: fix e2e package references --- packages/cli/e2e-test/cli-e2e-test.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index c90433db1d..8f518762cd 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -184,12 +184,15 @@ async function overrideModuleResolutions(appDir, workspaceDir) { for (const dir of ['packages', 'plugins']) { const packageNames = await fs.readdir(resolvePath(workspaceDir, dir)); - for (const name of packageNames) { - const pkgPath = joinPath('..', 'workspace', dir, name); + for (const pkgDir of packageNames) { + const pkgPath = joinPath('..', 'workspace', dir, pkgDir); + const { name } = await fs.readJson( + resolvePath(workspaceDir, dir, pkgDir, 'package.json'), + ); - pkgJson.dependencies[`@backstage/${name}`] = `file:${pkgPath}`; - pkgJson.resolutions[`@backstage/${name}`] = `file:${pkgPath}`; - delete pkgJson.devDependencies[`@backstage/${name}`]; + pkgJson.dependencies[name] = `file:${pkgPath}`; + pkgJson.resolutions[name] = `file:${pkgPath}`; + delete pkgJson.devDependencies[name]; } } fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 }); From b390da3033775e00d529450f3c059641894a3485 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 18:37:55 +0200 Subject: [PATCH 12/15] create-app: add empty list of auth providers --- packages/create-app/templates/default-app/app-config.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 0d51cf88ef..04a7913286 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -20,3 +20,6 @@ proxy: techdocs: storageUrl: https://techdocs-mock-sites.storage.googleapis.com + +auth: + providers: {} From 947960cb6c5d521a7286706d7591b8fb3cec9841 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 19:19:01 +0200 Subject: [PATCH 13/15] create-app: update tech-docs backend wiring --- .../packages/backend/src/plugins/techdocs.ts | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts index 0d03bfabab..4485ffbc8e 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts @@ -14,9 +14,40 @@ * limitations under the License. */ -import { createRouter } from '@backstage/plugin-techdocs-backend'; +import { + createRouter, + DirectoryPreparer, + Preparers, + Generators, + LocalPublish, + TechdocsGenerator, +} from '@backstage/plugin-techdocs-backend'; import { PluginEnvironment } from '../types'; +import Docker from 'dockerode'; -export default async function createPlugin({ logger }: PluginEnvironment) { - return await createRouter({ logger }); +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { + const generators = new Generators(); + const techdocsGenerator = new TechdocsGenerator(); + generators.register('techdocs', techdocsGenerator); + + const directoryPreparer = new DirectoryPreparer(); + const preparers = new Preparers(); + + preparers.register('dir', directoryPreparer); + + const publisher = new LocalPublish(); + + const dockerClient = new Docker(); + + return await createRouter({ + preparers, + generators, + publisher, + dockerClient, + logger, + config, + }); } From 1e634a5e2e3564f0786a766146d4d3b06341cd80 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 19:19:41 +0200 Subject: [PATCH 14/15] create-app: remove copyright headers from backend template --- .../packages/backend/src/index.test.ts | 16 ---------------- .../packages/backend/src/index.ts.hbs | 16 ---------------- .../packages/backend/src/plugins/auth.ts | 16 ---------------- .../packages/backend/src/plugins/catalog.ts | 16 ---------------- .../packages/backend/src/plugins/identity.ts | 16 ---------------- .../packages/backend/src/plugins/proxy.ts | 15 --------------- .../packages/backend/src/plugins/scaffolder.ts | 16 ---------------- .../packages/backend/src/plugins/techdocs.ts | 16 ---------------- .../default-app/packages/backend/src/types.ts | 16 ---------------- .../default-app/plugins/welcome/src/plugin.ts | 15 --------------- 10 files changed, 158 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.test.ts b/packages/create-app/templates/default-app/packages/backend/src/index.test.ts index d18873c1f0..7814b8cadf 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.test.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.test.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { PluginEnvironment } from './types'; describe('test', () => { diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs b/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs index ec050970d7..98f40ba4a4 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts.hbs @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - /* * Hi! * diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts index b24dd6ca6b..61af87cce0 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { createRouter } from '@backstage/plugin-auth-backend'; import { PluginEnvironment } from '../types'; diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts index 41e4226001..9df4570963 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { createRouter, DatabaseEntitiesCatalog, diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/identity.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/identity.ts index 63a326965c..f82090eec9 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/identity.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/identity.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { createRouter } from '@backstage/plugin-identity-backend'; import { PluginEnvironment } from '../types'; diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/proxy.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/proxy.ts index 4964de130e..574d0c17a7 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/proxy.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/proxy.ts @@ -1,18 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ // @ts-ignore import { createRouter } from '@backstage/plugin-proxy-backend'; import { PluginEnvironment } from '../types'; diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts index a9e5f185ec..ffa10cc3c6 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { CookieCutter, createRouter, diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts index 4485ffbc8e..8c5144f50c 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { createRouter, DirectoryPreparer, diff --git a/packages/create-app/templates/default-app/packages/backend/src/types.ts b/packages/create-app/templates/default-app/packages/backend/src/types.ts index f7df3d05c6..570a5fcdb1 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/types.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/types.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import Knex from 'knex'; import { Logger } from 'winston'; import { Config } from '@backstage/config'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts index 3121e982b7..a65fad5348 100644 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts +++ b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts @@ -1,18 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ import { createPlugin } from '@backstage/core'; import WelcomePage from './components/WelcomePage'; From 0dd8fa2828fe7a5b84284ae59e22777e402e3c4a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 5 Aug 2020 16:57:26 +0200 Subject: [PATCH 15/15] v0.1.1-alpha.17 --- lerna.json | 2 +- packages/app/package.json | 38 ++++++++++++------------- packages/backend-common/package.json | 10 +++---- packages/backend/package.json | 28 +++++++++--------- packages/catalog-model/package.json | 6 ++-- packages/cli-common/package.json | 4 +-- packages/cli/package.json | 8 +++--- packages/config-loader/package.json | 4 +-- packages/config/package.json | 2 +- packages/core-api/package.json | 10 +++---- packages/core/package.json | 12 ++++---- packages/create-app/package.json | 10 +++---- packages/dev-utils/package.json | 10 +++---- packages/docgen/package.json | 2 +- packages/storybook/package.json | 4 +-- packages/techdocs-cli/package.json | 4 +-- packages/test-utils-core/package.json | 2 +- packages/test-utils/package.json | 10 +++---- packages/theme/package.json | 4 +-- plugins/auth-backend/package.json | 8 +++--- plugins/catalog-backend/package.json | 8 +++--- plugins/catalog/package.json | 20 ++++++------- plugins/circleci/package.json | 10 +++---- plugins/explore/package.json | 12 ++++---- plugins/github-actions/package.json | 16 +++++------ plugins/gitops-profiles/package.json | 10 +++---- plugins/graphiql/package.json | 12 ++++---- plugins/graphql/package.json | 6 ++-- plugins/identity-backend/package.json | 6 ++-- plugins/lighthouse/package.json | 12 ++++---- plugins/proxy-backend/package.json | 8 +++--- plugins/register-component/package.json | 14 ++++----- plugins/rollbar-backend/package.json | 6 ++-- plugins/rollbar/package.json | 12 ++++---- plugins/scaffolder-backend/package.json | 10 +++---- plugins/scaffolder/package.json | 16 +++++------ plugins/sentry-backend/package.json | 6 ++-- plugins/sentry/package.json | 10 +++---- plugins/tech-radar/package.json | 12 ++++---- plugins/techdocs-backend/package.json | 10 +++---- plugins/techdocs/package.json | 12 ++++---- plugins/welcome/package.json | 10 +++---- 42 files changed, 208 insertions(+), 208 deletions(-) diff --git a/lerna.json b/lerna.json index 1a316638fb..f0ae530062 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": ["packages/*", "plugins/*"], "npmClient": "yarn", "useWorkspaces": true, - "version": "0.1.1-alpha.16" + "version": "0.1.1-alpha.17" } diff --git a/packages/app/package.json b/packages/app/package.json index 006067f28a..cca9b6481f 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,26 +1,26 @@ { "name": "example-app", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/plugin-catalog": "^0.1.1-alpha.16", - "@backstage/plugin-circleci": "^0.1.1-alpha.16", - "@backstage/plugin-explore": "^0.1.1-alpha.16", - "@backstage/plugin-github-actions": "^0.1.1-alpha.16", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.16", - "@backstage/plugin-graphiql": "^0.1.1-alpha.16", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.16", - "@backstage/plugin-register-component": "^0.1.1-alpha.16", - "@backstage/plugin-rollbar": "^0.1.1-alpha.16", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.16", - "@backstage/plugin-sentry": "^0.1.1-alpha.16", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.16", - "@backstage/plugin-techdocs": "^0.1.1-alpha.16", - "@backstage/plugin-welcome": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/plugin-catalog": "^0.1.1-alpha.17", + "@backstage/plugin-circleci": "^0.1.1-alpha.17", + "@backstage/plugin-explore": "^0.1.1-alpha.17", + "@backstage/plugin-github-actions": "^0.1.1-alpha.17", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.17", + "@backstage/plugin-graphiql": "^0.1.1-alpha.17", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.17", + "@backstage/plugin-register-component": "^0.1.1-alpha.17", + "@backstage/plugin-rollbar": "^0.1.1-alpha.17", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.17", + "@backstage/plugin-sentry": "^0.1.1-alpha.17", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.17", + "@backstage/plugin-techdocs": "^0.1.1-alpha.17", + "@backstage/plugin-welcome": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index a66780a241..d7427500aa 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", - "@backstage/config-loader": "^0.1.1-alpha.16", + "@backstage/cli-common": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", + "@backstage/config-loader": "^0.1.1-alpha.17", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", @@ -44,7 +44,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/compression": "^1.7.0", "@types/http-errors": "^1.6.3", "@types/morgan": "^1.9.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index 1de51948d8..a144c4d148 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "dist/index.cjs.js", "types": "src/index.ts", "private": true, @@ -18,18 +18,18 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.16", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.16", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.16", - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.16", - "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.16", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.16", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.16", - "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.16", - "@backstage/plugin-graphql-backend": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.17", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.17", + "@backstage/plugin-graphql-backend": "^0.1.1-alpha.17", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.17", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.17", + "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.17", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.17", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.17", + "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.17", "@octokit/rest": "^18.0.0", "dockerode": "^3.2.0", "express": "^4.17.1", @@ -39,7 +39,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index af351842ce..e6551bb8a9 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/config": "^0.1.1-alpha.17", "@types/json-schema": "^7.0.5", "@types/yup": "^0.28.2", "json-schema": "^0.2.5", @@ -29,7 +29,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "@types/jest": "^26.0.7", "@types/lodash": "^4.14.151", diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 1d2dc35cd9..b5d13200cf 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-common", "description": "Common functionality used by cli, backend, and create-app", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "main": "src/index.ts", "types": "src/index.ts", @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/jest": "^26.0.7", "@types/node": "^12.0.0" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index f6fdaf8e5d..e70ac2854c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public" @@ -29,9 +29,9 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", - "@backstage/config-loader": "^0.1.1-alpha.16", + "@backstage/cli-common": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", + "@backstage/config-loader": "^0.1.1-alpha.17", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^3.18.5", "@lerna/project": "^3.18.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 4cc52c9cbf..eaf8e628a7 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/config": "^0.1.1-alpha.17", "fs-extra": "^9.0.0", "yaml": "^1.9.2", "yup": "^0.29.1" diff --git a/packages/config/package.json b/packages/config/package.json index f264304e85..501ffaffad 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 7e14eaec37..45884a0015 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -29,8 +29,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/config": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -41,8 +41,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/test-utils-core": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/test-utils-core": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index 8815c1379b..1ef8300eb8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.16", - "@backstage/core-api": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/config": "^0.1.1-alpha.17", + "@backstage/core-api": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 9cd9ee7920..0b02c28ef2 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "Create app package for Backstage", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public" @@ -25,9 +25,9 @@ "lint": "backstage-cli lint" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.16", - "commander": "^4.1.1", + "@backstage/cli-common": "^0.1.1-alpha.17", "chalk": "^4.0.0", + "commander": "^4.1.1", "fs-extra": "^9.0.0", "handlebars": "^4.7.3", "inquirer": "^7.0.4", @@ -36,10 +36,10 @@ }, "devDependencies": { "@types/fs-extra": "^9.0.1", - "@types/react-dev-utils": "^9.0.4", "@types/inquirer": "^6.5.0", - "@types/recursive-readdir": "^2.2.0", "@types/ora": "^3.2.0", + "@types/react-dev-utils": "^9.0.4", + "@types/recursive-readdir": "^2.2.0", "ts-node": "^8.6.2" }, "files": [ diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 07f74acd92..cd563920cf 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 97d057a4b7..b4d3b85213 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,7 +1,7 @@ { "name": "docgen", "description": "Tool for generating API Documentation for itself", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": true, "homepage": "https://backstage.io", "repository": { diff --git a/packages/storybook/package.json b/packages/storybook/package.json index dafd592bb0..cb15512e6c 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.16" + "@backstage/theme": "^0.1.1-alpha.17" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index a097284f82..93f3a115e2 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "CLI for running TechDocs locally.", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public" @@ -44,7 +44,7 @@ "ext": "ts" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "commander": "^5.1.0", "fs-extra": "^9.0.1", "http-proxy": "^1.18.1", diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 1824a56916..55224b16ed 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils-core", "description": "Utilities to test Backstage core", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 95845b6159..5a4c96d81d 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/core-api": "^0.1.1-alpha.16", - "@backstage/test-utils-core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/core-api": "^0.1.1-alpha.17", + "@backstage/test-utils-core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/theme/package.json b/packages/theme/package.json index 144712cfe6..44b82fa1e4 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16" + "@backstage/cli": "^0.1.1-alpha.17" }, "files": [ "dist" diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 5e2048fc89..30ed41e0ec 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 7b62e5579e..5d0d957aca 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/catalog-model": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/catalog-model": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -39,7 +39,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index d18aa339ca..d0d9dffa23 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,12 +21,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/plugin-github-actions": "^0.1.1-alpha.16", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.16", - "@backstage/plugin-sentry": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/plugin-github-actions": "^0.1.1-alpha.17", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.17", + "@backstage/plugin-sentry": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -39,9 +39,9 @@ "swr": "^0.2.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 4902810f4b..11c75f668d 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 3036425b1b..431e456796 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,9 +32,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 0466af977a..b9c6523da6 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-actions", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/core-api": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", - "@backstage/plugin-catalog": "^0.1.1-alpha.16", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/core-api": "^0.1.1-alpha.17", + "@backstage/plugin-catalog": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -39,8 +39,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 0b838af358..b7f541953a 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index d4b6bfc7c4..08984d6f11 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -43,9 +43,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphql/package.json b/plugins/graphql/package.json index 2cb0d273c8..20f8e40a53 100644 --- a/plugins/graphql/package.json +++ b/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-graphql-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "apollo-server": "^2.16.0", "apollo-server-express": "^2.16.0", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.19.5", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index 6a2f533c5c..851391daad 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "compression": "^1.7.4", "cors": "^2.8.5", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 5c8e06834c..b2985b7547 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,9 +33,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index f65e3a7298..5d0b01952a 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -19,8 +19,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -34,7 +34,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index b1bf461764..8a33caa0c6 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/plugin-catalog": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/plugin-catalog": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 8a975e14c8..dd622a8e22 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "axios": "^0.19.2", "camelcase-keys": "^6.2.2", @@ -36,7 +36,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/supertest": "^2.0.8", "jest-fetch-mock": "^3.0.3", "supertest": "^4.0.2" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 3a1b0a94c5..aacd56e3da 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,9 +35,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 0a05055d9a..135480e6dc 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", "@octokit/rest": "^18.0.0", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", @@ -43,7 +43,7 @@ "yaml": "^1.10.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@octokit/types": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 3be38f6ea1..6121a573d8 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/plugin-catalog": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/plugin-catalog": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -41,9 +41,9 @@ "swr": "^0.2.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index c2ca7c9f9a..4c41b1edb7 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", "@types/express": "^4.17.6", "axios": "^0.19.2", "compression": "^1.7.4", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 5c40d2ff24..37dd61cd72 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 3f4e63df69..3099a4eb35 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/test-utils-core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/test-utils-core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index e5c97f9d0d..46463b5a4d 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.16", - "@backstage/catalog-model": "^0.1.1-alpha.16", - "@backstage/config": "^0.1.1-alpha.16", + "@backstage/backend-common": "^0.1.1-alpha.17", + "@backstage/catalog-model": "^0.1.1-alpha.17", + "@backstage/config": "^0.1.1-alpha.17", "@types/dockerode": "^2.5.34", "@types/express": "^4.17.6", "dockerode": "^3.2.1", @@ -35,7 +35,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", "@types/node-fetch": "^2.5.7", "supertest": "^4.0.2" }, diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index cdfbf394f9..accb2e1503 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/test-utils": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/test-utils": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "sanitize-html": "^1.27.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 545954bc75..ed45aaad0e 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.16", + "version": "0.1.1-alpha.17", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.16", - "@backstage/theme": "^0.1.1-alpha.16", + "@backstage/core": "^0.1.1-alpha.17", + "@backstage/theme": "^0.1.1-alpha.17", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.16", - "@backstage/dev-utils": "^0.1.1-alpha.16", + "@backstage/cli": "^0.1.1-alpha.17", + "@backstage/dev-utils": "^0.1.1-alpha.17", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7",