From 9d1d1138eb011cb5a60713fe7112da7758023b64 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 10 Jan 2021 18:05:13 +0100 Subject: [PATCH 1/3] create-app: move version marker dependencies to peer deps --- .changeset/tasty-dolls-dance.md | 5 +++++ packages/create-app/package.json | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 .changeset/tasty-dolls-dance.md diff --git a/.changeset/tasty-dolls-dance.md b/.changeset/tasty-dolls-dance.md new file mode 100644 index 0000000000..3627e918b4 --- /dev/null +++ b/.changeset/tasty-dolls-dance.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Ensured that versions bumps of packages used in the app template trigger a release of this package when needed. diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 70ce66de11..3e7d5972cf 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -37,6 +37,13 @@ "recursive-readdir": "^2.2.2" }, "devDependencies": { + "@types/fs-extra": "^9.0.1", + "@types/inquirer": "^7.3.1", + "@types/react-dev-utils": "^9.0.4", + "@types/recursive-readdir": "^2.2.0", + "ts-node": "^8.6.2" + }, + "peerDependencies": { "@backstage/backend-common": "^0.4.2", "@backstage/catalog-model": "^0.6.0", "@backstage/cli": "^0.4.5", @@ -62,12 +69,7 @@ "@backstage/plugin-techdocs-backend": "^0.5.2", "@backstage/plugin-user-settings": "^0.2.3", "@backstage/test-utils": "^0.1.6", - "@backstage/theme": "^0.2.2", - "@types/fs-extra": "^9.0.1", - "@types/inquirer": "^7.3.1", - "@types/react-dev-utils": "^9.0.4", - "@types/recursive-readdir": "^2.2.0", - "ts-node": "^8.6.2" + "@backstage/theme": "^0.2.2" }, "nodemonConfig": { "watch": "./src", From a7b1856c8bf8519a3824c97186d3449598e8b3fc Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 20 Jan 2021 20:36:41 +0100 Subject: [PATCH 2/3] e2e-test: make `yarn start` useful --- packages/e2e-test/package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index ea1dcc8ea2..4327d7161c 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -15,7 +15,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "scripts": { - "start": "node .", + "start": "nodemon --", "lint": "backstage-cli lint", "test": "backstage-cli test", "test:e2e": "yarn start" @@ -36,5 +36,10 @@ "tree-kill": "^1.2.2", "ts-node": "^8.6.2", "zombie": "^6.1.4" + }, + "nodemonConfig": { + "watch": "./src", + "exec": "bin/e2e-test", + "ext": "ts" } } From 63047c968daeca509095b3f020fe06197da24f54 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 20 Jan 2021 20:37:35 +0100 Subject: [PATCH 3/3] e2e-test: include create-app deps in workspace --- packages/e2e-test/src/commands/run.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/e2e-test/src/commands/run.ts b/packages/e2e-test/src/commands/run.ts index be00b99e54..2ddcc333d2 100644 --- a/packages/e2e-test/src/commands/run.ts +++ b/packages/e2e-test/src/commands/run.ts @@ -80,10 +80,22 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { // We grab the needed dependencies from the create app template const createAppDeps = new Set(); + + function appendDeps(pkg: any) { + Array() + .concat( + Object.keys(pkg.dependencies ?? {}), + Object.keys(pkg.devDependencies ?? {}), + Object.keys(pkg.peerDependencies ?? {}), + ) + .filter(name => name.startsWith('@backstage/')) + .forEach(dep => createAppDeps.add(dep)); + } + for (const pkgJsonPath of templatePackagePaths) { const path = paths.resolveOwnRoot(pkgJsonPath); const pkgTemplate = await fs.readFile(path, 'utf8'); - const { dependencies = {}, devDependencies = {} } = JSON.parse( + const pkg = JSON.parse( handlebars.compile(pkgTemplate)( { privatePackage: true, @@ -102,13 +114,12 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { }, ), ); - - Array() - .concat(Object.keys(dependencies), Object.keys(devDependencies)) - .filter(name => name.startsWith('@backstage/')) - .forEach(dep => createAppDeps.add(dep)); + appendDeps(pkg); } + // eslint-disable-next-line import/no-extraneous-dependencies + appendDeps(require('@backstage/create-app/package.json')); + print(`Preparing workspace`); await runPlain([ 'yarn',