From 34224a0b704469428696cdff754555f60b1b4802 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Feb 2022 16:47:31 +0100 Subject: [PATCH 001/130] scripts/create-release-tag: dispatch release workflows Signed-off-by: Patrik Oldsberg --- .github/workflows/deploy_packages.yml | 2 +- scripts/create-release-tag.js | 76 ++++++++++++++++++++------- 2 files changed, 57 insertions(+), 21 deletions(-) diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 459f48336e..ed02a313fe 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -205,7 +205,7 @@ jobs: # Grabs the version in the root package.json and creates a tag on GitHub - name: Create a release tag id: create_tag - run: node scripts/create-release-tag.js + run: node scripts/create-release-tag.js --dispatch-workflows env: GITHUB_TOKEN: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} diff --git a/scripts/create-release-tag.js b/scripts/create-release-tag.js index 042b00866a..f898705ce5 100755 --- a/scripts/create-release-tag.js +++ b/scripts/create-release-tag.js @@ -25,31 +25,17 @@ const baseOptions = { repo: 'backstage', }; -async function main() { - const { GITHUB_SHA, GITHUB_TOKEN } = process.env; - if (!GITHUB_SHA) { - throw new Error('GITHUB_SHA is not set'); - } - if (!GITHUB_TOKEN) { - throw new Error('GITHUB_TOKEN is not set'); - } - - const octokit = new Octokit({ auth: GITHUB_TOKEN }); - - const rootPath = path.resolve(__dirname, '..'); - const { version: currentVersion } = await fs.readJson( - path.join(rootPath, 'package.json'), - ); - - const tagName = `v${currentVersion}`; - - console.log(`Creating release tag ${tagName}`); +async function getCurrentReleaseTag() { + const rootPath = path.resolve(__dirname, '../package.json'); + return fs.readJson(rootPath).then(_ => _.version); +} +async function createGitTag(octokit, commitSha, tagName) { const annotatedTag = await octokit.git.createTag({ ...baseOptions, tag: tagName, message: tagName, - object: GITHUB_SHA, + object: commitSha, type: 'commit', }); @@ -69,8 +55,58 @@ async function main() { console.error(`Tag creation for ${tagName} failed`); throw ex; } +} + +async function dispatchReleaseWorkflows(octokit, releaseVersion) { + console.log('Dispatching release manifest sync'); + await octokit.actions.createWorkflowDispatch({ + owner: 'backstage', + repo: 'backstage', + workflow_id: 'sync_release-manifest.yml', + ref: 'master', + inputs: { + version: releaseVersion, + }, + }); + + console.log('Dispatching upgrade helper sync'); + await octokit.actions.createWorkflowDispatch({ + owner: 'backstage', + repo: 'upgrade-helper-diff', + workflow_id: 'release.yml', + ref: 'master', + inputs: { + // TODO(Rugvip): Switch this over to use the release version once it's ready + version: require('../packages/create-app/package.json').version, + }, + }); +} + +async function main() { + const shouldDispatch = process.argv.includes('--dispatch-workflows'); + + if (!process.env.GITHUB_SHA) { + throw new Error('GITHUB_SHA is not set'); + } + if (!process.env.GITHUB_TOKEN) { + throw new Error('GITHUB_TOKEN is not set'); + } + + const commitSha = process.env.GITHUB_SHA; + const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN }); + + const releaseVersion = await getCurrentReleaseTag(); + const tagName = `v${releaseVersion}`; + + console.log(`Creating release tag ${tagName} at ${commitSha}`); + await createGitTag(octokit, commitSha, tagName); console.log(`::set-output name=tag_name::${tagName}`); + + if (shouldDispatch) { + console.log(`Dispatching release workflows for ${tagName}`); + await dispatchReleaseWorkflows(octokit, releaseVersion); + } } main().catch(error => { From 08fcda13ef74646c35db8ca4c7c9ce7868df3a1c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 3 Feb 2022 20:38:27 +0100 Subject: [PATCH 002/130] auth-backend: make it possible to tweak the cookie configuration logic Signed-off-by: Patrik Oldsberg --- .changeset/breezy-windows-jump.md | 5 +++ .changeset/metal-lions-fix.md | 5 +++ plugins/auth-backend/api-report.md | 15 ++++++- .../src/lib/oauth/OAuthAdapter.test.ts | 44 +------------------ .../src/lib/oauth/OAuthAdapter.ts | 22 +++++----- .../src/lib/oauth/helpers.test.ts | 41 +++++++++++------ plugins/auth-backend/src/lib/oauth/helpers.ts | 16 +++---- plugins/auth-backend/src/providers/index.ts | 1 + plugins/auth-backend/src/providers/types.ts | 18 ++++++++ plugins/auth-backend/src/service/router.ts | 10 ++++- 10 files changed, 101 insertions(+), 76 deletions(-) create mode 100644 .changeset/breezy-windows-jump.md create mode 100644 .changeset/metal-lions-fix.md diff --git a/.changeset/breezy-windows-jump.md b/.changeset/breezy-windows-jump.md new file mode 100644 index 0000000000..0d839614ff --- /dev/null +++ b/.changeset/breezy-windows-jump.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': minor +--- + +The `callbackUrl` option of `OAuthAdapter` is now required. diff --git a/.changeset/metal-lions-fix.md b/.changeset/metal-lions-fix.md new file mode 100644 index 0000000000..5d35d3d0d3 --- /dev/null +++ b/.changeset/metal-lions-fix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Added a new `cookieConfigurer` option to `createRouter` that makes it possible to override the default logic for configuring OAuth provider cookies. diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index 88b75d99b0..ddbef77766 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -214,6 +214,17 @@ export class CatalogIdentityClient { resolveCatalogMembership(query: MemberClaimQuery): Promise; } +// @public +export type CookieConfigurer = (ctx: { + providerId: string; + baseUrl: string; + callbackUrl: string; +}) => { + domain: string; + path: string; + secure: boolean; +}; + // Warning: (ae-missing-release-tag) "createAtlassianProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -665,6 +676,8 @@ export interface RouterOptions { // (undocumented) config: Config; // (undocumented) + cookieConfigurer?: CookieConfigurer; + // (undocumented) database: PluginDatabaseManager; // (undocumented) discovery: PluginEndpointDiscovery; @@ -736,5 +749,5 @@ export type WebMessageResponse = // src/identity/types.d.ts:31:9 - (ae-forgotten-export) The symbol "AnyJWK" needs to be exported by the entry point index.d.ts // src/providers/aws-alb/provider.d.ts:77:5 - (ae-forgotten-export) The symbol "AwsAlbResult" needs to be exported by the entry point index.d.ts // src/providers/github/provider.d.ts:97:5 - (ae-forgotten-export) The symbol "StateEncoder" needs to be exported by the entry point index.d.ts -// src/providers/types.d.ts:98:5 - (ae-forgotten-export) The symbol "AuthProviderConfig" needs to be exported by the entry point index.d.ts +// src/providers/types.d.ts:118:5 - (ae-forgotten-export) The symbol "AuthProviderConfig" needs to be exported by the entry point index.d.ts ``` diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts index d1057b19a8..c1130b4270 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.test.ts @@ -69,13 +69,14 @@ describe('OAuthAdapter', () => { secure: false, disableRefresh: true, appOrigin: 'http://localhost:3000', - cookieDomain: 'localhost', + cookieDomain: 'example.com', cookiePath: '/auth/test-provider', tokenIssuer: { issueToken: async () => 'my-id-token', listPublicKeys: async () => ({ keys: [] }), }, isOriginAllowed: () => false, + callbackUrl: 'http://example.com:7007/auth/test-provider/frame/handler', }; it('sets the correct headers in start', async () => { @@ -444,47 +445,6 @@ describe('OAuthAdapter', () => { }); }); - it('sets the correct cookie configuration using the base url', async () => { - const config = { - baseUrl: 'http://domain.org/auth', - appUrl: 'http://domain.org', - isOriginAllowed: () => false, - }; - - const oauthProvider = OAuthAdapter.fromConfig( - config, - providerInstance, - oAuthProviderOptions, - ); - - const mockRequest = { - query: { - scope: 'user', - env: 'development', - }, - } as unknown as express.Request; - - const mockResponse = { - cookie: jest.fn().mockReturnThis(), - end: jest.fn().mockReturnThis(), - setHeader: jest.fn().mockReturnThis(), - statusCode: jest.fn().mockReturnThis(), - } as unknown as express.Response; - - await oauthProvider.start(mockRequest, mockResponse); - - expect(mockResponse.cookie).toBeCalledTimes(1); - expect(mockResponse.cookie).toBeCalledWith( - `${oAuthProviderOptions.providerId}-nonce`, - expect.any(String), - expect.objectContaining({ - domain: 'domain.org', - path: '/auth/test-provider/handler', - secure: false, - }), - ); - }); - it('sets the correct cookie configuration using a callbackUrl', async () => { const config = { baseUrl: 'http://domain.org/auth', diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index 2e2d26db61..82a43c7c64 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -35,7 +35,7 @@ import { NotAllowedError, } from '@backstage/errors'; import { TokenIssuer } from '../../identity/types'; -import { getCookieConfig, readState, verifyNonce } from './helpers'; +import { defaultCookieConfigurer, readState, verifyNonce } from './helpers'; import { postMessageResponse, ensuresXRequestedWith } from '../flow'; import { OAuthHandlers, @@ -58,7 +58,7 @@ export type Options = { appOrigin: string; tokenIssuer: TokenIssuer; isOriginAllowed: (origin: string) => boolean; - callbackUrl?: string; + callbackUrl: string; }; export class OAuthAdapter implements AuthProviderRouteHandlers { static fromConfig( @@ -74,18 +74,20 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { >, ): OAuthAdapter { const { origin: appOrigin } = new URL(config.appUrl); - const authUrl = new URL(options.callbackUrl ?? config.baseUrl); - const { cookieDomain, cookiePath, secure } = getCookieConfig( - authUrl, - options.providerId, - ); + + const cookieConfigurer = config.cookieConfigurer ?? defaultCookieConfigurer; + const cookieConfig = cookieConfigurer({ + providerId: options.providerId, + baseUrl: config.baseUrl, + callbackUrl: options.callbackUrl, + }); return new OAuthAdapter(handlers, { ...options, appOrigin, - cookieDomain, - cookiePath, - secure, + cookieDomain: cookieConfig.domain, + cookiePath: cookieConfig.path, + secure: cookieConfig.secure, isOriginAllowed: config.isOriginAllowed, }); } diff --git a/plugins/auth-backend/src/lib/oauth/helpers.test.ts b/plugins/auth-backend/src/lib/oauth/helpers.test.ts index a98b684141..2f79cdef98 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.test.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.test.ts @@ -19,7 +19,7 @@ import { verifyNonce, encodeState, readState, - getCookieConfig, + defaultCookieConfigurer, } from './helpers'; describe('OAuthProvider Utils', () => { @@ -110,30 +110,43 @@ describe('OAuthProvider Utils', () => { }); }); - describe('getCookieConfig', () => { + describe('defaultCookieConfigurer', () => { it('should set the correct domain and path for a base url', () => { - const mockAuthUrl = new URL('http://domain.org/auth'); - expect(getCookieConfig(mockAuthUrl, 'test-provider')).toMatchObject({ - cookieDomain: 'domain.org', - cookiePath: '/auth/test-provider', + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'http://domain.org/auth', + }), + ).toMatchObject({ + domain: 'domain.org', + path: '/auth/test-provider', secure: false, }); }); it('should set the correct domain and path for a url containing a frame handler', () => { - const mockAuthUrl = new URL( - 'http://domain.org/auth/test-provider/handler/frame', - ); - expect(getCookieConfig(mockAuthUrl, 'test-provider')).toMatchObject({ - cookieDomain: 'domain.org', - cookiePath: '/auth/test-provider', + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'http://domain.org/auth/test-provider/handler/frame', + }), + ).toMatchObject({ + domain: 'domain.org', + path: '/auth/test-provider', secure: false, }); }); it('should set the secure flag if url is using https', () => { - const mockAuthUrl = new URL('https://domain.org/auth'); - expect(getCookieConfig(mockAuthUrl, 'test-provider')).toMatchObject({ + expect( + defaultCookieConfigurer({ + baseUrl: '', + providerId: 'test-provider', + callbackUrl: 'https://domain.org/auth', + }), + ).toMatchObject({ secure: true, }); }); diff --git a/plugins/auth-backend/src/lib/oauth/helpers.ts b/plugins/auth-backend/src/lib/oauth/helpers.ts index 878083e679..eec25696a3 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.ts @@ -17,6 +17,7 @@ import express from 'express'; import { OAuthState } from './types'; import pickBy from 'lodash/pickBy'; +import { CookieConfigurer } from '../../providers/types'; export const readState = (stateString: string): OAuthState => { const state = Object.fromEntries( @@ -58,20 +59,19 @@ export const verifyNonce = (req: express.Request, providerId: string) => { } }; -export const getCookieConfig = (authUrl: URL, providerId: string) => { - const { hostname: cookieDomain, pathname, protocol } = authUrl; +export const defaultCookieConfigurer: CookieConfigurer = ({ + callbackUrl, + providerId, +}) => { + const { hostname: domain, pathname, protocol } = new URL(callbackUrl); const secure = protocol === 'https:'; // If the provider supports callbackUrls, the pathname will // contain the complete path to the frame handler so we need // to slice off the trailing part of the path. - const cookiePath = pathname.endsWith(`${providerId}/handler/frame`) + const path = pathname.endsWith(`${providerId}/handler/frame`) ? pathname.slice(0, -'/handler/frame'.length) : `${pathname}/${providerId}`; - return { - cookieDomain, - cookiePath, - secure, - }; + return { domain, path, secure }; }; diff --git a/plugins/auth-backend/src/providers/index.ts b/plugins/auth-backend/src/providers/index.ts index 7779b67e04..1207254e11 100644 --- a/plugins/auth-backend/src/providers/index.ts +++ b/plugins/auth-backend/src/providers/index.ts @@ -43,6 +43,7 @@ export type { AuthHandlerResult, SignInResolver, SignInInfo, + CookieConfigurer, } from './types'; // These types are needed for a postMessage from the login pop-up diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index b02e8d74b8..f3a1a95919 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -38,6 +38,19 @@ export type AuthResolverContext = { logger: Logger; }; +/** + * The callback used to resolve the cookie configuration for auth providers that use cookies. + * @public + */ +export type CookieConfigurer = (ctx: { + /** ID of the auth provider that this configuration applies to */ + providerId: string; + /** The externally reachable base URL of the auth-backend plugin */ + baseUrl: string; + /** The configured callback URL of the auth provider */ + callbackUrl: string; +}) => { domain: string; path: string; secure: boolean }; + export type AuthProviderConfig = { /** * The protocol://domain[:port] where the app is hosted. This is used to construct the @@ -54,6 +67,11 @@ export type AuthProviderConfig = { * A function that is called to check whether an origin is allowed to receive the authentication result. */ isOriginAllowed: (origin: string) => boolean; + + /** + * The function used to resolve cookie configuration based on the auth provider options. + */ + cookieConfigurer?: CookieConfigurer; }; export type RedirectInfo = { diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index bdb68929b1..101deb9350 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -34,6 +34,7 @@ import { createOidcRouter, TokenFactory, KeyStores } from '../identity'; import session from 'express-session'; import passport from 'passport'; import { Minimatch } from 'minimatch'; +import { CookieConfigurer } from '../providers/types'; type ProviderFactories = { [s: string]: AuthProviderFactory }; @@ -44,6 +45,7 @@ export interface RouterOptions { discovery: PluginEndpointDiscovery; tokenManager: TokenManager; providerFactories?: ProviderFactories; + cookieConfigurer?: CookieConfigurer; } export async function createRouter( @@ -56,6 +58,7 @@ export async function createRouter( database, tokenManager, providerFactories, + cookieConfigurer, } = options; const router = Router(); @@ -111,7 +114,12 @@ export async function createRouter( try { const provider = providerFactory({ providerId, - globalConfig: { baseUrl: authUrl, appUrl, isOriginAllowed }, + globalConfig: { + baseUrl: authUrl, + appUrl, + isOriginAllowed, + cookieConfigurer, + }, config: providersConfig.getConfig(providerId), logger, tokenManager, From 5d5c9bfb4c8b0f4002c07ffd0e28baaa814f2fed Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Feb 2022 13:11:10 +0100 Subject: [PATCH 003/130] auth-backend: removed cookieConfigurer from router options Signed-off-by: Patrik Oldsberg --- .changeset/metal-lions-fix.md | 2 +- plugins/auth-backend/api-report.md | 2 -- plugins/auth-backend/src/service/router.ts | 4 ---- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.changeset/metal-lions-fix.md b/.changeset/metal-lions-fix.md index 5d35d3d0d3..913098bbf7 100644 --- a/.changeset/metal-lions-fix.md +++ b/.changeset/metal-lions-fix.md @@ -2,4 +2,4 @@ '@backstage/plugin-auth-backend': patch --- -Added a new `cookieConfigurer` option to `createRouter` that makes it possible to override the default logic for configuring OAuth provider cookies. +Added a new `cookieConfigurer` option to `AuthProviderConfig` that makes it possible to override the default logic for configuring OAuth provider cookies. diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index ddbef77766..aaacd05815 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -676,8 +676,6 @@ export interface RouterOptions { // (undocumented) config: Config; // (undocumented) - cookieConfigurer?: CookieConfigurer; - // (undocumented) database: PluginDatabaseManager; // (undocumented) discovery: PluginEndpointDiscovery; diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 101deb9350..ec1a52ffc9 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -34,7 +34,6 @@ import { createOidcRouter, TokenFactory, KeyStores } from '../identity'; import session from 'express-session'; import passport from 'passport'; import { Minimatch } from 'minimatch'; -import { CookieConfigurer } from '../providers/types'; type ProviderFactories = { [s: string]: AuthProviderFactory }; @@ -45,7 +44,6 @@ export interface RouterOptions { discovery: PluginEndpointDiscovery; tokenManager: TokenManager; providerFactories?: ProviderFactories; - cookieConfigurer?: CookieConfigurer; } export async function createRouter( @@ -58,7 +56,6 @@ export async function createRouter( database, tokenManager, providerFactories, - cookieConfigurer, } = options; const router = Router(); @@ -118,7 +115,6 @@ export async function createRouter( baseUrl: authUrl, appUrl, isOriginAllowed, - cookieConfigurer, }, config: providersConfig.getConfig(providerId), logger, From b2db40b700a6da3ca812cb6789b72f8b86f48c50 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 01:23:44 +0100 Subject: [PATCH 004/130] cli: add support for specifying target dir in build options Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/builder/config.ts | 18 +++++++++++------- packages/cli/src/lib/builder/types.ts | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 617e354864..65c4d6c740 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -16,7 +16,7 @@ import chalk from 'chalk'; import fs from 'fs-extra'; -import { relative as relativePath } from 'path'; +import { relative as relativePath, resolve as resolvePath } from 'path'; import peerDepsExternal from 'rollup-plugin-peer-deps-external'; import commonjs from '@rollup/plugin-commonjs'; import resolve from '@rollup/plugin-node-resolve'; @@ -37,6 +37,9 @@ export async function makeRollupConfigs( options: BuildOptions, ): Promise { const configs = new Array(); + const targetDir = options.targetDir ?? paths.targetDir; + + const distDir = resolvePath(targetDir, 'dist'); if (options.outputs.has(Output.cjs) || options.outputs.has(Output.esm)) { const output = new Array(); @@ -44,7 +47,7 @@ export async function makeRollupConfigs( if (options.outputs.has(Output.cjs)) { output.push({ - dir: 'dist', + dir: distDir, entryFileNames: 'index.cjs.js', chunkFileNames: 'cjs/[name]-[hash].cjs.js', format: 'commonjs', @@ -53,7 +56,7 @@ export async function makeRollupConfigs( } if (options.outputs.has(Output.esm)) { output.push({ - dir: 'dist', + dir: distDir, entryFileNames: 'index.esm.js', chunkFileNames: 'esm/[name]-[hash].esm.js', format: 'module', @@ -64,12 +67,13 @@ export async function makeRollupConfigs( } configs.push({ - input: 'src/index.ts', + input: resolvePath(targetDir, 'src/index.ts'), output, preserveEntrySignatures: 'strict', external: require('module').builtinModules, plugins: [ peerDepsExternal({ + packageJsonPath: resolvePath(targetDir, 'package.json'), includeDependencies: true, }), resolve({ mainFields }), @@ -109,13 +113,13 @@ export async function makeRollupConfigs( if (options.outputs.has(Output.types) && !options.useApiExtractor) { const typesInput = paths.resolveTargetRoot( 'dist-types', - relativePath(paths.targetRoot, paths.targetDir), + relativePath(paths.targetRoot, targetDir), 'src/index.d.ts', ); const declarationsExist = await fs.pathExists(typesInput); if (!declarationsExist) { - const path = relativePath(paths.targetDir, typesInput); + const path = relativePath(targetDir, typesInput); throw new Error( `No declaration files found at ${path}, be sure to run ${chalk.bgRed.white( 'yarn tsc', @@ -126,7 +130,7 @@ export async function makeRollupConfigs( configs.push({ input: typesInput, output: { - file: 'dist/index.d.ts', + file: resolvePath(distDir, 'index.d.ts'), format: 'es', }, plugins: [dts()], diff --git a/packages/cli/src/lib/builder/types.ts b/packages/cli/src/lib/builder/types.ts index a02afef01a..c9233c024e 100644 --- a/packages/cli/src/lib/builder/types.ts +++ b/packages/cli/src/lib/builder/types.ts @@ -21,6 +21,7 @@ export enum Output { } export type BuildOptions = { + targetDir?: string; outputs: Set; minify?: boolean; useApiExtractor?: boolean; From ee4931047470df16e9fa407d48c864caaf729fac Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 01:55:02 +0100 Subject: [PATCH 005/130] cli: custom warning handler for rollup + support for log prefix Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/builder/config.ts | 14 +++++++++++++- packages/cli/src/lib/builder/types.ts | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 65c4d6c740..0a214f1a7a 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -26,7 +26,7 @@ import svgr from '@svgr/rollup'; import dts from 'rollup-plugin-dts'; import json from '@rollup/plugin-json'; import yaml from '@rollup/plugin-yaml'; -import { RollupOptions, OutputOptions } from 'rollup'; +import { RollupOptions, OutputOptions, RollupWarning } from 'rollup'; import { forwardFileImports } from './plugins'; import { BuildOptions, Output } from './types'; @@ -38,6 +38,16 @@ export async function makeRollupConfigs( ): Promise { const configs = new Array(); const targetDir = options.targetDir ?? paths.targetDir; + const onwarn = ({ code, message }: RollupWarning) => { + if (code === 'EMPTY_BUNDLE') { + return; // We don't care about this one + } + if (options.logPrefix) { + console.log(options.logPrefix + message); + } else { + console.log(message); + } + }; const distDir = resolvePath(targetDir, 'dist'); @@ -69,6 +79,7 @@ export async function makeRollupConfigs( configs.push({ input: resolvePath(targetDir, 'src/index.ts'), output, + onwarn, preserveEntrySignatures: 'strict', external: require('module').builtinModules, plugins: [ @@ -133,6 +144,7 @@ export async function makeRollupConfigs( file: resolvePath(distDir, 'index.d.ts'), format: 'es', }, + onwarn, plugins: [dts()], }); } diff --git a/packages/cli/src/lib/builder/types.ts b/packages/cli/src/lib/builder/types.ts index c9233c024e..f43d84cd92 100644 --- a/packages/cli/src/lib/builder/types.ts +++ b/packages/cli/src/lib/builder/types.ts @@ -21,6 +21,7 @@ export enum Output { } export type BuildOptions = { + logPrefix?: string; targetDir?: string; outputs: Set; minify?: boolean; From 4917c71d00e0049dd8ed75cb676cec1ee6eefd18 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 11:10:33 +0100 Subject: [PATCH 006/130] cli: allow optimized type definition builds across packages Signed-off-by: Patrik Oldsberg --- .../src/lib/builder/buildTypeDefinitions.ts | 165 ++++++++++-------- 1 file changed, 91 insertions(+), 74 deletions(-) diff --git a/packages/cli/src/lib/builder/buildTypeDefinitions.ts b/packages/cli/src/lib/builder/buildTypeDefinitions.ts index ba67532bdb..6822e22ccc 100644 --- a/packages/cli/src/lib/builder/buildTypeDefinitions.ts +++ b/packages/cli/src/lib/builder/buildTypeDefinitions.ts @@ -71,91 +71,108 @@ function prepareApiExtractor() { return apiExtractor!; } -export async function buildTypeDefinitions() { - const { Extractor, ExtractorConfig } = prepareApiExtractor(); +export async function buildTypeDefinitions( + targetDirs: string[] = [paths.targetDir], +) { + const { Extractor, ExtractorConfig, CompilerState } = prepareApiExtractor(); - const distTypesPackageDir = paths.resolveTargetRoot( - 'dist-types', - relativePath(paths.targetRoot, paths.targetDir), + const packageDirs = targetDirs.map(dir => + relativePath(paths.targetRoot, dir), + ); + const entryPoints = packageDirs.map(dir => + paths.resolveTargetRoot('dist-types', dir, 'src/index.d.ts'), ); - const entryPoint = resolvePath(distTypesPackageDir, 'src/index.d.ts'); - const declarationsExist = await fs.pathExists(entryPoint); - if (!declarationsExist) { - const path = relativePath(paths.targetDir, entryPoint); - throw new Error( - `No declaration files found at ${path}, be sure to run ${chalk.bgRed.white( - 'yarn tsc', - )} to generate .d.ts files before packaging`, - ); - } + let compilerState; - const extractorConfig = ExtractorConfig.prepare({ - configObject: { - mainEntryPointFilePath: entryPoint, - bundledPackages: [], + for (const packageDir of packageDirs) { + const targetDir = paths.resolveTargetRoot(packageDir); + const targetTypesDir = paths.resolveTargetRoot('dist-types', packageDir); + const entryPoint = resolvePath(targetTypesDir, 'src/index.d.ts'); - compiler: { - skipLibCheck: true, - tsconfigFilePath: paths.resolveTargetRoot('tsconfig.json'), + const declarationsExist = await fs.pathExists(entryPoint); + if (!declarationsExist) { + throw new Error( + `No declaration files found at ${entryPoint}, be sure to run ${chalk.bgRed.white( + 'yarn tsc', + )} to generate .d.ts files before packaging`, + ); + } + + const extractorConfig = ExtractorConfig.prepare({ + configObject: { + mainEntryPointFilePath: entryPoint, + bundledPackages: [], + + compiler: { + skipLibCheck: true, + tsconfigFilePath: paths.resolveTargetRoot('tsconfig.json'), + }, + + dtsRollup: { + enabled: true, + untrimmedFilePath: resolvePath(targetDir, 'dist/index.alpha.d.ts'), + betaTrimmedFilePath: resolvePath(targetDir, 'dist/index.beta.d.ts'), + publicTrimmedFilePath: resolvePath(targetDir, 'dist/index.d.ts'), + }, + + newlineKind: 'lf', + + projectFolder: targetDir, }, + configObjectFullPath: targetDir, + packageJsonFullPath: resolvePath(targetDir, 'package.json'), + }); - dtsRollup: { - enabled: true, - untrimmedFilePath: paths.resolveTarget('dist/index.alpha.d.ts'), - betaTrimmedFilePath: paths.resolveTarget('dist/index.beta.d.ts'), - publicTrimmedFilePath: paths.resolveTarget('dist/index.d.ts'), - }, + if (!compilerState) { + compilerState = CompilerState.create(extractorConfig, { + additionalEntryPoints: entryPoints, + }); + } - newlineKind: 'lf', + const typescriptDir = paths.resolveTargetRoot('node_modules/typescript'); + const hasTypescript = await fs.pathExists(typescriptDir); + const extractorResult = Extractor.invoke(extractorConfig, { + typescriptCompilerFolder: hasTypescript ? typescriptDir : undefined, + compilerState, + localBuild: false, + showVerboseMessages: false, + showDiagnostics: false, + messageCallback(message) { + message.handled = true; + if (ignoredMessages.has(message.messageId)) { + return; + } - projectFolder: paths.targetDir, - }, - configObjectFullPath: paths.targetDir, - packageJsonFullPath: paths.resolveTarget('package.json'), - }); - - const typescriptDir = paths.resolveTargetRoot('node_modules/typescript'); - const hasTypescript = await fs.pathExists(typescriptDir); - const extractorResult = Extractor.invoke(extractorConfig, { - typescriptCompilerFolder: hasTypescript ? typescriptDir : undefined, - localBuild: false, - showVerboseMessages: false, - showDiagnostics: false, - messageCallback(message) { - message.handled = true; - if (ignoredMessages.has(message.messageId)) { - return; - } - - let text = `${message.text} (${message.messageId})`; - if (message.sourceFilePath) { - text += ' at '; - text += relativePath(distTypesPackageDir, message.sourceFilePath); - if (message.sourceFileLine) { - text += `:${message.sourceFileLine}`; - if (message.sourceFileColumn) { - text += `:${message.sourceFileColumn}`; + let text = `${message.text} (${message.messageId})`; + if (message.sourceFilePath) { + text += ' at '; + text += relativePath(targetTypesDir, message.sourceFilePath); + if (message.sourceFileLine) { + text += `:${message.sourceFileLine}`; + if (message.sourceFileColumn) { + text += `:${message.sourceFileColumn}`; + } } } - } - if (message.logLevel === 'error') { - console.error(chalk.red(`Error: ${text}`)); - } else if ( - message.logLevel === 'warning' || - message.category === 'Extractor' - ) { - console.warn(`Warning: ${text}`); - } else { - console.log(text); - } - }, - }); + if (message.logLevel === 'error') { + console.error(chalk.red(`Error: ${text}`)); + } else if ( + message.logLevel === 'warning' || + message.category === 'Extractor' + ) { + console.warn(`Warning: ${text}`); + } else { + console.log(text); + } + }, + }); - if (!extractorResult.succeeded) { - throw new Error( - `Type definition build completed with ${extractorResult.errorCount} errors` + - ` and ${extractorResult.warningCount} warnings`, - ); + if (!extractorResult.succeeded) { + throw new Error( + `Type definition build completed with ${extractorResult.errorCount} errors` + + ` and ${extractorResult.warningCount} warnings`, + ); + } } } From 03b39bbcc3c467bd28ee39ea6b787dca5d66fde0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 12:20:27 +0100 Subject: [PATCH 007/130] cli: run API Extractor type builds in worker thread Signed-off-by: Patrik Oldsberg --- .../src/lib/builder/buildTypeDefinitions.ts | 152 +++++++----------- .../lib/builder/buildTypeDefinitionsWorker.ts | 105 ++++++++++++ 2 files changed, 163 insertions(+), 94 deletions(-) create mode 100644 packages/cli/src/lib/builder/buildTypeDefinitionsWorker.ts diff --git a/packages/cli/src/lib/builder/buildTypeDefinitions.ts b/packages/cli/src/lib/builder/buildTypeDefinitions.ts index 6822e22ccc..85e54850e4 100644 --- a/packages/cli/src/lib/builder/buildTypeDefinitions.ts +++ b/packages/cli/src/lib/builder/buildTypeDefinitions.ts @@ -16,92 +16,47 @@ import fs from 'fs-extra'; import chalk from 'chalk'; -import { - relative as relativePath, - resolve as resolvePath, - dirname, -} from 'path'; +import { Worker } from 'worker_threads'; +import { relative as relativePath, resolve as resolvePath } from 'path'; import { paths } from '../paths'; +import { buildTypeDefinitionsWorker } from './buildTypeDefinitionsWorker'; // These message types are ignored since we want to avoid duplicating the logic of // handling them correctly, and we already have the API Reports warning about them. const ignoredMessages = new Set(['tsdoc-undefined-tag', 'ae-forgotten-export']); -let apiExtractor: undefined | typeof import('@microsoft/api-extractor'); -function prepareApiExtractor() { - if (apiExtractor) { - return apiExtractor; - } - - try { - apiExtractor = require('@microsoft/api-extractor'); - } catch (error) { - throw new Error( - 'Failed to resolve @microsoft/api-extractor, it must best installed ' + - 'as a dependency of your project in order to use experimental type builds', - ); - } - - /** - * All of this monkey patching below is because MUI has these bare package.json file as a method - * for making TypeScript accept imports like `@material-ui/core/Button`, and improve tree-shaking - * by declaring them side effect free. - * - * The package.json lookup logic in api-extractor really doesn't like that though, as it enforces - * that the 'name' field exists in all package.json files that it discovers. This below is just - * making sure that we ignore those file package.json files instead of crashing. - */ - const { - PackageJsonLookup, - // eslint-disable-next-line import/no-extraneous-dependencies - } = require('@rushstack/node-core-library/lib/PackageJsonLookup'); - - const old = PackageJsonLookup.prototype.tryGetPackageJsonFilePathFor; - PackageJsonLookup.prototype.tryGetPackageJsonFilePathFor = - function tryGetPackageJsonFilePathForPatch(path: string) { - if ( - path.includes('@material-ui') && - !dirname(path).endsWith('@material-ui') - ) { - return undefined; - } - return old.call(this, path); - }; - - return apiExtractor!; -} - export async function buildTypeDefinitions( targetDirs: string[] = [paths.targetDir], ) { - const { Extractor, ExtractorConfig, CompilerState } = prepareApiExtractor(); - const packageDirs = targetDirs.map(dir => relativePath(paths.targetRoot, dir), ); - const entryPoints = packageDirs.map(dir => - paths.resolveTargetRoot('dist-types', dir, 'src/index.d.ts'), + const entryPoints = await Promise.all( + packageDirs.map(async dir => { + const entryPoint = paths.resolveTargetRoot( + 'dist-types', + dir, + 'src/index.d.ts', + ); + + const declarationsExist = await fs.pathExists(entryPoint); + if (!declarationsExist) { + throw new Error( + `No declaration files found at ${entryPoint}, be sure to run ${chalk.bgRed.white( + 'yarn tsc', + )} to generate .d.ts files before packaging`, + ); + } + return entryPoint; + }), ); - let compilerState; - - for (const packageDir of packageDirs) { + const workerConfigs = packageDirs.map(packageDir => { const targetDir = paths.resolveTargetRoot(packageDir); const targetTypesDir = paths.resolveTargetRoot('dist-types', packageDir); - const entryPoint = resolvePath(targetTypesDir, 'src/index.d.ts'); - - const declarationsExist = await fs.pathExists(entryPoint); - if (!declarationsExist) { - throw new Error( - `No declaration files found at ${entryPoint}, be sure to run ${chalk.bgRed.white( - 'yarn tsc', - )} to generate .d.ts files before packaging`, - ); - } - - const extractorConfig = ExtractorConfig.prepare({ + const extractorOptions = { configObject: { - mainEntryPointFilePath: entryPoint, + mainEntryPointFilePath: resolvePath(targetTypesDir, 'src/index.d.ts'), bundledPackages: [], compiler: { @@ -122,24 +77,40 @@ export async function buildTypeDefinitions( }, configObjectFullPath: targetDir, packageJsonFullPath: resolvePath(targetDir, 'package.json'), + }; + return { extractorOptions, targetTypesDir }; + }); + + const typescriptDir = paths.resolveTargetRoot('node_modules/typescript'); + const hasTypescript = await fs.pathExists(typescriptDir); + const typescriptCompilerFolder = hasTypescript ? typescriptDir : undefined; + + const worker = new Worker(`(${buildTypeDefinitionsWorker})()`, { + eval: true, + workerData: { + entryPoints, + workerConfigs, + typescriptCompilerFolder, + }, + }); + + await new Promise((resolve, reject) => { + worker.once('error', reject); + worker.once('exit', code => { + if (code) { + reject(new Error(`Worker exited with code ${code}`)); + } }); + worker.on('message', data => { + if (data.type === 'done') { + if (data.error) { + reject(data.error); + } else { + resolve(); + } + } else if (data.type === 'message') { + const { message, targetTypesDir } = data; - if (!compilerState) { - compilerState = CompilerState.create(extractorConfig, { - additionalEntryPoints: entryPoints, - }); - } - - const typescriptDir = paths.resolveTargetRoot('node_modules/typescript'); - const hasTypescript = await fs.pathExists(typescriptDir); - const extractorResult = Extractor.invoke(extractorConfig, { - typescriptCompilerFolder: hasTypescript ? typescriptDir : undefined, - compilerState, - localBuild: false, - showVerboseMessages: false, - showDiagnostics: false, - messageCallback(message) { - message.handled = true; if (ignoredMessages.has(message.messageId)) { return; } @@ -165,14 +136,7 @@ export async function buildTypeDefinitions( } else { console.log(text); } - }, + } }); - - if (!extractorResult.succeeded) { - throw new Error( - `Type definition build completed with ${extractorResult.errorCount} errors` + - ` and ${extractorResult.warningCount} warnings`, - ); - } - } + }); } diff --git a/packages/cli/src/lib/builder/buildTypeDefinitionsWorker.ts b/packages/cli/src/lib/builder/buildTypeDefinitionsWorker.ts new file mode 100644 index 0000000000..8cb843f58e --- /dev/null +++ b/packages/cli/src/lib/builder/buildTypeDefinitionsWorker.ts @@ -0,0 +1,105 @@ +/* + * Copyright 2022 The Backstage Authors + * + * 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. + */ + +/** + * NOTE: This is a worker thread function that is stringified and executed + * withing a `worker_threads.Worker`. Everything in this function must + * be self-contained. + * Using TypeScript is fine as it is transpiled before being stringified. + */ +export function buildTypeDefinitionsWorker() { + try { + require('@microsoft/api-extractor'); + } catch (error) { + throw new Error( + 'Failed to resolve @microsoft/api-extractor, it must best installed ' + + 'as a dependency of your project in order to use experimental type builds', + ); + } + + const { dirname } = require('path'); + const { workerData, parentPort } = require('worker_threads'); + const { entryPoints, workerConfigs, typescriptCompilerFolder } = workerData; + + const apiExtractor = require('@microsoft/api-extractor'); + const { Extractor, ExtractorConfig, CompilerState } = apiExtractor; + + /** + * All of this monkey patching below is because MUI has these bare package.json file as a method + * for making TypeScript accept imports like `@material-ui/core/Button`, and improve tree-shaking + * by declaring them side effect free. + * + * The package.json lookup logic in api-extractor really doesn't like that though, as it enforces + * that the 'name' field exists in all package.json files that it discovers. This below is just + * making sure that we ignore those file package.json files instead of crashing. + */ + const { + PackageJsonLookup, + // eslint-disable-next-line import/no-extraneous-dependencies + } = require('@rushstack/node-core-library/lib/PackageJsonLookup'); + + const old = PackageJsonLookup.prototype.tryGetPackageJsonFilePathFor; + PackageJsonLookup.prototype.tryGetPackageJsonFilePathFor = + function tryGetPackageJsonFilePathForPatch(path: string) { + if ( + path.includes('@material-ui') && + !dirname(path).endsWith('@material-ui') + ) { + return undefined; + } + return old.call(this, path); + }; + + let success = true; + let compilerState; + for (const { extractorOptions, targetTypesDir } of workerConfigs) { + const extractorConfig = ExtractorConfig.prepare(extractorOptions); + + if (!compilerState) { + compilerState = CompilerState.create(extractorConfig, { + additionalEntryPoints: entryPoints, + }); + } + + const extractorResult = Extractor.invoke(extractorConfig, { + compilerState, + localBuild: false, + typescriptCompilerFolder, + showVerboseMessages: false, + showDiagnostics: false, + messageCallback: (message: any) => { + message.handled = true; + parentPort.postMessage({ type: 'message', message, targetTypesDir }); + }, + }); + + if (!extractorResult.succeeded) { + parentPort.postMessage({ + type: 'done', + error: new Error( + `Type definition build completed with ${extractorResult.errorCount} errors` + + ` and ${extractorResult.warningCount} warnings`, + ), + }); + success = false; + break; + } + } + + if (success) { + parentPort.postMessage({ type: 'done' }); + } +} From fe571d2b0652e541819d3ff6c9eef84c088fb234 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 12:31:16 +0100 Subject: [PATCH 008/130] cli: add buildPackages for building multiple packages at once Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/builder/index.ts | 2 +- packages/cli/src/lib/builder/packager.ts | 27 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/builder/index.ts b/packages/cli/src/lib/builder/index.ts index c39d964ade..de6ccac0ae 100644 --- a/packages/cli/src/lib/builder/index.ts +++ b/packages/cli/src/lib/builder/index.ts @@ -14,6 +14,6 @@ * limitations under the License. */ -export { buildPackage } from './packager'; +export { buildPackage, buildPackages } from './packager'; export { Output } from './types'; export type { BuildOptions } from './types'; diff --git a/packages/cli/src/lib/builder/packager.ts b/packages/cli/src/lib/builder/packager.ts index 96c488fce2..9ef1954677 100644 --- a/packages/cli/src/lib/builder/packager.ts +++ b/packages/cli/src/lib/builder/packager.ts @@ -17,7 +17,7 @@ import fs from 'fs-extra'; import { rollup, RollupOptions } from 'rollup'; import chalk from 'chalk'; -import { relative as relativePath } from 'path'; +import { relative as relativePath, resolve as resolvePath } from 'path'; import { paths } from '../paths'; import { makeRollupConfigs } from './config'; import { BuildOptions, Output } from './types'; @@ -116,3 +116,28 @@ export const buildPackage = async (options: BuildOptions) => { await Promise.all(buildTasks); }; + +export const buildPackages = async ( + options: (BuildOptions & { targetDir: string })[], +) => { + const rollupConfigs = await Promise.all(options.map(makeRollupConfigs)); + + await Promise.all( + options.map(({ targetDir }) => fs.remove(resolvePath(targetDir, 'dist'))), + ); + + const buildTasks = rollupConfigs.flat().map(rollupBuild); + + const typeDefinitionTargetDirs = options + .filter( + ({ outputs, useApiExtractor }) => + outputs.has(Output.types) && useApiExtractor, + ) + .map(_ => _.targetDir); + + if (typeDefinitionTargetDirs.length > 0) { + buildTasks.push(buildTypeDefinitions(typeDefinitionTargetDirs)); + } + + await Promise.all(buildTasks); +}; From 336b3101519c32428e73599ec4f41f91fe8ef31a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 12:43:51 +0100 Subject: [PATCH 009/130] cli: add initial experimental repo sub-command with build Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/index.ts | 16 ++++++ packages/cli/src/commands/repo/build.ts | 75 +++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 packages/cli/src/commands/repo/build.ts diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index a33e7d4afe..b7de9ced14 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -25,6 +25,21 @@ const configOption = [ Array(), ] as const; +export function registerRepoCommand(program: CommanderStatic) { + const command = program + .command('repo [command]', { hidden: true }) + .description( + 'Command that run across an entire Backstage project [EXPERIMENTAL]', + ); + + command + .command('build') + .description( + 'Build all packages in the project that use the standard backstage build script', + ) + .action(lazy(() => import('./repo/build').then(m => m.command))); +} + export function registerScriptCommand(program: CommanderStatic) { const command = program .command('script [command]', { hidden: true }) @@ -312,6 +327,7 @@ export function registerCommands(program: CommanderStatic) { .description('Print configuration schema') .action(lazy(() => import('./config/schema').then(m => m.default))); + registerRepoCommand(program); registerScriptCommand(program); registerMigrateCommand(program); diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts new file mode 100644 index 0000000000..50198772d7 --- /dev/null +++ b/packages/cli/src/commands/repo/build.ts @@ -0,0 +1,75 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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 chalk from 'chalk'; +import { relative as relativePath } from 'path'; +import { buildPackages, Output } from '../../lib/builder'; +import { PackageGraph } from '../../lib/monorepo'; +import { paths } from '../../lib/paths'; +import { getRoleInfo } from '../../lib/role'; + +const outputMap = { + esm: Output.esm, + cjs: Output.cjs, + types: Output.types, + bundle: undefined, +}; + +export async function command(): Promise { + const packages = await PackageGraph.listTargetPackages(); + + const options = packages.flatMap(pkg => { + const role = pkg.packageJson.backstage?.role; + if (!role) { + console.warn(`Ignored ${pkg.packageJson.name} because it has no role`); + return []; + } + + const roleInfo = getRoleInfo(role); + const outputs = roleInfo.output + .map(output => outputMap[output]) + .filter((x): x is Output => Boolean(x)); + if (outputs.length === 0) { + console.warn(`Ignored ${pkg.packageJson.name} because it has no output`); + return []; + } + + const buildScript = pkg.packageJson.scripts?.build; + if (!buildScript) { + console.warn( + `Ignored ${pkg.packageJson.name} because it has no build script`, + ); + return []; + } + if (!buildScript.startsWith('backstage-cli script build')) { + console.warn( + `Ignored ${pkg.packageJson.name} because it has a custom build script, '${buildScript}'`, + ); + return []; + } + + return { + targetDir: pkg.dir, + outputs: new Set(outputs), + logPrefix: `${chalk.cyan(relativePath(paths.targetRoot, pkg.dir))}: `, + // TODO(Rugvip): Use commander to parse the script and grab these instead + minify: buildScript.includes('--minify'), + useApiExtractor: buildScript.includes('--experimental-type-build'), + }; + }); + + await buildPackages(options); +} From f8e529030eeb788ff814b0fe21635e30de932dbf Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 18:55:31 +0100 Subject: [PATCH 010/130] cli: added getOutputsForRole utility Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/repo/build.ts | 19 ++++--------------- packages/cli/src/lib/builder/index.ts | 2 +- packages/cli/src/lib/builder/packager.ts | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index 50198772d7..7b1e4771ec 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -16,17 +16,9 @@ import chalk from 'chalk'; import { relative as relativePath } from 'path'; -import { buildPackages, Output } from '../../lib/builder'; +import { buildPackages, getOutputsForRole } from '../../lib/builder'; import { PackageGraph } from '../../lib/monorepo'; import { paths } from '../../lib/paths'; -import { getRoleInfo } from '../../lib/role'; - -const outputMap = { - esm: Output.esm, - cjs: Output.cjs, - types: Output.types, - bundle: undefined, -}; export async function command(): Promise { const packages = await PackageGraph.listTargetPackages(); @@ -38,11 +30,8 @@ export async function command(): Promise { return []; } - const roleInfo = getRoleInfo(role); - const outputs = roleInfo.output - .map(output => outputMap[output]) - .filter((x): x is Output => Boolean(x)); - if (outputs.length === 0) { + const outputs = getOutputsForRole(role); + if (outputs.size === 0) { console.warn(`Ignored ${pkg.packageJson.name} because it has no output`); return []; } @@ -63,7 +52,7 @@ export async function command(): Promise { return { targetDir: pkg.dir, - outputs: new Set(outputs), + outputs, logPrefix: `${chalk.cyan(relativePath(paths.targetRoot, pkg.dir))}: `, // TODO(Rugvip): Use commander to parse the script and grab these instead minify: buildScript.includes('--minify'), diff --git a/packages/cli/src/lib/builder/index.ts b/packages/cli/src/lib/builder/index.ts index de6ccac0ae..00cc463cfb 100644 --- a/packages/cli/src/lib/builder/index.ts +++ b/packages/cli/src/lib/builder/index.ts @@ -14,6 +14,6 @@ * limitations under the License. */ -export { buildPackage, buildPackages } from './packager'; +export { buildPackage, buildPackages, getOutputsForRole } from './packager'; export { Output } from './types'; export type { BuildOptions } from './types'; diff --git a/packages/cli/src/lib/builder/packager.ts b/packages/cli/src/lib/builder/packager.ts index 9ef1954677..c4963373fa 100644 --- a/packages/cli/src/lib/builder/packager.ts +++ b/packages/cli/src/lib/builder/packager.ts @@ -22,6 +22,7 @@ import { paths } from '../paths'; import { makeRollupConfigs } from './config'; import { BuildOptions, Output } from './types'; import { buildTypeDefinitions } from './buildTypeDefinitions'; +import { getRoleInfo } from '../role'; export function formatErrorMessage(error: any) { let msg = ''; @@ -141,3 +142,21 @@ export const buildPackages = async ( await Promise.all(buildTasks); }; + +export function getOutputsForRole(role: string): Set { + const outputs = new Set(); + + for (const output of getRoleInfo(role).output) { + if (output === 'cjs') { + outputs.add(Output.cjs); + } + if (output === 'esm') { + outputs.add(Output.esm); + } + if (output === 'types') { + outputs.add(Output.types); + } + } + + return outputs; +} From d20f260e6dcb2eba8b3c23f63b16665d97995193 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 18:57:16 +0100 Subject: [PATCH 011/130] cli: tweak buildPackages to use standard BuildOptions Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/builder/packager.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/lib/builder/packager.ts b/packages/cli/src/lib/builder/packager.ts index c4963373fa..2413662a17 100644 --- a/packages/cli/src/lib/builder/packager.ts +++ b/packages/cli/src/lib/builder/packager.ts @@ -118,13 +118,14 @@ export const buildPackage = async (options: BuildOptions) => { await Promise.all(buildTasks); }; -export const buildPackages = async ( - options: (BuildOptions & { targetDir: string })[], -) => { +export const buildPackages = async (options: BuildOptions[]) => { + if (options.some(opt => !opt.targetDir)) { + throw new Error('targetDir must be set for all build options'); + } const rollupConfigs = await Promise.all(options.map(makeRollupConfigs)); await Promise.all( - options.map(({ targetDir }) => fs.remove(resolvePath(targetDir, 'dist'))), + options.map(({ targetDir }) => fs.remove(resolvePath(targetDir!, 'dist'))), ); const buildTasks = rollupConfigs.flat().map(rollupBuild); @@ -134,7 +135,7 @@ export const buildPackages = async ( ({ outputs, useApiExtractor }) => outputs.has(Output.types) && useApiExtractor, ) - .map(_ => _.targetDir); + .map(_ => _.targetDir!); if (typeDefinitionTargetDirs.length > 0) { buildTasks.push(buildTypeDefinitions(typeDefinitionTargetDirs)); From d59b90852a6d5893bd8bf4f00046329e2a2e9d93 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 19:24:10 +0100 Subject: [PATCH 012/130] changesets: added changesets for CLI repo command and type worker thread Signed-off-by: Patrik Oldsberg --- .changeset/many-terms-type.md | 5 +++++ .changeset/twenty-colts-applaud.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/many-terms-type.md create mode 100644 .changeset/twenty-colts-applaud.md diff --git a/.changeset/many-terms-type.md b/.changeset/many-terms-type.md new file mode 100644 index 0000000000..fd11d14106 --- /dev/null +++ b/.changeset/many-terms-type.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread. diff --git a/.changeset/twenty-colts-applaud.md b/.changeset/twenty-colts-applaud.md new file mode 100644 index 0000000000..2390e21a6e --- /dev/null +++ b/.changeset/twenty-colts-applaud.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages. From 437659b92f0a0adb1056bf6a386b9edfbafbbbf2 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Feb 2022 14:59:12 +0100 Subject: [PATCH 013/130] accept JSX Element as additionalInfo prop Signed-off-by: Emma Indal --- .../src/layout/ErrorPage/ErrorPage.test.tsx | 12 ++++++++++++ .../src/layout/ErrorPage/ErrorPage.tsx | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx index a314128bce..12ac0927ed 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx @@ -16,6 +16,7 @@ import React from 'react'; import { ErrorPage } from './ErrorPage'; +import { Link } from '../../components/Link'; import { renderInTestApp } from '@backstage/test-utils'; describe('', () => { @@ -30,4 +31,15 @@ describe('', () => { ).toBeInTheDocument(); expect(getByTestId('go-back-link')).toBeInTheDocument(); }); + + it('should render with additional information including link', async () => { + const { getByText } = await renderInTestApp( + This is some additional information including a link} />, + ); + expect( + getByText(/looks like someone dropped the mic!/i), + ).toBeInTheDocument(); + expect(getByText(/a link/i)).toBeInTheDocument(); + expect(getByText(/a link/i)).toHaveAttribute('href', '/test'); + }); }); diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx index 08c002d849..b8e0193bcf 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx @@ -27,7 +27,7 @@ import { MicDrop } from './MicDrop'; interface IErrorPageProps { status: string; statusMessage: string; - additionalInfo?: string; + additionalInfo?: string | JSX.Element; } /** @public */ From f2dfbd3fb06f3fccb4c8c36cd52b469eb9ce6429 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Feb 2022 14:59:41 +0100 Subject: [PATCH 014/130] add changeset Signed-off-by: Emma Indal --- .changeset/khaki-jokes-grab.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/khaki-jokes-grab.md diff --git a/.changeset/khaki-jokes-grab.md b/.changeset/khaki-jokes-grab.md new file mode 100644 index 0000000000..967ed1e0e4 --- /dev/null +++ b/.changeset/khaki-jokes-grab.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Accept JSX Element as additionalInfo property of ErrorPage component From 308efff0ac09d9255786edbac15b218f85165ea9 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Feb 2022 15:11:40 +0100 Subject: [PATCH 015/130] add optional supportUrl property Signed-off-by: Emma Indal --- .../src/layout/ErrorPage/ErrorPage.test.tsx | 22 +++++++++++++++++++ .../src/layout/ErrorPage/ErrorPage.tsx | 5 +++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx index 12ac0927ed..d6ef392f76 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx @@ -42,4 +42,26 @@ describe('', () => { expect(getByText(/a link/i)).toBeInTheDocument(); expect(getByText(/a link/i)).toHaveAttribute('href', '/test'); }); + + it('should render with default support url if supportUrl is not provided', async () => { + const { getByText } = await renderInTestApp( + , + ); + expect( + getByText(/looks like someone dropped the mic!/i), + ).toBeInTheDocument(); + expect(getByText(/contact support/i)).toBeInTheDocument(); + expect(getByText(/contact support/i)).toHaveAttribute('href', 'https://github.com/backstage/backstage/issues'); + }); + + it('should override support url if supportUrl property is provided', async () => { + const { getByText } = await renderInTestApp( + , + ); + expect( + getByText(/looks like someone dropped the mic!/i), + ).toBeInTheDocument(); + expect(getByText(/contact support/i)).toBeInTheDocument(); + expect(getByText(/contact support/i)).toHaveAttribute('href', 'https://error-page-test-support-url.com'); + }); }); diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx index b8e0193bcf..cae8f95ec8 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx @@ -28,6 +28,7 @@ interface IErrorPageProps { status: string; statusMessage: string; additionalInfo?: string | JSX.Element; + supportUrl?: string; } /** @public */ @@ -62,7 +63,7 @@ const useStyles = makeStyles( * */ export function ErrorPage(props: IErrorPageProps) { - const { status, statusMessage, additionalInfo } = props; + const { status, statusMessage, additionalInfo, supportUrl } = props; const classes = useStyles(); const navigate = useNavigate(); const support = useSupportConfig(); @@ -88,7 +89,7 @@ export function ErrorPage(props: IErrorPageProps) { navigate(-1)}> Go back - ... or please contact support if you + ... or please contact support if you think this is a bug. From 0912186d16154c59fedf56a3eeff0096a9fa5828 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Feb 2022 15:17:37 +0100 Subject: [PATCH 016/130] update changelog and prettier fixups Signed-off-by: Emma Indal --- .changeset/khaki-jokes-grab.md | 2 +- .../src/layout/ErrorPage/ErrorPage.test.tsx | 29 +++++++++++++++---- .../src/layout/ErrorPage/ErrorPage.tsx | 3 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.changeset/khaki-jokes-grab.md b/.changeset/khaki-jokes-grab.md index 967ed1e0e4..e94a580e58 100644 --- a/.changeset/khaki-jokes-grab.md +++ b/.changeset/khaki-jokes-grab.md @@ -2,4 +2,4 @@ '@backstage/core-components': patch --- -Accept JSX Element as additionalInfo property of ErrorPage component +Adjust ErrorPage to accept optional supportUrl property to override app config and JSX Element as additionalInfo property. diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx index d6ef392f76..57d0ba34a1 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx @@ -34,7 +34,16 @@ describe('', () => { it('should render with additional information including link', async () => { const { getByText } = await renderInTestApp( - This is some additional information including a link} />, + + This is some additional information including{' '} + a link + + } + />, ); expect( getByText(/looks like someone dropped the mic!/i), @@ -45,23 +54,33 @@ describe('', () => { it('should render with default support url if supportUrl is not provided', async () => { const { getByText } = await renderInTestApp( - , + , ); expect( getByText(/looks like someone dropped the mic!/i), ).toBeInTheDocument(); expect(getByText(/contact support/i)).toBeInTheDocument(); - expect(getByText(/contact support/i)).toHaveAttribute('href', 'https://github.com/backstage/backstage/issues'); + expect(getByText(/contact support/i)).toHaveAttribute( + 'href', + 'https://github.com/backstage/backstage/issues', + ); }); it('should override support url if supportUrl property is provided', async () => { const { getByText } = await renderInTestApp( - , + , ); expect( getByText(/looks like someone dropped the mic!/i), ).toBeInTheDocument(); expect(getByText(/contact support/i)).toBeInTheDocument(); - expect(getByText(/contact support/i)).toHaveAttribute('href', 'https://error-page-test-support-url.com'); + expect(getByText(/contact support/i)).toHaveAttribute( + 'href', + 'https://error-page-test-support-url.com', + ); }); }); diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx index cae8f95ec8..27d884684b 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.tsx @@ -89,7 +89,8 @@ export function ErrorPage(props: IErrorPageProps) { navigate(-1)}> Go back - ... or please contact support if you + ... or please{' '} + contact support if you think this is a bug. From 0fdba0af76d5c11cd2d7a2131d7b150a4c231a7c Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 4 Feb 2022 16:00:39 +0100 Subject: [PATCH 017/130] actions: Comment information about DCO signing when failing Signed-off-by: Johan Haals --- .github/workflows/verify_dco.yaml | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/verify_dco.yaml diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml new file mode 100644 index 0000000000..8d071afd4c --- /dev/null +++ b/.github/workflows/verify_dco.yaml @@ -0,0 +1,60 @@ +name: Verify DCO +on: + schedule: + - cron: '*/15 * * * *' + +jobs: + dco-helper: + runs-on: ubuntu-latest + steps: + - name: Verify DCO status for open pull requests + uses: actions/github-script@v5 + with: + script: | + const owner = "backstage"; + const repo = "backstage"; + const pulls = await github.paginate(github.rest.pulls.list, { + state: "open", + owner, + repo, + }); + + for (const pull of pulls) { + // Pick out the PRs that have the DCO check + const checks = await github.rest.checks.listForRef({ + owner, + repo, + ref: pull.head.sha, + check_name: "DCO", + status: "completed", + }); + // Skip if there are no checks + if (!checks.data.check_runs.length) { + continue; + } + // Skip if the conclusion is not action_required + if (checks.data.check_runs[0].conclusion !== "action_required") { + console.log(`No checks found for PR #${pull.number}, skipping`); + continue; + } + + const comments = await github.paginate(github.rest.issues.listComments, { + owner, + repo, + issue_number: pull.number, + }); + + if (comments.find((c) => c.user.login === "github-actions[bot]")) { + console.log(`already commented on PR #${pull.number}, skipping`); + continue; + } + + console.log(`creating comment on PR #${pull.number}`); + const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the DCO section in [CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; + await github.rest.issues.createComment({ + repo, + owner, + issue_number: pull.number, + body, + }); + } From b70c186194421975e27af00e14d04e15abbb9633 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Feb 2022 11:18:43 +0100 Subject: [PATCH 018/130] techdocs-cli: unified dev and production build through config detection Signed-off-by: Patrik Oldsberg --- .changeset/warm-beds-flow.md | 5 ++ .../app-config.dev.yaml | 12 ---- .../techdocs-cli-embedded-app/package.json | 3 +- .../src/App.test.tsx | 33 +++++------ .../techdocs-cli-embedded-app/src/App.tsx | 2 + .../techdocs-cli-embedded-app/src/config.ts | 59 +++++++++++++++++++ packages/techdocs-cli/scripts/build.sh | 6 +- packages/techdocs-cli/src/lib/httpServer.ts | 12 +++- 8 files changed, 94 insertions(+), 38 deletions(-) create mode 100644 .changeset/warm-beds-flow.md delete mode 100644 packages/techdocs-cli-embedded-app/app-config.dev.yaml create mode 100644 packages/techdocs-cli-embedded-app/src/config.ts diff --git a/.changeset/warm-beds-flow.md b/.changeset/warm-beds-flow.md new file mode 100644 index 0000000000..7d34336739 --- /dev/null +++ b/.changeset/warm-beds-flow.md @@ -0,0 +1,5 @@ +--- +'@techdocs/cli': patch +--- + +Updated the HTTP server to allow for simplification of the development of the CLI itself. diff --git a/packages/techdocs-cli-embedded-app/app-config.dev.yaml b/packages/techdocs-cli-embedded-app/app-config.dev.yaml deleted file mode 100644 index 02d68c940e..0000000000 --- a/packages/techdocs-cli-embedded-app/app-config.dev.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# NOTE: This file is used for testing techdocs-cli locally - -app: - title: Techdocs Preview App - baseUrl: http://localhost:3000 - -backend: - baseUrl: http://localhost:7007 - -techdocs: - builder: 'external' - requestUrl: http://localhost:7007/api diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 6eb3119b06..2df050ef86 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -39,9 +39,8 @@ "start-server-and-test": "^1.10.11" }, "scripts": { - "start": "backstage-cli app:serve --config ./app-config.yaml --config ./app-config.dev.yaml", + "start": "backstage-cli app:serve --config ./app-config.yaml", "build": "backstage-cli app:build --config ./app-config.yaml", - "build:dev": "backstage-cli app:build --config ./app-config.dev.yaml", "clean": "backstage-cli clean", "test": "backstage-cli test", "lint": "backstage-cli lint", diff --git a/packages/techdocs-cli-embedded-app/src/App.test.tsx b/packages/techdocs-cli-embedded-app/src/App.test.tsx index f177433d95..75658d271e 100644 --- a/packages/techdocs-cli-embedded-app/src/App.test.tsx +++ b/packages/techdocs-cli-embedded-app/src/App.test.tsx @@ -18,25 +18,24 @@ import React from 'react'; import { renderWithEffects } from '@backstage/test-utils'; import App from './App'; +jest.mock('./config', () => ({ + configLoader: async () => [ + { + data: { + app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7007' }, + techdocs: { + storageUrl: 'http://localhost:7007/api/techdocs/static/docs', + }, + }, + context: 'test', + }, + ], +})); + describe('App', () => { it('should render', async () => { - process.env = { - NODE_ENV: 'test', - APP_CONFIG: [ - { - data: { - app: { title: 'Test' }, - backend: { baseUrl: 'http://localhost:7007' }, - techdocs: { - storageUrl: 'http://localhost:7007/api/techdocs/static/docs', - }, - }, - context: 'test', - }, - ] as any, - }; - const rendered = await renderWithEffects(); - expect(rendered.baseElement).toBeInTheDocument(); + expect(rendered.getByText('Docs Preview')).toBeInTheDocument(); }); }); diff --git a/packages/techdocs-cli-embedded-app/src/App.tsx b/packages/techdocs-cli-embedded-app/src/App.tsx index 00b232d8e1..51bdfbbb11 100644 --- a/packages/techdocs-cli-embedded-app/src/App.tsx +++ b/packages/techdocs-cli-embedded-app/src/App.tsx @@ -29,9 +29,11 @@ import { apis } from './apis'; import { Root } from './components/Root'; import { techDocsPage } from './components/TechDocsPage'; import * as plugins from './plugins'; +import { configLoader } from './config'; const app = createApp({ apis, + configLoader, plugins: Object.values(plugins), }); diff --git a/packages/techdocs-cli-embedded-app/src/config.ts b/packages/techdocs-cli-embedded-app/src/config.ts new file mode 100644 index 0000000000..482ceb41ec --- /dev/null +++ b/packages/techdocs-cli-embedded-app/src/config.ts @@ -0,0 +1,59 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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 { defaultConfigLoader } from '@backstage/core-app-api'; + +const PRODUCTION_CONFIG = { + backend: { + baseUrl: 'http://localhost:3000', + }, + techdocs: { + builder: 'external', + requestUrl: 'http://localhost:3000/api', + }, +}; + +const DEVELOPMENT_CONFIG = { + backend: { + baseUrl: 'http://localhost:7007', + }, + techdocs: { + builder: 'external', + requestUrl: 'http://localhost:7007/api', + }, +}; + +async function isProductionServe() { + const res = await fetch('/.detect'); + if (!res.ok) { + return false; + } + const text = await res.text(); + return text.trim() === 'techdocs-cli-server'; +} + +export async function configLoader() { + const defaultConfigs = await defaultConfigLoader(); + const isProduction = await isProductionServe(); + + return [ + ...defaultConfigs, + { + context: 'detected', + data: isProduction ? PRODUCTION_CONFIG : DEVELOPMENT_CONFIG, + }, + ]; +} diff --git a/packages/techdocs-cli/scripts/build.sh b/packages/techdocs-cli/scripts/build.sh index 31c2eae6c3..ef2d625711 100755 --- a/packages/techdocs-cli/scripts/build.sh +++ b/packages/techdocs-cli/scripts/build.sh @@ -31,11 +31,7 @@ compile_and_build_cli() { build_and_embed_app() { echo "🚚 Embedding app..." - if [ "$TECHDOCS_CLI_DEV_MODE" = "true" ] ; then - yarn workspace techdocs-cli-embedded-app build:dev > /dev/null - else - yarn workspace techdocs-cli-embedded-app build > /dev/null - fi + yarn workspace techdocs-cli-embedded-app build > /dev/null cp -r "$TECHDOCS_CLI_EMBEDDED_APP_DIR"/dist "$TECHDOCS_CLI_DIR"/dist/techdocs-preview-bundle > /dev/null } diff --git a/packages/techdocs-cli/src/lib/httpServer.ts b/packages/techdocs-cli/src/lib/httpServer.ts index 0402ce4e69..92fc5abc87 100644 --- a/packages/techdocs-cli/src/lib/httpServer.ts +++ b/packages/techdocs-cli/src/lib/httpServer.ts @@ -71,10 +71,18 @@ export default class HTTPServer { response.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS'); request.url = forwardPath; - return proxy.web(request, response); + proxy.web(request, response); + return; } - return serveHandler(request, response, { + // This endpoint is used by the frontend to detect where the backend is running. + if (request.url === '/.detect') { + response.setHeader('Content-Type', 'text/plain'); + response.end('techdocs-cli-server'); + return; + } + + serveHandler(request, response, { public: this.backstageBundleDir, trailingSlash: true, rewrites: [{ source: '**', destination: 'index.html' }], From 814a3ff48021da2c756fe3bf8455372c2b3f5c53 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Feb 2022 12:15:43 +0100 Subject: [PATCH 019/130] techdocs-cli: switch to embedding app using prepack script Signed-off-by: Patrik Oldsberg --- packages/techdocs-cli/package.json | 6 ++-- .../scripts/{build.sh => prepack.sh} | 20 ++----------- .../techdocs-cli/src/commands/serve/serve.ts | 28 +++++++++++++------ 3 files changed, 27 insertions(+), 27 deletions(-) rename packages/techdocs-cli/scripts/{build.sh => prepack.sh} (60%) diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index a8dab88c55..56e7941d4c 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -21,12 +21,13 @@ "types": "", "scripts": { "start": "nodemon --", - "build": "./scripts/build.sh", + "build": "backstage-cli build --outputs cjs", "clean": "backstage-cli clean", "lint": "backstage-cli lint", "test": "backstage-cli test --testPathIgnorePatterns=src/e2e.test.ts", "test:e2e": "backstage-cli test src/e2e.test.ts", - "test:e2e:ci": "backstage-cli test --watchAll=false --ci src/e2e.test.ts" + "test:e2e:ci": "backstage-cli test --watchAll=false --ci src/e2e.test.ts", + "prepack": "./scripts/prepack.sh" }, "bin": { "techdocs-cli": "bin/techdocs-cli" @@ -57,6 +58,7 @@ "dependencies": { "@backstage/backend-common": "^0.10.6", "@backstage/catalog-model": "^0.9.10", + "@backstage/cli-common": "^0.1.6", "@backstage/config": "^0.1.13", "@backstage/techdocs-common": "^0.11.6", "@types/dockerode": "^3.3.0", diff --git a/packages/techdocs-cli/scripts/build.sh b/packages/techdocs-cli/scripts/prepack.sh similarity index 60% rename from packages/techdocs-cli/scripts/build.sh rename to packages/techdocs-cli/scripts/prepack.sh index ef2d625711..fa24b10167 100755 --- a/packages/techdocs-cli/scripts/build.sh +++ b/packages/techdocs-cli/scripts/prepack.sh @@ -20,21 +20,7 @@ SCRIPT_DIR=$(dirname $0) TECHDOCS_CLI_DIR="$SCRIPT_DIR"/.. TECHDOCS_CLI_EMBEDDED_APP_DIR="$TECHDOCS_CLI_DIR"/../techdocs-cli-embedded-app -compile_and_build_cli() { - echo "📄 Compiling..." - yarn workspace @techdocs/cli tsc > /dev/null - echo "📦️ Building..." - pushd $TECHDOCS_CLI_DIR > /dev/null - npx backstage-cli build --outputs cjs > /dev/null - popd > /dev/null -} - -build_and_embed_app() { - echo "🚚 Embedding app..." - yarn workspace techdocs-cli-embedded-app build > /dev/null - cp -r "$TECHDOCS_CLI_EMBEDDED_APP_DIR"/dist "$TECHDOCS_CLI_DIR"/dist/techdocs-preview-bundle > /dev/null -} - -compile_and_build_cli -build_and_embed_app +echo "🚚 Copying embedded app into dist/embedded-app" +rm -r "$TECHDOCS_CLI_DIR"/dist/embedded-app +cp -r "$TECHDOCS_CLI_EMBEDDED_APP_DIR"/dist "$TECHDOCS_CLI_DIR"/dist/embedded-app echo "🏁 Ready!" diff --git a/packages/techdocs-cli/src/commands/serve/serve.ts b/packages/techdocs-cli/src/commands/serve/serve.ts index 4d71de3e52..a6a671c2df 100644 --- a/packages/techdocs-cli/src/commands/serve/serve.ts +++ b/packages/techdocs-cli/src/commands/serve/serve.ts @@ -17,11 +17,30 @@ import { Command } from 'commander'; import path from 'path'; import openBrowser from 'react-dev-utils/openBrowser'; +import { findPaths } from '@backstage/cli-common'; import HTTPServer from '../../lib/httpServer'; import { runMkdocsServer } from '../../lib/mkdocsServer'; import { LogFunc, waitForSignal } from '../../lib/run'; import { createLogger } from '../../lib/utility'; +function findPreviewBundlePath(): string { + try { + return path.join( + path.dirname(require.resolve('techdocs-cli-embedded-app/package.json')), + 'dist', + ); + } catch { + // If the techdocs-cli-embedded-app package is not available it means we're + // running a published package. For published packages the preview bundle is + // copied to dist/embedded-app be the prepack script. + // + // This can be tested by running `yarn pack` and extracting the resulting tarball into a directory. + // Within the extracted directory, run `npm install --only=prod`. + // Once that's done you can test the CLI in any directory using `node /package `. + return findPaths(__dirname).resolveOwn('dist/embedded-app'); + } +} + export default async function serve(cmd: Command) { const logger = createLogger({ verbose: cmd.verbose }); @@ -91,16 +110,9 @@ export default async function serve(cmd: Command) { ); } - // Run the embedded-techdocs Backstage app - const techdocsPreviewBundlePath = path.join( - path.dirname(require.resolve('@techdocs/cli/package.json')), - 'dist', - 'techdocs-preview-bundle', - ); - const port = isDevMode ? backstageBackendPort : backstagePort; const httpServer = new HTTPServer( - techdocsPreviewBundlePath, + findPreviewBundlePath(), port, cmd.mkdocsPort, cmd.verbose, From 5b54608615a2ba012fccd5110506b84eba30a358 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Feb 2022 18:47:21 +0100 Subject: [PATCH 020/130] cli: add option to include bundled packages in repo build + parse options Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/build/buildApp.ts | 11 +- .../cli/src/commands/build/buildBackend.ts | 8 +- packages/cli/src/commands/build/command.ts | 3 + packages/cli/src/commands/index.ts | 6 +- packages/cli/src/commands/repo/build.ts | 107 +++++++++++++++++- packages/cli/src/lib/bundler/paths.ts | 29 ++--- packages/cli/src/lib/bundler/types.ts | 2 + 7 files changed, 138 insertions(+), 28 deletions(-) diff --git a/packages/cli/src/commands/build/buildApp.ts b/packages/cli/src/commands/build/buildApp.ts index 3d86d796b7..62d51a0810 100644 --- a/packages/cli/src/commands/build/buildApp.ts +++ b/packages/cli/src/commands/build/buildApp.ts @@ -15,24 +15,27 @@ */ import fs from 'fs-extra'; +import { resolve as resolvePath } from 'path'; import { buildBundle } from '../../lib/bundler'; import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; import { loadCliConfig } from '../../lib/config'; -import { paths } from '../../lib/paths'; interface BuildAppOptions { + targetDir: string; writeStats: boolean; configPaths: string[]; } export async function buildApp(options: BuildAppOptions) { - const { name } = await fs.readJson(paths.resolveTarget('package.json')); + const { targetDir, writeStats, configPaths } = options; + const { name } = await fs.readJson(resolvePath(targetDir, 'package.json')); await buildBundle({ + targetDir, entry: 'src/index', parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), - statsJsonEnabled: options.writeStats, + statsJsonEnabled: writeStats, ...(await loadCliConfig({ - args: options.configPaths, + args: configPaths, fromPackage: name, })), }); diff --git a/packages/cli/src/commands/build/buildBackend.ts b/packages/cli/src/commands/build/buildBackend.ts index a4d8858cf8..490cc413a4 100644 --- a/packages/cli/src/commands/build/buildBackend.ts +++ b/packages/cli/src/commands/build/buildBackend.ts @@ -19,7 +19,6 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import tar, { CreateOptions } from 'tar'; import { createDistWorkspace } from '../../lib/packager'; -import { paths } from '../../lib/paths'; import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; import { buildPackage, Output } from '../../lib/builder'; @@ -27,12 +26,13 @@ const BUNDLE_FILE = 'bundle.tar.gz'; const SKELETON_FILE = 'skeleton.tar.gz'; interface BuildBackendOptions { + targetDir: string; skipBuildDependencies: boolean; } export async function buildBackend(options: BuildBackendOptions) { - const targetDir = paths.resolveTarget('dist'); - const pkg = await fs.readJson(paths.resolveTarget('package.json')); + const { targetDir, skipBuildDependencies } = options; + const pkg = await fs.readJson(resolvePath(targetDir, 'package.json')); // We build the target package without generating type declarations. await buildPackage({ outputs: new Set([Output.cjs]) }); @@ -41,7 +41,7 @@ export async function buildBackend(options: BuildBackendOptions) { try { await createDistWorkspace([pkg.name], { targetDir: tmpDir, - buildDependencies: !options.skipBuildDependencies, + buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), skeleton: SKELETON_FILE, diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index 8c13b515d7..1189883b12 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -17,6 +17,7 @@ import { Command } from 'commander'; import { buildPackage, Output } from '../../lib/builder'; import { findRoleFromCommand, getRoleInfo } from '../../lib/role'; +import { paths } from '../../lib/paths'; import { buildApp } from './buildApp'; import { buildBackend } from './buildBackend'; @@ -25,12 +26,14 @@ export async function command(cmd: Command): Promise { if (role === 'app') { return buildApp({ + targetDir: paths.resolveTarget('dist'), configPaths: cmd.config as string[], writeStats: Boolean(cmd.stats), }); } if (role === 'backend') { return buildBackend({ + targetDir: paths.resolveTarget('dist'), skipBuildDependencies: Boolean(cmd.skipBuildDependencies), }); } diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index b7de9ced14..2211af1dda 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -35,7 +35,11 @@ export function registerRepoCommand(program: CommanderStatic) { command .command('build') .description( - 'Build all packages in the project that use the standard backstage build script', + 'Build packages in the project, excluding bundled app and backend packages.', + ) + .option( + '--all', + 'Build all packages, including bundled app and backend packages.', ) .action(lazy(() => import('./repo/build').then(m => m.command))); } diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index 7b1e4771ec..84dbe10fa3 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -15,13 +15,65 @@ */ import chalk from 'chalk'; +import { Command } from 'commander'; import { relative as relativePath } from 'path'; import { buildPackages, getOutputsForRole } from '../../lib/builder'; import { PackageGraph } from '../../lib/monorepo'; +import { ExtendedPackage } from '../../lib/monorepo/PackageGraph'; import { paths } from '../../lib/paths'; +import { getRoleInfo } from '../../lib/role'; +import { buildApp } from '../build/buildApp'; +import { buildBackend } from '../build/buildBackend'; -export async function command(): Promise { +function parseScriptOptions( + cmd: Command, + scriptCommandName: string, + args: string[], +) { + let rootCommand = cmd; + while (rootCommand.parent) { + rootCommand = rootCommand.parent; + } + const scriptCommand = rootCommand.commands.find(c => c.name() === 'script')!; + const targetCommand = scriptCommand.commands.find( + c => c.name() === scriptCommandName, + ); + if (!targetCommand) { + throw new Error(`Could not find script command '${scriptCommandName}'`); + } + + const currentOpts = targetCommand._optionValues; + const currentStore = targetCommand._storeOptionsAsProperties; + + const result: Record = {}; + targetCommand._storeOptionsAsProperties = false; + targetCommand._optionValues = result; + + targetCommand.parseOptions(args); + + targetCommand._storeOptionsAsProperties = currentOpts; + targetCommand._optionValues = currentStore; + + return result; +} + +function parseBackstageScript( + cmd: Command, + expectedScript: string, + scriptStr?: string, +) { + const expectedPrefix = `backstage-cli script ${expectedScript}`; + if (!scriptStr || !scriptStr.startsWith(expectedPrefix)) { + return undefined; + } + + const argsStr = scriptStr.slice(expectedPrefix.length).trim(); + return parseScriptOptions(cmd, expectedScript, argsStr.split(' ')); +} + +export async function command(cmd: Command): Promise { const packages = await PackageGraph.listTargetPackages(); + const bundledPackages = new Array(); const options = packages.flatMap(pkg => { const role = pkg.packageJson.backstage?.role; @@ -32,7 +84,13 @@ export async function command(): Promise { const outputs = getOutputsForRole(role); if (outputs.size === 0) { - console.warn(`Ignored ${pkg.packageJson.name} because it has no output`); + if (getRoleInfo(role).output.includes('bundle')) { + bundledPackages.push(pkg); + } else { + console.warn( + `Ignored ${pkg.packageJson.name} because it has no output`, + ); + } return []; } @@ -43,7 +101,9 @@ export async function command(): Promise { ); return []; } - if (!buildScript.startsWith('backstage-cli script build')) { + + const buildOptions = parseBackstageScript(cmd, 'build', buildScript); + if (!buildOptions) { console.warn( `Ignored ${pkg.packageJson.name} because it has a custom build script, '${buildScript}'`, ); @@ -54,11 +114,46 @@ export async function command(): Promise { targetDir: pkg.dir, outputs, logPrefix: `${chalk.cyan(relativePath(paths.targetRoot, pkg.dir))}: `, - // TODO(Rugvip): Use commander to parse the script and grab these instead - minify: buildScript.includes('--minify'), - useApiExtractor: buildScript.includes('--experimental-type-build'), + minify: buildOptions.minify, + useApiExtractor: buildOptions.experimentalTypeBuild, }; }); + console.log('Building packages'); await buildPackages(options); + + if (cmd.all) { + const apps = bundledPackages.filter( + pkg => pkg.packageJson.backstage?.role === 'app', + ); + + console.log('Building apps'); + await Promise.all( + apps.map(async pkg => { + const buildOptions = parseBackstageScript( + cmd, + 'build', + pkg.packageJson.scripts?.build, + ); + await buildApp({ + targetDir: pkg.dir, + configPaths: (buildOptions?.config as string[]) ?? [], + writeStats: Boolean(buildOptions?.stats), + }); + }), + ); + + console.log('Building backends'); + const backends = bundledPackages.filter( + pkg => pkg.packageJson.backstage?.role === 'backend', + ); + await Promise.all( + backends.map(async pkg => { + await buildBackend({ + targetDir: pkg.dir, + skipBuildDependencies: true, + }); + }), + ); + } } diff --git a/packages/cli/src/lib/bundler/paths.ts b/packages/cli/src/lib/bundler/paths.ts index d465b3010f..3d4925c66b 100644 --- a/packages/cli/src/lib/bundler/paths.ts +++ b/packages/cli/src/lib/bundler/paths.ts @@ -15,55 +15,58 @@ */ import fs from 'fs-extra'; +import { resolve as resolvePath } from 'path'; import { paths } from '../paths'; export type BundlingPathsOptions = { // bundle entrypoint, e.g. 'src/index' entry: string; + // Target directory, defaulting to paths.targetDir + targetDir?: string; }; export function resolveBundlingPaths(options: BundlingPathsOptions) { - const { entry } = options; + const { entry, targetDir = paths.targetDir } = options; const resolveTargetModule = (pathString: string) => { for (const ext of ['mjs', 'js', 'ts', 'tsx', 'jsx']) { - const filePath = paths.resolveTarget(`${pathString}.${ext}`); + const filePath = resolvePath(targetDir, `${pathString}.${ext}`); if (fs.pathExistsSync(filePath)) { return filePath; } } - return paths.resolveTarget(`${pathString}.js`); + return resolvePath(targetDir, `${pathString}.js`); }; let targetPublic = undefined; - let targetHtml = paths.resolveTarget('public/index.html'); + let targetHtml = resolvePath(targetDir, 'public/index.html'); // Prefer public folder if (fs.pathExistsSync(targetHtml)) { - targetPublic = paths.resolveTarget('public'); + targetPublic = resolvePath(targetDir, 'public'); } else { - targetHtml = paths.resolveTarget(`${entry}.html`); + targetHtml = resolvePath(targetDir, `${entry}.html`); if (!fs.pathExistsSync(targetHtml)) { targetHtml = paths.resolveOwn('templates/serve_index.html'); } } // Backend plugin dev run file - const targetRunFile = paths.resolveTarget('src/run.ts'); + const targetRunFile = resolvePath(targetDir, 'src/run.ts'); const runFileExists = fs.pathExistsSync(targetRunFile); return { targetHtml, targetPublic, - targetPath: paths.resolveTarget('.'), + targetPath: resolvePath(targetDir, '.'), targetRunFile: runFileExists ? targetRunFile : undefined, - targetDist: paths.resolveTarget('dist'), - targetAssets: paths.resolveTarget('assets'), - targetSrc: paths.resolveTarget('src'), - targetDev: paths.resolveTarget('dev'), + targetDist: resolvePath(targetDir, 'dist'), + targetAssets: resolvePath(targetDir, 'assets'), + targetSrc: resolvePath(targetDir, 'src'), + targetDev: resolvePath(targetDir, 'dev'), targetEntry: resolveTargetModule(entry), targetTsConfig: paths.resolveTargetRoot('tsconfig.json'), - targetPackageJson: paths.resolveTarget('package.json'), + targetPackageJson: resolvePath(targetDir, 'package.json'), rootNodeModules: paths.resolveTargetRoot('node_modules'), root: paths.targetRoot, }; diff --git a/packages/cli/src/lib/bundler/types.ts b/packages/cli/src/lib/bundler/types.ts index eae0452d8d..14e60c8892 100644 --- a/packages/cli/src/lib/bundler/types.ts +++ b/packages/cli/src/lib/bundler/types.ts @@ -35,6 +35,8 @@ export type ServeOptions = BundlingPathsOptions & { }; export type BuildOptions = BundlingPathsOptions & { + // Target directory, defaulting to paths.targetDir + targetDir?: string; statsJsonEnabled: boolean; parallel?: ParallelOption; schema?: ConfigSchema; From 9b0f6458b84d8d61cc5cd4a0a58cdc2f47f8268a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Feb 2022 23:51:31 +0100 Subject: [PATCH 021/130] cli: refactored build script parser Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/repo/build.ts | 120 +++++++++++++----------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index 84dbe10fa3..e8058887c5 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -25,56 +25,61 @@ import { getRoleInfo } from '../../lib/role'; import { buildApp } from '../build/buildApp'; import { buildBackend } from '../build/buildBackend'; -function parseScriptOptions( - cmd: Command, - scriptCommandName: string, - args: string[], -) { - let rootCommand = cmd; - while (rootCommand.parent) { - rootCommand = rootCommand.parent; - } - const scriptCommand = rootCommand.commands.find(c => c.name() === 'script')!; - const targetCommand = scriptCommand.commands.find( - c => c.name() === scriptCommandName, - ); - if (!targetCommand) { - throw new Error(`Could not find script command '${scriptCommandName}'`); +function createScriptOptionsParser(anyCmd: Command, commandPath: string[]) { + // Regardless of what command instance is passed in we want to find + // the root command and resolve the path from there + let rootCmd = anyCmd; + while (rootCmd.parent) { + rootCmd = rootCmd.parent; } - const currentOpts = targetCommand._optionValues; - const currentStore = targetCommand._storeOptionsAsProperties; - - const result: Record = {}; - targetCommand._storeOptionsAsProperties = false; - targetCommand._optionValues = result; - - targetCommand.parseOptions(args); - - targetCommand._storeOptionsAsProperties = currentOpts; - targetCommand._optionValues = currentStore; - - return result; -} - -function parseBackstageScript( - cmd: Command, - expectedScript: string, - scriptStr?: string, -) { - const expectedPrefix = `backstage-cli script ${expectedScript}`; - if (!scriptStr || !scriptStr.startsWith(expectedPrefix)) { - return undefined; + // Now find the command that was requested + let targetCmd = rootCmd as Command | undefined; + for (const name of commandPath) { + targetCmd = targetCmd?.commands.find(c => c.name() === name) as + | Command + | undefined; } - const argsStr = scriptStr.slice(expectedPrefix.length).trim(); - return parseScriptOptions(cmd, expectedScript, argsStr.split(' ')); + if (!targetCmd) { + throw new Error(`Could not find script command '${commandPath.join(' ')}'`); + } + const cmd = targetCmd; + + const expectedScript = `backstage-cli ${commandPath.join(' ')}`; + + return (scriptStr?: string) => { + if (!scriptStr || !scriptStr.startsWith(expectedScript)) { + return undefined; + } + + const argsStr = scriptStr.slice(expectedScript.length).trim(); + + // Can't clone or copy or even use commands as prototype, so we mutate + // the necessary members instead, and then reset them once we're done + const currentOpts = cmd._optionValues; + const currentStore = cmd._storeOptionsAsProperties; + + const result: Record = {}; + cmd._storeOptionsAsProperties = false; + cmd._optionValues = result; + + // Triggers the writing of options to the result object + cmd.parseOptions(argsStr.split(' ')); + + cmd._storeOptionsAsProperties = currentOpts; + cmd._optionValues = currentStore; + + return result; + }; } export async function command(cmd: Command): Promise { const packages = await PackageGraph.listTargetPackages(); const bundledPackages = new Array(); + const parseBuildScript = createScriptOptionsParser(cmd, ['script', 'build']); + const options = packages.flatMap(pkg => { const role = pkg.packageJson.backstage?.role; if (!role) { @@ -94,18 +99,10 @@ export async function command(cmd: Command): Promise { return []; } - const buildScript = pkg.packageJson.scripts?.build; - if (!buildScript) { - console.warn( - `Ignored ${pkg.packageJson.name} because it has no build script`, - ); - return []; - } - - const buildOptions = parseBackstageScript(cmd, 'build', buildScript); + const buildOptions = parseBuildScript(pkg.packageJson.scripts?.build); if (!buildOptions) { console.warn( - `Ignored ${pkg.packageJson.name} because it has a custom build script, '${buildScript}'`, + `Ignored ${pkg.packageJson.name} because it does not have a matching build script`, ); return []; } @@ -130,15 +127,17 @@ export async function command(cmd: Command): Promise { console.log('Building apps'); await Promise.all( apps.map(async pkg => { - const buildOptions = parseBackstageScript( - cmd, - 'build', - pkg.packageJson.scripts?.build, - ); + const buildOptions = parseBuildScript(pkg.packageJson.scripts?.build); + if (!buildOptions) { + console.warn( + `Ignored ${pkg.packageJson.name} because it does not have a matching build script`, + ); + return; + } await buildApp({ targetDir: pkg.dir, - configPaths: (buildOptions?.config as string[]) ?? [], - writeStats: Boolean(buildOptions?.stats), + configPaths: (buildOptions.config as string[]) ?? [], + writeStats: Boolean(buildOptions.stats), }); }), ); @@ -149,6 +148,13 @@ export async function command(cmd: Command): Promise { ); await Promise.all( backends.map(async pkg => { + const buildOptions = parseBuildScript(pkg.packageJson.scripts?.build); + if (!buildOptions) { + console.warn( + `Ignored ${pkg.packageJson.name} because it does not have a matching build script`, + ); + return; + } await buildBackend({ targetDir: pkg.dir, skipBuildDependencies: true, From 9b122a780caf35be74c6c9eb1a962524e337cd50 Mon Sep 17 00:00:00 2001 From: Jonah Back Date: Sun, 6 Feb 2022 19:22:52 -0800 Subject: [PATCH 022/130] feat: add optional userExpand parameter for ms graph Signed-off-by: Jonah Back --- .changeset/ninety-dancers-bow.md | 5 +++++ .../src/microsoftGraph/config.ts | 6 ++++++ .../src/microsoftGraph/read.ts | 4 ++++ .../src/processors/MicrosoftGraphOrgReaderProcessor.ts | 1 + 4 files changed, 16 insertions(+) create mode 100644 .changeset/ninety-dancers-bow.md diff --git a/.changeset/ninety-dancers-bow.md b/.changeset/ninety-dancers-bow.md new file mode 100644 index 0000000000..dc8bd7b702 --- /dev/null +++ b/.changeset/ninety-dancers-bow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +Add userExpand option to allow users to expand fields retrieved from the Graph API - for use in custom transformers diff --git a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/config.ts b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/config.ts index 4d37e24632..c401bc2553 100644 --- a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/config.ts +++ b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/config.ts @@ -52,6 +52,12 @@ export type MicrosoftGraphProviderConfig = { * E.g. "accountEnabled eq true and userType eq 'member'" */ userFilter?: string; + /** + * The expand argument to apply to users. + * + * E.g. "manager" + */ + userExpand?: string[]; /** * The filter to apply to extract users by groups memberships. * diff --git a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/read.ts b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/read.ts index b2845ac78d..58e60ab76a 100644 --- a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/read.ts +++ b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/read.ts @@ -85,6 +85,7 @@ export async function readMicrosoftGraphUsers( client: MicrosoftGraphClient, options: { userFilter?: string; + userExpand?: string[]; transformer?: UserTransformer; logger: Logger; }, @@ -99,6 +100,7 @@ export async function readMicrosoftGraphUsers( for await (const user of client.getUsers({ filter: options.userFilter, + expand: options.userExpand, })) { // Process all users in parallel, otherwise it can take quite some time promises.push( @@ -500,6 +502,7 @@ export async function readMicrosoftGraphOrg( client: MicrosoftGraphClient, tenantId: string, options: { + userExpand?: string[]; userFilter?: string; userGroupMemberFilter?: string; groupFilter?: string; @@ -524,6 +527,7 @@ export async function readMicrosoftGraphOrg( } else { const { users: usersWithFilter } = await readMicrosoftGraphUsers(client, { userFilter: options.userFilter, + userExpand: options.userExpand, transformer: options.userTransformer, logger: options.logger, }); diff --git a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts index 351a4983d9..e0e63d86fc 100644 --- a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts +++ b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts @@ -102,6 +102,7 @@ export class MicrosoftGraphOrgReaderProcessor implements CatalogProcessor { client, provider.tenantId, { + userExpand: provider.userExpand, userFilter: provider.userFilter, userGroupMemberFilter: provider.userGroupMemberFilter, groupFilter: provider.groupFilter, From 3cfd0ac71ca4c061871812d36d6452b7c0a4508f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Feb 2022 04:36:42 +0000 Subject: [PATCH 023/130] chore(deps): bump fork-ts-checker-webpack-plugin Bumps [fork-ts-checker-webpack-plugin](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin) from 7.0.0-alpha.11 to 7.1.1. - [Release notes](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/releases) - [Changelog](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/compare/v7.0.0-alpha.11...v7.1.1) --- updated-dependencies: - dependency-name: fork-ts-checker-webpack-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 65 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4083a1a58e..63f3e0d43d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -311,7 +311,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.8.3": version "7.16.7" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== @@ -8404,10 +8404,10 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -chokidar@^3.2.2, chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +chokidar@^3.2.2, chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -12166,22 +12166,21 @@ fork-ts-checker-webpack-plugin@^6.5.0: tapable "^1.0.0" fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: - version "7.0.0-alpha.11" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.0.0-alpha.11.tgz#aa51ff15f203547ae6052b91fa912371db7557b9" - integrity sha512-10Q0sjG24BqIkAEFCb+JP0laM6gYO2+3ZV0lBHQ6kJ0+Ot2TffRFcyNkWQBRQqoyqtrDaHfxnjHJ+uXsMO13Bg== + version "7.1.1" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.1.1.tgz#9806c04f3aecaec8c9e8872806cd1f26d50d92a8" + integrity sha512-MgAv1g6+HLXz1iq2AZRfBjDhwBwk1HRSjuhNiMs8ax/3tsFo0rHedKwuE6ok44sJ5F5VgwPZae8gq0wiBAqYRw== dependencies: - "@babel/code-frame" "^7.14.5" + "@babel/code-frame" "^7.16.7" chalk "^4.1.2" - chokidar "^3.5.2" - cosmiconfig "^7.0.0" + chokidar "^3.5.3" + cosmiconfig "^7.0.1" deepmerge "^4.2.2" fs-extra "^10.0.0" - glob "^7.1.7" - memfs "^3.2.2" + memfs "^3.4.1" minimatch "^3.0.4" - schema-utils "3.1.1" + schema-utils "4.0.0" semver "^7.3.5" - tapable "^2.0.0" + tapable "^2.2.1" form-data-encoder@^1.4.3: version "1.6.0" @@ -16701,10 +16700,10 @@ media-typer@0.3.0: vinyl "^2.0.1" vinyl-file "^3.0.0" -memfs@^3.1.2, memfs@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" - integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== +memfs@^3.1.2, memfs@^3.2.2, memfs@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" + integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== dependencies: fs-monkey "1.0.3" @@ -21453,16 +21452,7 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@3.1.1, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: +schema-utils@4.0.0, schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== @@ -21472,6 +21462,15 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + scoped-regex@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" @@ -22885,10 +22884,10 @@ tapable@^1.0.0: resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar-fs@2.1.1, tar-fs@^2.1.1: version "2.1.1" From 88f5a56b6016f717c1fb7dd11546e21156b21167 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 7 Feb 2022 10:34:24 +0100 Subject: [PATCH 024/130] Update .github/workflows/verify_dco.yaml Signed-off-by: Johan Haals Co-authored-by: Adam Harvey --- .github/workflows/verify_dco.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml index 8d071afd4c..27ed7317a0 100644 --- a/.github/workflows/verify_dco.yaml +++ b/.github/workflows/verify_dco.yaml @@ -50,7 +50,7 @@ jobs: } console.log(`creating comment on PR #${pull.number}`); - const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the DCO section in [CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; + const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; await github.rest.issues.createComment({ repo, owner, From 1239b113b97dafdf90b33b5ad9d029c814690847 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 7 Feb 2022 10:35:45 +0100 Subject: [PATCH 025/130] format Signed-off-by: Johan Haals --- .github/workflows/verify_dco.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml index 27ed7317a0..28c22b0b66 100644 --- a/.github/workflows/verify_dco.yaml +++ b/.github/workflows/verify_dco.yaml @@ -1,7 +1,7 @@ name: Verify DCO on: schedule: - - cron: '*/15 * * * *' + - cron: '*/15 * * * *' jobs: dco-helper: From 4922f11fe3d35607201b41fcc51e37fe57b7453c Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 7 Feb 2022 14:33:12 +0100 Subject: [PATCH 026/130] update type from JSX.Element or string to ReactNode + add test for string based prop Signed-off-by: Emma Indal --- .../src/layout/ErrorPage/ErrorPage.test.tsx | 16 ++++++++++++++++ .../src/layout/ErrorPage/ErrorPage.tsx | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx index 57d0ba34a1..2efdc5da33 100644 --- a/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx +++ b/packages/core-components/src/layout/ErrorPage/ErrorPage.test.tsx @@ -32,6 +32,22 @@ describe('', () => { expect(getByTestId('go-back-link')).toBeInTheDocument(); }); + it('should render with additional information of type string', async () => { + const { getByText } = await renderInTestApp( + , + ); + expect( + getByText(/looks like someone dropped the mic!/i), + ).toBeInTheDocument(); + expect( + getByText(/This is a string based additional information/i), + ).toBeInTheDocument(); + }); + it('should render with additional information including link', async () => { const { getByText } = await renderInTestApp( Date: Mon, 7 Feb 2022 14:35:31 +0100 Subject: [PATCH 027/130] update changeset Signed-off-by: Emma Indal --- .changeset/khaki-jokes-grab.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/khaki-jokes-grab.md b/.changeset/khaki-jokes-grab.md index e94a580e58..31201c1078 100644 --- a/.changeset/khaki-jokes-grab.md +++ b/.changeset/khaki-jokes-grab.md @@ -2,4 +2,4 @@ '@backstage/core-components': patch --- -Adjust ErrorPage to accept optional supportUrl property to override app config and JSX Element as additionalInfo property. +Adjust ErrorPage to accept optional supportUrl property to override app support config. Update type of additionalInfo property to be ReactNode to accept both string and component. From 41402f98a812eebda8143a73c71237c004a2c381 Mon Sep 17 00:00:00 2001 From: snehaljos Date: Mon, 7 Feb 2022 19:21:00 +0530 Subject: [PATCH 028/130] Fixed bug in UI | Fix for issue #9157 Signed-off-by: snehaljos --- .../src/components/TemplatePage/TemplatePage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 852ae3d81c..80fa95a3e3 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -127,7 +127,12 @@ export const TemplatePage = ({ const query = qs.parse(window.location.search, { ignoreQueryPrefix: true, }); - + const obj = query?.formData; + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + obj[key] = obj[key] === 'true'; + } + } return query.formData ?? {}; }); const handleFormReset = () => setFormState({}); From 3d05c1da92984939d7aff5b8a6588c104097f003 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 15:18:46 +0100 Subject: [PATCH 029/130] cli: fix lint invocation Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/lint.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/lint.ts b/packages/cli/src/commands/lint.ts index 6db17dbfc4..9a91e2e5b8 100644 --- a/packages/cli/src/commands/lint.ts +++ b/packages/cli/src/commands/lint.ts @@ -18,14 +18,14 @@ import { Command } from 'commander'; import { paths } from '../lib/paths'; import { ESLint } from 'eslint'; -export default async (cmd: Command) => { +export default async (cmd: Command, cmdArgs: string[]) => { const eslint = new ESLint({ cwd: paths.targetDir, fix: cmd.fix, extensions: ['js', 'jsx', 'ts', 'tsx', 'mjs', 'cjs'], }); - const results = await eslint.lintFiles(['.']); + const results = await eslint.lintFiles(cmdArgs ?? ['.']); if (cmd.fix) { await ESLint.outputFixes(results); From 2441d1cf5922fa1e1b73d2980e225edd3efb99a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 04:22:06 +0000 Subject: [PATCH 030/130] chore(deps): bump knex from 0.95.6 to 1.0.2 Bumps [knex](https://github.com/knex/knex) from 0.95.6 to 1.0.2. - [Release notes](https://github.com/knex/knex/releases) - [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md) - [Commits](https://github.com/knex/knex/commits) --- updated-dependencies: - dependency-name: knex dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .changeset/dependabot-e379ac7.md | 16 ++++ packages/backend-common/package.json | 2 +- packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/package.json | 2 +- packages/backend/package.json | 2 +- plugins/app-backend/package.json | 2 +- plugins/auth-backend/package.json | 2 +- plugins/bazaar-backend/package.json | 2 +- plugins/catalog-backend/package.json | 2 +- plugins/code-coverage-backend/package.json | 2 +- plugins/scaffolder-backend/package.json | 2 +- plugins/search-backend-module-pg/package.json | 2 +- plugins/tech-insights-backend/package.json | 2 +- plugins/techdocs-backend/package.json | 2 +- yarn.lock | 75 +++++++------------ 15 files changed, 58 insertions(+), 59 deletions(-) create mode 100644 .changeset/dependabot-e379ac7.md diff --git a/.changeset/dependabot-e379ac7.md b/.changeset/dependabot-e379ac7.md new file mode 100644 index 0000000000..c3c67d78ec --- /dev/null +++ b/.changeset/dependabot-e379ac7.md @@ -0,0 +1,16 @@ +--- +'@backstage/backend-common': patch +'@backstage/backend-tasks': patch +'@backstage/backend-test-utils': patch +'@backstage/plugin-app-backend': patch +'@backstage/plugin-auth-backend': patch +'@backstage/plugin-bazaar-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-code-coverage-backend': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-search-backend-module-pg': patch +'@backstage/plugin-tech-insights-backend': patch +'@backstage/plugin-techdocs-backend': patch +--- + +chore(deps): bump `knex` from 0.95.6 to 1.0.2 diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index b661241623..8170270717 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -58,7 +58,7 @@ "jose": "^1.27.1", "keyv": "^4.0.3", "keyv-memcache": "^1.2.5", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "logform": "^2.3.2", "luxon": "^2.0.2", diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index a060e5e99c..f11d05a53d 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -34,7 +34,7 @@ "@backstage/errors": "^0.2.0", "@backstage/types": "^0.1.1", "@types/luxon": "^2.0.4", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "node-abort-controller": "^3.0.1", diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index b6db1694c3..82e95024a2 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -33,7 +33,7 @@ "@backstage/backend-common": "^0.10.6", "@backstage/cli": "^0.13.1", "@backstage/config": "^0.1.13", - "knex": "^0.95.1", + "knex": "^1.0.2", "mysql2": "^2.2.5", "pg": "^8.3.0", "sqlite3": "^5.0.1", diff --git a/packages/backend/package.json b/packages/backend/package.json index dda43c5e78..cc589831df 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -64,7 +64,7 @@ "express": "^4.17.1", "express-promise-router": "^4.1.0", "express-prom-bundle": "^6.3.6", - "knex": "^0.95.1", + "knex": "^1.0.2", "pg": "^8.3.0", "pg-connection-string": "^2.3.0", "prom-client": "^14.0.1", diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 361dc07b2c..ab9216e512 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -40,7 +40,7 @@ "express-promise-router": "^4.1.0", "fs-extra": "9.1.0", "helmet": "^4.0.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "winston": "^3.2.1", diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index e077444292..909cfbd14d 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -50,7 +50,7 @@ "helmet": "^4.0.0", "jose": "^1.27.1", "jwt-decode": "^3.1.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "minimatch": "^3.0.3", diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index a713e61503..790d97defe 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -26,7 +26,7 @@ "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "winston": "^3.2.1", "yn": "^4.0.0" }, diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index f2f9d91b1b..881b9b1f2d 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -52,7 +52,7 @@ "fs-extra": "9.1.0", "git-url-parse": "^11.6.0", "glob": "^7.1.6", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "node-fetch": "^2.6.1", diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index e01619671f..d3e3c1da57 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -30,7 +30,7 @@ "express": "^4.17.1", "express-promise-router": "^4.1.0", "express-xml-bodyparser": "^0.3.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "uuid": "^8.3.2", "winston": "^3.2.1", "yn": "^4.0.0" diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 335d85327a..32f584c69a 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -59,7 +59,7 @@ "isbinaryfile": "^4.0.8", "isomorphic-git": "^1.8.0", "jsonschema": "^1.2.6", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "morgan": "^1.10.0", diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 51a7933ae3..aab90d688b 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -24,7 +24,7 @@ "@backstage/search-common": "^0.2.2", "@backstage/plugin-search-backend-node": "^0.4.5", "lodash": "^4.17.21", - "knex": "^0.95.1" + "knex": "^1.0.2" }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.16", diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index d63bb60499..93803ed249 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -41,7 +41,7 @@ "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", "node-cron": "^3.0.0", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 292b70a61d..38ad0752b4 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -46,7 +46,7 @@ "express": "^4.17.1", "express-promise-router": "^4.1.0", "fs-extra": "9.1.0", - "knex": "^0.95.1", + "knex": "^1.0.2", "lodash": "^4.17.21", "node-fetch": "^2.6.1", "p-limit": "^3.1.0", diff --git a/yarn.lock b/yarn.lock index 83e5796a6e..92d29b9b33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8777,12 +8777,7 @@ colord@^2.9.1: resolved "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== -colorette@1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colorette@^2.0.10, colorette@^2.0.16: +colorette@2.0.16, colorette@^2.0.10, colorette@^2.0.16: version "2.0.16" resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== @@ -8870,7 +8865,7 @@ commander@^6.1.0: resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.1.0, commander@^7.2.0: +commander@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -10009,20 +10004,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@4.3.3, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: version "4.3.3" resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" -debug@4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@4.3.2: version "4.3.2" resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -12536,10 +12524,10 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getopts@2.2.5: - version "2.2.5" - resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" - integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== +getopts@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz#71e5593284807e03e2427449d4f6712a268666f4" + integrity sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA== getos@^3.2.1: version "3.2.1" @@ -15631,23 +15619,23 @@ kleur@^4.0.3: resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== -knex@^0.95.1: - version "0.95.6" - resolved "https://registry.npmjs.org/knex/-/knex-0.95.6.tgz#5fc60ffc2935567bf122925526b1b06b8dbca785" - integrity sha512-noRcmkJl1MdicUbezrcr8OtVLcqQ/cfLIwgAx5EaxNxQOIJff88rBeyLywUScGhQNd/b78DIKKXZzLMrm6h/cw== +knex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/knex/-/knex-1.0.2.tgz#1b79273f39f587a631c1a5515482c203d5971781" + integrity sha512-RuDKTylj6X/3nYomnsFV8sOdxTcehLHczOd3yrUdULE4pQR8jVlZxYt3vvIU04otJF0Cw9DCtRt05S4PN4kDpw== dependencies: - colorette "1.2.1" - commander "^7.1.0" - debug "4.3.1" + colorette "2.0.16" + commander "^8.3.0" + debug "4.3.3" escalade "^3.1.1" esm "^3.2.25" - getopts "2.2.5" + getopts "2.3.0" interpret "^2.2.0" lodash "^4.17.21" - pg-connection-string "2.4.0" - rechoir "^0.7.0" + pg-connection-string "2.5.0" + rechoir "^0.8.0" resolve-from "^5.0.0" - tarn "^3.0.1" + tarn "^3.0.2" tildify "2.0.0" kuler@^2.0.0: @@ -19068,12 +19056,7 @@ performance-now@^2.1.0: resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pg-connection-string@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" - integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== - -pg-connection-string@^2.3.0, pg-connection-string@^2.4.0, pg-connection-string@^2.5.0: +pg-connection-string@2.5.0, pg-connection-string@^2.3.0, pg-connection-string@^2.4.0, pg-connection-string@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== @@ -20646,12 +20629,12 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: - resolve "^1.9.0" + resolve "^1.20.0" recursive-readdir@^2.2.2: version "2.2.2" @@ -21087,7 +21070,7 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.9.0: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0: version "1.21.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== @@ -22955,10 +22938,10 @@ tar@^6.0.2, tar@^6.1.0, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -tarn@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.1.tgz#ebac2c6dbc6977d34d4526e0a7814200386a8aec" - integrity sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw== +tarn@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" + integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== tdigest@^0.1.1: version "0.1.1" From 1dd5a02e91b822d659021e6de92621463b422087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 4 Feb 2022 10:56:29 +0100 Subject: [PATCH 031/130] fix build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/dependabot-e379ac7.md | 2 + .changeset/popular-planes-lay.md | 58 ++++++++ packages/backend-common/api-report.md | 2 +- packages/backend-test-utils/package.json | 2 +- packages/backend/package.json | 2 +- packages/create-app/src/lib/tasks.test.ts | 2 +- .../packages/backend/package.json.hbs | 2 +- .../migrations/20210326100300_timestamptz.js | 4 +- .../migrations/20200807120600_entitySearch.js | 4 +- .../20201005122705_add_entity_full_name.js | 2 +- .../20201006130744_entity_data_column.js | 2 +- .../20201230103504_update_log_varchar.js | 8 +- plugins/catalog-backend/package.json | 2 +- yarn.lock | 137 ++++-------------- 14 files changed, 103 insertions(+), 126 deletions(-) create mode 100644 .changeset/popular-planes-lay.md diff --git a/.changeset/dependabot-e379ac7.md b/.changeset/dependabot-e379ac7.md index c3c67d78ec..a00f5c5582 100644 --- a/.changeset/dependabot-e379ac7.md +++ b/.changeset/dependabot-e379ac7.md @@ -14,3 +14,5 @@ --- chore(deps): bump `knex` from 0.95.6 to 1.0.2 + +This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 diff --git a/.changeset/popular-planes-lay.md b/.changeset/popular-planes-lay.md new file mode 100644 index 0000000000..2771039ede --- /dev/null +++ b/.changeset/popular-planes-lay.md @@ -0,0 +1,58 @@ +--- +'@backstage/create-app': patch +--- + +**BREAKING:** Updated `knex` to major version 1, which also implies changing out +the underlying `sqlite` implementation. + +The old `sqlite3` NPM library has been abandoned by its maintainers, which has +led to unhandled security reports and other issues. Therefore, in the `knex` 1.x +release line they have instead switched over to the [`@vscode/sqlite3` +library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is +actively maintained by Microsoft. + +This means that as you update to this version of Backstage, there are two +breaking changes that you will have to address in your own repository: + +## Bumping `knex` itself + +All `package.json` files of your repo that used to depend on a 0.x version of +`knex`, should now be updated to depend on the 1.x release line. This applies in +particular to `packages/backend`, but may also occur in backend plugins or +libraries. + +```diff +- "knex": "^0.95.1", ++ "knex": "^1.0.2", +``` + +Almost all existing database code will continue to function without modification +after this bump. The only significant difference that we discovered in the main +repo, is that the `alter()` function had a slightly different signature in +migration files. It now accepts an object with `alterType` and `alterNullable` +fields that clarify a previous grey area such that the intent of the alteration +is made explicit. This is caught by `tsc` and your editor if you are using the +`@ts-check` and `@param` syntax in your migration files +([example](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/migrations/20220116144621_remove_legacy.js#L17)), +which we strongly recommend. + +See the [`knex` documentation](https://knexjs.org/#Schema-alter) for more +information about the `alter` syntax. + +Also see the [`knex` changelog](https://knexjs.org/#changelog) for information +about breaking changes in the 1.x line; if you are using `RETURNING` you may +want to make some additional modifications in your code. + +## Switching out `sqlite3` + +All `package.json` files of your repo that used to depend on `sqlite3`, should +now be updated to depend on `@vscode/sqlite3`. This applies in particular to +`packages/backend`, but may also occur in backend plugins or libraries. + +```diff +- "sqlite3": "^5.0.1", ++ "@vscode/sqlite3": "^5.0.7", +``` + +These should be functionally equivalent, except that the new library will have +addressed some long standing problems with old transitive dependencies etc. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index f53fb9d6e4..9b963f3fc9 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -177,7 +177,7 @@ export const createDatabase: typeof createDatabaseClient; export function createDatabaseClient( dbConfig: Config, overrides?: Partial, -): Knex; +): Knex[]>; // @public export function createRootLogger( diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 82e95024a2..a101b8248e 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -33,10 +33,10 @@ "@backstage/backend-common": "^0.10.6", "@backstage/cli": "^0.13.1", "@backstage/config": "^0.1.13", + "@vscode/sqlite3": "^5.0.7", "knex": "^1.0.2", "mysql2": "^2.2.5", "pg": "^8.3.0", - "sqlite3": "^5.0.1", "testcontainers": "^8.1.2", "uuid": "^8.0.0" }, diff --git a/packages/backend/package.json b/packages/backend/package.json index cc589831df..96dc5d3eb2 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -58,6 +58,7 @@ "@backstage/plugin-todo-backend": "^0.1.20", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^18.5.3", + "@vscode/sqlite3": "^5.0.7", "azure-devops-node-api": "^11.0.1", "dockerode": "^3.3.1", "example-app": "link:../app", @@ -68,7 +69,6 @@ "pg": "^8.3.0", "pg-connection-string": "^2.3.0", "prom-client": "^14.0.1", - "sqlite3": "^5.0.1", "winston": "^3.2.1" }, "devDependencies": { diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 24df97c694..d7b4692aa4 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -208,6 +208,6 @@ describe('templatingTask', () => { // backend dependencies include `sqlite3` from `context.SQLite` expect( fs.readFileSync('templatedApp/packages/backend/package.json', 'utf-8'), - ).toContain('"sqlite3"'); + ).toContain('sqlite3"'); }); }); 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 b27d420820..5dd70286bc 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 @@ -40,7 +40,7 @@ "pg": "^8.3.0", {{/if}} {{#if dbTypeSqlite}} - "sqlite3": "^5.0.1", + "@vscode/sqlite3": "^5.0.7", {{/if}} "winston": "^3.2.1" }, diff --git a/plugins/auth-backend/migrations/20210326100300_timestamptz.js b/plugins/auth-backend/migrations/20210326100300_timestamptz.js index e9bdddde8f..144f450380 100644 --- a/plugins/auth-backend/migrations/20210326100300_timestamptz.js +++ b/plugins/auth-backend/migrations/20210326100300_timestamptz.js @@ -28,7 +28,7 @@ exports.up = async function up(knex) { .notNullable() .defaultTo(knex.fn.now()) .comment('The creation time of the key') - .alter(); + .alter({ alterType: true }); }); } }; @@ -45,7 +45,7 @@ exports.down = async function down(knex) { .notNullable() .defaultTo(knex.fn.now()) .comment('The creation time of the key') - .alter(); + .alter({ alterType: true }); }); } }; diff --git a/plugins/catalog-backend/migrations/20200807120600_entitySearch.js b/plugins/catalog-backend/migrations/20200807120600_entitySearch.js index bdb6037d65..aa05e79be9 100644 --- a/plugins/catalog-backend/migrations/20200807120600_entitySearch.js +++ b/plugins/catalog-backend/migrations/20200807120600_entitySearch.js @@ -23,7 +23,7 @@ exports.up = async function up(knex) { // Sqlite does not support alter column. if (knex.client.config.client !== 'sqlite3') { await knex.schema.alterTable('entities_search', table => { - table.text('value').nullable().alter(); + table.text('value').nullable().alter({ alterType: true }); }); } }; @@ -35,7 +35,7 @@ exports.down = async function down(knex) { // Sqlite does not support alter column. if (knex.client.config.client !== 'sqlite3') { await knex.schema.alterTable('entities_search', table => { - table.string('value').nullable().alter(); + table.string('value').nullable().alter({ alterType: true }); }); } }; diff --git a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js index 2f9b2821eb..366a4b7044 100644 --- a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js +++ b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js @@ -33,7 +33,7 @@ exports.up = async function up(knex) { // SQLite does not support alter column if (knex.client.config.client !== 'sqlite3') { await knex.schema.alterTable('entities', table => { - table.text('full_name').notNullable().alter(); + table.text('full_name').notNullable().alter({ alterNullable: true }); }); } diff --git a/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js b/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js index 214a8f4a73..35b0474f06 100644 --- a/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js +++ b/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js @@ -43,7 +43,7 @@ exports.up = async function up(knex) { // SQLite does not support ALTER COLUMN. if (knex.client.config.client !== 'sqlite3') { await knex.schema.alterTable('entities', table => { - table.text('data').notNullable().alter(); + table.text('data').notNullable().alter({ alterNullable: true }); }); } }; diff --git a/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js b/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js index c4413d4563..9a5ccce9fd 100644 --- a/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js +++ b/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js @@ -26,8 +26,8 @@ exports.up = async function up(knex) { await knex.schema .raw('DROP VIEW location_update_log_latest;') .alterTable('location_update_log', table => { - table.text('message').alter(); - table.text('entity_name').nullable().alter(); + table.text('message').alter({ alterType: true }); + table.text('entity_name').nullable().alter({ alterType: true }); }).raw(` CREATE VIEW location_update_log_latest AS SELECT t1.* FROM location_update_log t1 @@ -53,8 +53,8 @@ exports.down = async function down(knex) { await knex.schema .raw('DROP VIEW location_update_log_latest;') .alterTable('location_update_log', table => { - table.string('message').alter(); - table.string('entity_name').nullable().alter(); + table.string('message').alter({ alterType: true }); + table.string('entity_name').nullable().alter({ alterType: true }); }).raw(` CREATE VIEW location_update_log_latest AS SELECT t1.* FROM location_update_log t1 diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 881b9b1f2d..c2c280c78a 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -75,9 +75,9 @@ "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", "@types/yup": "^0.29.13", + "@vscode/sqlite3": "^5.0.7", "aws-sdk-mock": "^5.2.1", "msw": "^0.35.0", - "sqlite3": "^5.0.1", "supertest": "^6.1.3", "wait-for-expect": "^3.0.2", "luxon": "^2.0.2" diff --git a/yarn.lock b/yarn.lock index 92d29b9b33..5193ab5120 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6457,6 +6457,13 @@ "@typescript-eslint/types" "5.9.1" eslint-visitor-keys "^3.0.0" +"@vscode/sqlite3@^5.0.7": + version "5.0.7" + resolved "https://registry.npmjs.org/@vscode/sqlite3/-/sqlite3-5.0.7.tgz#358df36bb0e9e735c54785e3e4b9b2dce1d32895" + integrity sha512-NlsOf+Hir2r4zopI1qMvzWXPwPJuFscirkmFTniTAT24Yz2FWcyZxzK7UT8iSNiTqOCPz48yF55ZVHaz7tTuVQ== + dependencies: + node-addon-api "^4.2.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -7745,13 +7752,6 @@ blob-util@^2.0.2: resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -block-stream@*: - version "0.0.9" - resolved "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -10263,7 +10263,7 @@ detect-indent@^6.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -12354,7 +12354,7 @@ fsevents@^2.1.2, fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fstream@^1.0.0, fstream@^1.0.12: +fstream@^1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== @@ -12623,7 +12623,7 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -13481,7 +13481,7 @@ hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.3: resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -13527,7 +13527,7 @@ ignore-by-default@^1.0.1: resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= -ignore-walk@^3.0.1, ignore-walk@^3.0.3: +ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== @@ -17356,7 +17356,7 @@ mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -17593,15 +17593,6 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.6.0" - resolved "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" - integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2, negotiator@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -17651,10 +17642,10 @@ node-abort-controller@^3.0.1: resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== -node-addon-api@^3.0.0: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-addon-api@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== node-cache@^5.1.2: version "5.1.2" @@ -17711,24 +17702,6 @@ node-forge@^1.2.0: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== -node-gyp@3.x: - version "3.8.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - node-gyp@^5.0.2: version "5.1.0" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" @@ -17818,22 +17791,6 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-pre-gyp@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" - integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -17855,13 +17812,6 @@ nodemon@^2.0.2: undefsafe "^2.0.3" update-notifier "^4.1.0" -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - nopt@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -17931,7 +17881,7 @@ normalize-url@^6.0.1: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-bundled@^1.0.1, npm-bundled@^1.1.1: +npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== @@ -17982,15 +17932,6 @@ npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: semver "^7.3.4" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - npm-packlist@^2.1.4: version "2.1.4" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" @@ -18060,7 +18001,7 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -18394,7 +18335,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@^0.1.4: version "0.1.5" resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -20058,7 +19999,7 @@ rc-util@^5.16.1: react-is "^16.12.0" shallowequal "^1.1.0" -rc@^1.2.7, rc@^1.2.8: +rc@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -20982,7 +20923,7 @@ request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.0, request@^2.88.0, request@^2.88.2: +request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -21192,7 +21133,7 @@ rifm@^0.7.0: dependencies: "@babel/runtime" "^7.3.1" -rimraf@2, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -21399,7 +21340,7 @@ sax@1.2.1: resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@>=0.6.0, sax@~1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -21506,7 +21447,7 @@ semver-store@^0.3.0: resolved "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz#ce602ff07df37080ec9f4fb40b29576547befbe9" integrity sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -21528,11 +21469,6 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semve dependencies: lru-cache "^6.0.0" -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - send@0.17.2: version "0.17.2" resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" @@ -22152,16 +22088,6 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sqlite3@^5.0.1: - version "5.0.2" - resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz#00924adcc001c17686e0a6643b6cbbc2d3965083" - integrity sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA== - dependencies: - node-addon-api "^3.0.0" - node-pre-gyp "^0.11.0" - optionalDependencies: - node-gyp "3.x" - sqlstring@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz#cdae7169389a1375b18e885f2e60b3e460809514" @@ -22904,16 +22830,7 @@ tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^4, tar@^4.4.12: +tar@^4.4.12: version "4.4.19" resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -24585,7 +24502,7 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" -which@1, which@^1.2.9, which@^1.3.1: +which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== From 50a19ff8dda13d19e6d32c4ad33bf1397f70c555 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 15:58:35 +0100 Subject: [PATCH 032/130] cli: make lint path output relative to repo root Signed-off-by: Patrik Oldsberg --- .changeset/metal-clouds-fail.md | 5 +++++ packages/cli/src/commands/lint.ts | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/metal-clouds-fail.md diff --git a/.changeset/metal-clouds-fail.md b/.changeset/metal-clouds-fail.md new file mode 100644 index 0000000000..083984c015 --- /dev/null +++ b/.changeset/metal-clouds-fail.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package. diff --git a/packages/cli/src/commands/lint.ts b/packages/cli/src/commands/lint.ts index 6db17dbfc4..9b86ea06b3 100644 --- a/packages/cli/src/commands/lint.ts +++ b/packages/cli/src/commands/lint.ts @@ -32,6 +32,11 @@ export default async (cmd: Command) => { } const formatter = await eslint.loadFormatter(cmd.format); + + // This formatter uses the cwd to format file paths, so let's have that happen from the root instead + if (cmd.format === 'eslint-formatter-friendly') { + process.chdir(paths.targetRoot); + } const resultText = formatter.format(results); // If there is any feedback at all, we treat it as a lint failure. This should be From 872fcca2814f33a6df46cb9b29af1da8cd803cd0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Feb 2022 00:36:24 +0100 Subject: [PATCH 033/130] cli: refactor parallelism util + new shared worker util Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/app/build.ts | 4 +- packages/cli/src/commands/backend/bundle.ts | 4 +- packages/cli/src/commands/build/buildApp.ts | 4 +- .../cli/src/commands/build/buildBackend.ts | 4 +- packages/cli/src/commands/versions/bump.ts | 184 +++++++++--------- packages/cli/src/lib/bundler/types.ts | 7 +- packages/cli/src/lib/packager/index.ts | 9 +- packages/cli/src/lib/parallel.test.ts | 159 +++++++++++---- packages/cli/src/lib/parallel.ts | 71 +++++-- 9 files changed, 281 insertions(+), 165 deletions(-) diff --git a/packages/cli/src/commands/app/build.ts b/packages/cli/src/commands/app/build.ts index 36d910fe5b..67b71632c7 100644 --- a/packages/cli/src/commands/app/build.ts +++ b/packages/cli/src/commands/app/build.ts @@ -17,7 +17,7 @@ import fs from 'fs-extra'; import { Command } from 'commander'; import { buildBundle } from '../../lib/bundler'; -import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; +import { getEnvironmentParallelism } from '../../lib/parallel'; import { loadCliConfig } from '../../lib/config'; import { paths } from '../../lib/paths'; @@ -25,7 +25,7 @@ export default async (cmd: Command) => { const { name } = await fs.readJson(paths.resolveTarget('package.json')); await buildBundle({ entry: 'src/index', - parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), + parallelism: getEnvironmentParallelism(), statsJsonEnabled: cmd.stats, ...(await loadCliConfig({ args: cmd.config, diff --git a/packages/cli/src/commands/backend/bundle.ts b/packages/cli/src/commands/backend/bundle.ts index 338d5cdaa0..ec5fa0a131 100644 --- a/packages/cli/src/commands/backend/bundle.ts +++ b/packages/cli/src/commands/backend/bundle.ts @@ -21,7 +21,7 @@ import tar, { CreateOptions } from 'tar'; import { Command } from 'commander'; import { createDistWorkspace } from '../../lib/packager'; import { paths } from '../../lib/paths'; -import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; +import { getEnvironmentParallelism } from '../../lib/parallel'; import { buildPackage, Output } from '../../lib/builder'; const BUNDLE_FILE = 'bundle.tar.gz'; @@ -40,7 +40,7 @@ export default async (cmd: Command) => { targetDir: tmpDir, buildDependencies: Boolean(cmd.buildDependencies), buildExcludes: [pkg.name], - parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), + parallelism: getEnvironmentParallelism(), skeleton: SKELETON_FILE, }); diff --git a/packages/cli/src/commands/build/buildApp.ts b/packages/cli/src/commands/build/buildApp.ts index 62d51a0810..b0959b2d6a 100644 --- a/packages/cli/src/commands/build/buildApp.ts +++ b/packages/cli/src/commands/build/buildApp.ts @@ -17,7 +17,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import { buildBundle } from '../../lib/bundler'; -import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; +import { getEnvironmentParallelism } from '../../lib/parallel'; import { loadCliConfig } from '../../lib/config'; interface BuildAppOptions { @@ -32,7 +32,7 @@ export async function buildApp(options: BuildAppOptions) { await buildBundle({ targetDir, entry: 'src/index', - parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), + parallelism: getEnvironmentParallelism(), statsJsonEnabled: writeStats, ...(await loadCliConfig({ args: configPaths, diff --git a/packages/cli/src/commands/build/buildBackend.ts b/packages/cli/src/commands/build/buildBackend.ts index 490cc413a4..e32b7956db 100644 --- a/packages/cli/src/commands/build/buildBackend.ts +++ b/packages/cli/src/commands/build/buildBackend.ts @@ -19,7 +19,7 @@ import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import tar, { CreateOptions } from 'tar'; import { createDistWorkspace } from '../../lib/packager'; -import { parseParallel, PARALLEL_ENV_VAR } from '../../lib/parallel'; +import { getEnvironmentParallelism } from '../../lib/parallel'; import { buildPackage, Output } from '../../lib/builder'; const BUNDLE_FILE = 'bundle.tar.gz'; @@ -43,7 +43,7 @@ export async function buildBackend(options: BuildBackendOptions) { targetDir: tmpDir, buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], - parallel: parseParallel(process.env[PARALLEL_ENV_VAR]), + parallelism: getEnvironmentParallelism(), skeleton: SKELETON_FILE, }); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 2c16f324bc..0d7c1cdfae 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -30,6 +30,7 @@ import { } from '../../lib/versioning'; import { forbiddenDuplicatesFilter } from './lint'; import { BACKSTAGE_JSON } from '@backstage/cli-common'; +import { runParallelWorkers } from '../../lib/parallel'; const DEP_TYPES = [ 'dependencies', @@ -68,67 +69,76 @@ export default async (cmd: Command) => { const versionBumps = new Map(); // Track package versions that we want to remove from yarn.lock in order to trigger a bump const unlocked = Array<{ name: string; range: string; target: string }>(); - await workerThreads(16, dependencyMap.entries(), async ([name, pkgs]) => { - let target: string; - try { - target = await findTargetVersion(name); - } catch (error) { - if (isError(error) && error.name === 'NotFoundError') { - console.log(`Package info not found, ignoring package ${name}`); - return; - } - throw error; - } - for (const pkg of pkgs) { - if (semver.satisfies(target, pkg.range)) { - if (semver.minVersion(pkg.range)?.version !== target) { - unlocked.push({ name, range: pkg.range, target }); + await runParallelWorkers({ + parallelismFactor: 4, + items: dependencyMap.entries(), + async worker([name, pkgs]) { + let target: string; + try { + target = await findTargetVersion(name); + } catch (error) { + if (isError(error) && error.name === 'NotFoundError') { + console.log(`Package info not found, ignoring package ${name}`); + return; } - - continue; + throw error; } - versionBumps.set( - pkg.name, - (versionBumps.get(pkg.name) ?? []).concat({ - name, - location: pkg.location, - range: `^${target}`, // TODO(Rugvip): Option to use something else than ^? - target, - }), - ); - } + + for (const pkg of pkgs) { + if (semver.satisfies(target, pkg.range)) { + if (semver.minVersion(pkg.range)?.version !== target) { + unlocked.push({ name, range: pkg.range, target }); + } + + continue; + } + versionBumps.set( + pkg.name, + (versionBumps.get(pkg.name) ?? []).concat({ + name, + location: pkg.location, + range: `^${target}`, // TODO(Rugvip): Option to use something else than ^? + target, + }), + ); + } + }, }); const filter = (name: string) => minimatch(name, pattern); // Check for updates of transitive backstage dependencies - await workerThreads(16, lockfile.keys(), async name => { - // Only check @backstage packages and friends, we don't want this to do a full update of all deps - if (!filter(name)) { - return; - } - - let target: string; - try { - target = await findTargetVersion(name); - } catch (error) { - if (isError(error) && error.name === 'NotFoundError') { - console.log(`Package info not found, ignoring package ${name}`); + await runParallelWorkers({ + parallelismFactor: 4, + items: lockfile.keys(), + async worker(name) { + // Only check @backstage packages and friends, we don't want this to do a full update of all deps + if (!filter(name)) { return; } - throw error; - } - for (const entry of lockfile.get(name) ?? []) { - // Ignore lockfile entries that don't satisfy the version range, since - // these can't cause the package to be locked to an older version - if (!semver.satisfies(target, entry.range)) { - continue; + let target: string; + try { + target = await findTargetVersion(name); + } catch (error) { + if (isError(error) && error.name === 'NotFoundError') { + console.log(`Package info not found, ignoring package ${name}`); + return; + } + throw error; } - // Unlock all entries that are within range but on the old version - unlocked.push({ name, range: entry.range, target }); - } + + for (const entry of lockfile.get(name) ?? []) { + // Ignore lockfile entries that don't satisfy the version range, since + // these can't cause the package to be locked to an older version + if (!semver.satisfies(target, entry.range)) { + continue; + } + // Unlock all entries that are within range but on the old version + unlocked.push({ name, range: entry.range, target }); + } + }, }); console.log(); @@ -163,38 +173,42 @@ export default async (cmd: Command) => { } const breakingUpdates = new Map(); - await workerThreads(16, versionBumps.entries(), async ([name, deps]) => { - const pkgPath = resolvePath(deps[0].location, 'package.json'); - const pkgJson = await fs.readJson(pkgPath); + await runParallelWorkers({ + parallelismFactor: 4, + items: versionBumps.entries(), + async worker([name, deps]) { + const pkgPath = resolvePath(deps[0].location, 'package.json'); + const pkgJson = await fs.readJson(pkgPath); - for (const dep of deps) { - console.log( - `${chalk.cyan('bumping')} ${dep.name} in ${chalk.cyan( - name, - )} to ${chalk.yellow(dep.range)}`, - ); + for (const dep of deps) { + console.log( + `${chalk.cyan('bumping')} ${dep.name} in ${chalk.cyan( + name, + )} to ${chalk.yellow(dep.range)}`, + ); - for (const depType of DEP_TYPES) { - if (depType in pkgJson && dep.name in pkgJson[depType]) { - const oldRange = pkgJson[depType][dep.name]; - pkgJson[depType][dep.name] = dep.range; + for (const depType of DEP_TYPES) { + if (depType in pkgJson && dep.name in pkgJson[depType]) { + const oldRange = pkgJson[depType][dep.name]; + pkgJson[depType][dep.name] = dep.range; - // Check if the update was at least a pre-v1 minor or post-v1 major release - const lockfileEntry = lockfile - .get(dep.name) - ?.find(entry => entry.range === oldRange); - if (lockfileEntry) { - const from = lockfileEntry.version; - const to = dep.target; - if (!semver.satisfies(to, `^${from}`)) { - breakingUpdates.set(dep.name, { from, to }); + // Check if the update was at least a pre-v1 minor or post-v1 major release + const lockfileEntry = lockfile + .get(dep.name) + ?.find(entry => entry.range === oldRange); + if (lockfileEntry) { + const from = lockfileEntry.version; + const to = dep.target; + if (!semver.satisfies(to, `^${from}`)) { + breakingUpdates.set(dep.name, { from, to }); + } } } } } - } - await fs.writeJson(pkgPath, pkgJson, { spaces: 2 }); + await fs.writeJson(pkgPath, pkgJson, { spaces: 2 }); + }, }); console.log(); @@ -324,27 +338,3 @@ export async function bumpBackstageJsonVersion() { }, ); } - -async function workerThreads( - count: number, - items: IterableIterator, - fn: (item: T) => Promise, -) { - const queue = Array.from(items); - - async function pop() { - const item = queue.pop(); - if (!item) { - return; - } - - await fn(item); - await pop(); - } - - return Promise.all( - Array(count) - .fill(0) - .map(() => pop()), - ); -} diff --git a/packages/cli/src/lib/bundler/types.ts b/packages/cli/src/lib/bundler/types.ts index 14e60c8892..4d6d2e5c9e 100644 --- a/packages/cli/src/lib/bundler/types.ts +++ b/packages/cli/src/lib/bundler/types.ts @@ -16,7 +16,6 @@ import { AppConfig, Config } from '@backstage/config'; import { BundlingPathsOptions } from './paths'; -import { ParallelOption } from '../parallel'; import { ConfigSchema } from '@backstage/config-loader'; export type BundlingOptions = { @@ -25,7 +24,7 @@ export type BundlingOptions = { frontendConfig: Config; frontendAppConfigs: AppConfig[]; baseUrl: URL; - parallel?: ParallelOption; + parallelism?: number; }; export type ServeOptions = BundlingPathsOptions & { @@ -38,7 +37,7 @@ export type BuildOptions = BundlingPathsOptions & { // Target directory, defaulting to paths.targetDir targetDir?: string; statsJsonEnabled: boolean; - parallel?: ParallelOption; + parallelism?: number; schema?: ConfigSchema; frontendConfig: Config; frontendAppConfigs: AppConfig[]; @@ -47,7 +46,7 @@ export type BuildOptions = BundlingPathsOptions & { export type BackendBundlingOptions = { checksEnabled: boolean; isDev: boolean; - parallel?: ParallelOption; + parallelism?: number; inspectEnabled: boolean; inspectBrkEnabled: boolean; }; diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts index c35e2587b9..40af21bc5e 100644 --- a/packages/cli/src/lib/packager/index.ts +++ b/packages/cli/src/lib/packager/index.ts @@ -24,7 +24,6 @@ import { tmpdir } from 'os'; import tar, { CreateOptions } from 'tar'; import { paths } from '../paths'; import { run } from '../run'; -import { ParallelOption } from '../parallel'; import { dependencies as cliDependencies, devDependencies as cliDevDependencies, @@ -69,9 +68,9 @@ type Options = { buildExcludes?: string[]; /** - * Enable (true/false) or control amount of (number) parallelism in some build steps. + * Controls amount of parallelism in some build steps. */ - parallel?: ParallelOption; + parallelism?: number; /** * If set, creates a skeleton tarball that contains all package.json files @@ -115,8 +114,8 @@ export async function createDistWorkspace( if (toBuild.length > 0) { const scopeArgs = toBuild.flatMap(target => ['--scope', target.name]); const lernaArgs = - options.parallel && Number.isInteger(options.parallel) - ? ['--concurrency', options.parallel.toString()] + options.parallelism && Number.isInteger(options.parallelism) + ? ['--concurrency', options.parallelism.toString()] : []; await run('yarn', ['lerna', ...lernaArgs, 'run', ...scopeArgs, 'build'], { diff --git a/packages/cli/src/lib/parallel.test.ts b/packages/cli/src/lib/parallel.test.ts index c5c33473ff..d851f33f82 100644 --- a/packages/cli/src/lib/parallel.test.ts +++ b/packages/cli/src/lib/parallel.test.ts @@ -14,46 +14,131 @@ * limitations under the License. */ -import { isParallelDefault, parseParallel } from './parallel'; +import { + parseParallelismOption, + getEnvironmentParallelism, + runParallelWorkers, +} from './parallel'; -describe('parallel', () => { - describe('parseParallel', () => { - it('coerces "false" string to boolean', () => { - expect(parseParallel('false')).toBeFalsy(); - }); - - it('coerces "true" to boolean', () => { - expect(parseParallel('true')).toBeTruthy(); - }); - - it('coerces number string to number', () => { - expect(parseParallel('2')).toBe(2); - }); - it.each([[true], [false], [2]])('returns itself for %p', value => { - expect(parseParallel(value as any)).toEqual(value); - }); - - it.each([[undefined], [null]])('returns true for %p', value => { - expect(parseParallel(value as any)).toBe(true); - }); - - it.each([['on'], [2.5], ['2.5']])('throws error for %p', value => { - expect(() => parseParallel(value as any)).toThrowError( - `Parallel option value '${value}' is not a boolean or integer`, - ); - }); +describe('parseParallelismOption', () => { + it('coerces false no parallelism', () => { + expect(parseParallelismOption(false)).toBe(1); + expect(parseParallelismOption('false')).toBe(1); }); - describe('isParallelDefault', () => { - it('returns true if default value', () => { - expect(isParallelDefault(undefined)).toBeTruthy(); - expect(isParallelDefault(true)).toBeTruthy(); - }); + it('coerces true or undefined to default parallelism', () => { + expect(parseParallelismOption(true)).toBe(4); + expect(parseParallelismOption('true')).toBe(4); + expect(parseParallelismOption(undefined)).toBe(4); + expect(parseParallelismOption(null)).toBe(4); + }); - it('returns false if not default value', () => { - expect(isParallelDefault(false)).toBeFalsy(); - expect(isParallelDefault(2)).toBeFalsy(); - expect(isParallelDefault('true' as any)).toBeFalsy(); - }); + it('coerces number string to number', () => { + expect(parseParallelismOption('2')).toBe(2); + }); + + it.each([['on'], [2.5], ['2.5']])('throws error for %p', value => { + expect(() => parseParallelismOption(value as any)).toThrowError( + `Parallel option value '${value}' is not a boolean or integer`, + ); + }); +}); + +describe('getEnvironmentParallelism', () => { + it('reads the parallelism setting from the environment', () => { + process.env.BACKSTAGE_CLI_BUILD_PARALLEL = '2'; + expect(getEnvironmentParallelism()).toBe(2); + + process.env.BACKSTAGE_CLI_BUILD_PARALLEL = 'true'; + expect(getEnvironmentParallelism()).toBe(4); + + process.env.BACKSTAGE_CLI_BUILD_PARALLEL = 'false'; + expect(getEnvironmentParallelism()).toBe(1); + + delete process.env.BACKSTAGE_CLI_BUILD_PARALLEL; + expect(getEnvironmentParallelism()).toBe(4); + }); +}); + +describe('runParallelWorkers', () => { + it('executes work in parallel', async () => { + const started = new Array(); + const done = new Array(); + const waiting = new Array<() => void>(); + + const work = runParallelWorkers({ + items: [0, 1, 2, 3, 4], + parallelismFactor: 0.5, // 2 at a time + worker: async item => { + started.push(item); + await new Promise(resolve => { + waiting[item] = resolve; + }); + done.push(item); + }, + }); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1]); + expect(done).toEqual([]); + waiting[0](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1, 2]); + expect(done).toEqual([0]); + waiting[1](); + waiting[2](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1, 2, 3, 4]); + expect(done).toEqual([0, 1, 2]); + waiting[3](); + waiting[4](); + + await work; + expect(done).toEqual([0, 1, 2, 3, 4]); + }); + + it('executes work sequentially', async () => { + const started = new Array(); + const done = new Array(); + const waiting = new Array<() => void>(); + + const work = runParallelWorkers({ + items: [0, 1, 2, 3, 4], + parallelismFactor: 0, // 1 at a time + worker: async item => { + started.push(item); + await new Promise(resolve => { + waiting[item] = resolve; + }); + done.push(item); + }, + }); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0]); + expect(done).toEqual([]); + waiting[0](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1]); + expect(done).toEqual([0]); + waiting[1](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1, 2]); + waiting[2](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1, 2, 3]); + waiting[3](); + + await new Promise(resolve => setTimeout(resolve)); + expect(started).toEqual([0, 1, 2, 3, 4]); + waiting[4](); + + await work; + expect(done).toEqual([0, 1, 2, 3, 4]); }); }); diff --git a/packages/cli/src/lib/parallel.ts b/packages/cli/src/lib/parallel.ts index f922295a89..840b409078 100644 --- a/packages/cli/src/lib/parallel.ts +++ b/packages/cli/src/lib/parallel.ts @@ -14,30 +14,31 @@ * limitations under the License. */ +export const DEFAULT_PARALLELISM = 4; + export const PARALLEL_ENV_VAR = 'BACKSTAGE_CLI_BUILD_PARALLEL'; -export type ParallelOption = boolean | number | undefined; +export type ParallelismOption = boolean | string | number | null | undefined; -export function isParallelDefault(parallel: ParallelOption) { - return parallel === undefined || parallel === true; -} - -export function parseParallel( - parallel: boolean | string | number | undefined, -): ParallelOption { +export function parseParallelismOption(parallel: ParallelismOption): number { if (parallel === undefined || parallel === null) { - return true; + return DEFAULT_PARALLELISM; } else if (typeof parallel === 'boolean') { - return parallel; + return parallel ? DEFAULT_PARALLELISM : 1; } else if (typeof parallel === 'number' && Number.isInteger(parallel)) { + if (parallel < 1) { + return 1; + } return parallel; } else if (typeof parallel === 'string') { if (parallel === 'true') { - return true; + return parseParallelismOption(true); } else if (parallel === 'false') { - return false; - } else if (Number.isInteger(parseFloat(parallel.toString()))) { - return Number(parallel); + return parseParallelismOption(false); + } + const parsed = Number(parallel); + if (Number.isInteger(parsed)) { + return parseParallelismOption(parsed); } } @@ -45,3 +46,45 @@ export function parseParallel( `Parallel option value '${parallel}' is not a boolean or integer`, ); } + +export function getEnvironmentParallelism() { + return parseParallelismOption(process.env[PARALLEL_ENV_VAR]); +} + +type ParallelWorkerOptions = { + /** + * Decides the number of parallel workers by multiplying + * this with the configured parallelism, which defaults to 4 + */ + parallelismFactor: number; + parallelismSetting?: ParallelismOption; + items: Iterable; + worker: (item: TItem) => Promise; +}; + +export async function runParallelWorkers( + options: ParallelWorkerOptions, +) { + const { parallelismFactor, parallelismSetting, items, worker } = options; + const parallelism = parallelismSetting + ? parseParallelismOption(parallelismSetting) + : getEnvironmentParallelism(); + + const iterator = items[Symbol.iterator](); + + async function pop() { + const el = iterator.next(); + if (el.done) { + return; + } + + await worker(el.value); + await pop(); + } + + return Promise.all( + Array(Math.max(Math.floor(parallelismFactor * parallelism), 1)) + .fill(0) + .map(() => pop()), + ); +} From 88ba8f6282f4649c14e9c2e9af3890db72a30071 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Feb 2022 01:07:01 +0100 Subject: [PATCH 034/130] cli: switch out some unbounded parallelism to use worker helper Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/repo/build.ts | 52 ++++++++++++------------ packages/cli/src/lib/builder/packager.ts | 11 +++-- packages/cli/src/lib/parallel.ts | 8 ++-- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index e8058887c5..9c32386304 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -20,8 +20,9 @@ import { relative as relativePath } from 'path'; import { buildPackages, getOutputsForRole } from '../../lib/builder'; import { PackageGraph } from '../../lib/monorepo'; import { ExtendedPackage } from '../../lib/monorepo/PackageGraph'; +import { runParallelWorkers } from '../../lib/parallel'; import { paths } from '../../lib/paths'; -import { getRoleInfo } from '../../lib/role'; +import { detectRoleFromPackage } from '../../lib/role'; import { buildApp } from '../build/buildApp'; import { buildBackend } from '../build/buildBackend'; @@ -76,26 +77,30 @@ function createScriptOptionsParser(anyCmd: Command, commandPath: string[]) { export async function command(cmd: Command): Promise { const packages = await PackageGraph.listTargetPackages(); - const bundledPackages = new Array(); + const apps = new Array(); + const backends = new Array(); const parseBuildScript = createScriptOptionsParser(cmd, ['script', 'build']); const options = packages.flatMap(pkg => { - const role = pkg.packageJson.backstage?.role; + const role = + pkg.packageJson.backstage?.role ?? detectRoleFromPackage(pkg.packageJson); if (!role) { console.warn(`Ignored ${pkg.packageJson.name} because it has no role`); return []; } + if (role === 'app') { + apps.push(pkg); + return []; + } else if (role === 'backend') { + backends.push(pkg); + return []; + } + const outputs = getOutputsForRole(role); if (outputs.size === 0) { - if (getRoleInfo(role).output.includes('bundle')) { - bundledPackages.push(pkg); - } else { - console.warn( - `Ignored ${pkg.packageJson.name} because it has no output`, - ); - } + console.warn(`Ignored ${pkg.packageJson.name} because it has no output`); return []; } @@ -120,13 +125,11 @@ export async function command(cmd: Command): Promise { await buildPackages(options); if (cmd.all) { - const apps = bundledPackages.filter( - pkg => pkg.packageJson.backstage?.role === 'app', - ); - console.log('Building apps'); - await Promise.all( - apps.map(async pkg => { + await runParallelWorkers({ + items: apps, + parallelismFactor: 1 / 2, + worker: async pkg => { const buildOptions = parseBuildScript(pkg.packageJson.scripts?.build); if (!buildOptions) { console.warn( @@ -139,15 +142,14 @@ export async function command(cmd: Command): Promise { configPaths: (buildOptions.config as string[]) ?? [], writeStats: Boolean(buildOptions.stats), }); - }), - ); + }, + }); console.log('Building backends'); - const backends = bundledPackages.filter( - pkg => pkg.packageJson.backstage?.role === 'backend', - ); - await Promise.all( - backends.map(async pkg => { + await runParallelWorkers({ + items: backends, + parallelismFactor: 1 / 2, + worker: async pkg => { const buildOptions = parseBuildScript(pkg.packageJson.scripts?.build); if (!buildOptions) { console.warn( @@ -159,7 +161,7 @@ export async function command(cmd: Command): Promise { targetDir: pkg.dir, skipBuildDependencies: true, }); - }), - ); + }, + }); } } diff --git a/packages/cli/src/lib/builder/packager.ts b/packages/cli/src/lib/builder/packager.ts index 2413662a17..c2256c8417 100644 --- a/packages/cli/src/lib/builder/packager.ts +++ b/packages/cli/src/lib/builder/packager.ts @@ -23,6 +23,7 @@ import { makeRollupConfigs } from './config'; import { BuildOptions, Output } from './types'; import { buildTypeDefinitions } from './buildTypeDefinitions'; import { getRoleInfo } from '../role'; +import { runParallelWorkers } from '../parallel'; export function formatErrorMessage(error: any) { let msg = ''; @@ -128,7 +129,7 @@ export const buildPackages = async (options: BuildOptions[]) => { options.map(({ targetDir }) => fs.remove(resolvePath(targetDir!, 'dist'))), ); - const buildTasks = rollupConfigs.flat().map(rollupBuild); + const buildTasks = rollupConfigs.flat().map(opts => () => rollupBuild(opts)); const typeDefinitionTargetDirs = options .filter( @@ -138,10 +139,14 @@ export const buildPackages = async (options: BuildOptions[]) => { .map(_ => _.targetDir!); if (typeDefinitionTargetDirs.length > 0) { - buildTasks.push(buildTypeDefinitions(typeDefinitionTargetDirs)); + // Make sure this one is started first + buildTasks.unshift(() => buildTypeDefinitions(typeDefinitionTargetDirs)); } - await Promise.all(buildTasks); + await runParallelWorkers({ + items: buildTasks, + worker: async task => task(), + }); }; export function getOutputsForRole(role: string): Set { diff --git a/packages/cli/src/lib/parallel.ts b/packages/cli/src/lib/parallel.ts index 840b409078..e1a56770fd 100644 --- a/packages/cli/src/lib/parallel.ts +++ b/packages/cli/src/lib/parallel.ts @@ -54,9 +54,11 @@ export function getEnvironmentParallelism() { type ParallelWorkerOptions = { /** * Decides the number of parallel workers by multiplying - * this with the configured parallelism, which defaults to 4 + * this with the configured parallelism, which defaults to 4. + * + * Defaults to 1. */ - parallelismFactor: number; + parallelismFactor?: number; parallelismSetting?: ParallelismOption; items: Iterable; worker: (item: TItem) => Promise; @@ -65,7 +67,7 @@ type ParallelWorkerOptions = { export async function runParallelWorkers( options: ParallelWorkerOptions, ) { - const { parallelismFactor, parallelismSetting, items, worker } = options; + const { parallelismFactor = 1, parallelismSetting, items, worker } = options; const parallelism = parallelismSetting ? parseParallelismOption(parallelismSetting) : getEnvironmentParallelism(); From 8c4f24eb23c6440c80138e73de4c8f94043aade3 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 7 Feb 2022 17:43:25 +0100 Subject: [PATCH 035/130] chore: bumping the memory limit of the forchore: bumping the memory limit of the ForkTsCheckerWebpackPlugin as it doesn't work without it for the main repo. Signed-off-by: blam --- packages/cli/src/lib/bundler/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index bd2d27a2b8..3cfcafc005 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -93,7 +93,7 @@ export async function createConfig( if (checksEnabled) { plugins.push( new ForkTsCheckerWebpackPlugin({ - typescript: { configFile: paths.targetTsConfig }, + typescript: { configFile: paths.targetTsConfig, memoryLimit: 4096 }, }), new ESLintPlugin({ context: paths.targetPath, From 764ee19029f1abc0458a70f9587c70dcd806b0c0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 17:42:32 +0100 Subject: [PATCH 036/130] cli: switch to looping parallel workers + fix bump test log ordering Signed-off-by: Patrik Oldsberg --- .../cli/src/commands/versions/bump.test.ts | 22 ++++++++--------- packages/cli/src/lib/parallel.ts | 24 +++++++++---------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index 2dadd06d1d..ae1a4c4627 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -127,8 +127,8 @@ describe('bump', () => { }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', - 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core-api', 'Some packages are outdated, updating', 'unlocking @backstage/core@^1.0.3 ~> 1.0.6', @@ -252,19 +252,19 @@ describe('bump', () => { }); expect(logs.filter(Boolean)).toEqual([ 'Using custom pattern glob @{backstage,backstage-extra}/*', - 'Checking for updates of @backstage/theme', - 'Checking for updates of @backstage-extra/custom-two', - 'Checking for updates of @backstage-extra/custom', 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage-extra/custom', + 'Checking for updates of @backstage-extra/custom-two', + 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core-api', 'Some packages are outdated, updating', - 'unlocking @backstage-extra/custom@^1.0.1 ~> 1.1.0', 'unlocking @backstage/core@^1.0.3 ~> 1.0.6', + 'unlocking @backstage-extra/custom@^1.0.1 ~> 1.1.0', 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', 'bumping @backstage-extra/custom-two in a to ^2.0.0', - 'bumping @backstage/theme in b to ^2.0.0', 'bumping @backstage-extra/custom-two in b to ^2.0.0', + 'bumping @backstage/theme in b to ^2.0.0', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', ' @backstage-extra/custom-two : 1.0.0 ~> 2.0.0', @@ -348,14 +348,14 @@ describe('bump', () => { }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', - 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core', - 'Package info not found, ignoring package @backstage/theme', - 'Package info not found, ignoring package @backstage/core', 'Checking for updates of @backstage/theme', - 'Checking for updates of @backstage/core', - 'Package info not found, ignoring package @backstage/theme', 'Package info not found, ignoring package @backstage/core', + 'Package info not found, ignoring package @backstage/theme', + 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage/theme', + 'Package info not found, ignoring package @backstage/core', + 'Package info not found, ignoring package @backstage/theme', 'All Backstage packages are up to date!', ]); diff --git a/packages/cli/src/lib/parallel.ts b/packages/cli/src/lib/parallel.ts index e1a56770fd..f8af967d22 100644 --- a/packages/cli/src/lib/parallel.ts +++ b/packages/cli/src/lib/parallel.ts @@ -72,21 +72,19 @@ export async function runParallelWorkers( ? parseParallelismOption(parallelismSetting) : getEnvironmentParallelism(); - const iterator = items[Symbol.iterator](); - - async function pop() { - const el = iterator.next(); - if (el.done) { - return; - } - - await worker(el.value); - await pop(); - } + const sharedIterator = items[Symbol.iterator](); + const sharedIterable = { + [Symbol.iterator]: () => sharedIterator, + }; + const workerCount = Math.max(Math.floor(parallelismFactor * parallelism), 1); return Promise.all( - Array(Math.max(Math.floor(parallelismFactor * parallelism), 1)) + Array(workerCount) .fill(0) - .map(() => pop()), + .map(async () => { + for (const value of sharedIterable) { + await worker(value); + } + }), ); } From 7d2ddae27a1994ffaafb8957dc687ed00f0c482c Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 7 Feb 2022 18:04:28 +0100 Subject: [PATCH 037/130] chore: updated api-report Signed-off-by: blam --- plugins/catalog-backend-module-msgraph/api-report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/catalog-backend-module-msgraph/api-report.md b/plugins/catalog-backend-module-msgraph/api-report.md index 662056eff1..e93822356b 100644 --- a/plugins/catalog-backend-module-msgraph/api-report.md +++ b/plugins/catalog-backend-module-msgraph/api-report.md @@ -141,6 +141,7 @@ export type MicrosoftGraphProviderConfig = { clientId: string; clientSecret: string; userFilter?: string; + userExpand?: string[]; userGroupMemberFilter?: string; groupFilter?: string; }; @@ -170,6 +171,7 @@ export function readMicrosoftGraphOrg( client: MicrosoftGraphClient, tenantId: string, options: { + userExpand?: string[]; userFilter?: string; userGroupMemberFilter?: string; groupFilter?: string; From 68e1ba360f2ab1f6dfb71317460ec881bf5a491f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 18:11:02 +0100 Subject: [PATCH 038/130] workflows: move upgrade helper dispatch to release manifest workflow Signed-off-by: Patrik Oldsberg --- .github/workflows/sync_release-manifest.yml | 28 +++++++++++++++++++++ scripts/create-release-tag.js | 12 --------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 39e270af16..85c01d0631 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -48,3 +48,31 @@ jobs: git add . git commit -am "${{ github.event.inputs.version }}" git push + + - name: Dispatch update-helper update + uses: actions/github-script@v5 + with: + github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} + # TODO(Rugvip): Remove the create-app dispatch once we've been on the release version for a while + script: | + console.log('Dispatching upgrade helper sync - release version'); + await octokit.actions.createWorkflowDispatch({ + owner: 'backstage', + repo: 'upgrade-helper-diff', + workflow_id: 'release.yml', + ref: 'master', + inputs: { + version: require('./package.json').version, + }, + }); + + console.log('Dispatching upgrade helper sync - create-app version'); + await octokit.actions.createWorkflowDispatch({ + owner: 'backstage', + repo: 'upgrade-helper-diff', + workflow_id: 'release.yml', + ref: 'master', + inputs: { + version: require('./packages/create-app/package.json').version, + }, + }); diff --git a/scripts/create-release-tag.js b/scripts/create-release-tag.js index f898705ce5..637467f285 100755 --- a/scripts/create-release-tag.js +++ b/scripts/create-release-tag.js @@ -68,18 +68,6 @@ async function dispatchReleaseWorkflows(octokit, releaseVersion) { version: releaseVersion, }, }); - - console.log('Dispatching upgrade helper sync'); - await octokit.actions.createWorkflowDispatch({ - owner: 'backstage', - repo: 'upgrade-helper-diff', - workflow_id: 'release.yml', - ref: 'master', - inputs: { - // TODO(Rugvip): Switch this over to use the release version once it's ready - version: require('../packages/create-app/package.json').version, - }, - }); } async function main() { From 5ca42462b7e0fd54391c7519f994a764f9d85d75 Mon Sep 17 00:00:00 2001 From: mufaddal motiwala Date: Mon, 7 Feb 2022 22:41:33 +0530 Subject: [PATCH 039/130] export DashboardSnapshotComponent Signed-off-by: mufaddal motiwala --- .changeset/cool-birds-ring.md | 5 +++++ plugins/newrelic-dashboard/src/index.ts | 1 + plugins/newrelic-dashboard/src/plugin.ts | 12 ++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 .changeset/cool-birds-ring.md diff --git a/.changeset/cool-birds-ring.md b/.changeset/cool-birds-ring.md new file mode 100644 index 0000000000..0ecd4a47e9 --- /dev/null +++ b/.changeset/cool-birds-ring.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-newrelic-dashboard': patch +--- + +Export DashboardSnapshotComponent from new-relic-dashboard-plugin diff --git a/plugins/newrelic-dashboard/src/index.ts b/plugins/newrelic-dashboard/src/index.ts index 821ccd4bda..060306524f 100644 --- a/plugins/newrelic-dashboard/src/index.ts +++ b/plugins/newrelic-dashboard/src/index.ts @@ -17,5 +17,6 @@ export { newRelicDashboardPlugin, EntityNewRelicDashboardCard, EntityNewRelicDashboardContent, + DashboardSnapshotComponent, } from './plugin'; export { isNewRelicDashboardAvailable } from './Router'; diff --git a/plugins/newrelic-dashboard/src/plugin.ts b/plugins/newrelic-dashboard/src/plugin.ts index 18397902f7..dc3b18e453 100644 --- a/plugins/newrelic-dashboard/src/plugin.ts +++ b/plugins/newrelic-dashboard/src/plugin.ts @@ -60,3 +60,15 @@ export const EntityNewRelicDashboardCard = newRelicDashboardPlugin.provide( }, }), ); + +export const DashboardSnapshotComponent = newRelicDashboardPlugin.provide( + createComponentExtension({ + name: 'DashboardSnapshotComponent', + component: { + lazy: () => + import( + './components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshot' + ).then(m => m.DashboardSnapshot), + }, + }), +); From 646eb8748b0041b66af2dbd68426b4b699b6e065 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 18:12:54 +0100 Subject: [PATCH 040/130] changesets: enter prerelease Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 127 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..3a6e38f774 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,127 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "example-app": "0.2.63", + "@backstage/app-defaults": "0.1.6", + "example-backend": "0.2.63", + "@backstage/backend-common": "0.10.6", + "@backstage/backend-tasks": "0.1.5", + "@backstage/backend-test-utils": "0.1.16", + "@backstage/catalog-client": "0.5.5", + "@backstage/catalog-model": "0.9.10", + "@backstage/cli": "0.13.1", + "@backstage/cli-common": "0.1.6", + "@backstage/codemods": "0.1.32", + "@backstage/config": "0.1.13", + "@backstage/config-loader": "0.9.3", + "@backstage/core-app-api": "0.5.2", + "@backstage/core-components": "0.8.7", + "@backstage/core-plugin-api": "0.6.0", + "@backstage/create-app": "0.4.18", + "@backstage/dev-utils": "0.2.20", + "e2e-test": "0.2.0", + "@backstage/errors": "0.2.0", + "@backstage/integration": "0.7.2", + "@backstage/integration-react": "0.1.20", + "@backstage/search-common": "0.2.2", + "@techdocs/cli": "0.8.12", + "techdocs-cli-embedded-app": "0.2.62", + "@backstage/techdocs-common": "0.11.6", + "@backstage/test-utils": "0.2.4", + "@backstage/theme": "0.2.14", + "@backstage/types": "0.1.1", + "@backstage/version-bridge": "0.1.1", + "@backstage/plugin-airbrake": "0.1.2", + "@backstage/plugin-allure": "0.1.13", + "@backstage/plugin-analytics-module-ga": "0.1.8", + "@backstage/plugin-apache-airflow": "0.1.5", + "@backstage/plugin-api-docs": "0.7.1", + "@backstage/plugin-app-backend": "0.3.23", + "@backstage/plugin-auth-backend": "0.9.0", + "@backstage/plugin-azure-devops": "0.1.13", + "@backstage/plugin-azure-devops-backend": "0.3.2", + "@backstage/plugin-azure-devops-common": "0.2.0", + "@backstage/plugin-badges": "0.2.21", + "@backstage/plugin-badges-backend": "0.1.17", + "@backstage/plugin-bazaar": "0.1.12", + "@backstage/plugin-bazaar-backend": "0.1.8", + "@backstage/plugin-bitrise": "0.1.24", + "@backstage/plugin-catalog": "0.7.11", + "@backstage/plugin-catalog-backend": "0.21.2", + "@backstage/plugin-catalog-backend-module-ldap": "0.3.11", + "@backstage/plugin-catalog-backend-module-msgraph": "0.2.14", + "@backstage/plugin-catalog-common": "0.1.2", + "@backstage/plugin-catalog-graph": "0.2.9", + "@backstage/plugin-catalog-graphql": "0.3.1", + "@backstage/plugin-catalog-import": "0.8.0", + "@backstage/plugin-catalog-react": "0.6.13", + "@backstage/plugin-circleci": "0.2.36", + "@backstage/plugin-cloudbuild": "0.2.34", + "@backstage/plugin-code-coverage": "0.1.24", + "@backstage/plugin-code-coverage-backend": "0.1.21", + "@backstage/plugin-config-schema": "0.1.20", + "@backstage/plugin-cost-insights": "0.11.19", + "@backstage/plugin-explore": "0.3.28", + "@backstage/plugin-explore-react": "0.0.11", + "@backstage/plugin-firehydrant": "0.1.14", + "@backstage/plugin-fossa": "0.2.29", + "@backstage/plugin-gcp-projects": "0.3.16", + "@backstage/plugin-git-release-manager": "0.3.10", + "@backstage/plugin-github-actions": "0.4.34", + "@backstage/plugin-github-deployments": "0.1.28", + "@backstage/plugin-gitops-profiles": "0.3.15", + "@backstage/plugin-gocd": "0.1.3", + "@backstage/plugin-graphiql": "0.2.29", + "@backstage/plugin-graphql-backend": "0.1.13", + "@backstage/plugin-home": "0.4.13", + "@backstage/plugin-ilert": "0.1.23", + "@backstage/plugin-jenkins": "0.5.19", + "@backstage/plugin-jenkins-backend": "0.1.12", + "@backstage/plugin-kafka": "0.2.27", + "@backstage/plugin-kafka-backend": "0.2.16", + "@backstage/plugin-kubernetes": "0.5.6", + "@backstage/plugin-kubernetes-backend": "0.4.6", + "@backstage/plugin-kubernetes-common": "0.2.2", + "@backstage/plugin-lighthouse": "0.2.36", + "@backstage/plugin-newrelic": "0.3.15", + "@backstage/plugin-newrelic-dashboard": "0.1.5", + "@backstage/plugin-org": "0.4.1", + "@backstage/plugin-pagerduty": "0.3.24", + "@backstage/plugin-permission-backend": "0.4.2", + "@backstage/plugin-permission-common": "0.4.0", + "@backstage/plugin-permission-node": "0.4.2", + "@backstage/plugin-permission-react": "0.3.0", + "@backstage/plugin-proxy-backend": "0.2.17", + "@backstage/plugin-rollbar": "0.3.25", + "@backstage/plugin-rollbar-backend": "0.1.20", + "@backstage/plugin-scaffolder": "0.12.1", + "@backstage/plugin-scaffolder-backend": "0.15.23", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.1.10", + "@backstage/plugin-scaffolder-backend-module-rails": "0.2.5", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.1.4", + "@backstage/plugin-scaffolder-common": "0.1.3", + "@backstage/plugin-search": "0.6.1", + "@backstage/plugin-search-backend": "0.4.1", + "@backstage/plugin-search-backend-module-elasticsearch": "0.0.8", + "@backstage/plugin-search-backend-module-pg": "0.2.5", + "@backstage/plugin-search-backend-node": "0.4.5", + "@backstage/plugin-sentry": "0.3.35", + "@backstage/plugin-shortcuts": "0.1.21", + "@backstage/plugin-sonarqube": "0.2.15", + "@backstage/plugin-splunk-on-call": "0.3.21", + "@backstage/plugin-tech-insights": "0.1.7", + "@backstage/plugin-tech-insights-backend": "0.2.3", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.7", + "@backstage/plugin-tech-insights-common": "0.2.1", + "@backstage/plugin-tech-insights-node": "0.2.1", + "@backstage/plugin-tech-radar": "0.5.4", + "@backstage/plugin-techdocs": "0.13.2", + "@backstage/plugin-techdocs-backend": "0.13.2", + "@backstage/plugin-todo": "0.1.21", + "@backstage/plugin-todo-backend": "0.1.20", + "@backstage/plugin-user-settings": "0.3.18", + "@backstage/plugin-xcmetrics": "0.2.17" + }, + "changesets": [] +} From 22ebeb4575720a88477889322c4843fa9553c686 Mon Sep 17 00:00:00 2001 From: mufaddal motiwala Date: Mon, 7 Feb 2022 23:03:41 +0530 Subject: [PATCH 041/130] API report added Signed-off-by: mufaddal motiwala --- plugins/newrelic-dashboard/api-report.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/newrelic-dashboard/api-report.md b/plugins/newrelic-dashboard/api-report.md index ffdd5a2833..260efb47a6 100644 --- a/plugins/newrelic-dashboard/api-report.md +++ b/plugins/newrelic-dashboard/api-report.md @@ -9,6 +9,21 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; +// Warning: (ae-missing-release-tag) "DashboardSnapshotComponent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const DashboardSnapshotComponent: ({ + guid, + name, + permalink, + duration, +}: { + guid: string; + name: string; + permalink: string; + duration: number; +}) => JSX.Element; + // Warning: (ae-missing-release-tag) "EntityNewRelicDashboardCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) From 2375ef7c3c5f63be60090cf010540b00118f75d0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 19:41:44 +0100 Subject: [PATCH 042/130] cli: packager, rename index to createDistWorkspace Signed-off-by: Patrik Oldsberg --- .../cli/src/lib/packager/{index.ts => createDistWorkspace.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/cli/src/lib/packager/{index.ts => createDistWorkspace.ts} (100%) diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts similarity index 100% rename from packages/cli/src/lib/packager/index.ts rename to packages/cli/src/lib/packager/createDistWorkspace.ts From 46855aaffa7f958518410b933632c6594bc09fbd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 19:42:00 +0100 Subject: [PATCH 043/130] cli: packager, add back index Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/packager/index.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 packages/cli/src/lib/packager/index.ts diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts new file mode 100644 index 0000000000..75f3fdf71d --- /dev/null +++ b/packages/cli/src/lib/packager/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * 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 { createDistWorkspace } from './createDistWorkspace'; From c039c184c570b6fb7b6c5de6c7946f4078cc1fa9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 19:10:03 +0100 Subject: [PATCH 044/130] cli: update createDistWorkspace to inline builds when possible Signed-off-by: Patrik Oldsberg --- .../src/lib/packager/createDistWorkspace.ts | 67 +++++++++++++++++-- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index 40af21bc5e..bcbcdb29cc 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import chalk from 'chalk'; import fs from 'fs-extra'; import { join as joinPath, @@ -28,8 +29,14 @@ import { dependencies as cliDependencies, devDependencies as cliDevDependencies, } from '../../../package.json'; -import { getPackages } from '@manypkg/get-packages'; import { PackageGraph, PackageGraphNode } from '../monorepo'; +import { + BuildOptions, + buildPackages, + getOutputsForRole, + Output, +} from '../builder'; +import { copyPackageDist } from './copyPackageDist'; // These packages aren't safe to pack in parallel since the CLI depends on them const UNSAFE_PACKAGES = [ @@ -95,7 +102,7 @@ export async function createDistWorkspace( options.targetDir ?? (await fs.mkdtemp(resolvePath(tmpdir(), 'dist-workspace'))); - const { packages } = await getPackages(paths.targetDir); + const packages = await PackageGraph.listTargetPackages(); const packageGraph = PackageGraph.fromPackages(packages); const targetNames = packageGraph.collectPackageNames(packageNames, node => { // Don't include dependencies of packages that are marked as bundled @@ -110,9 +117,59 @@ export async function createDistWorkspace( if (options.buildDependencies) { const exclude = options.buildExcludes ?? []; - const toBuild = targets.filter(target => !exclude.includes(target.name)); - if (toBuild.length > 0) { - const scopeArgs = toBuild.flatMap(target => ['--scope', target.name]); + const toBuild = new Set( + targets.map(_ => _.name).filter(name => !exclude.includes(name)), + ); + + const standardBuilds = new Array(); + const customBuild = new Array(); + + for (const pkg of packages) { + if (!toBuild.has(pkg.packageJson.name)) { + continue; + } + const role = pkg.packageJson.backstage?.role; + if (!role) { + console.warn(`Ignored ${pkg.packageJson.name} because it has no role`); + customBuild.push(pkg.packageJson.name); + continue; + } + + const buildScript = pkg.packageJson.scripts?.build; + if (!buildScript) { + customBuild.push(pkg.packageJson.name); + continue; + } + + if (!buildScript.startsWith('backstage-cli script build')) { + console.warn( + `Ignored ${pkg.packageJson.name} because it has a custom build script, '${buildScript}'`, + ); + customBuild.push(pkg.packageJson.name); + continue; + } + + const outputs = getOutputsForRole(role); + + // No need to build and include types in the production runtime + outputs.delete(Output.types); + + if (outputs.size > 0) { + standardBuilds.push({ + targetDir: pkg.dir, + outputs: outputs, + logPrefix: `${chalk.cyan(relativePath(paths.targetRoot, pkg.dir))}: `, + // No need to detect these for the backend builds, we assume no minification or types + minify: false, + useApiExtractor: false, + }); + } + } + + await buildPackages(standardBuilds); + + if (customBuild.length > 0) { + const scopeArgs = customBuild.flatMap(name => ['--scope', name]); const lernaArgs = options.parallelism && Number.isInteger(options.parallelism) ? ['--concurrency', options.parallelism.toString()] From a41f50f9705b58e7e86255cebaa2644595efc3aa Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 19:01:19 +0100 Subject: [PATCH 045/130] cli: added utility for copying package dist files Signed-off-by: Patrik Oldsberg --- packages/cli/package.json | 2 + .../cli/src/lib/packager/copyPackageDist.ts | 88 +++++++++++++++++++ yarn.lock | 22 +++++ 3 files changed, 112 insertions(+) create mode 100644 packages/cli/src/lib/packager/copyPackageDist.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index 41cefe6c53..0f6c521ec4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -86,6 +86,7 @@ "lodash": "^4.17.21", "minimatch": "3.0.4", "mini-css-extract-plugin": "^2.4.2", + "npm-packlist": "^3.0.0", "node-libs-browser": "^2.2.1", "ora": "^5.3.0", "postcss": "^8.1.0", @@ -132,6 +133,7 @@ "@types/minimatch": "^3.0.5", "@types/mock-fs": "^4.13.0", "@types/node": "^14.14.32", + "@types/npm-packlist": "^1.1.2", "@types/recursive-readdir": "^2.2.0", "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", diff --git a/packages/cli/src/lib/packager/copyPackageDist.ts b/packages/cli/src/lib/packager/copyPackageDist.ts new file mode 100644 index 0000000000..03ac361006 --- /dev/null +++ b/packages/cli/src/lib/packager/copyPackageDist.ts @@ -0,0 +1,88 @@ +/* + * Copyright 2022 The Backstage Authors + * + * 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 npmPackList from 'npm-packlist'; +import { join as joinPath, resolve as resolvePath } from 'path'; + +const SKIPPED_KEYS = ['access', 'registry', 'tag', 'alphaTypes', 'betaTypes']; + +// Writes e.g. alpha/package.json +async function writeReleaseStageEntrypoint( + pkg: any, + stage: 'alpha' | 'beta', + targetDir: string, +) { + await fs.ensureDir(resolvePath(targetDir, stage)); + await fs.writeJson( + resolvePath(targetDir, stage, 'package.json'), + { + name: pkg.name, + version: pkg.version, + main: (pkg.publishConfig.main || pkg.main) && '..', + module: (pkg.publishConfig.module || pkg.module) && '..', + browser: (pkg.publishConfig.browser || pkg.browser) && '..', + types: joinPath('..', pkg.publishConfig[`${stage}Types`]), + }, + { encoding: 'utf8', spaces: 2 }, + ); +} + +export async function copyPackageDist(packageDir: string, targetDir: string) { + const pkgPath = resolvePath(packageDir, 'package.json'); + const pkgContent = await fs.readFile(pkgPath, 'utf8'); + const pkg = JSON.parse(pkgContent); + + const publishConfig = pkg.publishConfig ?? {}; + for (const key of Object.keys(publishConfig)) { + if (!SKIPPED_KEYS.includes(key)) { + pkg[key] = publishConfig[key]; + } + } + + // We remove the dependencies from package.json of packages that are marked + // as bundled, so that yarn doesn't try to install them. + if (pkg.bundled) { + delete pkg.dependencies; + delete pkg.devDependencies; + delete pkg.peerDependencies; + delete pkg.optionalDependencies; + } + + // Write the modified package.json so that the file listing is correct + await fs.writeJson(pkgPath, pkg, { encoding: 'utf8', spaces: 2 }); + + // Lists all dist files, respecting .npmignore, files field in package.json, etc. + const filePaths = await npmPackList({ path: packageDir }); + + await fs.ensureDir(targetDir); + for (const filePath of filePaths.sort()) { + await fs.copy( + resolvePath(packageDir, filePath), + resolvePath(targetDir, filePath), + ); + } + + if (publishConfig.alphaTypes) { + await writeReleaseStageEntrypoint(pkg, 'alpha', targetDir); + } + if (publishConfig.betaTypes) { + await writeReleaseStageEntrypoint(pkg, 'beta', targetDir); + } + + // Restore package.json + await fs.writeFile(pkgPath, pkgContent, 'utf8'); +} diff --git a/yarn.lock b/yarn.lock index f1bce4f4fa..abfd54f3c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5761,6 +5761,11 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/npm-packlist@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@types/npm-packlist/-/npm-packlist-1.1.2.tgz#285978c9023ce68fa0641ca606c7c3b7b0e851c5" + integrity sha512-9NYoEH87t90e6dkaQOuUTY/R1xUE0a67sXzJBuAB+b+/z4FysHFD19g/O154ToGjyWqKYkezVUtuBdtfd4hyfw== + "@types/nunjucks@^3.1.4": version "3.2.1" resolved "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.2.1.tgz#02a3ade3dc4d3950029c6466a4034565dba7cf8c" @@ -13545,6 +13550,13 @@ ignore-walk@^3.0.1, ignore-walk@^3.0.3: dependencies: minimatch "^3.0.4" +ignore-walk@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" + integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== + dependencies: + minimatch "^3.0.4" + ignore@^3.3.5: version "3.3.10" resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" @@ -18012,6 +18024,16 @@ npm-packlist@^2.1.4: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" +npm-packlist@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" + integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== + dependencies: + glob "^7.1.6" + ignore-walk "^4.0.1" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + npm-pick-manifest@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" From f65550a08d85dfea1344cfb9176e7403957371b3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 19:10:33 +0100 Subject: [PATCH 046/130] cli: update createDistWorkspace to use dist move utility when possible Signed-off-by: Patrik Oldsberg --- .../src/lib/packager/createDistWorkspace.ts | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index bcbcdb29cc..90daa4bfec 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -23,6 +23,7 @@ import { } from 'path'; import { tmpdir } from 'os'; import tar, { CreateOptions } from 'tar'; +import partition from 'lodash/partition'; import { paths } from '../paths'; import { run } from '../run'; import { @@ -212,10 +213,33 @@ export async function createDistWorkspace( return targetDir; } +const FAST_PACK_SCRIPTS = [ + undefined, + 'backstage-cli prepack', + 'backstage-cli script prepack', +]; + async function moveToDistWorkspace( workspaceDir: string, localPackages: PackageGraphNode[], ): Promise { + const [fastPackPackages, slowPackPackages] = partition(localPackages, pkg => + FAST_PACK_SCRIPTS.includes(pkg.packageJson.scripts?.prepack), + ); + + // New an improved flow where we avoid calling `yarn pack` + await Promise.all( + fastPackPackages.map(async target => { + console.log(`Moving ${target.name} into dist workspace`); + + const outputDir = relativePath(paths.targetRoot, target.dir); + const absoluteOutputPath = resolvePath(workspaceDir, outputDir); + await copyPackageDist(target.dir, absoluteOutputPath); + }), + ); + + // Old flow is below, which calls `yarn pack` and extracts the tarball + async function pack(target: PackageGraphNode, archive: string) { console.log(`Repacking ${target.name} into dist workspace`); const archivePath = resolvePath(workspaceDir, archive); @@ -260,12 +284,9 @@ async function moveToDistWorkspace( } } - const unsafePackages = localPackages.filter(p => + const [unsafePackages, safePackages] = partition(slowPackPackages, p => UNSAFE_PACKAGES.includes(p.name), ); - const safePackages = localPackages.filter( - p => !UNSAFE_PACKAGES.includes(p.name), - ); // The unsafe package are packed first one by one in order to avoid race conditions // where the CLI is being executed with broken dependencies. From b906f98119eb6e0d9e2fef204fdc3ede0b0c8d83 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 19:36:40 +0100 Subject: [PATCH 047/130] changesets: add changeset for dist workspace improvements Signed-off-by: Patrik Oldsberg --- .changeset/tasty-spoons-beg.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tasty-spoons-beg.md diff --git a/.changeset/tasty-spoons-beg.md b/.changeset/tasty-spoons-beg.md new file mode 100644 index 0000000000..651c70e03c --- /dev/null +++ b/.changeset/tasty-spoons-beg.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Rather than calling `yarn pack`, the `build-workspace` and `backend-bundle` commands now move files directly whenever possible. This cuts out several `yarn` invocations and speeds the packing process up by several orders of magnitude. From 51fe2055df5f2ce2400111aba4fffde9b9683a8c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Feb 2022 18:33:53 +0100 Subject: [PATCH 048/130] cli: fix a spelling Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/packager/createDistWorkspace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index 90daa4bfec..15ccda30c2 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -92,7 +92,7 @@ type Options = { * The target workspace will end up containing dist version of each package and * will be suitable for packaging e.g. into a docker image. * - * This creates a structure that is functionally similar to if the packages where + * This creates a structure that is functionally similar to if the packages were * installed from npm, but uses Yarn workspaces to link to them at runtime. */ export async function createDistWorkspace( From 70903de8792dc3b1470c845994a0180f04b81f68 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 12:04:55 -0500 Subject: [PATCH 049/130] [wip] support 'splunk.com/on-call-routing-key' annotation Extends the Splunk On Call plugin Entity card to infer the corresponding team names from a `splunk.com/on-call-routing-key` annotation. This seeks to enable the use of the Splunk On Call plugin on entity pages for those orgs who associate a component with a routing key rather than a team name. Signed-off-by: Mike Ball --- plugins/splunk-on-call/src/api/client.ts | 11 ++++ plugins/splunk-on-call/src/api/types.ts | 11 ++++ .../src/components/EntitySplunkOnCallCard.tsx | 53 ++++++++++++++++--- .../splunk-on-call/src/components/types.ts | 12 +++++ 4 files changed, 79 insertions(+), 8 deletions(-) diff --git a/plugins/splunk-on-call/src/api/client.ts b/plugins/splunk-on-call/src/api/client.ts index 437c6365ed..6c0ff9bdc4 100644 --- a/plugins/splunk-on-call/src/api/client.ts +++ b/plugins/splunk-on-call/src/api/client.ts @@ -19,6 +19,7 @@ import { OnCall, User, EscalationPolicyInfo, + RoutingKey, Team, } from '../components/types'; import { @@ -30,6 +31,7 @@ import { RequestOptions, ListUserResponse, EscalationPolicyResponse, + ListRoutingKeyResponse, } from './types'; import { createApiRef, @@ -82,6 +84,15 @@ export class SplunkOnCallClient implements SplunkOnCallApi { return teams; } + async getRoutingKeys(): Promise { + const url = `${await this.config.discoveryApi.getBaseUrl( + 'proxy', + )}/splunk-on-call/v1/org/routing-keys`; + const { routingKeys } = await this.getByUrl(url); + + return routingKeys; + } + async getUsers(): Promise { const url = `${await this.config.discoveryApi.getBaseUrl( 'proxy', diff --git a/plugins/splunk-on-call/src/api/types.ts b/plugins/splunk-on-call/src/api/types.ts index 0bdd093ad1..6a414d18bd 100644 --- a/plugins/splunk-on-call/src/api/types.ts +++ b/plugins/splunk-on-call/src/api/types.ts @@ -18,6 +18,7 @@ import { EscalationPolicyInfo, Incident, OnCall, + RoutingKey, Team, User, } from '../components/types'; @@ -65,6 +66,11 @@ export interface SplunkOnCallApi { */ getTeams(): Promise; + /** + * Get a list of routing keys for your organization. + */ + getRoutingKeys(): Promise; + /** * Get a list of escalation policies for your organization. */ @@ -80,6 +86,11 @@ export type ListUserResponse = { _selfUrl?: string; }; +export type ListRoutingKeyResponse = { + routingKeys: RoutingKey[]; + _selfUrl?: string; +}; + export type IncidentsResponse = { incidents: Incident[]; }; diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index bca53a3b0a..ef4ad0388b 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -45,9 +45,18 @@ import { } from '@backstage/core-components'; export const SPLUNK_ON_CALL_TEAM = 'splunk.com/on-call-team'; +export const SPLUNK_ON_CALL_ROUTING_KEY = 'splunk.com/on-call-routing-key'; -export const MissingTeamAnnotation = () => ( - +export const MissingAnnotation = () => ( +
+ + The Splunk On Call plugin requires setting either the{' '} + {SPLUNK_ON_CALL_TEAM} or the{' '} + {SPLUNK_ON_CALL_ROUTING_KEY} annotation. + + + +
); export const InvalidTeamAnnotation = ({ teamName }: { teamName: string }) => ( @@ -71,7 +80,8 @@ export const MissingEventsRestEndpoint = () => ( ); export const isSplunkOnCallAvailable = (entity: Entity) => - Boolean(entity.metadata.annotations?.[SPLUNK_ON_CALL_TEAM]); + Boolean(entity.metadata.annotations?.[SPLUNK_ON_CALL_TEAM]) || + Boolean(entity.metadata.annotations?.[SPLUNK_ON_CALL_ROUTING_KEY]); export const EntitySplunkOnCallCard = () => { const config = useApi(configApiRef); @@ -79,7 +89,12 @@ export const EntitySplunkOnCallCard = () => { const { entity } = useEntity(); const [showDialog, setShowDialog] = useState(false); const [refreshIncidents, setRefreshIncidents] = useState(false); - const team = entity.metadata.annotations![SPLUNK_ON_CALL_TEAM]; + const teamAnnotation = entity + ? entity.metadata.annotations![SPLUNK_ON_CALL_TEAM] + : undefined; + const routingKeyAnnotation = entity + ? entity.metadata.annotations![SPLUNK_ON_CALL_ROUTING_KEY] + : undefined; const eventsRestEndpoint = config.getOptionalString('splunkOnCall.eventsRestEndpoint') || null; @@ -108,7 +123,20 @@ export const EntitySplunkOnCallCard = () => { {}, ); const teams = await api.getTeams(); - const foundTeam = teams.find(teamValue => teamValue.name === team); + let foundTeam = teams.find(teamValue => teamValue.name === teamAnnotation); + + if (!foundTeam && routingKeyAnnotation) { + const routingKeys = await api.getRoutingKeys(); + const foundRoutingKey = routingKeys.find( + key => key.routingKey === routingKeyAnnotation, + ); + const teamUrlParts = foundRoutingKey + ? foundRoutingKey.targets[0]._teamUrl.split('/') + : []; + const teamSlug = teamUrlParts[teamUrlParts.length - 1]; + foundTeam = teams.find(teamValue => teamValue.slug === teamSlug); + } + return { usersHashMap, foundTeam }; }); @@ -128,13 +156,22 @@ export const EntitySplunkOnCallCard = () => { return ; } + const team = + usersAndTeam?.foundTeam && usersAndTeam?.foundTeam.name + ? usersAndTeam?.foundTeam.name + : ''; + const Content = () => { - if (!team) { - return ; + if (!teamAnnotation && !routingKeyAnnotation) { + return ; } if (!usersAndTeam?.foundTeam) { - return ; + return ( + + ); } if (!eventsRestEndpoint) { diff --git a/plugins/splunk-on-call/src/components/types.ts b/plugins/splunk-on-call/src/components/types.ts index 3c1902e52b..0feefe8b03 100644 --- a/plugins/splunk-on-call/src/components/types.ts +++ b/plugins/splunk-on-call/src/components/types.ts @@ -117,3 +117,15 @@ export type EscalationPolicyTeam = { name: string; slug: string; }; + +export type RoutingKey = { + routingKey: string; + targets: RoutingKeyTarget[]; + isDefault: boolean; +}; + +export type RoutingKeyTarget = { + policyName: string; + policySlug: string; + _teamUrl: string; +}; From 4c61bc0cfa73bdd65467a65a7da1d38bca1245b6 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 16:08:22 -0500 Subject: [PATCH 050/130] render Splunk On-Call card per team In instances where a `splunk.com/on-call-routing-key` is provided and that routing key is associated with multiple teams, the component now renders an individual Splunk On-Call card for each team. Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.tsx | 89 +++++++++++-------- 1 file changed, 52 insertions(+), 37 deletions(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index ef4ad0388b..1d3e639910 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -32,8 +32,7 @@ import { MissingApiKeyOrApiIdError } from './Errors/MissingApiKeyOrApiIdError'; import { EscalationPolicy } from './Escalation'; import { Incidents } from './Incident'; import { TriggerDialog } from './TriggerDialog'; -import { User } from './types'; - +import { Team, User } from './types'; import { configApiRef, useApi } from '@backstage/core-plugin-api'; import { @@ -108,7 +107,7 @@ export const EntitySplunkOnCallCard = () => { }, []); const { - value: usersAndTeam, + value: usersAndTeams, loading, error, } = useAsync(async () => { @@ -123,21 +122,26 @@ export const EntitySplunkOnCallCard = () => { {}, ); const teams = await api.getTeams(); - let foundTeam = teams.find(teamValue => teamValue.name === teamAnnotation); + let foundTeams = [ + teams.find(teamValue => teamValue.name === teamAnnotation), + ].filter(team => team !== undefined); - if (!foundTeam && routingKeyAnnotation) { + if (!foundTeams.length && routingKeyAnnotation) { const routingKeys = await api.getRoutingKeys(); const foundRoutingKey = routingKeys.find( key => key.routingKey === routingKeyAnnotation, ); - const teamUrlParts = foundRoutingKey - ? foundRoutingKey.targets[0]._teamUrl.split('/') + foundTeams = foundRoutingKey + ? foundRoutingKey.targets.map(target => { + const teamUrlParts = target._teamUrl.split('/'); + const teamSlug = teamUrlParts[teamUrlParts.length - 1]; + + return teams.find(teamValue => teamValue.slug === teamSlug); + }) : []; - const teamSlug = teamUrlParts[teamUrlParts.length - 1]; - foundTeam = teams.find(teamValue => teamValue.slug === teamSlug); } - return { usersHashMap, foundTeam }; + return { usersHashMap, foundTeams }; }); if (error instanceof UnauthorizedError) { @@ -156,17 +160,18 @@ export const EntitySplunkOnCallCard = () => { return ; } - const team = - usersAndTeam?.foundTeam && usersAndTeam?.foundTeam.name - ? usersAndTeam?.foundTeam.name - : ''; - - const Content = () => { + const Content = ({ + team, + usersHashMap, + }: { + team: Team | undefined; + usersHashMap: any | undefined; + }) => { if (!teamAnnotation && !routingKeyAnnotation) { return ; } - if (!usersAndTeam?.foundTeam) { + if (!team) { return ( { return ; } + const teamName = team.name || ''; + return ( <> - - {usersAndTeam?.usersHashMap && team && ( - + + {usersHashMap && team && ( + )} { icon: , }; + const teams = usersAndTeams?.foundTeams || []; + return ( - - Team: {team}, - , - ]} - /> - - - - - + <> + {teams.map((team, i) => ( + + + Team: {team && team.name ? team.name : ''} + , + , + ]} + /> + + + + + + ))} + ); }; From 0dfbb30a5db99afd6a209ad76b978eb12a75ddb4 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 16:33:18 -0500 Subject: [PATCH 051/130] add 1em spacing between each Splunk On-Call card Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 1d3e639910..8dbbf6e848 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -22,6 +22,7 @@ import { CardContent, CardHeader, Divider, + makeStyles, Typography, } from '@material-ui/core'; import AlarmAddIcon from '@material-ui/icons/AlarmAdd'; @@ -82,7 +83,14 @@ export const isSplunkOnCallAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[SPLUNK_ON_CALL_TEAM]) || Boolean(entity.metadata.annotations?.[SPLUNK_ON_CALL_ROUTING_KEY]); +const useStyles = makeStyles({ + onCallCard: { + marginBottom: '1em', + }, +}); + export const EntitySplunkOnCallCard = () => { + const classes = useStyles(); const config = useApi(configApiRef); const api = useApi(splunkOnCallApiRef); const { entity } = useEntity(); @@ -219,7 +227,7 @@ export const EntitySplunkOnCallCard = () => { return ( <> {teams.map((team, i) => ( - + Date: Thu, 3 Feb 2022 16:45:42 -0500 Subject: [PATCH 052/130] properly render components Corrects logic ensuring `` and `` render correctly. Previously, neither component would render from within the `` component. Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 8dbbf6e848..5f9db7e415 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -152,6 +152,14 @@ export const EntitySplunkOnCallCard = () => { return { usersHashMap, foundTeams }; }); + if (!teamAnnotation && !routingKeyAnnotation) { + return ; + } + + if (!eventsRestEndpoint) { + return ; + } + if (error instanceof UnauthorizedError) { return ; } @@ -175,10 +183,6 @@ export const EntitySplunkOnCallCard = () => { team: Team | undefined; usersHashMap: any | undefined; }) => { - if (!teamAnnotation && !routingKeyAnnotation) { - return ; - } - if (!team) { return ( { ); } - if (!eventsRestEndpoint) { - return ; - } - const teamName = team.name || ''; return ( From f408cabe8f93bdc828e661c3fb75bde42c309bf4 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 17:09:17 -0500 Subject: [PATCH 053/130] handle invalid Splunk On-Call annotations If a `splunk.com/on-call-team` annotation is provided and the API returns no associated team, render... ``` Splunk On-Call API returned no record of teams associated with the "foo" team name Escalation Policy and incident information unavailable. Splunk On-Call requires a valid team name or routing key. ``` If a `splunk.com/on-call-routing-key` annotation is provided and the API returns no associated team, render... ``` Splunk On-Call API returned no record of teams associated with the "foo" routing key Escalation Policy and incident information unavailable. Splunk On-Call requires a valid team name or routing key. ``` Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.tsx | 60 +++++++++++++------ 1 file changed, 41 insertions(+), 19 deletions(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 5f9db7e415..559f7c551e 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -59,15 +59,36 @@ export const MissingAnnotation = () => ( ); -export const InvalidTeamAnnotation = ({ teamName }: { teamName: string }) => ( - - - -); +export const InvalidAnnotation = ({ + teamName, + routingKey, +}: { + teamName: string | undefined; + routingKey: string | undefined; +}) => { + let titleSuffix = 'provided annotation'; + + if (teamName) { + titleSuffix = `"${teamName}" team name`; + } + + if (routingKey) { + titleSuffix = `"${routingKey}" routing key`; + } + + return ( + + + + + + + ); +}; export const MissingEventsRestEndpoint = () => ( @@ -181,17 +202,9 @@ export const EntitySplunkOnCallCard = () => { usersHashMap, }: { team: Team | undefined; - usersHashMap: any | undefined; + usersHashMap: any; }) => { - if (!team) { - return ( - - ); - } - - const teamName = team.name || ''; + const teamName = team && team.name ? team.name : ''; return ( <> @@ -224,6 +237,15 @@ export const EntitySplunkOnCallCard = () => { const teams = usersAndTeams?.foundTeams || []; + if (!teams.length) { + return ( + + ); + } + return ( <> {teams.map((team, i) => ( From 7fa7857d4885bea7ef3dcfca9179c9dee1d88f0b Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 18:51:06 -0500 Subject: [PATCH 054/130] correct incorrect team annotation test Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.test.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index eb5c99d4e7..da2cfbc2a3 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -170,7 +170,9 @@ describe('SplunkOnCallCard', () => { ); await waitFor(() => !queryByTestId('progress')); expect( - getByText('Could not find team named "test" in the Splunk On-Call API'), + getByText( + 'Splunk On-Call API returned no record of teams associated with the "test" team name', + ), ).toBeInTheDocument(); }); From 4bda7d3045e7d36ce9a9fb87a3a24c74117724a8 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 20:03:43 -0500 Subject: [PATCH 055/130] test warning for incorrect routing key annotation This adds a test asserting that the correct component is rendered when the entity `splunk.com/on-call-routing-key` does not properly map to any associated teams. Signed-off-by: Mike Ball --- plugins/splunk-on-call/src/api/mocks.ts | 13 ++++++ .../EntitySplunkOnCallCard.test.tsx | 41 +++++++++++++++++++ .../src/components/EntitySplunkOnCallCard.tsx | 30 +++++++------- 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/plugins/splunk-on-call/src/api/mocks.ts b/plugins/splunk-on-call/src/api/mocks.ts index d5335bfef4..8db06fb9d3 100644 --- a/plugins/splunk-on-call/src/api/mocks.ts +++ b/plugins/splunk-on-call/src/api/mocks.ts @@ -17,6 +17,7 @@ import { EscalationPolicyInfo, Incident, + RoutingKey, Team, User, } from '../components/types'; @@ -88,6 +89,18 @@ export const MOCK_TEAM: Team = { isDefaultTeam: false, }; +export const MOCK_ROUTING_KEY: RoutingKey = { + routingKey: 'test-routing-key', + targets: [ + { + policyName: 'some policy', + policySlug: MOCK_TEAM.slug || '', + _teamUrl: `/api-public/v1/team/${MOCK_TEAM.slug}`, + }, + ], + isDefault: false, +}; + export const MOCK_TEAM_NO_INCIDENTS: Team = { ...MOCK_TEAM, name: 'test-noincidents', diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index da2cfbc2a3..8b58af8e46 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -28,6 +28,7 @@ import { MOCKED_ON_CALL, MOCKED_USER, MOCK_INCIDENT, + MOCK_ROUTING_KEY, MOCK_TEAM, MOCK_TEAM_NO_INCIDENTS, } from '../api/mocks'; @@ -45,6 +46,7 @@ const mockSplunkOnCallApi: Partial = { getIncidents: async () => [MOCK_INCIDENT], getOnCallUsers: async () => MOCKED_ON_CALL, getTeams: async () => [MOCK_TEAM], + getRoutingKeys: async () => [MOCK_ROUTING_KEY], getEscalationPolicies: async () => ESCALATION_POLICIES, }; @@ -71,6 +73,17 @@ const mockEntity = { }, } as Entity; +const mockEntityWithRoutingKeyAnnotation = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'splunkoncall-test', + annotations: { + 'splunk.com/on-call-routing-key': MOCK_ROUTING_KEY.routingKey, + }, + }, +} as Entity; + const mockEntityNoIncidents = { apiVersion: 'backstage.io/v1alpha1', kind: 'Component', @@ -176,6 +189,34 @@ describe('SplunkOnCallCard', () => { ).toBeInTheDocument(); }); + it('handles warning for incorrect routing key annotation', async () => { + mockSplunkOnCallApi.getUsers = jest + .fn() + .mockImplementationOnce(async () => [MOCKED_USER]); + mockSplunkOnCallApi.getRoutingKeys = jest + .fn() + .mockImplementationOnce(async () => [MOCK_ROUTING_KEY]); + mockSplunkOnCallApi.getTeams = jest + .fn() + .mockImplementationOnce(async () => []); + + const { getByText, queryByTestId } = render( + wrapInTestApp( + + + + + , + ), + ); + await waitFor(() => !queryByTestId('progress')); + expect( + getByText( + `Splunk On-Call API returned no record of teams associated with the "${MOCK_ROUTING_KEY.routingKey}" routing key`, + ), + ).toBeInTheDocument(); + }); + it('opens the dialog when trigger button is clicked', async () => { mockSplunkOnCallApi.getUsers = jest .fn() diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 559f7c551e..db479f9459 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -161,12 +161,14 @@ export const EntitySplunkOnCallCard = () => { key => key.routingKey === routingKeyAnnotation, ); foundTeams = foundRoutingKey - ? foundRoutingKey.targets.map(target => { - const teamUrlParts = target._teamUrl.split('/'); - const teamSlug = teamUrlParts[teamUrlParts.length - 1]; + ? foundRoutingKey.targets + .map(target => { + const teamUrlParts = target._teamUrl.split('/'); + const teamSlug = teamUrlParts[teamUrlParts.length - 1]; - return teams.find(teamValue => teamValue.slug === teamSlug); - }) + return teams.find(teamValue => teamValue.slug === teamSlug); + }) + .filter(team => team !== undefined) : []; } @@ -197,6 +199,15 @@ export const EntitySplunkOnCallCard = () => { return ; } + if (!usersAndTeams?.foundTeams || !usersAndTeams?.foundTeams.length) { + return ( + + ); + } + const Content = ({ team, usersHashMap, @@ -237,15 +248,6 @@ export const EntitySplunkOnCallCard = () => { const teams = usersAndTeams?.foundTeams || []; - if (!teams.length) { - return ( - - ); - } - return ( <> {teams.map((team, i) => ( From 07ffc7ca9d2a0edeba69c4a86d50afa09e77852d Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 20:19:36 -0500 Subject: [PATCH 056/130] test when no Splunk On Call annotations are provided Signed-off-by: Mike Ball --- .../EntitySplunkOnCallCard.test.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index 8b58af8e46..05d9a071c3 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -84,6 +84,15 @@ const mockEntityWithRoutingKeyAnnotation = { }, } as Entity; +const mockEntityNoAnnotation = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'splunkoncall-test', + annotations: {}, + }, +} as Entity; + const mockEntityNoIncidents = { apiVersion: 'backstage.io/v1alpha1', kind: 'Component', @@ -164,6 +173,20 @@ describe('SplunkOnCallCard', () => { ).toBeInTheDocument(); }); + it('handles warning for missing required annotations', async () => { + const { getAllByText, queryByTestId } = render( + wrapInTestApp( + + + + + , + ), + ); + await waitFor(() => !queryByTestId('progress')); + expect(getAllByText('Missing Annotation').length).toEqual(2); + }); + it('handles warning for incorrect team annotation', async () => { mockSplunkOnCallApi.getUsers = jest .fn() From 5669e32ac1ac5494eb4273ae516a673422687096 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Thu, 3 Feb 2022 20:30:09 -0500 Subject: [PATCH 057/130] test component rendering w/ new annotation Test that the Splunk On Call component properly renders when a `splunk.com/on-call-routing-key` annotation is used. Signed-off-by: Mike Ball --- .../EntitySplunkOnCallCard.test.tsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index 05d9a071c3..9c16752421 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -131,6 +131,35 @@ describe('SplunkOnCallCard', () => { expect(getByText('Empty escalation policy')).toBeInTheDocument(); }); + it('handles a "splunk.com/on-call-routing-key" annotation', async () => { + mockSplunkOnCallApi.getUsers = jest + .fn() + .mockImplementationOnce(async () => [MOCKED_USER]); + mockSplunkOnCallApi.getRoutingKeys = jest + .fn() + .mockImplementationOnce(async () => [MOCK_ROUTING_KEY]); + mockSplunkOnCallApi.getTeams = jest + .fn() + .mockImplementation(async () => [MOCK_TEAM]); + + const { getByText, queryByTestId } = render( + wrapInTestApp( + + + + + , + ), + ); + await waitFor(() => !queryByTestId('progress')); + expect(getByText(`Team: ${MOCK_TEAM.name}`)).toBeInTheDocument(); + await waitFor( + () => + expect(getByText(MOCK_INCIDENT.entityDisplayName)).toBeInTheDocument(), + { timeout: 2000 }, + ); + }); + it('Handles custom error for missing token', async () => { mockSplunkOnCallApi.getUsers = jest .fn() From ba1a3e9456363bd59d5e56042385fd26588be876 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 07:51:18 -0500 Subject: [PATCH 058/130] add splunk.com/on-call-routing-key docs to README Signed-off-by: Mike Ball --- plugins/splunk-on-call/README.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/plugins/splunk-on-call/README.md b/plugins/splunk-on-call/README.md index 52803473b0..ddf31ee49f 100644 --- a/plugins/splunk-on-call/README.md +++ b/plugins/splunk-on-call/README.md @@ -2,11 +2,11 @@ ## Overview -This plugin displays Splunk On-Call, formerly VictorOps, information about an entity. +This plugin displays Splunk On-Call (formerly VictorOps) information associated with an entity. -There is a way to trigger an new incident directly to specific users or/and specific teams. +It also provides the ability to trigger new incidents directly to specific users or/and specific teams from within Backstage. -This plugin requires that entities are annotated with a team name. See more further down in this document. +This plugin requires that entities feature either a `splunk.com/on-call-team` or a `splunk.com/on-call-routing-key` annotation. See below for further details. This plugin provides: @@ -76,12 +76,22 @@ In addition, to make certain API calls (trigger-resolve-acknowledge an incident) ### Adding your team name to the entity annotation -The information displayed for each entity is based on the team name. -If you want to use this plugin for an entity, you need to label it with the below annotation: +The information displayed for each entity is based on either an associated team name or an associated routing key. + +To use this plugin for an entity, the entity must be labeled with either a `splunk.com/on-call-team` or a `splunk.com/on-call-routing-key` annotation. + +For example, by specifying a `splunk.com/on-call-team`, the plugin displays Splunk On-Call data associated with the specified team: ```yaml annotations: - splunk.com/on-call-team': + splunk.com/on-call-team: +``` + +Alternatively, by specifying a `splunk.com/on-call-routing-key`, the plugin displays Splunk On-Call data associated with _each_ of the teams associated with the specified routing key: + +```yaml +annotations: + splunk.com/on-call-routing-key: ``` ### Create the Routing Key From c17be55ffbddbd7354556c8f68d49453cf8eca3f Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 07:57:51 -0500 Subject: [PATCH 059/130] add Splunk On-Call plugin changeset Adds a changeset associated with the Splunk On-Call plugin's support for a new `splunk.com/on-call-routing-key` annotation. Signed-off-by: Mike Ball --- .changeset/honest-foxes-scream.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/honest-foxes-scream.md diff --git a/.changeset/honest-foxes-scream.md b/.changeset/honest-foxes-scream.md new file mode 100644 index 0000000000..c684c40d72 --- /dev/null +++ b/.changeset/honest-foxes-scream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-splunk-on-call': minor +--- + +Add Splunk On-Call plugin support for a 'splunk.com/on-call-routing-key' annotation. If the 'splunk.com/on-call-routing-key' is provided, the plugin displays a Splunk On-Call card for each of the teams associated with the routing key. From 12182960f421a5ca37ca21fdd15999000f31952c Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 08:21:30 -0500 Subject: [PATCH 060/130] address TypeScript compilation failure This fixes... ``` Run yarn tsc yarn run v1.22.1 $ tsc plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx:158:26 - error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'Matcher'. Type 'undefined' is not assignable to type 'Matcher'. 158 expect(getByText(MOCK_INCIDENT.entityDisplayName)).toBeInTheDocument(), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.test.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index 9c16752421..da248ebec0 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -154,8 +154,7 @@ describe('SplunkOnCallCard', () => { await waitFor(() => !queryByTestId('progress')); expect(getByText(`Team: ${MOCK_TEAM.name}`)).toBeInTheDocument(); await waitFor( - () => - expect(getByText(MOCK_INCIDENT.entityDisplayName)).toBeInTheDocument(), + () => expect(getByText('test-incident')).toBeInTheDocument(), { timeout: 2000 }, ); }); From 4ddc657bd349e427720e07b3be61884433993a5c Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 08:32:08 -0500 Subject: [PATCH 061/130] add Splunk client `getRoutingKeys` method documentation Signed-off-by: Mike Ball --- plugins/splunk-on-call/api-report.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/splunk-on-call/api-report.md b/plugins/splunk-on-call/api-report.md index 19f60ffd13..8e8076d9e8 100644 --- a/plugins/splunk-on-call/api-report.md +++ b/plugins/splunk-on-call/api-report.md @@ -51,6 +51,10 @@ export class SplunkOnCallClient implements SplunkOnCallApi { // // (undocumented) getOnCallUsers(): Promise; + // Warning: (ae-forgotten-export) The symbol "RoutingKey" needs to be exported by the entry point index.d.ts + // + // (undocumented) + getRoutingKeys(): Promise; // Warning: (ae-forgotten-export) The symbol "Team" needs to be exported by the entry point index.d.ts // // (undocumented) From a957b9fc4d5ec80f8da55675881aa1e886bb6812 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 08:38:38 -0500 Subject: [PATCH 062/130] fine-tune Splunk On-Call README language Signed-off-by: Mike Ball --- plugins/splunk-on-call/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/splunk-on-call/README.md b/plugins/splunk-on-call/README.md index ddf31ee49f..0200cacc50 100644 --- a/plugins/splunk-on-call/README.md +++ b/plugins/splunk-on-call/README.md @@ -4,14 +4,14 @@ This plugin displays Splunk On-Call (formerly VictorOps) information associated with an entity. -It also provides the ability to trigger new incidents directly to specific users or/and specific teams from within Backstage. +It also provides the ability to trigger new incidents to specific users and/or specific teams from within Backstage. This plugin requires that entities feature either a `splunk.com/on-call-team` or a `splunk.com/on-call-routing-key` annotation. See below for further details. This plugin provides: - A list of incidents -- A way to trigger a new incident to specific users or/and teams +- A way to trigger a new incident to specific users and/or teams - A way to acknowledge/resolve an incident - Information details about the persons on-call @@ -47,7 +47,7 @@ const overviewContent = ( ## Client configuration -In order to be able to perform certain action (create-acknowledge-resolve an action), you need to provide a REST Endpoint. +In order to be able to perform certain actions (create-acknowledge-resolve an action), you need to provide a REST Endpoint. To enable the REST Endpoint integration you can go on https://portal.victorops.com/ inside Integrations > 3rd Party Integrations > REST – Generic. You can now copy the URL to notify: `/$routing_key` From da9d1723f6f35b50b4af5f16fc92442b0724c593 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Fri, 4 Feb 2022 10:04:49 -0500 Subject: [PATCH 063/130] invalid annotation logic better reflects component logic The EntitySplunkOnCallCard gives precedence to a `splunk.com/on-call-team` annotation. Therefore, the InvalidAnnotation component messaging should reflect that precedence, even in instances where _both_ supported annotations are provided and both are deemed invalid. Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index db479f9459..109484ac04 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -68,14 +68,14 @@ export const InvalidAnnotation = ({ }) => { let titleSuffix = 'provided annotation'; - if (teamName) { - titleSuffix = `"${teamName}" team name`; - } - if (routingKey) { titleSuffix = `"${routingKey}" routing key`; } + if (teamName) { + titleSuffix = `"${teamName}" team name`; + } + return ( From 9fa811ddbb6eb440c4a518989fd55b054b120dab Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Mon, 7 Feb 2022 10:06:23 -0500 Subject: [PATCH 064/130] Update .changeset/honest-foxes-scream.md Co-authored-by: Johan Haals Signed-off-by: Mike Ball --- .changeset/honest-foxes-scream.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/honest-foxes-scream.md b/.changeset/honest-foxes-scream.md index c684c40d72..4737e47cef 100644 --- a/.changeset/honest-foxes-scream.md +++ b/.changeset/honest-foxes-scream.md @@ -2,4 +2,4 @@ '@backstage/plugin-splunk-on-call': minor --- -Add Splunk On-Call plugin support for a 'splunk.com/on-call-routing-key' annotation. If the 'splunk.com/on-call-routing-key' is provided, the plugin displays a Splunk On-Call card for each of the teams associated with the routing key. +Add Splunk On-Call plugin support for a `splunk.com/on-call-routing-key` annotation. If the `splunk.com/on-call-routing-key` is provided, the plugin displays a Splunk On-Call card for each of the teams associated with the routing key. From 1514d8a3137148964ab78907fa0c0739fde8b8ba Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Mon, 7 Feb 2022 10:06:30 -0500 Subject: [PATCH 065/130] Update plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx Co-authored-by: Johan Haals Signed-off-by: Mike Ball --- .../splunk-on-call/src/components/EntitySplunkOnCallCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 109484ac04..70aeb98cbd 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -215,7 +215,7 @@ export const EntitySplunkOnCallCard = () => { team: Team | undefined; usersHashMap: any; }) => { - const teamName = team && team.name ? team.name : ''; + const teamName = team?.name ?? ''; return ( <> From 04365cd21355ed000389c764543811e675c3b211 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Mon, 7 Feb 2022 12:12:35 -0500 Subject: [PATCH 066/130] display only 1 `` Per code review feedback, it's arguably unnecessary to display duplicate ``, especially given the preceding contextual sentence noting the supported annotations. Signed-off-by: Mike Ball --- plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 70aeb98cbd..4a6f983636 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -55,7 +55,6 @@ export const MissingAnnotation = () => ( {SPLUNK_ON_CALL_ROUTING_KEY} annotation. - ); From 9552df7653c0f0b2ef08c961f4ca503a893f055a Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Mon, 7 Feb 2022 13:55:01 -0500 Subject: [PATCH 067/130] test reflects occurrence of single 'Missing Annotation' Signed-off-by: Mike Ball --- .../src/components/EntitySplunkOnCallCard.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx index da248ebec0..a83db136e4 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.test.tsx @@ -212,7 +212,7 @@ describe('SplunkOnCallCard', () => { ), ); await waitFor(() => !queryByTestId('progress')); - expect(getAllByText('Missing Annotation').length).toEqual(2); + expect(getAllByText('Missing Annotation').length).toEqual(1); }); it('handles warning for incorrect team annotation', async () => { From d9ac082bef8a20a9443bb5b354fddd79645ae07f Mon Sep 17 00:00:00 2001 From: Jahred Hope Date: Tue, 8 Feb 2022 08:33:34 +1100 Subject: [PATCH 068/130] Update link to moved repository - techdocs-cli (#9305) --- docs/features/techdocs/creating-and-publishing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/techdocs/creating-and-publishing.md b/docs/features/techdocs/creating-and-publishing.md index ec27a81653..383c3ae6d2 100644 --- a/docs/features/techdocs/creating-and-publishing.md +++ b/docs/features/techdocs/creating-and-publishing.md @@ -114,7 +114,7 @@ updated documentation next time you run Backstage! ## Writing and previewing your documentation -Using the [techdocs-cli](https://github.com/backstage/techdocs-cli) you can +Using the [techdocs-cli](https://github.com/backstage/backstage/tree/master/packages/techdocs-cli) you can preview your docs inside a local Backstage instance and get live reload on changes. This is useful when you want to preview your documentation while writing. From 5255292a2a0c5e7a84ea59f53c74439f21e4b4ac Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Mon, 7 Feb 2022 17:04:01 -0500 Subject: [PATCH 069/130] update changeset to be 'patch' change Per code review feedback: https://github.com/backstage/backstage/pull/9362#discussion_r800480438 Signed-off-by: Mike Ball --- .changeset/honest-foxes-scream.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/honest-foxes-scream.md b/.changeset/honest-foxes-scream.md index 4737e47cef..f2d80b63a9 100644 --- a/.changeset/honest-foxes-scream.md +++ b/.changeset/honest-foxes-scream.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-splunk-on-call': minor +'@backstage/plugin-splunk-on-call': patch --- Add Splunk On-Call plugin support for a `splunk.com/on-call-routing-key` annotation. If the `splunk.com/on-call-routing-key` is provided, the plugin displays a Splunk On-Call card for each of the teams associated with the routing key. From d897491df24eba614b124f4e69183e052f37c988 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 04:10:21 +0000 Subject: [PATCH 070/130] chore(deps): bump esbuild from 0.14.10 to 0.14.20 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.10 to 0.14.20. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.14.10...v0.14.20) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 186 +++++++++++++++++++++++++++--------------------------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/yarn.lock b/yarn.lock index f1bce4f4fa..c55cd084fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10885,65 +10885,65 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild-android-arm64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.10.tgz#c854db57dc2d4df6f4f62185ca812f26a132bf1e" - integrity sha512-vzkTafHKoiMX4uIN1kBnE/HXYLpNT95EgGanVk6DHGeYgDolU0NBxjO7yZpq4ZGFPOx8384eAdDrBYhO11TAlQ== +esbuild-android-arm64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.20.tgz#7d1e7391030d83e2d6745ac297d630bb33130b36" + integrity sha512-MPKVDe3TMjGDRB5WmY9XnBaXEsPiiTpkz6GjXgBhBkMFZm27PhvZT4JE0vZ1fsLb5hnGC/fYsfAnp9rsxTZhIg== -esbuild-darwin-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.10.tgz#c44fab6b8bfc83e5d083f513e4acbff14fb82eac" - integrity sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A== +esbuild-darwin-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.20.tgz#b2633db8e87e36197965f18b6c0cfabc3497d8d2" + integrity sha512-09PPWejM3rRFsGHvtaTuRlG+KOQlOMwPW4HwwzRlO4TuP+FNV1nTW4x2Nid3dYLzCkcjznJWQ0oylLBQvGTRyQ== -esbuild-darwin-arm64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.10.tgz#9454b3763b36407dc395c4c3529fb5ddd4a6225f" - integrity sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g== +esbuild-darwin-arm64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.20.tgz#180fbebda4ec9376ffd8247a3d488f95c1d9df69" + integrity sha512-jYLrSXAwygoFF2lpRJSUAghre+9IThbcPvJQbcZMONBQaaZft9nclNsrN3k4u7zQaC8v+xZDVSHkmw593tQvkg== -esbuild-freebsd-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.10.tgz#04eef46d5d5e4152c6b5a6a12f432db0fe7c89de" - integrity sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw== +esbuild-freebsd-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.20.tgz#4eb99ccf3e0b7ab039e5bbe491a44458991006c2" + integrity sha512-XShznPLW3QsK8/7iCx1euZTowWaWlcrlkq4YTlRqDKXkJRe98FJ6+V2QyoSTwwCoo5koaYwc+h/SYdglF5369A== -esbuild-freebsd-arm64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.10.tgz#67ca88529543ada948737c95819253ead16494a7" - integrity sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g== +esbuild-freebsd-arm64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.20.tgz#5c6a02a4bc8ec8ff96c1142cf1509f1494aa78ff" + integrity sha512-flb3tDd6SScKhBqzWAESVCErpaqrGmMSRrssjx1aC+Ai5ZQrEyhfs5OWL4A9qHuixkhfmXffci7rFD+bNeXmZg== -esbuild-linux-32@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.10.tgz#8f3d5fb0b9b616d6b604da781d71767d7679f64f" - integrity sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA== +esbuild-linux-32@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.20.tgz#76af613e60a4f366d54d5d186c678bac36b18eda" + integrity sha512-Avtxbd0MHFJ2QhNxj/e8VGGm1/VnEJZq9qiHUl3wQZ4S0o2Wf4ReAfhqmgAbOPFTuxuZm070rRDZYiZifWzFGQ== -esbuild-linux-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.10.tgz#c1c60a079c4709164bdd89fbb007a2edeea7c34a" - integrity sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg== +esbuild-linux-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.20.tgz#35d3c7d792403b913c308c92942c3f6893dc8225" + integrity sha512-ugisoRA/ajCr9JMszsQnT9hKkpbD7Gr1yl1mWdZhWQnGt6JKGIndGiihMURcrR44IK/2OMkixVe66D4gCHKdPA== -esbuild-linux-arm64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.10.tgz#d8f1f89190f6d8b6e06a1214aafba454e5daa990" - integrity sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA== +esbuild-linux-arm64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.20.tgz#489e9187f95ce15e07e15a2aaadc53ec5ce1a02c" + integrity sha512-hsrMbNzhh+ud3zUyhONlR41vpYMjINS7BHEzXHbzo4YiCsG9Ht3arbiSuNGrhR/ybLr+8J/0fYVCipiVeAjy3Q== -esbuild-linux-arm@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.10.tgz#43192a00019a4553fb44e67f628fff0f560f16c2" - integrity sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ== +esbuild-linux-arm@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.20.tgz#40c0f5aab33b8fe04e0528a6b8a073e9fb2ba6fd" + integrity sha512-uo++Mo31+P2EA38oQgOeSIWgD7GMCMpZkaLfsCqtKJTIIL9fVzQHQYLDRIiFGpLHvs1faWWHDCEcXEFSP1Ou0g== -esbuild-linux-mips64le@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.10.tgz#f57bb8b2f1a3063cc91cfd787c8a9130cf863c16" - integrity sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg== +esbuild-linux-mips64le@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.20.tgz#3735a72ec09877b998f04c006af94f86575e4d7d" + integrity sha512-MBUu2Q+pzdTBWclPe7AwmRUMTUL0R99ONa8Hswpb987fXgFUdN4XBNBcEa5zy/l2UrIJK+9FUN1jjedZlxgP2A== -esbuild-linux-ppc64le@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.10.tgz#becd965bfe3425d41e026f1c4678b393127fecbd" - integrity sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ== +esbuild-linux-ppc64le@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.20.tgz#bf58bb6e9d2bfb67a61c09297cf73c3a7116935d" + integrity sha512-xkYjQtITA6q/b+/5aAf5n2L063pOxLyXUIad+zYT8GpZh0Sa7aSn18BmrFa2fHb0QSGgTEeRfYkTcBGgoPDjBA== -esbuild-linux-s390x@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.10.tgz#cc4228ac842febc48b84757814bed964a619be62" - integrity sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg== +esbuild-linux-s390x@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.20.tgz#202699f42e5a7a77ebbf526953f6bbfb2cc68016" + integrity sha512-AAcj3x80TXIedpNVuZgjYNETXr2iciOBQv5pGdNGAy6rv7k6Y6sT6SXQ58l2LH2AHbaeTPQjze+Y6qgX1efzrA== esbuild-loader@^2.18.0: version "2.18.0" @@ -10957,59 +10957,59 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.10.tgz#6ec50d9e4547a7579f447307b19f66bbedfd868b" - integrity sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w== +esbuild-netbsd-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.20.tgz#fb133b9726b8e672a7df57629fdc71606952d37c" + integrity sha512-30GQKCnsID1WddUi6tr5HFUxJD0t7Uitf6tO9Cf1WqF6C44pf8EflwrhyDFmUyvkddlyfb4OrYI6NNLC/G3ajg== -esbuild-openbsd-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.10.tgz#925ac3d2326cc219d514e1ca806e80e5143aa043" - integrity sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg== +esbuild-openbsd-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.20.tgz#50e879a09bb465cda8c9a2f03ba5c2096848c7a1" + integrity sha512-zVrf8fY46BK57AkxDdqu2S8TV3p7oLmYIiW707IOHrveI0TwJ2iypAxnwOQuCvowM3UWqVBO2RDBzV7S7t0klg== -esbuild-sunos-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.10.tgz#8d3576d8cac5c4f9f2a84be81b9078d424dbc739" - integrity sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw== +esbuild-sunos-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.20.tgz#cb1c55c86513226296935a9bc97fe9457b2a2de4" + integrity sha512-MYRsS1O7+aBr2T/0aA4OJrju6eMku4rm81fwGF1KLFwmymIpPGmj7n69n5JW3NKyW5j+FBt0GcyDh9nEnUL1FQ== -esbuild-windows-32@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.10.tgz#8a67fca4cb594a340566d66eef3f568f65057a48" - integrity sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g== +esbuild-windows-32@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.20.tgz#5e4db2758408e148e225f06c7724853386916c70" + integrity sha512-7VqDITqTU65LQ1Uka/4jx4sUIZc1L8NPlvc7HBRdR15TUyPxmHRQaxMGXd8aakI1FEBcImpJ9SQ4JLmPwRlS1w== -esbuild-windows-64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.10.tgz#5e6d7c475ff6a71ad0aa4046894364e6c40a9249" - integrity sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw== +esbuild-windows-64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.20.tgz#0731564e8396091b2ac487fb266c86a2bdd45b37" + integrity sha512-q4GxY4m5+nXSgqCKx6Cc5pavnhd2g5mHn+K8kNdfCMZsWPDlHLMRjYF5NVQ3/5mJ1M7iR3/Ai4ISjxmsCeGOGA== -esbuild-windows-arm64@0.14.10: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.10.tgz#50ab9a83f6ccf71c272e58489ecc4d7375075f32" - integrity sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA== +esbuild-windows-arm64@0.14.20: + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.20.tgz#615978735d3a8b5d0a8e4c35d5a18c0733920d4d" + integrity sha512-vOxfU7YwuBMjsUNUygMBhC8T60aCzeYptnHu4k7azqqOVo5EAyoueyWSkFR5GpX6bae5cXyB0vcOV/bfwqRwAg== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.6: - version "0.14.10" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.10.tgz#10268d2b576b25ed6f8554553413988628a7767b" - integrity sha512-ibZb+NwFqBwHHJlpnFMtg4aNmVK+LUtYMFC9CuKs6lDCBEvCHpqCFZFEirpqt1jOugwKGx8gALNGvX56lQyfew== + version "0.14.20" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.20.tgz#e83fcb838463f220e864141752bb0f91bfc9c33a" + integrity sha512-7aRJRnTjHZ6rFEre52tsAYZxatVELSA/QvYGUBf1iOsYKCnSJICE5seugQFFJgV1Gyl0/mngxQPhxBIqgYG2BA== optionalDependencies: - esbuild-android-arm64 "0.14.10" - esbuild-darwin-64 "0.14.10" - esbuild-darwin-arm64 "0.14.10" - esbuild-freebsd-64 "0.14.10" - esbuild-freebsd-arm64 "0.14.10" - esbuild-linux-32 "0.14.10" - esbuild-linux-64 "0.14.10" - esbuild-linux-arm "0.14.10" - esbuild-linux-arm64 "0.14.10" - esbuild-linux-mips64le "0.14.10" - esbuild-linux-ppc64le "0.14.10" - esbuild-linux-s390x "0.14.10" - esbuild-netbsd-64 "0.14.10" - esbuild-openbsd-64 "0.14.10" - esbuild-sunos-64 "0.14.10" - esbuild-windows-32 "0.14.10" - esbuild-windows-64 "0.14.10" - esbuild-windows-arm64 "0.14.10" + esbuild-android-arm64 "0.14.20" + esbuild-darwin-64 "0.14.20" + esbuild-darwin-arm64 "0.14.20" + esbuild-freebsd-64 "0.14.20" + esbuild-freebsd-arm64 "0.14.20" + esbuild-linux-32 "0.14.20" + esbuild-linux-64 "0.14.20" + esbuild-linux-arm "0.14.20" + esbuild-linux-arm64 "0.14.20" + esbuild-linux-mips64le "0.14.20" + esbuild-linux-ppc64le "0.14.20" + esbuild-linux-s390x "0.14.20" + esbuild-netbsd-64 "0.14.20" + esbuild-openbsd-64 "0.14.20" + esbuild-sunos-64 "0.14.20" + esbuild-windows-32 "0.14.20" + esbuild-windows-64 "0.14.20" + esbuild-windows-arm64 "0.14.20" escalade@^3.1.1: version "3.1.1" From 9067d7052f03976f972616df6c8b933b4fb65ddc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 04:26:03 +0000 Subject: [PATCH 071/130] chore(deps): bump winston from 3.3.3 to 3.5.1 Bumps [winston](https://github.com/winstonjs/winston) from 3.3.3 to 3.5.1. - [Release notes](https://github.com/winstonjs/winston/releases) - [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md) - [Commits](https://github.com/winstonjs/winston/compare/v3.3.3...v3.5.1) --- updated-dependencies: - dependency-name: winston dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 53 ++++++++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/yarn.lock b/yarn.lock index f1bce4f4fa..fce4d1f2f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7300,10 +7300,10 @@ async@^2.6.2: dependencies: lodash "^4.17.14" -async@^3.1.0, async@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== +async@^3.2.0, async@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== asynckit@^0.4.0: version "0.4.0" @@ -8792,7 +8792,7 @@ colors@1.0.3: resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@1.4.0, colors@^1.1.2, colors@^1.2.1: +colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -16238,17 +16238,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logform@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57" - integrity sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ== - dependencies: - colors "^1.2.1" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^1.1.0" - triple-beam "^1.3.0" - logform@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b" @@ -20560,7 +20549,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -21385,7 +21374,7 @@ safe-stable-stringify@^1.1.0: resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a" integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw== -safe-stable-stringify@^2.2.0: +safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== @@ -23403,7 +23392,7 @@ trim-off-newlines@^1.0.0: resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz#8df24847fcb821b0ab27d58ab6efec9f2fe961a1" integrity sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg== -triple-beam@^1.2.0, triple-beam@^1.3.0: +triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== @@ -24641,28 +24630,30 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -winston-transport@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" - integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== +winston-transport@^4.4.2: + version "4.5.0" + resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== dependencies: - readable-stream "^2.3.7" - triple-beam "^1.2.0" + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" winston@^3.2.1: - version "3.3.3" - resolved "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" - integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== + version "3.5.1" + resolved "https://registry.npmjs.org/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" + integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== dependencies: "@dabh/diagnostics" "^2.0.2" - async "^3.1.0" + async "^3.2.3" is-stream "^2.0.0" - logform "^2.2.0" + logform "^2.3.2" one-time "^1.0.0" readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.4.0" + winston-transport "^4.4.2" word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" From 9774508111cd6d5cd0eeff8e14a59efc49b17f48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 04:37:32 +0000 Subject: [PATCH 072/130] chore(deps-dev): bump typescript from 4.5.4 to 4.5.5 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.4 to 4.5.5. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.4...v4.5.5) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f1bce4f4fa..be39273806 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23656,9 +23656,9 @@ typescript@~4.4.4: integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== typescript@~4.5.2, typescript@~4.5.4: - version "4.5.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== + version "4.5.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== ua-parser-js@^0.7.18: version "0.7.28" From a7abd5f35b5152f0ae9671b90622bdd3ad3cf024 Mon Sep 17 00:00:00 2001 From: mufaddal motiwala Date: Tue, 8 Feb 2022 12:09:31 +0530 Subject: [PATCH 073/130] jsDoc comment added Signed-off-by: mufaddal motiwala --- plugins/newrelic-dashboard/api-report.md | 4 +--- plugins/newrelic-dashboard/src/plugin.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/newrelic-dashboard/api-report.md b/plugins/newrelic-dashboard/api-report.md index 260efb47a6..cff24d90c6 100644 --- a/plugins/newrelic-dashboard/api-report.md +++ b/plugins/newrelic-dashboard/api-report.md @@ -9,9 +9,7 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "DashboardSnapshotComponent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export const DashboardSnapshotComponent: ({ guid, name, diff --git a/plugins/newrelic-dashboard/src/plugin.ts b/plugins/newrelic-dashboard/src/plugin.ts index dc3b18e453..9bfecff18f 100644 --- a/plugins/newrelic-dashboard/src/plugin.ts +++ b/plugins/newrelic-dashboard/src/plugin.ts @@ -60,7 +60,14 @@ export const EntityNewRelicDashboardCard = newRelicDashboardPlugin.provide( }, }), ); - +/** + * Render dashboard snapshots from Newrelic in backstage. Use dashboards which have the tag `isDashboardPage: true` + * + * @remarks + * This can be helpful for rendering dashboards outside of Entity Catalog. + * + * @public + */ export const DashboardSnapshotComponent = newRelicDashboardPlugin.provide( createComponentExtension({ name: 'DashboardSnapshotComponent', From 476bb9411595cda8337353d0dbd6ffd17a95190a Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 19 Jan 2022 10:30:12 +0100 Subject: [PATCH 074/130] Initial release manifest package Signed-off-by: Johan Haals --- .changeset/config.json | 4 +- packages/cli/src/commands/index.ts | 5 + packages/cli/src/commands/versions/bump.ts | 27 ++-- packages/cli/src/lib/versioning/packages.ts | 2 +- packages/release-manifest/.eslintrc.js | 5 + packages/release-manifest/CHANGELOG.md | 1 + packages/release-manifest/README.md | 3 + packages/release-manifest/api-report.md | 12 ++ packages/release-manifest/package.json | 41 +++++++ packages/release-manifest/releases/1.0.0 | 115 ++++++++++++++++++ packages/release-manifest/src/index.ts | 21 ++++ .../release-manifest/src/manifest.test.ts | 9 ++ packages/release-manifest/src/manifest.ts | 57 +++++++++ 13 files changed, 293 insertions(+), 9 deletions(-) create mode 100644 packages/release-manifest/.eslintrc.js create mode 100644 packages/release-manifest/CHANGELOG.md create mode 100644 packages/release-manifest/README.md create mode 100644 packages/release-manifest/api-report.md create mode 100644 packages/release-manifest/package.json create mode 100644 packages/release-manifest/releases/1.0.0 create mode 100644 packages/release-manifest/src/index.ts create mode 100644 packages/release-manifest/src/manifest.test.ts create mode 100644 packages/release-manifest/src/manifest.ts diff --git a/.changeset/config.json b/.changeset/config.json index 283caa6ac4..33b69f3f1e 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -6,7 +6,9 @@ "access": "public", "baseBranch": "master", "updateInternalDependencies": "patch", - "ignore": [], + "ignore": [ + "@backstage/release-manifest" + ], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true } diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 2211af1dda..280c90ece8 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -341,6 +341,11 @@ export function registerCommands(program: CommanderStatic) { '--pattern ', 'Override glob for matching packages to upgrade', ) + .option( + '--release-line ', + 'Bump to the latest version of a specific release line', + 'main', + ) .description('Bump Backstage packages to the latest versions') .action(lazy(() => import('./versions/bump').then(m => m.default))); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 0d7c1cdfae..bb719e7e48 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -60,7 +60,7 @@ export default async (cmd: Command) => { console.log(`Using custom pattern glob ${pattern}`); } - const findTargetVersion = createVersionFinder(); + const findTargetVersion = createVersionFinder(cmd.releaseLine); // First we discover all Backstage dependencies within our own repo const dependencyMap = await mapDependencies(paths.targetDir, pattern); @@ -284,7 +284,9 @@ export default async (cmd: Command) => { } }; -function createVersionFinder() { +function createVersionFinder(releaseLine = 'latest') { + // The main release line is just an alias for latest + const distTag = releaseLine === 'main' ? 'latest' : releaseLine; const found = new Map(); return async function findTargetVersion(name: string) { @@ -295,12 +297,23 @@ function createVersionFinder() { console.log(`Checking for updates of ${name}`); const info = await fetchPackageInfo(name); - const latest = info['dist-tags'].latest; - if (!latest) { - throw new Error(`No latest version found for ${name}`); + const latestVersion = info['dist-tags'].latest; + if (!latestVersion) { + throw new Error(`No target 'latest' version found for ${name}`); } - found.set(name, latest); - return latest; + if (distTag === 'latest') { + found.set(name, latestVersion); + return latestVersion; + } + const taggedVersion = info['dist-tags'][distTag]; + if (!taggedVersion) { + found.set(name, latestVersion); + return latestVersion; + } + + // Take release from latest of next release is older + found.set(name, targetVersion); + return targetVersion; }; } diff --git a/packages/cli/src/lib/versioning/packages.ts b/packages/cli/src/lib/versioning/packages.ts index 1dabec6032..9f2f2bdc65 100644 --- a/packages/cli/src/lib/versioning/packages.ts +++ b/packages/cli/src/lib/versioning/packages.ts @@ -28,7 +28,7 @@ const DEP_TYPES = [ // Package data as returned by `yarn info` export type YarnInfoInspectData = { name: string; - 'dist-tags': { latest: string }; + 'dist-tags': Record; versions: string[]; time: { [version: string]: string }; }; diff --git a/packages/release-manifest/.eslintrc.js b/packages/release-manifest/.eslintrc.js new file mode 100644 index 0000000000..a86d9806ad --- /dev/null +++ b/packages/release-manifest/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + extends: [ + require.resolve('@backstage/release-manifest/config/eslint.backend'), + ], +}; diff --git a/packages/release-manifest/CHANGELOG.md b/packages/release-manifest/CHANGELOG.md new file mode 100644 index 0000000000..28f83c41cd --- /dev/null +++ b/packages/release-manifest/CHANGELOG.md @@ -0,0 +1 @@ +# @backstage/release-manifest diff --git a/packages/release-manifest/README.md b/packages/release-manifest/README.md new file mode 100644 index 0000000000..ddbeed7dd0 --- /dev/null +++ b/packages/release-manifest/README.md @@ -0,0 +1,3 @@ +# @backstage/release-manifest + +This package provides a mapping between a Backstage release and the packages included in that release. diff --git a/packages/release-manifest/api-report.md b/packages/release-manifest/api-report.md new file mode 100644 index 0000000000..0837e05763 --- /dev/null +++ b/packages/release-manifest/api-report.md @@ -0,0 +1,12 @@ +## API Report File for "@backstage/release-manifest" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +// Warning: (ae-missing-release-tag) "releaseManifest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const releaseManifest: { + '@backstage/cli': string; +}; +``` diff --git a/packages/release-manifest/package.json b/packages/release-manifest/package.json new file mode 100644 index 0000000000..d530ac4df0 --- /dev/null +++ b/packages/release-manifest/package.json @@ -0,0 +1,41 @@ +{ + "name": "@backstage/release-manifest", + "description": "Package information for ", + "version": "0.0.0", + "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/backstage/backstage", + "directory": "packages/release-manifest" + }, + "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" + }, + "dependencies": { + "fs-extra": "^10.0.0" + }, + "devDependencies": { + "@types/jest": "^26.0.7", + "@types/node": "^14.14.32" + }, + "files": [ + "dist" + ] +} diff --git a/packages/release-manifest/releases/1.0.0 b/packages/release-manifest/releases/1.0.0 new file mode 100644 index 0000000000..9480d17aef --- /dev/null +++ b/packages/release-manifest/releases/1.0.0 @@ -0,0 +1,115 @@ +app-defaults=1.0.0 +backend-common=1.0.0 +backend-tasks=1.0.0 +backend-test-utils=1.0.0 +catalog-client=1.0.0 +catalog-model=1.0.0 +cli-common=1.0.0 +cli=1.0.0 +codemods=1.0.0 +config-loader=1.0.0 +config=1.0.0 +core-app-api=1.0.0 +core-components=1.0.0 +core-plugin-api=1.0.0 +create-app=1.0.0 +dev-utils=1.0.0 +errors=1.0.0 +integration-react=1.0.0 +integration=1.0.0 +plugin-airbrake=1.0.0 +plugin-allure=1.0.0 +plugin-analytics-module-ga=1.0.0 +plugin-apache-airflow=1.0.0 +plugin-api-docs=1.0.0 +plugin-app-backend=1.0.0 +plugin-auth-backend=1.0.0 +plugin-azure-devops-backend=1.0.0 +plugin-azure-devops-common=1.0.0 +plugin-azure-devops=1.0.0 +plugin-badges-backend=1.0.0 +plugin-badges=1.0.0 +plugin-bazaar-backend=1.0.0 +plugin-bazaar=1.0.0 +plugin-bitrise=1.0.0 +plugin-catalog-backend-module-ldap=1.0.0 +plugin-catalog-backend-module-msgraph=1.0.0 +plugin-catalog-backend=1.0.0 +plugin-catalog-common=1.0.0 +plugin-catalog-graph=1.0.0 +plugin-catalog-graphql=1.0.0 +plugin-catalog-import=1.0.0 +plugin-catalog-react=1.0.0 +plugin-catalog=1.0.0 +plugin-circleci=1.0.0 +plugin-cloudbuild=1.0.0 +plugin-code-coverage-backend=1.0.0 +plugin-code-coverage=1.0.0 +plugin-config-schema=1.0.0 +plugin-cost-insights=1.0.0 +plugin-explore-react=1.0.0 +plugin-explore=1.0.0 +plugin-firehydrant=1.0.0 +plugin-fossa=1.0.0 +plugin-gcp-projects=1.0.0 +plugin-git-release-manager=1.0.0 +plugin-github-actions=1.0.0 +plugin-github-deployments=1.0.0 +plugin-gitops-profiles=1.0.0 +plugin-gocd=1.0.0 +plugin-graphiql=1.0.0 +plugin-graphql-backend=1.0.0 +plugin-home=1.0.0 +plugin-ilert=1.0.0 +plugin-jenkins-backend=1.0.0 +plugin-jenkins=1.0.0 +plugin-kafka-backend=1.0.0 +plugin-kafka=1.0.0 +plugin-kubernetes-backend=1.0.0 +plugin-kubernetes-common=1.0.0 +plugin-kubernetes=1.0.0 +plugin-lighthouse=1.0.0 +plugin-newrelic-dashboard=1.0.0 +plugin-newrelic=1.0.0 +plugin-org=1.0.0 +plugin-pagerduty=1.0.0 +plugin-permission-backend=1.0.0 +plugin-permission-common=1.0.0 +plugin-permission-node=1.0.0 +plugin-permission-react=1.0.0 +plugin-proxy-backend=1.0.0 +plugin-rollbar-backend=1.0.0 +plugin-rollbar=1.0.0 +plugin-scaffolder-backend-module-cookiecutter=1.0.0 +plugin-scaffolder-backend-module-rails=1.0.0 +plugin-scaffolder-backend-module-yeoman=1.0.0 +plugin-scaffolder-backend=1.0.0 +plugin-scaffolder-common=1.0.0 +plugin-scaffolder=1.0.0 +plugin-search-backend-module-elasticsearch=1.0.0 +plugin-search-backend-module-pg=1.0.0 +plugin-search-backend-node=1.0.0 +plugin-search-backend=1.0.0 +plugin-search=1.0.0 +plugin-sentry=1.0.0 +plugin-shortcuts=1.0.0 +plugin-sonarqube=1.0.0 +plugin-splunk-on-call=1.0.0 +plugin-tech-insights-backend-module-jsonfc=1.0.0 +plugin-tech-insights-backend=1.0.0 +plugin-tech-insights-common=1.0.0 +plugin-tech-insights-node=1.0.0 +plugin-tech-insights=1.0.0 +plugin-tech-radar=1.0.0 +plugin-techdocs-backend=1.0.0 +plugin-techdocs=1.0.0 +plugin-todo-backend=1.0.0 +plugin-todo=1.0.0 +plugin-user-settings=1.0.0 +plugin-xcmetrics=1.0.0 +search-common=1.0.0 +techdocs-common=1.0.0 +test-utils=1.0.0 +theme=1.0.0 +types=1.0.0 +version-bridge=1.0.0 diff --git a/packages/release-manifest/src/index.ts b/packages/release-manifest/src/index.ts new file mode 100644 index 0000000000..099b146e78 --- /dev/null +++ b/packages/release-manifest/src/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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. + */ + +/** + * Contains mapping between Backstage release and package versions. + * + * @packageDocumentation + */ diff --git a/packages/release-manifest/src/manifest.test.ts b/packages/release-manifest/src/manifest.test.ts new file mode 100644 index 0000000000..0c2005d1a8 --- /dev/null +++ b/packages/release-manifest/src/manifest.test.ts @@ -0,0 +1,9 @@ +import { getRelease } from './manifest'; + +describe('Get Packages', () => { + it('should return a list of packages in a release', async () => { + const pkgs = await getRelease('1.0.0'); + console.log(pkgs); + expect(pkgs.size).toBe(2); + }); +}); diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifest/src/manifest.ts new file mode 100644 index 0000000000..07e3ec7cb7 --- /dev/null +++ b/packages/release-manifest/src/manifest.ts @@ -0,0 +1,57 @@ +/* + * Copyright 2022 The Backstage Authors + * + * 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. + */ + +/** + * Mapping between a Backstage release and individual package versions. + * @public + */ +import { resolvePackagePath } from '@backstage/backend-common'; +import fs from 'fs-extra'; +import path from 'path'; + +const RELEASE_DIR = resolvePackagePath( + '@backstage/release-manifest', + 'releases', +); + +export type ReleaseManifest = { + packages: Map; +}; + +export async function getRelease(version: string): Promise { + const pkgs = new Map(); + try { + const content = await fs.readFile(path.resolve(RELEASE_DIR, `${version}`)); + for (const line of content.toString().split('\n')) { + const [pkg, version] = line.split('='); + pkgs.set(pkg, version); + } + } catch (e) { + throw new Error(`No release found for ${version} version`); + } + return { packages: pkgs }; +} + +export type ReleaseList = { + items: { + version: string; + }[]; +}; + +export async function listReleases(): Promise { + const files = await fs.readdir(RELEASE_DIR); + return { items: files.map(file => ({ version: file })) }; +} From 36cca38c61fdd71b76edc4a08aa1d2bceda788a1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 19 Jan 2022 13:48:15 +0100 Subject: [PATCH 075/130] date compare release tracks, prefer latest Signed-off-by: Johan Haals --- packages/cli/src/commands/versions/bump.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index bb719e7e48..2371011be3 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -310,10 +310,18 @@ function createVersionFinder(releaseLine = 'latest') { found.set(name, latestVersion); return latestVersion; } + const latestVersionRelease = new Date(info.time[latestVersion]); + const taggedVersionRelease = new Date(info.time[taggedVersion]); + if (latestVersionRelease > taggedVersionRelease) { + console.log( + `using 'latest' dist tag for ${name} as its newer than '${distTag}'`, + ); + found.set(name, latestVersion); + return latestVersion; + } - // Take release from latest of next release is older - found.set(name, targetVersion); - return targetVersion; + found.set(name, taggedVersion); + return taggedVersion; }; } From 7c4e7b707c285cfe56ddb73b0e3235713f9e9da6 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 20 Jan 2022 11:13:55 +0100 Subject: [PATCH 076/130] cli/bump: Add tests for versionfinder Co-authored-by: Patrik Oldsberg Signed-off-by: Johan Haals --- .../cli/src/commands/versions/bump.test.ts | 92 ++++++++++++++++++- packages/cli/src/commands/versions/bump.ts | 36 +++++--- 2 files changed, 115 insertions(+), 13 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index ae1a4c4627..a5c867fccd 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -20,8 +20,9 @@ import { Command } from 'commander'; import { resolve as resolvePath } from 'path'; import { paths } from '../../lib/paths'; import * as runObj from '../../lib/run'; -import bump, { bumpBackstageJsonVersion } from './bump'; +import bump, { bumpBackstageJsonVersion, createVersionFinder } from './bump'; import { withLogCollector } from '@backstage/test-utils'; +import { YarnInfoInspectData } from '../../lib/versioning/packages'; // Remove log coloring to simplify log matching jest.mock('chalk', () => ({ @@ -442,3 +443,92 @@ describe('bumpBackstageJsonVersion', () => { expect(json).toEqual({ version: '1.4.1' }); }); }); + +describe('createVersionFinder', () => { + async function findVersion(tag: string, data: Partial) { + const fetcher = () => + Promise.resolve({ + name: '@backstage/core', + 'dist-tags': {}, + versions: [], + time: {}, + ...data, + }); + + const versionFinder = createVersionFinder(tag, fetcher); + let result; + await withLogCollector(async () => { + result = await versionFinder('@backstage/core'); + }); + return result; + } + + it('should create version finder', async () => { + await expect( + findVersion('latest', { + time: { '1.0.0': '2020-01-01T00:00:00.000Z' }, + 'dist-tags': { latest: '1.0.0' }, + }), + ).resolves.toBe('1.0.0'); + + await expect( + findVersion('main', { + time: { '1.0.0': '2020-01-01T00:00:00.000Z' }, + 'dist-tags': { latest: '1.0.0' }, + }), + ).resolves.toBe('1.0.0'); + + await expect( + findVersion('next', { + time: { '1.0.0': '2020-01-01T00:00:00.000Z' }, + 'dist-tags': { latest: '1.0.0' }, + }), + ).resolves.toBe('1.0.0'); + + await expect( + findVersion('next', { + time: { + '1.0.0': '2020-01-01T00:00:00.000Z', + '0.9.0': '2010-01-01T00:00:00.000Z', + }, + 'dist-tags': { latest: '1.0.0', next: '0.9.0' }, + }), + ).resolves.toBe('1.0.0'); + + await expect( + findVersion('next', { + time: { + '1.0.0': '2020-01-01T00:00:00.000Z', + '0.9.0': '2020-02-01T00:00:00.000Z', + }, + 'dist-tags': { latest: '1.0.0', next: '0.9.0' }, + }), + ).resolves.toBe('0.9.0'); + + await expect(findVersion('next', {})).rejects.toThrow( + "No target 'latest' version found for @backstage/core", + ); + + await expect( + findVersion('next', { + time: { + '0.9.0': '2020-02-01T00:00:00.000Z', + }, + 'dist-tags': { latest: '1.0.0', next: '0.9.0' }, + }), + ).rejects.toThrow( + "No time available for version '1.0.0' of @backstage/core", + ); + + await expect( + findVersion('next', { + time: { + '1.0.0': '2020-01-01T00:00:00.000Z', + }, + 'dist-tags': { latest: '1.0.0', next: '0.9.0' }, + }), + ).rejects.toThrow( + "No time available for version '0.9.0' of @backstage/core", + ); + }); +}); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 2371011be3..af188cd472 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -284,7 +284,10 @@ export default async (cmd: Command) => { } }; -function createVersionFinder(releaseLine = 'latest') { +export function createVersionFinder( + releaseLine = 'latest', + packageInfoFetcher = fetchPackageInfo, +) { // The main release line is just an alias for latest const distTag = releaseLine === 'main' ? 'latest' : releaseLine; const found = new Map(); @@ -296,26 +299,35 @@ function createVersionFinder(releaseLine = 'latest') { } console.log(`Checking for updates of ${name}`); - const info = await fetchPackageInfo(name); + const info = await packageInfoFetcher(name); const latestVersion = info['dist-tags'].latest; if (!latestVersion) { throw new Error(`No target 'latest' version found for ${name}`); } - if (distTag === 'latest') { - found.set(name, latestVersion); - return latestVersion; - } + const taggedVersion = info['dist-tags'][distTag]; - if (!taggedVersion) { + if (distTag === 'latest' || !taggedVersion) { found.set(name, latestVersion); return latestVersion; } - const latestVersionRelease = new Date(info.time[latestVersion]); - const taggedVersionRelease = new Date(info.time[taggedVersion]); - if (latestVersionRelease > taggedVersionRelease) { - console.log( - `using 'latest' dist tag for ${name} as its newer than '${distTag}'`, + + const latestVersionDateStr = info.time[latestVersion]; + const taggedVersionDateStr = info.time[taggedVersion]; + if (!latestVersionDateStr) { + throw new Error( + `No time available for version '${latestVersion}' of ${name}`, ); + } + if (!taggedVersionDateStr) { + throw new Error( + `No time available for version '${taggedVersion}' of ${name}`, + ); + } + + const latestVersionRelease = new Date(latestVersionDateStr).getTime(); + const taggedVersionRelease = new Date(taggedVersionDateStr).getTime(); + if (latestVersionRelease > taggedVersionRelease) { + // Prefer latest version if it's newer. found.set(name, latestVersion); return latestVersion; } From 5cd75ebbea503e1cdb8b1264a1f3ee4adab93910 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 14:14:58 +0100 Subject: [PATCH 077/130] fix eslint error Signed-off-by: Johan Haals --- packages/release-manifest/.eslintrc.js | 4 +--- packages/release-manifest/package.json | 7 +++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/release-manifest/.eslintrc.js b/packages/release-manifest/.eslintrc.js index a86d9806ad..16a033dbc6 100644 --- a/packages/release-manifest/.eslintrc.js +++ b/packages/release-manifest/.eslintrc.js @@ -1,5 +1,3 @@ module.exports = { - extends: [ - require.resolve('@backstage/release-manifest/config/eslint.backend'), - ], + extends: [require.resolve('@backstage/cli/config/eslint.backend')], }; diff --git a/packages/release-manifest/package.json b/packages/release-manifest/package.json index d530ac4df0..4f2a25aa33 100644 --- a/packages/release-manifest/package.json +++ b/packages/release-manifest/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/release-manifest", "description": "Package information for ", - "version": "0.0.0", + "version": "0.0.1", "private": false, "main": "src/index.ts", "types": "src/index.ts", @@ -29,9 +29,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "fs-extra": "^10.0.0" + "fs-extra": "^10.0.0", + "node-fetch": "^2.6.1" }, "devDependencies": { + "@backstage/test-utils": "^0.2.3", + "msw": "^0.36.5", "@types/jest": "^26.0.7", "@types/node": "^14.14.32" }, From c2930c3b2cf88e62cdc83de246d7700954a277e7 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 14:15:58 +0100 Subject: [PATCH 078/130] manifest: add getReleaseBy methods Signed-off-by: Johan Haals --- packages/release-manifest/src/index.ts | 3 + .../release-manifest/src/manifest.test.ts | 52 +++++++++++- packages/release-manifest/src/manifest.ts | 82 ++++++++++++------- 3 files changed, 104 insertions(+), 33 deletions(-) diff --git a/packages/release-manifest/src/index.ts b/packages/release-manifest/src/index.ts index 099b146e78..fa05520855 100644 --- a/packages/release-manifest/src/index.ts +++ b/packages/release-manifest/src/index.ts @@ -19,3 +19,6 @@ * * @packageDocumentation */ + +export { getByVersion, getByReleaseLine } from './manifest'; +export type { ReleaseManifest } from './manifest'; diff --git a/packages/release-manifest/src/manifest.test.ts b/packages/release-manifest/src/manifest.test.ts index 0c2005d1a8..a5c7235036 100644 --- a/packages/release-manifest/src/manifest.test.ts +++ b/packages/release-manifest/src/manifest.test.ts @@ -1,9 +1,53 @@ -import { getRelease } from './manifest'; +/* + * Copyright 2020 The Backstage Authors + * + * 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 { setupRequestMockHandlers } from '@backstage/test-utils'; +import { getByVersion } from './manifest'; +import { setupServer } from 'msw/node'; +import { rest } from 'msw'; describe('Get Packages', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + it('should return a list of packages in a release', async () => { - const pkgs = await getRelease('1.0.0'); - console.log(pkgs); - expect(pkgs.size).toBe(2); + worker.use( + rest.get('*/v1/releases/0.0.0', (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [{ name: '@backstage/core', version: '1.2.3' }], + }), + ), + ), + rest.get('*/v1/releases/999.0.1', (_, res, ctx) => + res(ctx.status(404), ctx.json({})), + ), + ); + + const pkgs = await getByVersion({ version: '0.0.0' }); + expect(pkgs.packages).toEqual([ + { + name: '@backstage/core', + version: '1.2.3', + }, + ]); + + await expect(getByVersion({ version: '999.0.1' })).rejects.toThrow( + 'No release found for 999.0.1 version', + ); }); }); diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifest/src/manifest.ts index 07e3ec7cb7..378ff41b7a 100644 --- a/packages/release-manifest/src/manifest.ts +++ b/packages/release-manifest/src/manifest.ts @@ -14,44 +14,68 @@ * limitations under the License. */ +import fetch from 'node-fetch'; + +const VERSIONS_DOMAIN = 'https://versions.backstage.io'; + /** - * Mapping between a Backstage release and individual package versions. + * Contains mapping between Backstage release and package versions. * @public */ -import { resolvePackagePath } from '@backstage/backend-common'; -import fs from 'fs-extra'; -import path from 'path'; - -const RELEASE_DIR = resolvePackagePath( - '@backstage/release-manifest', - 'releases', -); - export type ReleaseManifest = { - packages: Map; + packages: { name: string; version: string }[]; }; -export async function getRelease(version: string): Promise { - const pkgs = new Map(); - try { - const content = await fs.readFile(path.resolve(RELEASE_DIR, `${version}`)); - for (const line of content.toString().split('\n')) { - const [pkg, version] = line.split('='); - pkgs.set(pkg, version); - } - } catch (e) { - throw new Error(`No release found for ${version} version`); +/** + * Options for getByVersion. + */ +export type GetByVersionOptions = { + version: string; +}; + +/** + * Returns a release manifest based on supplied version. + * @public + */ +export async function getByVersion( + options: GetByVersionOptions, +): Promise { + const url = `${VERSIONS_DOMAIN}/v1/releases/${options.version}`; + const response = await fetch(url); + if (response.status === 404) { + throw new Error(`No release found for ${options.version} version`); } - return { packages: pkgs }; + if (response.status !== 200) { + throw new Error( + `Unexpected response status ${response.status} when fetching release from ${url}.`, + ); + } + return await response.json(); } -export type ReleaseList = { - items: { - version: string; - }[]; +/** + * Options for getByReleaseLine. + */ +export type GetByReleaseLineOptions = { + releaseLine: string; }; -export async function listReleases(): Promise { - const files = await fs.readdir(RELEASE_DIR); - return { items: files.map(file => ({ version: file })) }; +/** + * Returns a release manifest based on supplied release line. + * @public + */ +export async function getByReleaseLine( + options: GetByReleaseLineOptions, +): Promise { + const url = `${VERSIONS_DOMAIN}/v1/tags/${options.releaseLine}`; + const response = await fetch(url); + if (response.status === 404) { + throw new Error(`No '${options.releaseLine}' release line found`); + } + if (response.status !== 200) { + throw new Error( + `Unexpected response status ${response.status} when fetching release from ${url}.`, + ); + } + return await response.json(); } From 061393a964a018cdbd4909070d7b71664cb4cc50 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 14:17:50 +0100 Subject: [PATCH 079/130] Pass releaseManifest to versionFinder Signed-off-by: Johan Haals --- packages/cli/package.json | 1 + packages/cli/src/commands/index.ts | 5 +- packages/cli/src/commands/versions/bump.ts | 46 +++++++-- packages/release-manifest/releases/1.0.0 | 115 --------------------- 4 files changed, 45 insertions(+), 122 deletions(-) delete mode 100644 packages/release-manifest/releases/1.0.0 diff --git a/packages/cli/package.json b/packages/cli/package.json index 0f6c521ec4..cf0f79720c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -32,6 +32,7 @@ "@backstage/config": "^0.1.13", "@backstage/config-loader": "^0.9.3", "@backstage/errors": "^0.2.0", + "@backstage/release-manifest": "^0.0.1", "@backstage/types": "^0.1.1", "@hot-loader/react-dom": "^16.13.0", "@manypkg/get-packages": "^1.1.3", diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 280c90ece8..b1fce377f5 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -344,7 +344,10 @@ export function registerCommands(program: CommanderStatic) { .option( '--release-line ', 'Bump to the latest version of a specific release line', - 'main', + ) + .option( + '--backstage-release ', + 'Bump to a specific Backstage release', ) .description('Bump Backstage packages to the latest versions') .action(lazy(() => import('./versions/bump').then(m => m.default))); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index af188cd472..31e424dd6d 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -27,10 +27,16 @@ import { mapDependencies, fetchPackageInfo, Lockfile, + YarnInfoInspectData, } from '../../lib/versioning'; import { forbiddenDuplicatesFilter } from './lint'; import { BACKSTAGE_JSON } from '@backstage/cli-common'; import { runParallelWorkers } from '../../lib/parallel'; +import { + getByReleaseLine, + getByVersion, + ReleaseManifest, +} from '@backstage/release-manifest'; const DEP_TYPES = [ 'dependencies', @@ -60,7 +66,22 @@ export default async (cmd: Command) => { console.log(`Using custom pattern glob ${pattern}`); } - const findTargetVersion = createVersionFinder(cmd.releaseLine); + if (cmd.releaseLine && cmd.backstageRelease) { + throw new Error( + 'Cannot specify both --release-line and --backstage-release', + ); + } + + let releaseManifest; + if (cmd.backstageRelease) { + releaseManifest = await getByVersion({ version: cmd.backstageRelease }); + } else if (cmd.releaseLine) { + releaseManifest = await getByReleaseLine({ releaseLine: cmd.releaseLine }); + } + const findTargetVersion = createVersionFinder({ + releaseLine: cmd.releaseLine, + releaseManifest, + }); // First we discover all Backstage dependencies within our own repo const dependencyMap = await mapDependencies(paths.targetDir, pattern); @@ -284,14 +305,22 @@ export default async (cmd: Command) => { } }; -export function createVersionFinder( - releaseLine = 'latest', - packageInfoFetcher = fetchPackageInfo, -) { +export function createVersionFinder(options: { + releaseLine?: string; + packageInfoFetcher?: () => Promise; + releaseManifest?: ReleaseManifest; +}) { + const { + releaseLine = 'latest', + packageInfoFetcher = fetchPackageInfo, + releaseManifest, + } = options; // The main release line is just an alias for latest const distTag = releaseLine === 'main' ? 'latest' : releaseLine; const found = new Map(); - + const releasePackages = new Map( + releaseManifest?.packages.map(p => [p.name, p.version]), + ); return async function findTargetVersion(name: string) { const existing = found.get(name); if (existing) { @@ -299,6 +328,11 @@ export function createVersionFinder( } console.log(`Checking for updates of ${name}`); + const manifestVersion = releasePackages.get(name); + if (manifestVersion) { + return manifestVersion; + } + const info = await packageInfoFetcher(name); const latestVersion = info['dist-tags'].latest; if (!latestVersion) { diff --git a/packages/release-manifest/releases/1.0.0 b/packages/release-manifest/releases/1.0.0 deleted file mode 100644 index 9480d17aef..0000000000 --- a/packages/release-manifest/releases/1.0.0 +++ /dev/null @@ -1,115 +0,0 @@ -app-defaults=1.0.0 -backend-common=1.0.0 -backend-tasks=1.0.0 -backend-test-utils=1.0.0 -catalog-client=1.0.0 -catalog-model=1.0.0 -cli-common=1.0.0 -cli=1.0.0 -codemods=1.0.0 -config-loader=1.0.0 -config=1.0.0 -core-app-api=1.0.0 -core-components=1.0.0 -core-plugin-api=1.0.0 -create-app=1.0.0 -dev-utils=1.0.0 -errors=1.0.0 -integration-react=1.0.0 -integration=1.0.0 -plugin-airbrake=1.0.0 -plugin-allure=1.0.0 -plugin-analytics-module-ga=1.0.0 -plugin-apache-airflow=1.0.0 -plugin-api-docs=1.0.0 -plugin-app-backend=1.0.0 -plugin-auth-backend=1.0.0 -plugin-azure-devops-backend=1.0.0 -plugin-azure-devops-common=1.0.0 -plugin-azure-devops=1.0.0 -plugin-badges-backend=1.0.0 -plugin-badges=1.0.0 -plugin-bazaar-backend=1.0.0 -plugin-bazaar=1.0.0 -plugin-bitrise=1.0.0 -plugin-catalog-backend-module-ldap=1.0.0 -plugin-catalog-backend-module-msgraph=1.0.0 -plugin-catalog-backend=1.0.0 -plugin-catalog-common=1.0.0 -plugin-catalog-graph=1.0.0 -plugin-catalog-graphql=1.0.0 -plugin-catalog-import=1.0.0 -plugin-catalog-react=1.0.0 -plugin-catalog=1.0.0 -plugin-circleci=1.0.0 -plugin-cloudbuild=1.0.0 -plugin-code-coverage-backend=1.0.0 -plugin-code-coverage=1.0.0 -plugin-config-schema=1.0.0 -plugin-cost-insights=1.0.0 -plugin-explore-react=1.0.0 -plugin-explore=1.0.0 -plugin-firehydrant=1.0.0 -plugin-fossa=1.0.0 -plugin-gcp-projects=1.0.0 -plugin-git-release-manager=1.0.0 -plugin-github-actions=1.0.0 -plugin-github-deployments=1.0.0 -plugin-gitops-profiles=1.0.0 -plugin-gocd=1.0.0 -plugin-graphiql=1.0.0 -plugin-graphql-backend=1.0.0 -plugin-home=1.0.0 -plugin-ilert=1.0.0 -plugin-jenkins-backend=1.0.0 -plugin-jenkins=1.0.0 -plugin-kafka-backend=1.0.0 -plugin-kafka=1.0.0 -plugin-kubernetes-backend=1.0.0 -plugin-kubernetes-common=1.0.0 -plugin-kubernetes=1.0.0 -plugin-lighthouse=1.0.0 -plugin-newrelic-dashboard=1.0.0 -plugin-newrelic=1.0.0 -plugin-org=1.0.0 -plugin-pagerduty=1.0.0 -plugin-permission-backend=1.0.0 -plugin-permission-common=1.0.0 -plugin-permission-node=1.0.0 -plugin-permission-react=1.0.0 -plugin-proxy-backend=1.0.0 -plugin-rollbar-backend=1.0.0 -plugin-rollbar=1.0.0 -plugin-scaffolder-backend-module-cookiecutter=1.0.0 -plugin-scaffolder-backend-module-rails=1.0.0 -plugin-scaffolder-backend-module-yeoman=1.0.0 -plugin-scaffolder-backend=1.0.0 -plugin-scaffolder-common=1.0.0 -plugin-scaffolder=1.0.0 -plugin-search-backend-module-elasticsearch=1.0.0 -plugin-search-backend-module-pg=1.0.0 -plugin-search-backend-node=1.0.0 -plugin-search-backend=1.0.0 -plugin-search=1.0.0 -plugin-sentry=1.0.0 -plugin-shortcuts=1.0.0 -plugin-sonarqube=1.0.0 -plugin-splunk-on-call=1.0.0 -plugin-tech-insights-backend-module-jsonfc=1.0.0 -plugin-tech-insights-backend=1.0.0 -plugin-tech-insights-common=1.0.0 -plugin-tech-insights-node=1.0.0 -plugin-tech-insights=1.0.0 -plugin-tech-radar=1.0.0 -plugin-techdocs-backend=1.0.0 -plugin-techdocs=1.0.0 -plugin-todo-backend=1.0.0 -plugin-todo=1.0.0 -plugin-user-settings=1.0.0 -plugin-xcmetrics=1.0.0 -search-common=1.0.0 -techdocs-common=1.0.0 -test-utils=1.0.0 -theme=1.0.0 -types=1.0.0 -version-bridge=1.0.0 From 415316302bac5450380ea80ce7f59a067ea37e45 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 14:52:15 +0100 Subject: [PATCH 080/130] Update paths, remove exclude Signed-off-by: Johan Haals --- .changeset/config.json | 4 +--- packages/release-manifest/package.json | 2 +- packages/release-manifest/src/manifest.ts | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 33b69f3f1e..283caa6ac4 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -6,9 +6,7 @@ "access": "public", "baseBranch": "master", "updateInternalDependencies": "patch", - "ignore": [ - "@backstage/release-manifest" - ], + "ignore": [], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true } diff --git a/packages/release-manifest/package.json b/packages/release-manifest/package.json index 4f2a25aa33..896f226612 100644 --- a/packages/release-manifest/package.json +++ b/packages/release-manifest/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "@backstage/test-utils": "^0.2.3", - "msw": "^0.36.5", + "msw": "^0.35.0", "@types/jest": "^26.0.7", "@types/node": "^14.14.32" }, diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifest/src/manifest.ts index 378ff41b7a..3123f99808 100644 --- a/packages/release-manifest/src/manifest.ts +++ b/packages/release-manifest/src/manifest.ts @@ -40,7 +40,7 @@ export type GetByVersionOptions = { export async function getByVersion( options: GetByVersionOptions, ): Promise { - const url = `${VERSIONS_DOMAIN}/v1/releases/${options.version}`; + const url = `${VERSIONS_DOMAIN}/v1/releases/${options.version}/manifest.json`; const response = await fetch(url); if (response.status === 404) { throw new Error(`No release found for ${options.version} version`); @@ -67,7 +67,7 @@ export type GetByReleaseLineOptions = { export async function getByReleaseLine( options: GetByReleaseLineOptions, ): Promise { - const url = `${VERSIONS_DOMAIN}/v1/tags/${options.releaseLine}`; + const url = `${VERSIONS_DOMAIN}/v1/tags/${options.releaseLine}/manifest.json`; const response = await fetch(url); if (response.status === 404) { throw new Error(`No '${options.releaseLine}' release line found`); From 2b92120edb4ce3cadd9f808a1e288ef2b029e132 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 15:07:03 +0100 Subject: [PATCH 081/130] Add missing export Signed-off-by: Johan Haals --- packages/release-manifest/api-report.md | 33 ++++++++++++++++++++++--- packages/release-manifest/src/index.ts | 6 ++++- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/packages/release-manifest/api-report.md b/packages/release-manifest/api-report.md index 0837e05763..4f1840403f 100644 --- a/packages/release-manifest/api-report.md +++ b/packages/release-manifest/api-report.md @@ -3,10 +3,35 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -// Warning: (ae-missing-release-tag) "releaseManifest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// @public +export function getByReleaseLine( + options: GetByReleaseLineOptions, +): Promise; + +// Warning: (ae-missing-release-tag) "GetByReleaseLineOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // -// @public (undocumented) -export const releaseManifest: { - '@backstage/cli': string; +// @public +export type GetByReleaseLineOptions = { + releaseLine: string; +}; + +// @public +export function getByVersion( + options: GetByVersionOptions, +): Promise; + +// Warning: (ae-missing-release-tag) "GetByVersionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export type GetByVersionOptions = { + version: string; +}; + +// @public +export type ReleaseManifest = { + packages: { + name: string; + version: string; + }[]; }; ``` diff --git a/packages/release-manifest/src/index.ts b/packages/release-manifest/src/index.ts index fa05520855..25101d4cbf 100644 --- a/packages/release-manifest/src/index.ts +++ b/packages/release-manifest/src/index.ts @@ -21,4 +21,8 @@ */ export { getByVersion, getByReleaseLine } from './manifest'; -export type { ReleaseManifest } from './manifest'; +export type { + ReleaseManifest, + GetByReleaseLineOptions, + GetByVersionOptions, +} from './manifest'; From 0e09335809e17d64dbcf4f9831ebd826d1660900 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 15:08:57 +0100 Subject: [PATCH 082/130] fix missing annotations Signed-off-by: Johan Haals --- packages/release-manifest/api-report.md | 4 ---- packages/release-manifest/src/manifest.ts | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/release-manifest/api-report.md b/packages/release-manifest/api-report.md index 4f1840403f..6cafdaf2a2 100644 --- a/packages/release-manifest/api-report.md +++ b/packages/release-manifest/api-report.md @@ -8,8 +8,6 @@ export function getByReleaseLine( options: GetByReleaseLineOptions, ): Promise; -// Warning: (ae-missing-release-tag) "GetByReleaseLineOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public export type GetByReleaseLineOptions = { releaseLine: string; @@ -20,8 +18,6 @@ export function getByVersion( options: GetByVersionOptions, ): Promise; -// Warning: (ae-missing-release-tag) "GetByVersionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public export type GetByVersionOptions = { version: string; diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifest/src/manifest.ts index 3123f99808..1120073afb 100644 --- a/packages/release-manifest/src/manifest.ts +++ b/packages/release-manifest/src/manifest.ts @@ -28,6 +28,7 @@ export type ReleaseManifest = { /** * Options for getByVersion. + * @public */ export type GetByVersionOptions = { version: string; @@ -55,6 +56,7 @@ export async function getByVersion( /** * Options for getByReleaseLine. + * @public */ export type GetByReleaseLineOptions = { releaseLine: string; From cbf43cee68d24a1892e534b81cc7971c2593b755 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 15:12:55 +0100 Subject: [PATCH 083/130] Remove unused dependencies Signed-off-by: Johan Haals --- packages/release-manifest/package.json | 1 - yarn.lock | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/release-manifest/package.json b/packages/release-manifest/package.json index 896f226612..7ba37f121d 100644 --- a/packages/release-manifest/package.json +++ b/packages/release-manifest/package.json @@ -29,7 +29,6 @@ "clean": "backstage-cli clean" }, "dependencies": { - "fs-extra": "^10.0.0", "node-fetch": "^2.6.1" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 3f7b855e74..1d768dcb66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12304,7 +12304,7 @@ fs-constants@^1.0.0: resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@10.0.0, fs-extra@^10.0.0: +fs-extra@10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== From aeb5c69abb75e6bd1519bfddc3f7aa76e0f8fa82 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 21 Jan 2022 15:27:12 +0100 Subject: [PATCH 084/130] Add changesets Signed-off-by: Johan Haals --- .changeset/cold-houses-type.md | 7 +++++++ .changeset/green-peaches-explode.md | 6 ++++++ packages/release-manifest/package.json | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .changeset/cold-houses-type.md create mode 100644 .changeset/green-peaches-explode.md diff --git a/.changeset/cold-houses-type.md b/.changeset/cold-houses-type.md new file mode 100644 index 0000000000..6aa466755d --- /dev/null +++ b/.changeset/cold-houses-type.md @@ -0,0 +1,7 @@ +--- +'@backstage/cli': patch +--- + +Introduces two new parameters to the `backstage-cli versions:bump` command. +The first one is `--release-line ` bump packages to the latest `main` or `next` release. +`--backstage-release ` is used to bump packages to a specific backstage release. diff --git a/.changeset/green-peaches-explode.md b/.changeset/green-peaches-explode.md new file mode 100644 index 0000000000..c28c9f6e75 --- /dev/null +++ b/.changeset/green-peaches-explode.md @@ -0,0 +1,6 @@ +--- +'@backstage/release-manifest': patch +--- + +Introduces a new release-manifest package with utilities for fetching release manifests. +This package will primarily be used by the `@backstage/cli` package. diff --git a/packages/release-manifest/package.json b/packages/release-manifest/package.json index 7ba37f121d..ffa201ae4a 100644 --- a/packages/release-manifest/package.json +++ b/packages/release-manifest/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/release-manifest", - "description": "Package information for ", - "version": "0.0.1", + "description": "Helper library for receiving release manifests", + "version": "0.0.0", "private": false, "main": "src/index.ts", "types": "src/index.ts", From 79b08b5fe3173bb2ca0c53e7e21f7f6b6f949596 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 24 Jan 2022 09:17:50 +0100 Subject: [PATCH 085/130] Use correct package version Signed-off-by: Johan Haals --- packages/cli/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index cf0f79720c..dbcab6fbc7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -32,7 +32,7 @@ "@backstage/config": "^0.1.13", "@backstage/config-loader": "^0.9.3", "@backstage/errors": "^0.2.0", - "@backstage/release-manifest": "^0.0.1", + "@backstage/release-manifest": "^0.0.0", "@backstage/types": "^0.1.1", "@hot-loader/react-dom": "^16.13.0", "@manypkg/get-packages": "^1.1.3", From d9327ae0783d601aa18e51260360a99937c8c362 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 24 Jan 2022 10:40:33 +0100 Subject: [PATCH 086/130] cli: fix tests Signed-off-by: Johan Haals --- packages/cli/src/commands/versions/bump.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index a5c867fccd..ed1fc62380 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -455,7 +455,10 @@ describe('createVersionFinder', () => { ...data, }); - const versionFinder = createVersionFinder(tag, fetcher); + const versionFinder = createVersionFinder({ + releaseLine: tag, + packageInfoFetcher: fetcher, + }); let result; await withLogCollector(async () => { result = await versionFinder('@backstage/core'); From 714895e91bcf5813c2d34d8eaa1a8f7458f11622 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 24 Jan 2022 14:36:43 +0100 Subject: [PATCH 087/130] fix tests Signed-off-by: Johan Haals --- packages/release-manifest/src/manifest.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/release-manifest/src/manifest.test.ts b/packages/release-manifest/src/manifest.test.ts index a5c7235036..3ae71fe05b 100644 --- a/packages/release-manifest/src/manifest.test.ts +++ b/packages/release-manifest/src/manifest.test.ts @@ -25,7 +25,7 @@ describe('Get Packages', () => { it('should return a list of packages in a release', async () => { worker.use( - rest.get('*/v1/releases/0.0.0', (_, res, ctx) => + rest.get('*/v1/releases/0.0.0/manifest.json', (_, res, ctx) => res( ctx.status(200), ctx.json({ @@ -33,7 +33,7 @@ describe('Get Packages', () => { }), ), ), - rest.get('*/v1/releases/999.0.1', (_, res, ctx) => + rest.get('*/v1/releases/999.0.1/manifest.json', (_, res, ctx) => res(ctx.status(404), ctx.json({})), ), ); From dc4b7d4778beb184521d99e89644375bc4172f4d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 24 Jan 2022 14:40:22 +0100 Subject: [PATCH 088/130] Add more tests Signed-off-by: Johan Haals --- .../release-manifest/src/manifest.test.ts | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/release-manifest/src/manifest.test.ts b/packages/release-manifest/src/manifest.test.ts index 3ae71fe05b..e6f353f912 100644 --- a/packages/release-manifest/src/manifest.test.ts +++ b/packages/release-manifest/src/manifest.test.ts @@ -18,8 +18,9 @@ import { setupRequestMockHandlers } from '@backstage/test-utils'; import { getByVersion } from './manifest'; import { setupServer } from 'msw/node'; import { rest } from 'msw'; +import { getByReleaseLine } from '.'; -describe('Get Packages', () => { +describe('getByVersion', () => { const worker = setupServer(); setupRequestMockHandlers(worker); @@ -51,3 +52,36 @@ describe('Get Packages', () => { ); }); }); + +describe('getByReleaseLine', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + + it('should return a list of packages in a release', async () => { + worker.use( + rest.get('*/v1/tags/main/manifest.json', (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [{ name: '@backstage/core', version: '1.2.3' }], + }), + ), + ), + rest.get('*/v1/tags/foo/manifest.json', (_, res, ctx) => + res(ctx.status(404), ctx.json({})), + ), + ); + + const pkgs = await getByReleaseLine({ releaseLine: 'main' }); + expect(pkgs.packages).toEqual([ + { + name: '@backstage/core', + version: '1.2.3', + }, + ]); + + await expect(getByReleaseLine({ releaseLine: 'foo' })).rejects.toThrow( + "No 'foo' release line found", + ); + }); +}); From 1ecfb1614ba0e09b6006fa022d358e8c646ecf50 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 25 Jan 2022 08:57:57 +0100 Subject: [PATCH 089/130] update yarn.lock Signed-off-by: Johan Haals --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 1d768dcb66..3f7b855e74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12304,7 +12304,7 @@ fs-constants@^1.0.0: resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@10.0.0: +fs-extra@10.0.0, fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== From aa15e9ae2bac8ad5b307f46c24e562740050f52c Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 25 Jan 2022 16:06:54 +0100 Subject: [PATCH 090/130] Add releaseVersion to manifest Signed-off-by: Johan Haals --- packages/release-manifest/src/manifest.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifest/src/manifest.ts index 1120073afb..564809fdee 100644 --- a/packages/release-manifest/src/manifest.ts +++ b/packages/release-manifest/src/manifest.ts @@ -23,6 +23,7 @@ const VERSIONS_DOMAIN = 'https://versions.backstage.io'; * @public */ export type ReleaseManifest = { + releaseVersion: string; packages: { name: string; version: string }[]; }; @@ -41,7 +42,9 @@ export type GetByVersionOptions = { export async function getByVersion( options: GetByVersionOptions, ): Promise { - const url = `${VERSIONS_DOMAIN}/v1/releases/${options.version}/manifest.json`; + const url = `${VERSIONS_DOMAIN}/v1/releases/${encodeURIComponent( + options.version, + )}/manifest.json`; const response = await fetch(url); if (response.status === 404) { throw new Error(`No release found for ${options.version} version`); @@ -69,7 +72,9 @@ export type GetByReleaseLineOptions = { export async function getByReleaseLine( options: GetByReleaseLineOptions, ): Promise { - const url = `${VERSIONS_DOMAIN}/v1/tags/${options.releaseLine}/manifest.json`; + const url = `${VERSIONS_DOMAIN}/v1/tags/${encodeURIComponent( + options.releaseLine, + )}/manifest.json`; const response = await fetch(url); if (response.status === 404) { throw new Error(`No '${options.releaseLine}' release line found`); From c3868458d8afa82972f21afd8efa7b7a0eef45e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 8 Feb 2022 10:10:08 +0100 Subject: [PATCH 091/130] Remove unnecessary get-port dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/healthy-flies-fold.md | 5 +++++ packages/backend-common/package.json | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .changeset/healthy-flies-fold.md diff --git a/.changeset/healthy-flies-fold.md b/.changeset/healthy-flies-fold.md new file mode 100644 index 0000000000..ae42533f8a --- /dev/null +++ b/.changeset/healthy-flies-fold.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Removed unnecessary `get-port` dependency diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index b661241623..38c74f021f 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -101,7 +101,6 @@ "@types/unzipper": "^0.10.3", "@types/webpack-env": "^1.15.2", "aws-sdk-mock": "^5.2.1", - "get-port": "^5.1.1", "http-errors": "^2.0.0", "jest": "^26.0.1", "mock-fs": "^5.1.0", From a06665e272f90901ddcc59167bf014077b3d65a8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Feb 2022 10:12:30 +0100 Subject: [PATCH 092/130] cli: avoid preprack failure if dist/embedded-app doesn't exist Signed-off-by: Patrik Oldsberg --- packages/techdocs-cli/scripts/prepack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/techdocs-cli/scripts/prepack.sh b/packages/techdocs-cli/scripts/prepack.sh index fa24b10167..6b769de37c 100755 --- a/packages/techdocs-cli/scripts/prepack.sh +++ b/packages/techdocs-cli/scripts/prepack.sh @@ -21,6 +21,6 @@ TECHDOCS_CLI_DIR="$SCRIPT_DIR"/.. TECHDOCS_CLI_EMBEDDED_APP_DIR="$TECHDOCS_CLI_DIR"/../techdocs-cli-embedded-app echo "🚚 Copying embedded app into dist/embedded-app" -rm -r "$TECHDOCS_CLI_DIR"/dist/embedded-app +rm -rf "$TECHDOCS_CLI_DIR"/dist/embedded-app cp -r "$TECHDOCS_CLI_EMBEDDED_APP_DIR"/dist "$TECHDOCS_CLI_DIR"/dist/embedded-app echo "🏁 Ready!" From ba6c626d09e3d439f5b6e788d00a2ea57328582e Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 25 Jan 2022 16:20:35 +0100 Subject: [PATCH 093/130] combine bump arguments Signed-off-by: Johan Haals --- packages/cli/src/commands/index.ts | 9 ++-- packages/cli/src/commands/versions/bump.ts | 49 ++++++++++++++-------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index b1fce377f5..770d216ba2 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -342,12 +342,9 @@ export function registerCommands(program: CommanderStatic) { 'Override glob for matching packages to upgrade', ) .option( - '--release-line ', - 'Bump to the latest version of a specific release line', - ) - .option( - '--backstage-release ', - 'Bump to a specific Backstage release', + '--release ', + 'Bump to a specific Backstage release line or version', + 'main', ) .description('Bump Backstage packages to the latest versions') .action(lazy(() => import('./versions/bump').then(m => m.default))); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 31e424dd6d..a7ce942af7 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -19,7 +19,7 @@ import chalk from 'chalk'; import semver from 'semver'; import minimatch from 'minimatch'; import { Command } from 'commander'; -import { isError } from '@backstage/errors'; +import { isError, NotFoundError } from '@backstage/errors'; import { resolve as resolvePath } from 'path'; import { run } from '../../lib/run'; import { paths } from '../../lib/paths'; @@ -66,23 +66,20 @@ export default async (cmd: Command) => { console.log(`Using custom pattern glob ${pattern}`); } - if (cmd.releaseLine && cmd.backstageRelease) { - throw new Error( - 'Cannot specify both --release-line and --backstage-release', - ); + let findTargetVersion: (name: string) => Promise; + if (semver.valid(cmd.release)) { + findTargetVersion = createStrictVersionFinder({ + releaseManifest: await getByVersion({ version: cmd.release }), + }); + } else { + findTargetVersion = createVersionFinder({ + releaseLine: cmd.releaseLine, + releaseManifest: await getByReleaseLine({ + releaseLine: cmd.release, + }), + }); } - let releaseManifest; - if (cmd.backstageRelease) { - releaseManifest = await getByVersion({ version: cmd.backstageRelease }); - } else if (cmd.releaseLine) { - releaseManifest = await getByReleaseLine({ releaseLine: cmd.releaseLine }); - } - const findTargetVersion = createVersionFinder({ - releaseLine: cmd.releaseLine, - releaseManifest, - }); - // First we discover all Backstage dependencies within our own repo const dependencyMap = await mapDependencies(paths.targetDir, pattern); @@ -305,10 +302,26 @@ export default async (cmd: Command) => { } }; +export function createStrictVersionFinder(options: { + releaseManifest: ReleaseManifest; +}) { + const releasePackages = new Map( + options.releaseManifest.packages.map(p => [p.name, p.version]), + ); + return async function findTargetVersion(name: string) { + console.log(`Checking for updates of ${name}`); + const manifestVersion = releasePackages.get(name); + if (manifestVersion) { + return manifestVersion; + } + throw new NotFoundError(`Package ${name} not found in release manifest`); + }; +} + export function createVersionFinder(options: { releaseLine?: string; packageInfoFetcher?: () => Promise; - releaseManifest?: ReleaseManifest; + releaseManifest: ReleaseManifest; }) { const { releaseLine = 'latest', @@ -319,7 +332,7 @@ export function createVersionFinder(options: { const distTag = releaseLine === 'main' ? 'latest' : releaseLine; const found = new Map(); const releasePackages = new Map( - releaseManifest?.packages.map(p => [p.name, p.version]), + releaseManifest.packages.map(p => [p.name, p.version]), ); return async function findTargetVersion(name: string) { const existing = found.get(name); From fc65c6cd9eef760b0a9838866e060d2065f2e80e Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 25 Jan 2022 16:39:50 +0100 Subject: [PATCH 094/130] Rename pkg, make isomorphic Signed-off-by: Johan Haals --- packages/cli/package.json | 2 +- packages/cli/src/commands/versions/bump.ts | 6 +++--- packages/release-manifest/CHANGELOG.md | 1 - .../{release-manifest => release-manifests}/.eslintrc.js | 0 packages/release-manifests/CHANGELOG.md | 1 + .../{release-manifest => release-manifests}/README.md | 0 .../api-report.md | 0 .../{release-manifest => release-manifests}/package.json | 9 +++++---- .../{release-manifest => release-manifests}/src/index.ts | 0 .../src/manifest.test.ts | 0 .../src/manifest.ts | 2 +- 11 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 packages/release-manifest/CHANGELOG.md rename packages/{release-manifest => release-manifests}/.eslintrc.js (100%) create mode 100644 packages/release-manifests/CHANGELOG.md rename packages/{release-manifest => release-manifests}/README.md (100%) rename packages/{release-manifest => release-manifests}/api-report.md (100%) rename packages/{release-manifest => release-manifests}/package.json (82%) rename packages/{release-manifest => release-manifests}/src/index.ts (100%) rename packages/{release-manifest => release-manifests}/src/manifest.test.ts (100%) rename packages/{release-manifest => release-manifests}/src/manifest.ts (98%) diff --git a/packages/cli/package.json b/packages/cli/package.json index dbcab6fbc7..9911c427a0 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -32,7 +32,7 @@ "@backstage/config": "^0.1.13", "@backstage/config-loader": "^0.9.3", "@backstage/errors": "^0.2.0", - "@backstage/release-manifest": "^0.0.0", + "@backstage/release-manifests": "^0.0.0", "@backstage/types": "^0.1.1", "@hot-loader/react-dom": "^16.13.0", "@manypkg/get-packages": "^1.1.3", diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index a7ce942af7..46044bcca1 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -36,7 +36,7 @@ import { getByReleaseLine, getByVersion, ReleaseManifest, -} from '@backstage/release-manifest'; +} from '@backstage/release-manifests'; const DEP_TYPES = [ 'dependencies', @@ -321,7 +321,7 @@ export function createStrictVersionFinder(options: { export function createVersionFinder(options: { releaseLine?: string; packageInfoFetcher?: () => Promise; - releaseManifest: ReleaseManifest; + releaseManifest?: ReleaseManifest; }) { const { releaseLine = 'latest', @@ -332,7 +332,7 @@ export function createVersionFinder(options: { const distTag = releaseLine === 'main' ? 'latest' : releaseLine; const found = new Map(); const releasePackages = new Map( - releaseManifest.packages.map(p => [p.name, p.version]), + releaseManifest?.packages.map(p => [p.name, p.version]), ); return async function findTargetVersion(name: string) { const existing = found.get(name); diff --git a/packages/release-manifest/CHANGELOG.md b/packages/release-manifest/CHANGELOG.md deleted file mode 100644 index 28f83c41cd..0000000000 --- a/packages/release-manifest/CHANGELOG.md +++ /dev/null @@ -1 +0,0 @@ -# @backstage/release-manifest diff --git a/packages/release-manifest/.eslintrc.js b/packages/release-manifests/.eslintrc.js similarity index 100% rename from packages/release-manifest/.eslintrc.js rename to packages/release-manifests/.eslintrc.js diff --git a/packages/release-manifests/CHANGELOG.md b/packages/release-manifests/CHANGELOG.md new file mode 100644 index 0000000000..3aac6c8e6a --- /dev/null +++ b/packages/release-manifests/CHANGELOG.md @@ -0,0 +1 @@ +# @backstage/release-manifests diff --git a/packages/release-manifest/README.md b/packages/release-manifests/README.md similarity index 100% rename from packages/release-manifest/README.md rename to packages/release-manifests/README.md diff --git a/packages/release-manifest/api-report.md b/packages/release-manifests/api-report.md similarity index 100% rename from packages/release-manifest/api-report.md rename to packages/release-manifests/api-report.md diff --git a/packages/release-manifest/package.json b/packages/release-manifests/package.json similarity index 82% rename from packages/release-manifest/package.json rename to packages/release-manifests/package.json index ffa201ae4a..405896f50b 100644 --- a/packages/release-manifest/package.json +++ b/packages/release-manifests/package.json @@ -1,5 +1,5 @@ { - "name": "@backstage/release-manifest", + "name": "@backstage/release-manifests", "description": "Helper library for receiving release manifests", "version": "0.0.0", "private": false, @@ -8,20 +8,21 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "types": "dist/index.d.ts" }, "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", - "directory": "packages/release-manifest" + "directory": "packages/release-manifests" }, "keywords": [ "backstage" ], "license": "Apache-2.0", "scripts": { - "build": "backstage-cli build --outputs cjs,types", + "build": "backstage-cli build", "lint": "backstage-cli lint", "test": "backstage-cli test", "prepack": "backstage-cli prepack", @@ -29,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "node-fetch": "^2.6.1" + "cross-fetch": "^3.0.6" }, "devDependencies": { "@backstage/test-utils": "^0.2.3", diff --git a/packages/release-manifest/src/index.ts b/packages/release-manifests/src/index.ts similarity index 100% rename from packages/release-manifest/src/index.ts rename to packages/release-manifests/src/index.ts diff --git a/packages/release-manifest/src/manifest.test.ts b/packages/release-manifests/src/manifest.test.ts similarity index 100% rename from packages/release-manifest/src/manifest.test.ts rename to packages/release-manifests/src/manifest.test.ts diff --git a/packages/release-manifest/src/manifest.ts b/packages/release-manifests/src/manifest.ts similarity index 98% rename from packages/release-manifest/src/manifest.ts rename to packages/release-manifests/src/manifest.ts index 564809fdee..ab2fa6c9fa 100644 --- a/packages/release-manifest/src/manifest.ts +++ b/packages/release-manifests/src/manifest.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import fetch from 'node-fetch'; +import fetch from 'cross-fetch'; const VERSIONS_DOMAIN = 'https://versions.backstage.io'; From 25c6c2fd747503f72f176979b1fc5e91dcbf288c Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 26 Jan 2022 09:16:05 +0100 Subject: [PATCH 095/130] update api report Signed-off-by: Johan Haals --- packages/release-manifests/api-report.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/release-manifests/api-report.md b/packages/release-manifests/api-report.md index 6cafdaf2a2..6dc3dde258 100644 --- a/packages/release-manifests/api-report.md +++ b/packages/release-manifests/api-report.md @@ -1,4 +1,4 @@ -## API Report File for "@backstage/release-manifest" +## API Report File for "@backstage/release-manifests" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). @@ -25,6 +25,7 @@ export type GetByVersionOptions = { // @public export type ReleaseManifest = { + releaseVersion: string; packages: { name: string; version: string; From 59f31a631552490ada609d60db7e959193f82d07 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 26 Jan 2022 11:37:49 +0100 Subject: [PATCH 096/130] chore: fix test, add additonal tests Signed-off-by: Johan Haals --- packages/cli/package.json | 3 +- .../cli/src/commands/versions/bump.test.ts | 165 +++++++++++++++++- 2 files changed, 160 insertions(+), 8 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 9911c427a0..3786b7d3e5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -144,7 +144,8 @@ "del": "^6.0.0", "mock-fs": "^5.1.0", "nodemon": "^2.0.2", - "ts-node": "^10.0.0" + "ts-node": "^10.0.0", + "msw": "^0.35.0" }, "peerDependencies": { "@microsoft/api-extractor": "^7.19.2" diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index ed1fc62380..1b9e0aa7cc 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -21,8 +21,13 @@ import { resolve as resolvePath } from 'path'; import { paths } from '../../lib/paths'; import * as runObj from '../../lib/run'; import bump, { bumpBackstageJsonVersion, createVersionFinder } from './bump'; -import { withLogCollector } from '@backstage/test-utils'; +import { + setupRequestMockHandlers, + withLogCollector, +} from '@backstage/test-utils'; import { YarnInfoInspectData } from '../../lib/versioning/packages'; +import { setupServer } from 'msw/node'; +import { rest } from 'msw'; // Remove log coloring to simplify log matching jest.mock('chalk', () => ({ @@ -83,6 +88,8 @@ describe('bump', () => { mockFs.restore(); jest.resetAllMocks(); }); + const worker = setupServer(); + setupRequestMockHandlers(worker); it('should bump backstage dependencies', async () => { mockFs({ @@ -122,9 +129,20 @@ describe('bump', () => { }), ); jest.spyOn(runObj, 'run').mockResolvedValue(undefined); - + worker.use( + rest.get( + 'https://versions.backstage.io/v1/tags/main/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [], + }), + ), + ), + ); const { log: logs } = await withLogCollector(['log'], async () => { - await bump({ pattern: null } as unknown as Command); + await bump({ pattern: null, release: 'main' } as unknown as Command); }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', @@ -180,6 +198,114 @@ describe('bump', () => { }); }); + it('should prefer dependency versions from release manifest', async () => { + mockFs({ + '/yarn.lock': lockfileMock, + '/package.json': JSON.stringify({ + workspaces: { + packages: ['packages/*'], + }, + }), + '/packages/a/package.json': JSON.stringify({ + name: 'a', + dependencies: { + '@backstage/core': '^1.0.5', + }, + }), + '/packages/b/package.json': JSON.stringify({ + name: 'b', + dependencies: { + '@backstage/core': '^1.0.3', + '@backstage/theme': '^1.0.0', + }, + }), + }); + + jest + .spyOn(paths, 'resolveTargetRoot') + .mockImplementation((...path) => resolvePath('/', ...path)); + jest.spyOn(runObj, 'runPlain').mockImplementation(async (...[, , , name]) => + JSON.stringify({ + type: 'inspect', + data: { + name: name, + 'dist-tags': { + latest: REGISTRY_VERSIONS[name], + }, + }, + }), + ); + jest.spyOn(runObj, 'run').mockResolvedValue(undefined); + worker.use( + rest.get( + 'https://versions.backstage.io/v1/tags/main/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [{ name: '@backstage/theme', version: '5.0.0' }], + }), + ), + ), + ); + const { log: logs } = await withLogCollector(['log'], async () => { + await bump({ pattern: null, release: 'main' } as unknown as Command); + }); + expect(logs.filter(Boolean)).toEqual([ + 'Using default pattern glob @backstage/*', + 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage/theme', + 'Checking for updates of @backstage/theme', + 'Checking for updates of @backstage/core-api', + 'Some packages are outdated, updating', + 'unlocking @backstage/core@^1.0.3 ~> 1.0.6', + 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', + 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', + 'bumping @backstage/theme in b to ^5.0.0', + 'Running yarn install to install new versions', + '⚠️ The following packages may have breaking changes:', + ' @backstage/theme : 1.0.0 ~> 5.0.0', + ' https://github.com/backstage/backstage/blob/master/packages/theme/CHANGELOG.md', + 'Version bump complete!', + ]); + + expect(runObj.runPlain).toHaveBeenCalledTimes(3); + expect(runObj.runPlain).toHaveBeenCalledWith( + 'yarn', + 'info', + '--json', + '@backstage/core', + ); + expect(runObj.runPlain).not.toHaveBeenCalledWith( + 'yarn', + 'info', + '--json', + '@backstage/theme', + ); + + expect(runObj.run).toHaveBeenCalledTimes(1); + expect(runObj.run).toHaveBeenCalledWith('yarn', ['install']); + + const lockfileContents = await fs.readFile('/yarn.lock', 'utf8'); + expect(lockfileContents).toBe(lockfileMockResult); + + const packageA = await fs.readJson('/packages/a/package.json'); + expect(packageA).toEqual({ + name: 'a', + dependencies: { + '@backstage/core': '^1.0.5', // not bumped since new version is within range + }, + }); + const packageB = await fs.readJson('/packages/b/package.json'); + expect(packageB).toEqual({ + name: 'b', + dependencies: { + '@backstage/core': '^1.0.3', // not bumped + '@backstage/theme': '^5.0.0', // bumped since newer + }, + }); + }); + it('should bump backstage dependencies and dependencies matching pattern glob', async () => { const customLockfileMock = `${lockfileMock} "@backstage-extra/custom@^1.1.0": @@ -247,9 +373,23 @@ describe('bump', () => { }), ); jest.spyOn(runObj, 'run').mockResolvedValue(undefined); - + worker.use( + rest.get( + 'https://versions.backstage.io/v1/tags/main/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [], + }), + ), + ), + ); const { log: logs } = await withLogCollector(['log'], async () => { - await bump({ pattern: '@{backstage,backstage-extra}/*' } as any); + await bump({ + pattern: '@{backstage,backstage-extra}/*', + release: 'main', + } as any); }); expect(logs.filter(Boolean)).toEqual([ 'Using custom pattern glob @{backstage,backstage-extra}/*', @@ -343,9 +483,20 @@ describe('bump', () => { .mockImplementation((...path) => resolvePath('/', ...path)); jest.spyOn(runObj, 'runPlain').mockImplementation(async () => ''); jest.spyOn(runObj, 'run').mockResolvedValue(undefined); - + worker.use( + rest.get( + 'https://versions.backstage.io/v1/tags/main/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [], + }), + ), + ), + ); const { log: logs } = await withLogCollector(['log'], async () => { - await bump({ pattern: null } as unknown as Command); + await bump({ pattern: null, release: 'main' } as unknown as Command); }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', From 788ffa78e28f039f52683b7f933f934af79fb85d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 26 Jan 2022 14:45:24 +0100 Subject: [PATCH 097/130] Skip backstage.json update for custom patterns. Add more tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../cli/src/commands/versions/bump.test.ts | 158 ++++++++++++++---- packages/cli/src/commands/versions/bump.ts | 17 +- 2 files changed, 131 insertions(+), 44 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index 1b9e0aa7cc..ce37181b72 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -44,6 +44,7 @@ const REGISTRY_VERSIONS: { [name: string]: string } = { '@backstage/theme': '2.0.0', '@backstage-extra/custom': '1.1.0', '@backstage-extra/custom-two': '2.0.0', + '@backstage/create-app': '1.0.0', }; const HEADER = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. @@ -154,6 +155,8 @@ describe('bump', () => { 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', 'bumping @backstage/theme in b to ^2.0.0', + 'Checking for updates of @backstage/create-app', + 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', ' @backstage/theme : 1.0.0 ~> 2.0.0', @@ -243,7 +246,16 @@ describe('bump', () => { res( ctx.status(200), ctx.json({ - packages: [{ name: '@backstage/theme', version: '5.0.0' }], + packages: [ + { + name: '@backstage/theme', + version: '5.0.0', + }, + { + name: '@backstage/create-app', + version: '3.0.0', + }, + ], }), ), ), @@ -262,6 +274,8 @@ describe('bump', () => { 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', 'bumping @backstage/theme in b to ^5.0.0', + 'Checking for updates of @backstage/create-app', + 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', ' @backstage/theme : 1.0.0 ~> 5.0.0', @@ -269,7 +283,7 @@ describe('bump', () => { 'Version bump complete!', ]); - expect(runObj.runPlain).toHaveBeenCalledTimes(3); + expect(runObj.runPlain).toHaveBeenCalledTimes(2); expect(runObj.runPlain).toHaveBeenCalledWith( 'yarn', 'info', @@ -306,6 +320,107 @@ describe('bump', () => { }); }); + it('should only bump packages in the manifest when a specific release is specified', async () => { + mockFs({ + '/yarn.lock': lockfileMock, + '/package.json': JSON.stringify({ + workspaces: { + packages: ['packages/*'], + }, + }), + '/packages/a/package.json': JSON.stringify({ + name: 'a', + dependencies: { + '@backstage/core': '^1.0.5', + }, + }), + '/packages/b/package.json': JSON.stringify({ + name: 'b', + dependencies: { + '@backstage/core': '^1.0.3', + '@backstage/theme': '^1.0.0', + }, + }), + }); + jest.spyOn(runObj, 'runPlain').mockImplementation(async (...[, , , name]) => + JSON.stringify({ + type: 'inspect', + data: { + name: name, + 'dist-tags': { + latest: REGISTRY_VERSIONS[name], + }, + }, + }), + ); + jest + .spyOn(paths, 'resolveTargetRoot') + .mockImplementation((...path) => resolvePath('/', ...path)); + + jest.spyOn(runObj, 'run').mockResolvedValue(undefined); + worker.use( + rest.get( + 'https://versions.backstage.io/v1/releases/1.0.0/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [ + { name: '@backstage/core', version: '5.0.0' }, + { name: '@backstage/core-api', version: '5.0.0' }, + { name: '@backstage/create-app', version: '2.0.0' }, + ], + }), + ), + ), + ); + const { log: logs } = await withLogCollector(['log'], async () => { + await expect( + bump({ pattern: null, release: '1.0.0' } as unknown as Command), + ).rejects.toThrow('Duplicate versions present after package bump'); + }); + expect(logs.filter(Boolean)).toEqual([ + 'Using default pattern glob @backstage/*', + 'Checking for updates of @backstage/theme', + 'Checking for updates of @backstage/core', + 'Package @backstage/theme not found in release manifest, skipping', + 'Checking for updates of @backstage/core-api', + 'Checking for updates of @backstage/theme', + 'Checking for updates of @backstage/core', + 'Package @backstage/theme not found in release manifest, skipping', + 'Some packages are outdated, updating', + 'bumping @backstage/core in b to ^5.0.0', + 'bumping @backstage/core in a to ^5.0.0', + 'Checking for updates of @backstage/create-app', + 'Creating backstage.json', + 'Running yarn install to install new versions', + '⚠️ The following packages may have breaking changes:', + ' @backstage/core : 1.0.6 ~> 5.0.0', + ' https://github.com/backstage/backstage/blob/master/packages/core/CHANGELOG.md', + 'Version bump complete!', + ]); + + expect(runObj.run).toHaveBeenCalledTimes(1); + expect(runObj.run).toHaveBeenCalledWith('yarn', ['install']); + + const packageA = await fs.readJson('/packages/a/package.json'); + expect(packageA).toEqual({ + name: 'a', + dependencies: { + '@backstage/core': '^5.0.0', + }, + }); + const packageB = await fs.readJson('/packages/b/package.json'); + expect(packageB).toEqual({ + name: 'b', + dependencies: { + '@backstage/core': '^5.0.0', + '@backstage/theme': '^1.0.0', + }, + }); + expect(await fs.readJson('/backstage.json')).toEqual({ version: '2.0.0' }); + }); + it('should bump backstage dependencies and dependencies matching pattern glob', async () => { const customLockfileMock = `${lockfileMock} "@backstage-extra/custom@^1.1.0": @@ -414,7 +529,7 @@ describe('bump', () => { 'Version bump complete!', ]); - expect(runObj.runPlain).toHaveBeenCalledTimes(6); + expect(runObj.runPlain).toHaveBeenCalledTimes(5); expect(runObj.runPlain).toHaveBeenCalledWith( 'yarn', 'info', @@ -545,27 +660,12 @@ describe('bumpBackstageJsonVersion', () => { '/backstage.json': JSON.stringify({ version: '0.0.1' }), }); paths.targetDir = '/'; - const latest = '1.4.1'; jest .spyOn(paths, 'resolveTargetRoot') .mockImplementation((...path) => resolvePath('/', ...path)); - jest.spyOn(runObj, 'runPlain').mockImplementation(async (...[, , , name]) => - JSON.stringify({ - type: 'inspect', - data: { - name, - 'dist-tags': { - latest, - }, - }, - }), - ); - jest.spyOn(runObj, 'run').mockResolvedValue(undefined); - await bumpBackstageJsonVersion(); - - const json = await fs.readJson('/backstage.json'); - expect(json).toEqual({ version: '1.4.1' }); + await bumpBackstageJsonVersion('1.4.1'); + expect(await fs.readJson('/backstage.json')).toEqual({ version: '1.4.1' }); }); it("should create backstage.json if doesn't exist", async () => { @@ -575,23 +675,9 @@ describe('bumpBackstageJsonVersion', () => { jest .spyOn(paths, 'resolveTargetRoot') .mockImplementation((...path) => resolvePath('/', ...path)); - jest.spyOn(runObj, 'runPlain').mockImplementation(async (...[, , , name]) => - JSON.stringify({ - type: 'inspect', - data: { - name, - 'dist-tags': { - latest, - }, - }, - }), - ); - jest.spyOn(runObj, 'run').mockResolvedValue(undefined); - await bumpBackstageJsonVersion(); - - const json = await fs.readJson('/backstage.json'); - expect(json).toEqual({ version: '1.4.1' }); + await bumpBackstageJsonVersion(latest); + expect(await fs.readJson('/backstage.json')).toEqual({ version: latest }); }); }); diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 46044bcca1..6e602c726c 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -231,8 +231,12 @@ export default async (cmd: Command) => { console.log(); - await bumpBackstageJsonVersion(); - + // Do not update backstage.json when upgrade patterns are used. + if (pattern === DEFAULT_PATTERN_GLOB) { + await bumpBackstageJsonVersion( + await findTargetVersion('@backstage/create-app'), + ); + } console.log(); console.log( `Running ${chalk.blue('yarn install')} to install new versions`, @@ -384,7 +388,7 @@ export function createVersionFinder(options: { }; } -export async function bumpBackstageJsonVersion() { +export async function bumpBackstageJsonVersion(createAppVersion: string) { const backstageJsonPath = paths.resolveTargetRoot(BACKSTAGE_JSON); const backstageJson = await fs.readJSON(backstageJsonPath).catch(e => { if (e.code === 'ENOENT') { @@ -394,10 +398,7 @@ export async function bumpBackstageJsonVersion() { throw e; }); - const info = await fetchPackageInfo('@backstage/create-app'); - const { latest } = info['dist-tags']; - - if (backstageJson?.version === latest) { + if (backstageJson?.version === createAppVersion) { return; } @@ -411,7 +412,7 @@ export async function bumpBackstageJsonVersion() { await fs.writeJson( backstageJsonPath, - { ...backstageJson, version: latest }, + { ...backstageJson, version: createAppVersion }, { spaces: 2, encoding: 'utf8', From cbb3aa231bc564320bb8c38a7a940dfdcd0bcfeb Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 7 Feb 2022 11:20:08 +0100 Subject: [PATCH 098/130] Update changeset Signed-off-by: Johan Haals --- .changeset/cold-houses-type.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/cold-houses-type.md b/.changeset/cold-houses-type.md index 6aa466755d..a4dee63dd9 100644 --- a/.changeset/cold-houses-type.md +++ b/.changeset/cold-houses-type.md @@ -2,6 +2,6 @@ '@backstage/cli': patch --- -Introduces two new parameters to the `backstage-cli versions:bump` command. -The first one is `--release-line ` bump packages to the latest `main` or `next` release. -`--backstage-release ` is used to bump packages to a specific backstage release. +Introduces a new `--release` parameters to the `backstage-cli versions:bump` command. +The release can be either a specific version for example `0.99.1`, or the latest `main` or `next` release. +The default behavior is to bump the latest `main` release. From c22bcaafddbccb4ddc45732aacef2a897d8b66af Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 10:22:19 +0100 Subject: [PATCH 099/130] update tests Signed-off-by: Johan Haals --- packages/cli/src/commands/versions/bump.test.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index ce37181b72..ca940e204d 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -381,21 +381,21 @@ describe('bump', () => { }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', - 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core', - 'Package @backstage/theme not found in release manifest, skipping', + 'Checking for updates of @backstage/theme', + 'Package info not found, ignoring package @backstage/theme', + 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage/theme', 'Checking for updates of @backstage/core-api', - 'Checking for updates of @backstage/theme', - 'Checking for updates of @backstage/core', - 'Package @backstage/theme not found in release manifest, skipping', + 'Package info not found, ignoring package @backstage/theme', 'Some packages are outdated, updating', - 'bumping @backstage/core in b to ^5.0.0', 'bumping @backstage/core in a to ^5.0.0', + 'bumping @backstage/core in b to ^5.0.0', 'Checking for updates of @backstage/create-app', 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', - ' @backstage/core : 1.0.6 ~> 5.0.0', + ' @backstage/core : 1.0.3 ~> 5.0.0', ' https://github.com/backstage/backstage/blob/master/packages/core/CHANGELOG.md', 'Version bump complete!', ]); From f1a5d816965d3c9886d3b37f2e181aed8f838613 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 10:33:38 +0100 Subject: [PATCH 100/130] include dco-helper tag in comment Signed-off-by: Johan Haals --- .github/workflows/verify_dco.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml index 28c22b0b66..341ff55fbd 100644 --- a/.github/workflows/verify_dco.yaml +++ b/.github/workflows/verify_dco.yaml @@ -43,14 +43,17 @@ jobs: repo, issue_number: pull.number, }); - - if (comments.find((c) => c.user.login === "github-actions[bot]")) { + if (comments.find((c) => + c.user.login === "github-actions[bot]" && + c.body.includes("") + ) + ) { console.log(`already commented on PR #${pull.number}, skipping`); continue; } console.log(`creating comment on PR #${pull.number}`); - const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; + const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; await github.rest.issues.createComment({ repo, owner, From b740b0c7d8e5faa8d84e11a086ea5c6310c61dad Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 10:43:36 +0100 Subject: [PATCH 101/130] switch to markdown comment tag Signed-off-by: Johan Haals --- .github/workflows/verify_dco.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml index 341ff55fbd..42954e3b9a 100644 --- a/.github/workflows/verify_dco.yaml +++ b/.github/workflows/verify_dco.yaml @@ -45,15 +45,14 @@ jobs: }); if (comments.find((c) => c.user.login === "github-actions[bot]" && - c.body.includes("") + c.body.includes("") ) ) { console.log(`already commented on PR #${pull.number}, skipping`); continue; } - console.log(`creating comment on PR #${pull.number}`); - const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; + const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; await github.rest.issues.createComment({ repo, owner, From d77c32fd48477a1d1d6d2e2de77f7b57d781a7c2 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 11:33:59 +0100 Subject: [PATCH 102/130] Use release version from manifest Signed-off-by: Johan Haals --- .../cli/src/commands/versions/bump.test.ts | 10 ++++---- packages/cli/src/commands/versions/bump.ts | 23 +++++++++++-------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index ca940e204d..d2d3cf1573 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -155,8 +155,6 @@ describe('bump', () => { 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', 'bumping @backstage/theme in b to ^2.0.0', - 'Checking for updates of @backstage/create-app', - 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', ' @backstage/theme : 1.0.0 ~> 2.0.0', @@ -164,7 +162,7 @@ describe('bump', () => { 'Version bump complete!', ]); - expect(runObj.runPlain).toHaveBeenCalledTimes(4); + expect(runObj.runPlain).toHaveBeenCalledTimes(3); expect(runObj.runPlain).toHaveBeenCalledWith( 'yarn', 'info', @@ -246,6 +244,7 @@ describe('bump', () => { res( ctx.status(200), ctx.json({ + releaseVersion: '0.0.1', packages: [ { name: '@backstage/theme', @@ -274,7 +273,6 @@ describe('bump', () => { 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', 'bumping @backstage/theme in b to ^5.0.0', - 'Checking for updates of @backstage/create-app', 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', @@ -365,10 +363,10 @@ describe('bump', () => { res( ctx.status(200), ctx.json({ + releaseVersion: '2.0.0', packages: [ { name: '@backstage/core', version: '5.0.0' }, { name: '@backstage/core-api', version: '5.0.0' }, - { name: '@backstage/create-app', version: '2.0.0' }, ], }), ), @@ -391,7 +389,6 @@ describe('bump', () => { 'Some packages are outdated, updating', 'bumping @backstage/core in a to ^5.0.0', 'bumping @backstage/core in b to ^5.0.0', - 'Checking for updates of @backstage/create-app', 'Creating backstage.json', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', @@ -521,6 +518,7 @@ describe('bump', () => { 'bumping @backstage-extra/custom-two in a to ^2.0.0', 'bumping @backstage-extra/custom-two in b to ^2.0.0', 'bumping @backstage/theme in b to ^2.0.0', + 'Skipping backstage.json update as custom pattern is used', 'Running yarn install to install new versions', '⚠️ The following packages may have breaking changes:', ' @backstage-extra/custom-two : 1.0.0 ~> 2.0.0', diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 6e602c726c..85385616c9 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -67,16 +67,17 @@ export default async (cmd: Command) => { } let findTargetVersion: (name: string) => Promise; + let releaseManifest: ReleaseManifest; if (semver.valid(cmd.release)) { + releaseManifest = await getByVersion({ version: cmd.release }); findTargetVersion = createStrictVersionFinder({ - releaseManifest: await getByVersion({ version: cmd.release }), + releaseManifest, }); } else { + releaseManifest = await getByReleaseLine({ releaseLine: cmd.release }); findTargetVersion = createVersionFinder({ releaseLine: cmd.releaseLine, - releaseManifest: await getByReleaseLine({ - releaseLine: cmd.release, - }), + releaseManifest, }); } @@ -233,8 +234,12 @@ export default async (cmd: Command) => { // Do not update backstage.json when upgrade patterns are used. if (pattern === DEFAULT_PATTERN_GLOB) { - await bumpBackstageJsonVersion( - await findTargetVersion('@backstage/create-app'), + await bumpBackstageJsonVersion(releaseManifest.releaseVersion); + } else { + console.log( + chalk.yellow( + `Skipping backstage.json update as custom pattern is used`, + ), ); } console.log(); @@ -388,7 +393,7 @@ export function createVersionFinder(options: { }; } -export async function bumpBackstageJsonVersion(createAppVersion: string) { +export async function bumpBackstageJsonVersion(version: string) { const backstageJsonPath = paths.resolveTargetRoot(BACKSTAGE_JSON); const backstageJson = await fs.readJSON(backstageJsonPath).catch(e => { if (e.code === 'ENOENT') { @@ -398,7 +403,7 @@ export async function bumpBackstageJsonVersion(createAppVersion: string) { throw e; }); - if (backstageJson?.version === createAppVersion) { + if (backstageJson?.version === version) { return; } @@ -412,7 +417,7 @@ export async function bumpBackstageJsonVersion(createAppVersion: string) { await fs.writeJson( backstageJsonPath, - { ...backstageJson, version: createAppVersion }, + { ...backstageJson, version }, { spaces: 2, encoding: 'utf8', From 0da410b9055a309aad72e66ba7d474a5950cdc3d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:18:30 +0100 Subject: [PATCH 103/130] Multiline message body Signed-off-by: Johan Haals Co-authored-by: Ben Lambert --- .github/workflows/verify_dco.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml index 42954e3b9a..e2da767394 100644 --- a/.github/workflows/verify_dco.yaml +++ b/.github/workflows/verify_dco.yaml @@ -52,7 +52,10 @@ jobs: continue; } console.log(`creating comment on PR #${pull.number}`); - const body = `Thanks for the contribution!\nAll commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.`; + const body = ` + Thanks for the contribution! + All commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info. + `; await github.rest.issues.createComment({ repo, owner, From 1026f12334e9fe5a05a5b475b95459c4daf7eae7 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 14:36:20 +0100 Subject: [PATCH 104/130] chore: fixing a totally different way and arguably a more simpler way. Signed-off-by: blam --- .../scaffolder/src/components/TaskPage/TaskPage.tsx | 4 +++- .../src/components/TemplatePage/TemplatePage.tsx | 11 +++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx index 4c28caad1b..2f49f40643 100644 --- a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx +++ b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx @@ -302,7 +302,9 @@ export const TaskPage = ({ loadingText }: TaskPageProps) => { navigate( generatePath( - `${rootLink()}/templates/:templateName?${qs.stringify({ formData })}`, + `${rootLink()}/templates/:templateName?${qs.stringify({ + formData: JSON.stringify(formData), + })}`, { templateName: taskStream.task!.spec.metadata!.name, }, diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 80fa95a3e3..d30c292053 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -127,13 +127,12 @@ export const TemplatePage = ({ const query = qs.parse(window.location.search, { ignoreQueryPrefix: true, }); - const obj = query?.formData; - for (const key in obj) { - if (obj.hasOwnProperty(key)) { - obj[key] = obj[key] === 'true'; - } + + try { + return JSON.parse(query.formData as string); + } catch (e) { + return query.formData ?? {}; } - return query.formData ?? {}; }); const handleFormReset = () => setFormState({}); const handleChange = useCallback( From 6458be3307a3564ebb33b3c6f2cb08259e8972e9 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 14:41:10 +0100 Subject: [PATCH 105/130] chore: added changeset Signed-off-by: blam --- .changeset/shiny-radios-deliver.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shiny-radios-deliver.md diff --git a/.changeset/shiny-radios-deliver.md b/.changeset/shiny-radios-deliver.md new file mode 100644 index 0000000000..3a00a6acc0 --- /dev/null +++ b/.changeset/shiny-radios-deliver.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Encode the `formData` in the `queryString` using `JSON.stringify` to keep the types in the decoded value From b25e1d23c7042a9461520da78c3f041e69bf0d57 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:41:12 +0100 Subject: [PATCH 106/130] Fix incorrect package name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals Co-authored-by: Fredrik Adelöw --- .changeset/green-peaches-explode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/green-peaches-explode.md b/.changeset/green-peaches-explode.md index c28c9f6e75..e81771f1c3 100644 --- a/.changeset/green-peaches-explode.md +++ b/.changeset/green-peaches-explode.md @@ -1,5 +1,5 @@ --- -'@backstage/release-manifest': patch +'@backstage/release-manifests': patch --- Introduces a new release-manifest package with utilities for fetching release manifests. From 1b58473c4bb2504fd1ee57a62a870784aa7dae0a Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:41:25 +0100 Subject: [PATCH 107/130] Update .changeset/green-peaches-explode.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals Co-authored-by: Fredrik Adelöw --- .changeset/green-peaches-explode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/green-peaches-explode.md b/.changeset/green-peaches-explode.md index e81771f1c3..cfebebffc3 100644 --- a/.changeset/green-peaches-explode.md +++ b/.changeset/green-peaches-explode.md @@ -2,5 +2,5 @@ '@backstage/release-manifests': patch --- -Introduces a new release-manifest package with utilities for fetching release manifests. +Introduces a new package with utilities for fetching release manifests. This package will primarily be used by the `@backstage/cli` package. From 259929af4e745da266254bdffd3007e9eb8ba21f Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:41:40 +0100 Subject: [PATCH 108/130] Update package header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals Co-authored-by: Fredrik Adelöw --- packages/release-manifests/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/release-manifests/README.md b/packages/release-manifests/README.md index ddbeed7dd0..6111173f15 100644 --- a/packages/release-manifests/README.md +++ b/packages/release-manifests/README.md @@ -1,3 +1,3 @@ -# @backstage/release-manifest +# @backstage/release-manifests This package provides a mapping between a Backstage release and the packages included in that release. From bf78c72b16b37a875ed76e931ff1be69cbb535a7 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:46:39 +0100 Subject: [PATCH 109/130] fix typos in .changeset/cold-houses-type.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals Co-authored-by: Fredrik Adelöw --- .changeset/cold-houses-type.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/cold-houses-type.md b/.changeset/cold-houses-type.md index a4dee63dd9..05155c96c0 100644 --- a/.changeset/cold-houses-type.md +++ b/.changeset/cold-houses-type.md @@ -2,6 +2,6 @@ '@backstage/cli': patch --- -Introduces a new `--release` parameters to the `backstage-cli versions:bump` command. -The release can be either a specific version for example `0.99.1`, or the latest `main` or `next` release. -The default behavior is to bump the latest `main` release. +Introduces a new `--release` parameter to the `backstage-cli versions:bump` command. +The release can be either a specific version, for example `0.99.1`, or the latest `main` or `next` release. +The default behavior is to bump to the latest `main` release. From 494e1914cdf6522f2f0273556ab3b54ce28cab0b Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:48:31 +0100 Subject: [PATCH 110/130] chore: Remove accidental dot import Signed-off-by: Johan Haals --- packages/release-manifests/src/manifest.test.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/release-manifests/src/manifest.test.ts b/packages/release-manifests/src/manifest.test.ts index e6f353f912..efd5728fbc 100644 --- a/packages/release-manifests/src/manifest.test.ts +++ b/packages/release-manifests/src/manifest.test.ts @@ -15,10 +15,9 @@ */ import { setupRequestMockHandlers } from '@backstage/test-utils'; -import { getByVersion } from './manifest'; +import { getByReleaseLine, getByVersion } from './manifest'; import { setupServer } from 'msw/node'; import { rest } from 'msw'; -import { getByReleaseLine } from '.'; describe('getByVersion', () => { const worker = setupServer(); From 0af2670e45d43bcc29599c2c7d65eb1e0729d9e1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 14:44:05 +0100 Subject: [PATCH 111/130] scripts: Do not allow warnings in packages/release-manifests Signed-off-by: Johan Haals --- scripts/api-extractor.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/api-extractor.ts b/scripts/api-extractor.ts index 1ac43d242d..808af8754d 100644 --- a/scripts/api-extractor.ts +++ b/scripts/api-extractor.ts @@ -216,6 +216,7 @@ const NO_WARNING_PACKAGES = [ 'packages/test-utils', 'packages/theme', 'packages/types', + 'packages/release-manifests', 'packages/version-bridge', 'plugins/catalog-backend-module-ldap', 'plugins/catalog-backend-module-msgraph', From db1066eec96294abbc9da34817c7afe973a0dae1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 15:00:12 +0100 Subject: [PATCH 112/130] chore: clarify function names Signed-off-by: Johan Haals --- packages/cli/src/commands/versions/bump.ts | 10 ++++++---- packages/release-manifests/api-report.md | 12 ++++++------ packages/release-manifests/src/index.ts | 6 +++--- .../release-manifests/src/manifest.test.ts | 18 +++++++++--------- packages/release-manifests/src/manifest.ts | 12 ++++++------ 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 85385616c9..fc455b9fbd 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -33,8 +33,8 @@ import { forbiddenDuplicatesFilter } from './lint'; import { BACKSTAGE_JSON } from '@backstage/cli-common'; import { runParallelWorkers } from '../../lib/parallel'; import { - getByReleaseLine, - getByVersion, + getManifestByReleaseLine, + getManifestByVersion, ReleaseManifest, } from '@backstage/release-manifests'; @@ -69,12 +69,14 @@ export default async (cmd: Command) => { let findTargetVersion: (name: string) => Promise; let releaseManifest: ReleaseManifest; if (semver.valid(cmd.release)) { - releaseManifest = await getByVersion({ version: cmd.release }); + releaseManifest = await getManifestByVersion({ version: cmd.release }); findTargetVersion = createStrictVersionFinder({ releaseManifest, }); } else { - releaseManifest = await getByReleaseLine({ releaseLine: cmd.release }); + releaseManifest = await getManifestByReleaseLine({ + releaseLine: cmd.release, + }); findTargetVersion = createVersionFinder({ releaseLine: cmd.releaseLine, releaseManifest, diff --git a/packages/release-manifests/api-report.md b/packages/release-manifests/api-report.md index 6dc3dde258..1ffa35838b 100644 --- a/packages/release-manifests/api-report.md +++ b/packages/release-manifests/api-report.md @@ -4,22 +4,22 @@ ```ts // @public -export function getByReleaseLine( - options: GetByReleaseLineOptions, +export function getManifestByReleaseLine( + options: GetManifestByReleaseLineOptions, ): Promise; // @public -export type GetByReleaseLineOptions = { +export type GetManifestByReleaseLineOptions = { releaseLine: string; }; // @public -export function getByVersion( - options: GetByVersionOptions, +export function getManifestByVersion( + options: GetManifestByVersionOptions, ): Promise; // @public -export type GetByVersionOptions = { +export type GetManifestByVersionOptions = { version: string; }; diff --git a/packages/release-manifests/src/index.ts b/packages/release-manifests/src/index.ts index 25101d4cbf..f8ea22a3cb 100644 --- a/packages/release-manifests/src/index.ts +++ b/packages/release-manifests/src/index.ts @@ -20,9 +20,9 @@ * @packageDocumentation */ -export { getByVersion, getByReleaseLine } from './manifest'; +export { getManifestByVersion, getManifestByReleaseLine } from './manifest'; export type { ReleaseManifest, - GetByReleaseLineOptions, - GetByVersionOptions, + GetManifestByReleaseLineOptions, + GetManifestByVersionOptions, } from './manifest'; diff --git a/packages/release-manifests/src/manifest.test.ts b/packages/release-manifests/src/manifest.test.ts index efd5728fbc..70894e5431 100644 --- a/packages/release-manifests/src/manifest.test.ts +++ b/packages/release-manifests/src/manifest.test.ts @@ -15,11 +15,11 @@ */ import { setupRequestMockHandlers } from '@backstage/test-utils'; -import { getByReleaseLine, getByVersion } from './manifest'; +import { getManifestByReleaseLine, getManifestByVersion } from './manifest'; import { setupServer } from 'msw/node'; import { rest } from 'msw'; -describe('getByVersion', () => { +describe('getManifestByVersion', () => { const worker = setupServer(); setupRequestMockHandlers(worker); @@ -38,7 +38,7 @@ describe('getByVersion', () => { ), ); - const pkgs = await getByVersion({ version: '0.0.0' }); + const pkgs = await getManifestByVersion({ version: '0.0.0' }); expect(pkgs.packages).toEqual([ { name: '@backstage/core', @@ -46,13 +46,13 @@ describe('getByVersion', () => { }, ]); - await expect(getByVersion({ version: '999.0.1' })).rejects.toThrow( + await expect(getManifestByVersion({ version: '999.0.1' })).rejects.toThrow( 'No release found for 999.0.1 version', ); }); }); -describe('getByReleaseLine', () => { +describe('getManifestByReleaseLine', () => { const worker = setupServer(); setupRequestMockHandlers(worker); @@ -71,7 +71,7 @@ describe('getByReleaseLine', () => { ), ); - const pkgs = await getByReleaseLine({ releaseLine: 'main' }); + const pkgs = await getManifestByReleaseLine({ releaseLine: 'main' }); expect(pkgs.packages).toEqual([ { name: '@backstage/core', @@ -79,8 +79,8 @@ describe('getByReleaseLine', () => { }, ]); - await expect(getByReleaseLine({ releaseLine: 'foo' })).rejects.toThrow( - "No 'foo' release line found", - ); + await expect( + getManifestByReleaseLine({ releaseLine: 'foo' }), + ).rejects.toThrow("No 'foo' release line found"); }); }); diff --git a/packages/release-manifests/src/manifest.ts b/packages/release-manifests/src/manifest.ts index ab2fa6c9fa..4068f4c963 100644 --- a/packages/release-manifests/src/manifest.ts +++ b/packages/release-manifests/src/manifest.ts @@ -31,7 +31,7 @@ export type ReleaseManifest = { * Options for getByVersion. * @public */ -export type GetByVersionOptions = { +export type GetManifestByVersionOptions = { version: string; }; @@ -39,8 +39,8 @@ export type GetByVersionOptions = { * Returns a release manifest based on supplied version. * @public */ -export async function getByVersion( - options: GetByVersionOptions, +export async function getManifestByVersion( + options: GetManifestByVersionOptions, ): Promise { const url = `${VERSIONS_DOMAIN}/v1/releases/${encodeURIComponent( options.version, @@ -61,7 +61,7 @@ export async function getByVersion( * Options for getByReleaseLine. * @public */ -export type GetByReleaseLineOptions = { +export type GetManifestByReleaseLineOptions = { releaseLine: string; }; @@ -69,8 +69,8 @@ export type GetByReleaseLineOptions = { * Returns a release manifest based on supplied release line. * @public */ -export async function getByReleaseLine( - options: GetByReleaseLineOptions, +export async function getManifestByReleaseLine( + options: GetManifestByReleaseLineOptions, ): Promise { const url = `${VERSIONS_DOMAIN}/v1/tags/${encodeURIComponent( options.releaseLine, From dbee923ba89e862fa858c373eff65b9cbbddf68e Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 15:49:16 +0100 Subject: [PATCH 113/130] chore: fix codereviews to always have reviewers Signed-off-by: blam --- .github/CODEOWNERS | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index eaba7ef3e1..14031d30f2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,16 +6,16 @@ * @backstage/reviewers /.changeset/cost-insights-* @backstage/reviewers @backstage/silver-lining -/.changeset/search-* @backstage/techdocs-core -/.changeset/techdocs-* @backstage/techdocs-core -/cypress/src/integration/plugins/techdocs.spec.ts @backstage/techdocs-core -/docs/assets/search @backstage/techdocs-core -/docs/features/search @backstage/techdocs-core -/docs/features/techdocs @backstage/techdocs-core -/packages/search-common @backstage/techdocs-core -/packages/techdocs-cli @backstage/techdocs-core -/packages/techdocs-cli-embedded-app @backstage/techdocs-core -/packages/techdocs-common @backstage/techdocs-core +/.changeset/search-* @backstage/techdocs-core @backstage/reviewers +/.changeset/techdocs-* @backstage/techdocs-core @backstage/reviewers +/cypress/src/integration/plugins/techdocs.spec.ts @backstage/techdocs-core @backstage/reviewers +/docs/assets/search @backstage/techdocs-core @backstage/reviewers +/docs/features/search @backstage/techdocs-core @backstage/reviewers +/docs/features/techdocs @backstage/techdocs-core @backstage/reviewers +/packages/search-common @backstage/techdocs-core @backstage/reviewers +/packages/techdocs-cli @backstage/techdocs-core @backstage/reviewers +/packages/techdocs-cli-embedded-app @backstage/techdocs-core @backstage/reviewers +/packages/techdocs-common @backstage/techdocs-core @backstage/reviewers /plugins/allure @backstage/reviewers @deepak-bhardwaj-ps /plugins/apache-airflow @backstage/reviewers @cmpadden /plugins/api-docs @backstage/reviewers @backstage/sda-se-reviewers @@ -28,12 +28,12 @@ /plugins/cloudbuild @backstage/reviewers @trivago/ebarrios /plugins/code-coverage @backstage/reviewers @alde @nissayeva /plugins/code-coverage-backend @backstage/reviewers @alde @nissayeva -/plugins/cost-insights @backstage/silver-lining +/plugins/cost-insights @backstage/silver-lining @backstage/reviewers /plugins/explore @backstage/reviewers @backstage/sda-se-reviewers /plugins/explore-react @backstage/reviewers @backstage/sda-se-reviewers /plugins/fossa @backstage/reviewers @backstage/sda-se-reviewers /plugins/git-release-manager @backstage/reviewers @erikengervall -/plugins/home @backstage/techdocs-core +/plugins/home @backstage/techdocs-core @backstage/reviewers /plugins/ilert @backstage/reviewers @yacut /plugins/jenkins @backstage/reviewers @timja /plugins/jenkins-backend @backstage/reviewers @timja @@ -42,11 +42,11 @@ /plugins/newrelic-dashboard @backstage/reviewers @mufaddal7 /plugins/scaffolder-backend-module-rails @backstage/reviewers @angeliski /plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka -/plugins/search @backstage/techdocs-core -/plugins/search-* @backstage/techdocs-core +/plugins/search @backstage/techdocs-core @backstage/reviewers +/plugins/search-* @backstage/techdocs-core @backstage/reviewers /plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers -/plugins/techdocs @backstage/techdocs-core -/plugins/techdocs-backend @backstage/techdocs-core +/plugins/techdocs @backstage/techdocs-core @backstage/reviewers +/plugins/techdocs-backend @backstage/techdocs-core @backstage/reviewers /tech-insights-backend @backstage/reviewers @xantier @iain-b /tech-insights-backend-module-jsonfc @backstage/reviewers @xantier @iain-b /tech-insights-tech-insights-common @backstage/reviewers @xantier @iain-b From 27c1a76233a8193871d7f2e0e46bc2ed4dc2bced Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 15:58:41 +0100 Subject: [PATCH 114/130] =?UTF-8?q?chore:=20make=20CODEOWNERS=20pretty=20?= =?UTF-8?q?=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: blam --- .github/CODEOWNERS | 94 +++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 14031d30f2..1a0f827fb1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,50 +4,50 @@ # The last matching pattern takes precedence. # https://help.github.com/articles/about-codeowners/ -* @backstage/reviewers -/.changeset/cost-insights-* @backstage/reviewers @backstage/silver-lining -/.changeset/search-* @backstage/techdocs-core @backstage/reviewers -/.changeset/techdocs-* @backstage/techdocs-core @backstage/reviewers -/cypress/src/integration/plugins/techdocs.spec.ts @backstage/techdocs-core @backstage/reviewers -/docs/assets/search @backstage/techdocs-core @backstage/reviewers -/docs/features/search @backstage/techdocs-core @backstage/reviewers -/docs/features/techdocs @backstage/techdocs-core @backstage/reviewers -/packages/search-common @backstage/techdocs-core @backstage/reviewers -/packages/techdocs-cli @backstage/techdocs-core @backstage/reviewers -/packages/techdocs-cli-embedded-app @backstage/techdocs-core @backstage/reviewers -/packages/techdocs-common @backstage/techdocs-core @backstage/reviewers -/plugins/allure @backstage/reviewers @deepak-bhardwaj-ps -/plugins/apache-airflow @backstage/reviewers @cmpadden -/plugins/api-docs @backstage/reviewers @backstage/sda-se-reviewers -/plugins/azure-devops @backstage/reviewers @marleypowell @awanlin -/plugins/azure-devops-backend @backstage/reviewers @marleypowell @awanlin -/plugins/azure-devops-common @backstage/reviewers @marleypowell @awanlin -/plugins/bitrise @backstage/reviewers @backstage/sda-se-reviewers -/plugins/catalog-graph @backstage/reviewers @backstage/sda-se-reviewers -/plugins/circleci @backstage/reviewers @adamdmharvey -/plugins/cloudbuild @backstage/reviewers @trivago/ebarrios -/plugins/code-coverage @backstage/reviewers @alde @nissayeva -/plugins/code-coverage-backend @backstage/reviewers @alde @nissayeva -/plugins/cost-insights @backstage/silver-lining @backstage/reviewers -/plugins/explore @backstage/reviewers @backstage/sda-se-reviewers -/plugins/explore-react @backstage/reviewers @backstage/sda-se-reviewers -/plugins/fossa @backstage/reviewers @backstage/sda-se-reviewers -/plugins/git-release-manager @backstage/reviewers @erikengervall -/plugins/home @backstage/techdocs-core @backstage/reviewers -/plugins/ilert @backstage/reviewers @yacut -/plugins/jenkins @backstage/reviewers @timja -/plugins/jenkins-backend @backstage/reviewers @timja -/plugins/kafka @backstage/reviewers @nirga -/plugins/kafka-backend @backstage/reviewers @nirga -/plugins/newrelic-dashboard @backstage/reviewers @mufaddal7 -/plugins/scaffolder-backend-module-rails @backstage/reviewers @angeliski -/plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka -/plugins/search @backstage/techdocs-core @backstage/reviewers -/plugins/search-* @backstage/techdocs-core @backstage/reviewers -/plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers -/plugins/techdocs @backstage/techdocs-core @backstage/reviewers -/plugins/techdocs-backend @backstage/techdocs-core @backstage/reviewers -/tech-insights-backend @backstage/reviewers @xantier @iain-b -/tech-insights-backend-module-jsonfc @backstage/reviewers @xantier @iain-b -/tech-insights-tech-insights-common @backstage/reviewers @xantier @iain-b -/tech-insights-tech-insights-node @backstage/reviewers @xantier @iain-b +* @backstage/reviewers +/.changeset/cost-insights-* @backstage/reviewers @backstage/silver-lining +/.changeset/search-* @backstage/reviewers @backstage/techdocs-core +/.changeset/techdocs-* @backstage/reviewers @backstage/techdocs-core +/cypress/src/integration/plugins/techdocs.spec.ts @backstage/reviewers @backstage/techdocs-core +/docs/assets/search @backstage/reviewers @backstage/techdocs-core +/docs/features/search @backstage/reviewers @backstage/techdocs-core +/docs/features/techdocs @backstage/reviewers @backstage/techdocs-core +/packages/search-common @backstage/reviewers @backstage/techdocs-core +/packages/techdocs-cli @backstage/reviewers @backstage/techdocs-core +/packages/techdocs-cli-embedded-app @backstage/reviewers @backstage/techdocs-core +/packages/techdocs-common @backstage/reviewers @backstage/techdocs-core +/plugins/allure @backstage/reviewers @deepak-bhardwaj-ps +/plugins/apache-airflow @backstage/reviewers @cmpadden +/plugins/api-docs @backstage/reviewers @backstage/sda-se-reviewers +/plugins/azure-devops @backstage/reviewers @marleypowell @awanlin +/plugins/azure-devops-backend @backstage/reviewers @marleypowell @awanlin +/plugins/azure-devops-common @backstage/reviewers @marleypowell @awanlin +/plugins/bitrise @backstage/reviewers @backstage/sda-se-reviewers +/plugins/catalog-graph @backstage/reviewers @backstage/sda-se-reviewers +/plugins/circleci @backstage/reviewers @adamdmharvey +/plugins/cloudbuild @backstage/reviewers @trivago/ebarrios +/plugins/code-coverage @backstage/reviewers @alde @nissayeva +/plugins/code-coverage-backend @backstage/reviewers @alde @nissayeva +/plugins/cost-insights @backstage/reviewers @backstage/silver-lining +/plugins/explore @backstage/reviewers @backstage/sda-se-reviewers +/plugins/explore-react @backstage/reviewers @backstage/sda-se-reviewers +/plugins/fossa @backstage/reviewers @backstage/sda-se-reviewers +/plugins/git-release-manager @backstage/reviewers @erikengervall +/plugins/home @backstage/reviewers @backstage/techdocs-core +/plugins/ilert @backstage/reviewers @yacut +/plugins/jenkins @backstage/reviewers @timja +/plugins/jenkins-backend @backstage/reviewers @timja +/plugins/kafka @backstage/reviewers @nirga +/plugins/kafka-backend @backstage/reviewers @nirga +/plugins/newrelic-dashboard @backstage/reviewers @mufaddal7 +/plugins/scaffolder-backend-module-rails @backstage/reviewers @angeliski +/plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka +/plugins/search @backstage/reviewers @backstage/techdocs-core +/plugins/search-* @backstage/reviewers @backstage/techdocs-core +/plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers +/plugins/techdocs @backstage/reviewers @backstage/techdocs-core +/plugins/techdocs-backend @backstage/reviewers @backstage/techdocs-core +/tech-insights-backend @backstage/reviewers @xantier @iain-b +/tech-insights-backend-module-jsonfc @backstage/reviewers @xantier @iain-b +/tech-insights-tech-insights-common @backstage/reviewers @xantier @iain-b +/tech-insights-tech-insights-node @backstage/reviewers @xantier @iain-b From 89a2d00de73d9e810adc0fcf7538e859bc41b04e Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 8 Feb 2022 16:43:04 +0100 Subject: [PATCH 115/130] chore: add links to options doc strings Signed-off-by: Johan Haals --- packages/release-manifests/src/manifest.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/release-manifests/src/manifest.ts b/packages/release-manifests/src/manifest.ts index 4068f4c963..955cf7308c 100644 --- a/packages/release-manifests/src/manifest.ts +++ b/packages/release-manifests/src/manifest.ts @@ -28,7 +28,7 @@ export type ReleaseManifest = { }; /** - * Options for getByVersion. + * Options for {@link getManifestByVersion}. * @public */ export type GetManifestByVersionOptions = { @@ -58,7 +58,7 @@ export async function getManifestByVersion( } /** - * Options for getByReleaseLine. + * Options for {@link getManifestByReleaseLine}. * @public */ export type GetManifestByReleaseLineOptions = { From 3d7ce341328ca026d74d46ead96de5b162ef5fa9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Feb 2022 18:20:53 +0100 Subject: [PATCH 116/130] github: add additional links and update issue template Signed-off-by: Patrik Oldsberg --- .github/ISSUE_TEMPLATE/bug_template.md | 23 +++++++++++------------ .github/ISSUE_TEMPLATE/config.yml | 12 ++++++++++++ 2 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/bug_template.md b/.github/ISSUE_TEMPLATE/bug_template.md index 63ae5e373a..04f8fd68d0 100644 --- a/.github/ISSUE_TEMPLATE/bug_template.md +++ b/.github/ISSUE_TEMPLATE/bug_template.md @@ -4,20 +4,17 @@ about: 'Create Bug Report' labels: bug --- - + ## Expected Behavior -## Current Behavior +## Actual Behavior - - -## Possible Solution - - - + ## Steps to Reproduce @@ -38,8 +35,10 @@ labels: bug - +- Browser Information: -- NodeJS Version (v14): -- Operating System and Version (e.g. Ubuntu 14.04): -- Browser Information: +- Output of `yarn backstage-cli info`: + +```text + +``` diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..e9f23287b7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,12 @@ +--- +blank_issues_enabled: false +contact_links: + - about: 'Please ask and answer usage questions in GitHub Discussions' + name: Question + url: 'https://github.com/backstage/backstage/discussions' + - about: 'Alternatively, you can use the Backstage Community Discord' + name: Chat + url: 'https://discord.gg/MUpMjP2' + - about: 'Please check the FAQ before filing new issues' + name: 'Backstage FAQ' + url: 'https://backstage.io/docs/FAQ' From 3396bc597392574d0a1b2e9565597cb697c7a618 Mon Sep 17 00:00:00 2001 From: Daniel Deloff <44780793+rv-ddeloff@users.noreply.github.com> Date: Tue, 8 Feb 2022 14:04:50 -0500 Subject: [PATCH 117/130] remove option for disabling refresh Signed-off-by: Daniel Deloff <44780793+rv-ddeloff@users.noreply.github.com> --- .changeset/early-beds-smoke.md | 5 +++++ plugins/auth-backend/src/providers/atlassian/provider.ts | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .changeset/early-beds-smoke.md diff --git a/.changeset/early-beds-smoke.md b/.changeset/early-beds-smoke.md new file mode 100644 index 0000000000..4841faa38d --- /dev/null +++ b/.changeset/early-beds-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +removes disable refresh option in order to properly handle refresh tokens for atlassian diff --git a/plugins/auth-backend/src/providers/atlassian/provider.ts b/plugins/auth-backend/src/providers/atlassian/provider.ts index 79bcb5c909..26eea420fc 100644 --- a/plugins/auth-backend/src/providers/atlassian/provider.ts +++ b/plugins/auth-backend/src/providers/atlassian/provider.ts @@ -231,7 +231,6 @@ export const createAtlassianProvider = ( }); return OAuthAdapter.fromConfig(globalConfig, provider, { - disableRefresh: true, providerId, tokenIssuer, callbackUrl, From c311ae27364ab8f99a7de24632c4c319d8334956 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Feb 2022 20:12:51 +0100 Subject: [PATCH 118/130] Update early-beds-smoke.md Signed-off-by: Patrik Oldsberg --- .changeset/early-beds-smoke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/early-beds-smoke.md b/.changeset/early-beds-smoke.md index 4841faa38d..de9a412e7f 100644 --- a/.changeset/early-beds-smoke.md +++ b/.changeset/early-beds-smoke.md @@ -2,4 +2,4 @@ '@backstage/plugin-auth-backend': patch --- -removes disable refresh option in order to properly handle refresh tokens for atlassian +Enabled refresh for the Atlassian provider. From e74f416a00f16de0dbc6e347782cb20f7aa681c7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 8 Feb 2022 19:38:17 +0000 Subject: [PATCH 119/130] Version Packages (next) --- .changeset/pre.json | 36 +++- package.json | 2 +- packages/app-defaults/CHANGELOG.md | 7 + packages/app-defaults/package.json | 6 +- packages/app/CHANGELOG.md | 47 ++++ packages/app/package.json | 84 ++++---- packages/backend-common/CHANGELOG.md | 11 + packages/backend-common/package.json | 4 +- packages/backend-tasks/CHANGELOG.md | 11 + packages/backend-tasks/package.json | 8 +- packages/backend-test-utils/CHANGELOG.md | 12 ++ packages/backend-test-utils/package.json | 8 +- packages/backend/CHANGELOG.md | 32 +++ packages/backend/package.json | 54 ++--- packages/catalog-client/package.json | 2 +- packages/catalog-model/package.json | 2 +- packages/cli/CHANGELOG.md | 19 ++ packages/cli/package.json | 8 +- packages/codemods/CHANGELOG.md | 7 + packages/codemods/package.json | 2 +- packages/core-app-api/package.json | 2 +- packages/core-components/CHANGELOG.md | 8 + packages/core-components/package.json | 4 +- packages/core-plugin-api/package.json | 2 +- packages/create-app/CHANGELOG.md | 70 ++++++ packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 10 + packages/dev-utils/package.json | 12 +- packages/errors/package.json | 2 +- packages/integration-react/CHANGELOG.md | 7 + packages/integration-react/package.json | 8 +- packages/integration/package.json | 2 +- packages/search-common/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 12 ++ .../techdocs-cli-embedded-app/package.json | 16 +- packages/techdocs-cli/CHANGELOG.md | 9 + packages/techdocs-cli/package.json | 8 +- packages/techdocs-common/CHANGELOG.md | 7 + packages/techdocs-common/package.json | 6 +- packages/test-utils/package.json | 2 +- packages/theme/package.json | 2 +- packages/types/package.json | 2 +- packages/version-bridge/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 7 + plugins/airbrake/package.json | 10 +- plugins/allure/CHANGELOG.md | 8 + plugins/allure/package.json | 10 +- plugins/analytics-module-ga/CHANGELOG.md | 7 + plugins/analytics-module-ga/package.json | 8 +- plugins/apache-airflow/CHANGELOG.md | 7 + plugins/apache-airflow/package.json | 8 +- plugins/api-docs/CHANGELOG.md | 9 + plugins/api-docs/package.json | 12 +- plugins/app-backend/CHANGELOG.md | 11 + plugins/app-backend/package.json | 8 +- plugins/auth-backend/CHANGELOG.md | 17 ++ plugins/auth-backend/package.json | 6 +- plugins/azure-devops-backend/CHANGELOG.md | 7 + plugins/azure-devops-backend/package.json | 6 +- plugins/azure-devops-common/package.json | 2 +- plugins/azure-devops/CHANGELOG.md | 8 + plugins/azure-devops/package.json | 10 +- plugins/badges-backend/CHANGELOG.md | 7 + plugins/badges-backend/package.json | 6 +- plugins/badges/CHANGELOG.md | 8 + plugins/badges/package.json | 10 +- plugins/bazaar-backend/CHANGELOG.md | 12 ++ plugins/bazaar-backend/package.json | 8 +- plugins/bazaar/CHANGELOG.md | 10 + plugins/bazaar/package.json | 14 +- plugins/bitrise/CHANGELOG.md | 8 + plugins/bitrise/package.json | 10 +- .../catalog-backend-module-ldap/CHANGELOG.md | 7 + .../catalog-backend-module-ldap/package.json | 6 +- .../CHANGELOG.md | 9 + .../package.json | 8 +- plugins/catalog-backend/CHANGELOG.md | 12 ++ plugins/catalog-backend/package.json | 10 +- plugins/catalog-common/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 9 + plugins/catalog-graph/package.json | 10 +- plugins/catalog-graphql/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 10 + plugins/catalog-import/package.json | 12 +- plugins/catalog-react/CHANGELOG.md | 9 + plugins/catalog-react/package.json | 6 +- plugins/catalog/CHANGELOG.md | 9 + plugins/catalog/package.json | 12 +- plugins/circleci/CHANGELOG.md | 8 + plugins/circleci/package.json | 10 +- plugins/cloudbuild/CHANGELOG.md | 8 + plugins/cloudbuild/package.json | 10 +- plugins/code-coverage-backend/CHANGELOG.md | 11 + plugins/code-coverage-backend/package.json | 6 +- plugins/code-coverage/CHANGELOG.md | 8 + plugins/code-coverage/package.json | 10 +- plugins/config-schema/CHANGELOG.md | 7 + plugins/config-schema/package.json | 8 +- plugins/cost-insights/CHANGELOG.md | 7 + plugins/cost-insights/package.json | 8 +- plugins/explore-react/package.json | 4 +- plugins/explore/CHANGELOG.md | 8 + plugins/explore/package.json | 10 +- plugins/firehydrant/CHANGELOG.md | 8 + plugins/firehydrant/package.json | 10 +- plugins/fossa/CHANGELOG.md | 8 + plugins/fossa/package.json | 10 +- plugins/gcp-projects/CHANGELOG.md | 7 + plugins/gcp-projects/package.json | 8 +- plugins/git-release-manager/CHANGELOG.md | 7 + plugins/git-release-manager/package.json | 8 +- plugins/github-actions/CHANGELOG.md | 8 + plugins/github-actions/package.json | 10 +- plugins/github-deployments/CHANGELOG.md | 9 + plugins/github-deployments/package.json | 12 +- plugins/gitops-profiles/CHANGELOG.md | 7 + plugins/gitops-profiles/package.json | 8 +- plugins/gocd/CHANGELOG.md | 8 + plugins/gocd/package.json | 10 +- plugins/graphiql/CHANGELOG.md | 7 + plugins/graphiql/package.json | 8 +- plugins/graphql-backend/CHANGELOG.md | 7 + plugins/graphql-backend/package.json | 6 +- plugins/home/CHANGELOG.md | 10 + plugins/home/package.json | 12 +- plugins/ilert/CHANGELOG.md | 8 + plugins/ilert/package.json | 10 +- plugins/jenkins-backend/CHANGELOG.md | 7 + plugins/jenkins-backend/package.json | 6 +- plugins/jenkins/CHANGELOG.md | 8 + plugins/jenkins/package.json | 10 +- plugins/kafka-backend/CHANGELOG.md | 7 + plugins/kafka-backend/package.json | 6 +- plugins/kafka/CHANGELOG.md | 8 + plugins/kafka/package.json | 10 +- plugins/kubernetes-backend/CHANGELOG.md | 7 + plugins/kubernetes-backend/package.json | 6 +- plugins/kubernetes-common/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 8 + plugins/kubernetes/package.json | 10 +- plugins/lighthouse/CHANGELOG.md | 8 + plugins/lighthouse/package.json | 10 +- plugins/newrelic-dashboard/CHANGELOG.md | 9 + plugins/newrelic-dashboard/package.json | 10 +- plugins/newrelic/CHANGELOG.md | 7 + plugins/newrelic/package.json | 8 +- plugins/org/CHANGELOG.md | 8 + plugins/org/package.json | 10 +- plugins/pagerduty/CHANGELOG.md | 8 + plugins/pagerduty/package.json | 10 +- plugins/permission-backend/CHANGELOG.md | 9 + plugins/permission-backend/package.json | 10 +- plugins/permission-common/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 8 + plugins/permission-node/package.json | 8 +- plugins/permission-react/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 7 + plugins/proxy-backend/package.json | 6 +- plugins/rollbar-backend/CHANGELOG.md | 7 + plugins/rollbar-backend/package.json | 6 +- plugins/rollbar/CHANGELOG.md | 8 + plugins/rollbar/package.json | 10 +- .../CHANGELOG.md | 8 + .../package.json | 8 +- .../CHANGELOG.md | 8 + .../package.json | 8 +- .../CHANGELOG.md | 7 + .../package.json | 6 +- plugins/scaffolder-backend/CHANGELOG.md | 15 ++ plugins/scaffolder-backend/package.json | 10 +- plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 12 ++ plugins/scaffolder/package.json | 14 +- .../package.json | 4 +- plugins/search-backend-module-pg/CHANGELOG.md | 11 + plugins/search-backend-module-pg/package.json | 8 +- plugins/search-backend-node/package.json | 4 +- plugins/search-backend/CHANGELOG.md | 9 + plugins/search-backend/package.json | 10 +- plugins/search/CHANGELOG.md | 9 + plugins/search/package.json | 10 +- plugins/sentry/CHANGELOG.md | 8 + plugins/sentry/package.json | 10 +- plugins/shortcuts/CHANGELOG.md | 7 + plugins/shortcuts/package.json | 8 +- plugins/sonarqube/CHANGELOG.md | 8 + plugins/sonarqube/package.json | 10 +- plugins/splunk-on-call/CHANGELOG.md | 9 + plugins/splunk-on-call/package.json | 10 +- .../CHANGELOG.md | 8 + .../package.json | 8 +- plugins/tech-insights-backend/CHANGELOG.md | 12 ++ plugins/tech-insights-backend/package.json | 10 +- plugins/tech-insights-common/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 7 + plugins/tech-insights-node/package.json | 6 +- plugins/tech-insights/CHANGELOG.md | 8 + plugins/tech-insights/package.json | 10 +- plugins/tech-radar/CHANGELOG.md | 7 + plugins/tech-radar/package.json | 8 +- plugins/techdocs-backend/CHANGELOG.md | 12 ++ plugins/techdocs-backend/package.json | 8 +- plugins/techdocs/CHANGELOG.md | 11 + plugins/techdocs/package.json | 16 +- plugins/todo-backend/CHANGELOG.md | 7 + plugins/todo-backend/package.json | 6 +- plugins/todo/CHANGELOG.md | 12 ++ plugins/todo/package.json | 10 +- plugins/user-settings/CHANGELOG.md | 7 + plugins/user-settings/package.json | 8 +- plugins/xcmetrics/CHANGELOG.md | 7 + plugins/xcmetrics/package.json | 8 +- yarn.lock | 204 +++++++++++++----- 213 files changed, 1630 insertions(+), 546 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 3a6e38f774..9c6e4b2c4c 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -123,5 +123,39 @@ "@backstage/plugin-user-settings": "0.3.18", "@backstage/plugin-xcmetrics": "0.2.17" }, - "changesets": [] + "changesets": [ + "big-jeans-love", + "brave-tools-drop", + "breezy-windows-jump", + "chilly-pans-jog", + "cool-birds-ring", + "curly-fireants-crash", + "dependabot-e379ac7", + "dependabot-f436b5b", + "early-beds-smoke", + "healthy-flies-fold", + "khaki-jokes-grab", + "loud-monkeys-explode", + "many-terms-type", + "metal-clouds-fail", + "metal-lions-fix", + "nasty-socks-exist", + "neat-icons-fry", + "ninety-dancers-bow", + "old-phones-draw", + "popular-planes-lay", + "pretty-glasses-admire", + "seven-apes-shave", + "seven-teachers-arrive", + "shaggy-buckets-confess", + "shiny-radios-deliver", + "smart-boxes-double", + "tasty-spoons-beg", + "three-dolls-fly", + "three-pigs-sniff", + "twenty-colts-applaud", + "warm-beds-flow", + "wise-peaches-flow", + "wise-plants-tease" + ] } diff --git a/package.json b/package.json index 54841128a9..918e465b82 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "**/@roadiehq/**/@backstage/plugin-catalog": "*", "**/@roadiehq/**/@backstage/catalog-model": "*" }, - "version": "0.66.0", + "version": "0.67.0-next.0", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.15.0", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index b58d61fcca..f9d829c844 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/app-defaults +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.6 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 6a509a22f5..a7b118db11 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "0.1.6", + "version": "0.1.7-next.0", "private": false, "publishConfig": { "access": "public", @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-app-api": "^0.5.2", "@backstage/core-plugin-api": "^0.6.0", "@backstage/plugin-permission-react": "^0.3.0", @@ -42,7 +42,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index eb9d3cda99..a2a444b62f 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,52 @@ # example-app +## 0.2.64-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.13.2-next.0 + - @backstage/plugin-todo@0.2.0-next.0 + - @backstage/plugin-newrelic-dashboard@0.1.6-next.0 + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-scaffolder@0.12.2-next.0 + - @backstage/plugin-search@0.6.2-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/plugin-catalog-graph@0.2.10-next.0 + - @backstage/plugin-catalog-import@0.8.1-next.0 + - @backstage/plugin-home@0.4.14-next.0 + - @backstage/app-defaults@0.1.7-next.0 + - @backstage/integration-react@0.1.21-next.0 + - @backstage/plugin-airbrake@0.1.3-next.0 + - @backstage/plugin-apache-airflow@0.1.6-next.0 + - @backstage/plugin-api-docs@0.7.2-next.0 + - @backstage/plugin-azure-devops@0.1.14-next.0 + - @backstage/plugin-badges@0.2.22-next.0 + - @backstage/plugin-catalog@0.7.12-next.0 + - @backstage/plugin-circleci@0.2.37-next.0 + - @backstage/plugin-cloudbuild@0.2.35-next.0 + - @backstage/plugin-code-coverage@0.1.25-next.0 + - @backstage/plugin-cost-insights@0.11.20-next.0 + - @backstage/plugin-explore@0.3.29-next.0 + - @backstage/plugin-gcp-projects@0.3.17-next.0 + - @backstage/plugin-github-actions@0.4.35-next.0 + - @backstage/plugin-gocd@0.1.4-next.0 + - @backstage/plugin-graphiql@0.2.30-next.0 + - @backstage/plugin-jenkins@0.5.20-next.0 + - @backstage/plugin-kafka@0.2.28-next.0 + - @backstage/plugin-kubernetes@0.5.7-next.0 + - @backstage/plugin-lighthouse@0.2.37-next.0 + - @backstage/plugin-newrelic@0.3.16-next.0 + - @backstage/plugin-org@0.4.2-next.0 + - @backstage/plugin-pagerduty@0.3.25-next.0 + - @backstage/plugin-rollbar@0.3.26-next.0 + - @backstage/plugin-sentry@0.3.36-next.0 + - @backstage/plugin-shortcuts@0.1.22-next.0 + - @backstage/plugin-tech-insights@0.1.8-next.0 + - @backstage/plugin-tech-radar@0.5.5-next.0 + - @backstage/plugin-techdocs@0.13.3-next.0 + - @backstage/plugin-user-settings@0.3.19-next.0 + ## 0.2.63 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 3447c07059..f566c7e583 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,56 +1,56 @@ { "name": "example-app", - "version": "0.2.63", + "version": "0.2.64-next.0", "private": true, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^0.1.6", + "@backstage/app-defaults": "^0.1.7-next.0", "@backstage/catalog-model": "^0.9.10", - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-airbrake": "^0.1.2", - "@backstage/plugin-api-docs": "^0.7.1", - "@backstage/plugin-azure-devops": "^0.1.13", - "@backstage/plugin-apache-airflow": "^0.1.5", - "@backstage/plugin-badges": "^0.2.21", - "@backstage/plugin-catalog": "^0.7.11", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-airbrake": "^0.1.3-next.0", + "@backstage/plugin-api-docs": "^0.7.2-next.0", + "@backstage/plugin-azure-devops": "^0.1.14-next.0", + "@backstage/plugin-apache-airflow": "^0.1.6-next.0", + "@backstage/plugin-badges": "^0.2.22-next.0", + "@backstage/plugin-catalog": "^0.7.12-next.0", "@backstage/plugin-catalog-common": "^0.1.2", - "@backstage/plugin-catalog-graph": "^0.2.9", - "@backstage/plugin-catalog-import": "^0.8.0", - "@backstage/plugin-catalog-react": "^0.6.13", - "@backstage/plugin-circleci": "^0.2.36", - "@backstage/plugin-cloudbuild": "^0.2.34", - "@backstage/plugin-code-coverage": "^0.1.24", - "@backstage/plugin-cost-insights": "^0.11.19", - "@backstage/plugin-explore": "^0.3.28", - "@backstage/plugin-gcp-projects": "^0.3.16", - "@backstage/plugin-github-actions": "^0.4.34", - "@backstage/plugin-gocd": "^0.1.3", - "@backstage/plugin-graphiql": "^0.2.29", - "@backstage/plugin-home": "^0.4.13", - "@backstage/plugin-jenkins": "^0.5.19", - "@backstage/plugin-kafka": "^0.2.27", - "@backstage/plugin-kubernetes": "^0.5.6", - "@backstage/plugin-lighthouse": "^0.2.36", - "@backstage/plugin-newrelic": "^0.3.15", - "@backstage/plugin-newrelic-dashboard": "^0.1.5", - "@backstage/plugin-org": "^0.4.1", - "@backstage/plugin-pagerduty": "0.3.24", + "@backstage/plugin-catalog-graph": "^0.2.10-next.0", + "@backstage/plugin-catalog-import": "^0.8.1-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", + "@backstage/plugin-circleci": "^0.2.37-next.0", + "@backstage/plugin-cloudbuild": "^0.2.35-next.0", + "@backstage/plugin-code-coverage": "^0.1.25-next.0", + "@backstage/plugin-cost-insights": "^0.11.20-next.0", + "@backstage/plugin-explore": "^0.3.29-next.0", + "@backstage/plugin-gcp-projects": "^0.3.17-next.0", + "@backstage/plugin-github-actions": "^0.4.35-next.0", + "@backstage/plugin-gocd": "^0.1.4-next.0", + "@backstage/plugin-graphiql": "^0.2.30-next.0", + "@backstage/plugin-home": "^0.4.14-next.0", + "@backstage/plugin-jenkins": "^0.5.20-next.0", + "@backstage/plugin-kafka": "^0.2.28-next.0", + "@backstage/plugin-kubernetes": "^0.5.7-next.0", + "@backstage/plugin-lighthouse": "^0.2.37-next.0", + "@backstage/plugin-newrelic": "^0.3.16-next.0", + "@backstage/plugin-newrelic-dashboard": "^0.1.6-next.0", + "@backstage/plugin-org": "^0.4.2-next.0", + "@backstage/plugin-pagerduty": "0.3.25-next.0", "@backstage/plugin-permission-react": "^0.3.0", - "@backstage/plugin-rollbar": "^0.3.25", - "@backstage/plugin-scaffolder": "^0.12.1", - "@backstage/plugin-search": "^0.6.1", - "@backstage/plugin-sentry": "^0.3.35", - "@backstage/plugin-shortcuts": "^0.1.21", - "@backstage/plugin-tech-radar": "^0.5.4", - "@backstage/plugin-techdocs": "^0.13.2", - "@backstage/plugin-todo": "^0.1.21", - "@backstage/plugin-user-settings": "^0.3.18", + "@backstage/plugin-rollbar": "^0.3.26-next.0", + "@backstage/plugin-scaffolder": "^0.12.2-next.0", + "@backstage/plugin-search": "^0.6.2-next.0", + "@backstage/plugin-sentry": "^0.3.36-next.0", + "@backstage/plugin-shortcuts": "^0.1.22-next.0", + "@backstage/plugin-tech-radar": "^0.5.5-next.0", + "@backstage/plugin-techdocs": "^0.13.3-next.0", + "@backstage/plugin-todo": "^0.2.0-next.0", + "@backstage/plugin-user-settings": "^0.3.19-next.0", "@backstage/search-common": "^0.2.2", - "@backstage/plugin-tech-insights": "^0.1.7", + "@backstage/plugin-tech-insights": "^0.1.8-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index da731fa441..9331c737ad 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-common +## 0.10.7-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- 599f3dfa83: chore(deps-dev): bump `@types/concat-stream` from 1.6.1 to 2.0.0 +- c3868458d8: Removed unnecessary `get-port` dependency + ## 0.10.6 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 072823d2a2..2a2aee69bd 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.10.6", + "version": "0.10.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -84,7 +84,7 @@ } }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/archiver": "^5.1.0", "@types/compression": "^1.7.0", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index b13142a7cf..ab6003a284 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-tasks +## 0.1.6-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.5 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index f11d05a53d..ad5a892a3d 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.1.5", + "version": "0.1.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/types": "^0.1.1", @@ -43,8 +43,8 @@ "zod": "^3.9.5" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.16", - "@backstage/cli": "^0.13.1", + "@backstage/backend-test-utils": "^0.1.17-next.0", + "@backstage/cli": "^0.13.2-next.0", "jest": "^26.0.1", "wait-for-expect": "^3.0.2" }, diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 0ecc9afb4f..69d80b7088 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-test-utils +## 0.1.17-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/cli@0.13.2-next.0 + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.16 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index a101b8248e..59fbbc3879 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.16", + "version": "0.1.17-next.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -30,8 +30,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", - "@backstage/cli": "^0.13.1", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/cli": "^0.13.2-next.0", "@backstage/config": "^0.1.13", "@vscode/sqlite3": "^5.0.7", "knex": "^1.0.2", @@ -41,7 +41,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "jest": "^26.0.1" }, "files": [ diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 40bfad7ddf..17e7c4c668 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,37 @@ # example-backend +## 0.2.64-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.10.0-next.0 + - @backstage/backend-common@0.10.7-next.0 + - @backstage/backend-tasks@0.1.6-next.0 + - @backstage/plugin-app-backend@0.3.24-next.0 + - @backstage/plugin-catalog-backend@0.21.3-next.0 + - @backstage/plugin-code-coverage-backend@0.1.22-next.0 + - @backstage/plugin-scaffolder-backend@0.15.24-next.0 + - @backstage/plugin-search-backend-module-pg@0.2.6-next.0 + - @backstage/plugin-tech-insights-backend@0.2.4-next.0 + - @backstage/plugin-techdocs-backend@0.13.3-next.0 + - example-app@0.2.64-next.0 + - @backstage/plugin-azure-devops-backend@0.3.3-next.0 + - @backstage/plugin-badges-backend@0.1.18-next.0 + - @backstage/plugin-graphql-backend@0.1.14-next.0 + - @backstage/plugin-jenkins-backend@0.1.13-next.0 + - @backstage/plugin-kafka-backend@0.2.17-next.0 + - @backstage/plugin-kubernetes-backend@0.4.7-next.0 + - @backstage/plugin-permission-backend@0.4.3-next.0 + - @backstage/plugin-permission-node@0.4.3-next.0 + - @backstage/plugin-proxy-backend@0.2.18-next.0 + - @backstage/plugin-rollbar-backend@0.1.21-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.2.6-next.0 + - @backstage/plugin-search-backend@0.4.2-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.8-next.0 + - @backstage/plugin-tech-insights-node@0.2.2-next.0 + - @backstage/plugin-todo-backend@0.1.21-next.0 + ## 0.2.63 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 96dc5d3eb2..c2e8711757 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.63", + "version": "0.2.64-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,38 +24,38 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", - "@backstage/backend-tasks": "^0.1.5", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/backend-tasks": "^0.1.6-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/integration": "^0.7.2", - "@backstage/plugin-app-backend": "^0.3.23", - "@backstage/plugin-auth-backend": "^0.9.0", - "@backstage/plugin-azure-devops-backend": "^0.3.2", - "@backstage/plugin-badges-backend": "^0.1.17", - "@backstage/plugin-catalog-backend": "^0.21.2", - "@backstage/plugin-code-coverage-backend": "^0.1.21", - "@backstage/plugin-graphql-backend": "^0.1.13", - "@backstage/plugin-jenkins-backend": "^0.1.12", - "@backstage/plugin-kubernetes-backend": "^0.4.6", - "@backstage/plugin-kafka-backend": "^0.2.16", - "@backstage/plugin-permission-backend": "^0.4.2", + "@backstage/plugin-app-backend": "^0.3.24-next.0", + "@backstage/plugin-auth-backend": "^0.10.0-next.0", + "@backstage/plugin-azure-devops-backend": "^0.3.3-next.0", + "@backstage/plugin-badges-backend": "^0.1.18-next.0", + "@backstage/plugin-catalog-backend": "^0.21.3-next.0", + "@backstage/plugin-code-coverage-backend": "^0.1.22-next.0", + "@backstage/plugin-graphql-backend": "^0.1.14-next.0", + "@backstage/plugin-jenkins-backend": "^0.1.13-next.0", + "@backstage/plugin-kubernetes-backend": "^0.4.7-next.0", + "@backstage/plugin-kafka-backend": "^0.2.17-next.0", + "@backstage/plugin-permission-backend": "^0.4.3-next.0", "@backstage/plugin-permission-common": "^0.4.0", - "@backstage/plugin-permission-node": "^0.4.2", - "@backstage/plugin-proxy-backend": "^0.2.17", - "@backstage/plugin-rollbar-backend": "^0.1.20", - "@backstage/plugin-scaffolder-backend": "^0.15.23", - "@backstage/plugin-scaffolder-backend-module-rails": "^0.2.5", - "@backstage/plugin-search-backend": "^0.4.1", + "@backstage/plugin-permission-node": "^0.4.3-next.0", + "@backstage/plugin-proxy-backend": "^0.2.18-next.0", + "@backstage/plugin-rollbar-backend": "^0.1.21-next.0", + "@backstage/plugin-scaffolder-backend": "^0.15.24-next.0", + "@backstage/plugin-scaffolder-backend-module-rails": "^0.2.6-next.0", + "@backstage/plugin-search-backend": "^0.4.2-next.0", "@backstage/plugin-search-backend-node": "^0.4.5", "@backstage/plugin-search-backend-module-elasticsearch": "^0.0.8", - "@backstage/plugin-search-backend-module-pg": "^0.2.5", - "@backstage/plugin-techdocs-backend": "^0.13.2", - "@backstage/plugin-tech-insights-backend": "^0.2.3", - "@backstage/plugin-tech-insights-node": "^0.2.1", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.7", - "@backstage/plugin-todo-backend": "^0.1.20", + "@backstage/plugin-search-backend-module-pg": "^0.2.6-next.0", + "@backstage/plugin-techdocs-backend": "^0.13.3-next.0", + "@backstage/plugin-tech-insights-backend": "^0.2.4-next.0", + "@backstage/plugin-tech-insights-node": "^0.2.2-next.0", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.8-next.0", + "@backstage/plugin-todo-backend": "^0.1.21-next.0", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^18.5.3", "@vscode/sqlite3": "^5.0.7", @@ -72,7 +72,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5" diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index a216a70d27..7e7cceb64e 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -35,7 +35,7 @@ "cross-fetch": "^3.0.6" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "msw": "^0.35.0" }, diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 0b9b30fe3e..efe32cccff 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -43,7 +43,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "@types/lodash": "^4.14.151", "yaml": "^1.9.2" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index a74e3ba0a7..7477d758e7 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/cli +## 0.13.2-next.0 + +### Patch Changes + +- bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`. +- eaf67f0578: Introduced initial support for an experimental `backstage.role` field in package.json, as well as experimental and hidden `migrate` and `script` sub-commands. We do not recommend usage of any of these additions yet. +- d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread. +- 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package. +- 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope. +- fae2aee878: Removed the `import/no-duplicates` lint rule from the frontend and backend ESLint configurations. This rule is quite expensive to execute and only provides a purely cosmetic benefit, so we opted to remove it from the set of default rules. If you would like to keep this rule you can add it back in your local ESLint configuration: + + ```js + 'import/no-duplicates': 'warn' + ``` + +- b906f98119: Rather than calling `yarn pack`, the `build-workspace` and `backend-bundle` commands now move files directly whenever possible. This cuts out several `yarn` invocations and speeds the packing process up by several orders of magnitude. +- d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process. +- d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages. + ## 0.13.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 0f6c521ec4..2724870aa9 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.13.1", + "version": "0.13.2-next.0", "private": false, "publishConfig": { "access": "public" @@ -117,12 +117,12 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@backstage/theme": "^0.2.14", "@types/diff": "^5.0.0", diff --git a/packages/codemods/CHANGELOG.md b/packages/codemods/CHANGELOG.md index d14d46efd8..02a1b2ca74 100644 --- a/packages/codemods/CHANGELOG.md +++ b/packages/codemods/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/codemods +## 0.1.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.32 ### Patch Changes diff --git a/packages/codemods/package.json b/packages/codemods/package.json index 4ce5d9700d..0681a13287 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/codemods", "description": "A collection of codemods for Backstage projects", - "version": "0.1.32", + "version": "0.1.33-next.0", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index a546e29134..e4909306e1 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -45,7 +45,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 27cf543205..c6b2f87bc8 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/core-components +## 0.8.8-next.0 + +### Patch Changes + +- 8d785a0b1b: chore: bump `ansi-regex` from `5.0.1` to `6.0.1` +- f2dfbd3fb0: Adjust ErrorPage to accept optional supportUrl property to override app support config. Update type of additionalInfo property to be ReactNode to accept both string and component. +- d62bdb7a8e: The `ErrorPage` now falls back to using the default support configuration if the `ConfigApi` is not available. + ## 0.8.7 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index a6e9962abe..6b31998d16 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.8.7", + "version": "0.8.8-next.0", "private": false, "publishConfig": { "access": "public", @@ -74,7 +74,7 @@ }, "devDependencies": { "@backstage/core-app-api": "^0.5.2", - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 5186fca4dd..888da28b53 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -43,7 +43,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2-next.0", "@backstage/test-utils": "^0.2.4-next.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 6cb892905b..385d3acdf9 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,75 @@ # @backstage/create-app +## 0.4.19-next.0 + +### Patch Changes + +- 22f4ecb0e6: Switched the `file:` dependency for a `link:` dependency in the `backend` package. This makes sure that the `app` package is linked in rather than copied. + + To apply this update to an existing app, make the following change to `packages/backend/package.json`: + + ```diff + "dependencies": { + - "app": "file:../app", + + "app": "link:../app", + "@backstage/backend-common": "^{{version '@backstage/backend-common'}}", + ``` + +- 1dd5a02e91: **BREAKING:** Updated `knex` to major version 1, which also implies changing out + the underlying `sqlite` implementation. + + The old `sqlite3` NPM library has been abandoned by its maintainers, which has + led to unhandled security reports and other issues. Therefore, in the `knex` 1.x + release line they have instead switched over to the [`@vscode/sqlite3` + library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is + actively maintained by Microsoft. + + This means that as you update to this version of Backstage, there are two + breaking changes that you will have to address in your own repository: + + ## Bumping `knex` itself + + All `package.json` files of your repo that used to depend on a 0.x version of + `knex`, should now be updated to depend on the 1.x release line. This applies in + particular to `packages/backend`, but may also occur in backend plugins or + libraries. + + ```diff + - "knex": "^0.95.1", + + "knex": "^1.0.2", + ``` + + Almost all existing database code will continue to function without modification + after this bump. The only significant difference that we discovered in the main + repo, is that the `alter()` function had a slightly different signature in + migration files. It now accepts an object with `alterType` and `alterNullable` + fields that clarify a previous grey area such that the intent of the alteration + is made explicit. This is caught by `tsc` and your editor if you are using the + `@ts-check` and `@param` syntax in your migration files + ([example](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/migrations/20220116144621_remove_legacy.js#L17)), + which we strongly recommend. + + See the [`knex` documentation](https://knexjs.org/#Schema-alter) for more + information about the `alter` syntax. + + Also see the [`knex` changelog](https://knexjs.org/#changelog) for information + about breaking changes in the 1.x line; if you are using `RETURNING` you may + want to make some additional modifications in your code. + + ## Switching out `sqlite3` + + All `package.json` files of your repo that used to depend on `sqlite3`, should + now be updated to depend on `@vscode/sqlite3`. This applies in particular to + `packages/backend`, but may also occur in backend plugins or libraries. + + ```diff + - "sqlite3": "^5.0.1", + + "@vscode/sqlite3": "^5.0.7", + ``` + + These should be functionally equivalent, except that the new library will have + addressed some long standing problems with old transitive dependencies etc. + ## 0.4.18 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index a679942a53..c1cbf008ae 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.18", + "version": "0.4.19-next.0", "private": false, "publishConfig": { "access": "public" diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 2e34bcaefa..ef8acb7ba0 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/dev-utils +## 0.2.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/app-defaults@0.1.7-next.0 + - @backstage/integration-react@0.1.21-next.0 + ## 0.2.20 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 1f59a143e1..bc86b7736b 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.2.20", + "version": "0.2.21-next.0", "private": false, "publishConfig": { "access": "public", @@ -29,13 +29,13 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/app-defaults": "^0.1.6", + "@backstage/app-defaults": "^0.1.7-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/catalog-model": "^0.9.10", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/test-utils": "^0.2.4", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -55,7 +55,7 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "@types/node": "^14.14.32" }, diff --git a/packages/errors/package.json b/packages/errors/package.json index 7861793aef..f6ea34b0bf 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -35,7 +35,7 @@ "serialize-error": "^8.0.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7" }, "files": [ diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 4e191866b4..303625f03f 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/integration-react +## 0.1.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.20 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 255565fafa..3ca522ba66 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "0.1.20", + "version": "0.1.21-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ }, "dependencies": { "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/integration": "^0.7.2", "@backstage/theme": "^0.2.14", @@ -35,8 +35,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", - "@backstage/dev-utils": "^0.2.20", + "@backstage/cli": "^0.13.2-next.0", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/integration/package.json b/packages/integration/package.json index 41ed3f08c3..69a02ef8e0 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -39,7 +39,7 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/config-loader": "^0.9.3", "@backstage/test-utils": "^0.2.4-next.0", "@types/jest": "^26.0.7", diff --git a/packages/search-common/package.json b/packages/search-common/package.json index b574675724..10b03ab663 100644 --- a/packages/search-common/package.json +++ b/packages/search-common/package.json @@ -40,7 +40,7 @@ "@backstage/plugin-permission-common": "^0.4.0-next.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" }, "jest": { "roots": [ diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 27c4719686..df0af06a30 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,17 @@ # techdocs-cli-embedded-app +## 0.2.63-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.13.2-next.0 + - @backstage/core-components@0.8.8-next.0 + - @backstage/app-defaults@0.1.7-next.0 + - @backstage/integration-react@0.1.21-next.0 + - @backstage/plugin-catalog@0.7.12-next.0 + - @backstage/plugin-techdocs@0.13.3-next.0 + ## 0.2.62 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 2df050ef86..c5e25f1bc7 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,19 +1,19 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.62", + "version": "0.2.63-next.0", "private": true, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^0.1.6", + "@backstage/app-defaults": "^0.1.7-next.0", "@backstage/catalog-model": "^0.9.10", - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/config": "^0.1.13", "@backstage/core-app-api": "^0.5.2", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-catalog": "^0.7.11", - "@backstage/plugin-techdocs": "^0.13.2", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-catalog": "^0.7.12-next.0", + "@backstage/plugin-techdocs": "^0.13.3-next.0", "@backstage/test-utils": "^0.2.4", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.11.0", @@ -26,7 +26,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", "@testing-library/user-event": "^13.1.8", diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index f68fc44101..51841ecb95 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,14 @@ # @techdocs/cli +## 0.8.13-next.0 + +### Patch Changes + +- b70c186194: Updated the HTTP server to allow for simplification of the development of the CLI itself. +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/techdocs-common@0.11.7-next.0 + ## 0.8.12 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 2076e25bed..e2cba36070 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "0.8.12", + "version": "0.8.13-next.0", "private": false, "publishConfig": { "access": "public" @@ -33,7 +33,7 @@ "techdocs-cli": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", @@ -56,11 +56,11 @@ "ext": "ts" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-model": "^0.9.10", "@backstage/cli-common": "^0.1.6", "@backstage/config": "^0.1.13", - "@backstage/techdocs-common": "^0.11.6", + "@backstage/techdocs-common": "^0.11.7-next.0", "@types/dockerode": "^3.3.0", "commander": "^6.1.0", "dockerode": "^3.3.1", diff --git a/packages/techdocs-common/CHANGELOG.md b/packages/techdocs-common/CHANGELOG.md index d03ddb6101..fea44fdcae 100644 --- a/packages/techdocs-common/CHANGELOG.md +++ b/packages/techdocs-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/techdocs-common +## 0.11.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.11.6 ### Patch Changes diff --git a/packages/techdocs-common/package.json b/packages/techdocs-common/package.json index 94a87a41e8..805af7fd31 100644 --- a/packages/techdocs-common/package.json +++ b/packages/techdocs-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/techdocs-common", "description": "Common functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "0.11.6", + "version": "0.11.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -38,7 +38,7 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", @@ -60,7 +60,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/fs-extra": "^9.0.5", "@types/js-yaml": "^4.0.0", "@types/mime-types": "^2.1.0", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index c5fe18d7f7..f73917cc34 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -51,7 +51,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "@types/node": "^14.14.32", "msw": "^0.35.0" diff --git a/packages/theme/package.json b/packages/theme/package.json index 517a517ba7..2846db2805 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -31,7 +31,7 @@ "@material-ui/core": "^4.12.2" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/packages/types/package.json b/packages/types/package.json index 0a0f78ca3d..ae18fe519d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -31,7 +31,7 @@ }, "dependencies": {}, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/zen-observable": "^0.8.0", "zen-observable": "^0.8.15" }, diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index 7b841704d5..6989aec3cf 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -33,7 +33,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", "@testing-library/react-hooks": "^7.0.2" diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index 489559c023..d254c80018 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-airbrake +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index dcd60e3687..778e951000 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -34,10 +34,10 @@ }, "devDependencies": { "@types/object-hash": "^2.2.1", - "@backstage/app-defaults": "^0.1.6", - "@backstage/cli": "^0.13.1", + "@backstage/app-defaults": "^0.1.7-next.0", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index f0fa792278..99493c727f 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-allure +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 4b497bd56e..eb325d7d85 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,9 +23,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -37,9 +37,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 81c61769fb..de25fd0b33 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-analytics-module-ga +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index bbc9ffcd2e..c72155762e 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ }, "dependencies": { "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -35,9 +35,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index 7407a9f0c9..514040fb05 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-apache-airflow +## 0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.5 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 7b760070ec..aa179fd5e4 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.1.5", + "version": "0.1.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -33,9 +33,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index cd477a6152..88003f24d4 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-api-docs +## 0.7.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/plugin-catalog@0.7.12-next.0 + ## 0.7.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 26f28ae40b..3752b16d9a 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.7.1", + "version": "0.7.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,10 +32,10 @@ "dependencies": { "@asyncapi/react-component": "1.0.0-next.32", "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog": "^0.7.11", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog": "^0.7.12-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index b2a8d38636..de3662d4cc 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-backend +## 0.3.24-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.3.23 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index ab9216e512..5a2ddcb57d 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.23", + "version": "0.3.24-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config-loader": "^0.9.3", "@backstage/config": "^0.1.13", "@backstage/types": "^0.1.1", @@ -47,8 +47,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.16", - "@backstage/cli": "^0.13.1", + "@backstage/backend-test-utils": "^0.1.17-next.0", + "@backstage/cli": "^0.13.2-next.0", "@backstage/types": "^0.1.1", "@types/supertest": "^2.0.8", "mock-fs": "^5.1.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 52c1f3caa3..5ed7c8b268 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend +## 0.10.0-next.0 + +### Minor Changes + +- 08fcda13ef: The `callbackUrl` option of `OAuthAdapter` is now required. + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- 3396bc5973: Enabled refresh for the Atlassian provider. +- 08fcda13ef: Added a new `cookieConfigurer` option to `AuthProviderConfig` that makes it possible to override the default logic for configuring OAuth provider cookies. +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.9.0 ### Minor Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 909cfbd14d..3dab33d8da 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.9.0", + "version": "0.10.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -73,7 +73,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index e2aad374b3..4503707449 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-devops-backend +## 0.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.3.2 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 4125e9be24..ea1a566ef6 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.3.2", + "version": "0.3.3-next.0", "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.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/plugin-azure-devops-common": "^0.2.0", "@types/express": "^4.17.6", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", "msw": "^0.35.0" diff --git a/plugins/azure-devops-common/package.json b/plugins/azure-devops-common/package.json index 8a3c884fed..02faebca61 100644 --- a/plugins/azure-devops-common/package.json +++ b/plugins/azure-devops-common/package.json @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 8e300e9699..da4a88e9df 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-azure-devops +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 7052dee6d5..d1520e5a95 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.1.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,11 +28,11 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/plugin-azure-devops-common": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 54c46a6f3e..8ceec5c2b3 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-badges-backend +## 0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.17 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index f5d533522e..c3622ddbbd 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.17", + "version": "0.1.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -45,7 +45,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index e49dc620ee..8f98786de0 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-badges +## 0.2.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.21 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index c27375b995..8ff59c2e4a 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.21", + "version": "0.2.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,10 +28,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 4262b3fe11..f04c64aac0 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-bazaar-backend +## 0.1.9-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/backend-test-utils@0.1.17-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 790d97defe..17bc7687a9 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.1.8", + "version": "0.1.9-next.0", "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.10.6", - "@backstage/backend-test-utils": "^0.1.16", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/backend-test-utils": "^0.1.17-next.0", "@backstage/config": "^0.1.13", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -31,7 +31,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 8fd907c6bd..6b7389abd1 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-bazaar +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.13.2-next.0 + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/plugin-catalog@0.7.12-next.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 111bccced6..e385155c39 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.1.12", + "version": "0.1.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,11 +23,11 @@ "dependencies": { "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", - "@backstage/cli": "^0.13.1", - "@backstage/core-components": "^0.8.7", + "@backstage/cli": "^0.13.2-next.0", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog": "^0.7.11", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog": "^0.7.12-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@date-io/luxon": "2.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -44,8 +44,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", - "@backstage/dev-utils": "^0.2.20", + "@backstage/cli": "^0.13.2-next.0", + "@backstage/dev-utils": "^0.2.21-next.0", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.0.6" }, diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index e37e17882c..12fa3af075 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitrise +## 0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.24 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 6c8dea09b4..423324aff1 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.24", + "version": "0.1.25-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 67e8aeade2..3249009447 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@0.21.3-next.0 + ## 0.3.11 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index cb57a8fbed..89f1a33cb2 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend modules that helps integrate towards LDAP", - "version": "0.3.11", + "version": "0.3.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-backend": "^0.21.2", + "@backstage/plugin-catalog-backend": "^0.21.3-next.0", "@backstage/types": "^0.1.1", "@types/ldapjs": "^2.2.0", "ldapjs": "^2.2.0", @@ -40,7 +40,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 6d8771b609..521626bdfe 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.2.15-next.0 + +### Patch Changes + +- 9b122a780c: Add userExpand option to allow users to expand fields retrieved from the Graph API - for use in custom transformers +- 7bb1bde7f6: Minor API cleanups +- Updated dependencies + - @backstage/plugin-catalog-backend@0.21.3-next.0 + ## 0.2.14 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 795a113144..87e47402bf 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend modules that helps integrate towards Microsoft Graph", - "version": "0.2.14", + "version": "0.2.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "@azure/msal-node": "^1.1.0", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/plugin-catalog-backend": "^0.21.2", + "@backstage/plugin-catalog-backend": "^0.21.3-next.0", "@microsoft/microsoft-graph-types": "^2.6.0", "@types/node-fetch": "^2.5.12", "lodash": "^4.17.21", @@ -42,8 +42,8 @@ "qs": "^6.9.4" }, "devDependencies": { - "@backstage/backend-common": "^0.10.6", - "@backstage/cli": "^0.13.1", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/lodash": "^4.14.151", "msw": "^0.35.0" diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index e46d30350f..64390b43c7 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend +## 0.21.3-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-permission-node@0.4.3-next.0 + ## 0.21.2 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index c2c280c78a..22751c9214 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "0.21.2", + "version": "0.21.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -38,7 +38,7 @@ "@backstage/integration": "^0.7.2", "@backstage/plugin-catalog-common": "^0.1.2", "@backstage/plugin-permission-common": "^0.4.0", - "@backstage/plugin-permission-node": "^0.4.2", + "@backstage/plugin-permission-node": "^0.4.3-next.0", "@backstage/search-common": "^0.2.2", "@backstage/types": "^0.1.1", "@octokit/graphql": "^4.5.8", @@ -65,8 +65,8 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.16", - "@backstage/cli": "^0.13.1", + "@backstage/backend-test-utils": "^0.1.17-next.0", + "@backstage/cli": "^0.13.2-next.0", "@backstage/plugin-permission-common": "^0.4.0", "@backstage/test-utils": "^0.2.4", "@types/core-js": "^2.5.4", diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index b9cf9a20dd..4b94809ed5 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -33,7 +33,7 @@ "@backstage/plugin-permission-common": "^0.4.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 56446575da..67d950ba87 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-graph +## 0.2.10-next.0 + +### Patch Changes + +- 7bb1bde7f6: Minor API cleanups +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.9 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 10dafe8daa..b8b155af13 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.9", + "version": "0.2.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,9 +23,9 @@ "dependencies": { "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,9 +42,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index affc3e0ee6..7c92e5d399 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -43,7 +43,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4-next.0", "@graphql-codegen/cli": "^2.3.1", "@graphql-codegen/typescript": "^2.4.2", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index f3aae8182e..a5ee312bbb 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-import +## 0.8.1-next.0 + +### Patch Changes + +- 7bb1bde7f6: Minor API cleanups +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/integration-react@0.1.21-next.0 + ## 0.8.0 ### Minor Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 0b452aa239..b86893350c 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.8.0", + "version": "0.8.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "dependencies": { "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/config": "^0.1.13", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index e38f17b37d..27a43bdb94 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-react +## 0.6.14-next.0 + +### Patch Changes + +- 680e7c7452: Updated `useEntityListProvider` and catalog pickers to respond to external changes to query parameters in the URL, such as two sidebar links that apply different catalog filters. +- 7bb1bde7f6: Minor API cleanups +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.6.13 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 9018ea75d7..e2f9b8d264 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "0.6.13", + "version": "0.6.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "dependencies": { "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", @@ -54,7 +54,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", "@backstage/plugin-catalog-common": "^0.1.2", "@backstage/test-utils": "^0.2.4", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 8ccca07609..a6a5f6112f 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog +## 0.7.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/integration-react@0.1.21-next.0 + ## 0.7.11 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 0a3211fcaf..f42a949550 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "0.7.11", + "version": "0.7.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "dependencies": { "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/integration-react": "^0.1.20", + "@backstage/integration-react": "^0.1.21-next.0", "@backstage/plugin-catalog-common": "^0.1.2", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -54,9 +54,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/plugin-permission-react": "^0.3.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 5ad74a75c4..5e7eb264f3 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-circleci +## 0.2.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.36 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 8fffeffc37..cd9821e92d 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.2.36", + "version": "0.2.37-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,9 +33,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,9 +52,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index 08c66d50dd..05bccd2e59 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-cloudbuild +## 0.2.35-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.34 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 6bb299418b..c5278cb0f0 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.2.34", + "version": "0.2.35-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,9 +32,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index def8cca7f0..80335d8a71 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-code-coverage-backend +## 0.1.22-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.21 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index d3e3c1da57..977c1559cf 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.1.21", + "version": "0.1.22-next.0", "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.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -36,7 +36,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/express-xml-bodyparser": "^0.3.2", "@types/supertest": "^2.0.8", "msw": "^0.35.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index 7aef422166..00c93b22a3 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-code-coverage +## 0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.24 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 44e970d54a..366c35406f 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.1.24", + "version": "0.1.25-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,10 +23,10 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 9c6ff062a7..ecbe9f569a 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-config-schema +## 0.1.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.20 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 26a583fa95..fc0db012d7 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.20", + "version": "0.1.21-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ }, "dependencies": { "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/theme": "^0.2.14", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 93a9bbdb19..3f29655334 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cost-insights +## 0.11.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.11.19 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 288464129d..1a4b171f00 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.11.19", + "version": "0.11.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 7bd9edd854..5382d4c80b 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -32,8 +32,8 @@ "@backstage/core-plugin-api": "^0.6.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.1", - "@backstage/dev-utils": "^0.2.20-next.1", + "@backstage/cli": "^0.13.2-next.0", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 03c200c5e8..106f4cae80 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore +## 0.3.29-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.3.28 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 424f6abf2f..6664ccf469 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.28", + "version": "0.3.29-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,9 +32,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/plugin-explore-react": "^0.0.11", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -50,9 +50,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index c441693df6..9d58796e0d 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-firehydrant +## 0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.14 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 4d1cc6ba44..ef03bf3d23 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.14", + "version": "0.1.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -36,9 +36,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index d01d581db8..f4ca3b1f1d 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-fossa +## 0.2.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.29 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 9ce1008659..9cc704c328 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.29", + "version": "0.2.30-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,10 +33,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -50,9 +50,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 77b57867c5..1e7d0986fa 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gcp-projects +## 0.3.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.3.16 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 0df05ae7b1..75d0b84610 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.16", + "version": "0.3.17-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -44,9 +44,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 605f27322e..8b757816c2 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-git-release-manager +## 0.3.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.3.10 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index b2acf96ccf..fd82254f26 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.10", + "version": "0.3.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,7 +21,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/integration": "^0.7.2", "@backstage/theme": "^0.2.14", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index ac669c1add..9e987f4d4a 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-actions +## 0.4.35-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.4.34 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 6174e9658a..fc0817fbc2 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.4.34", + "version": "0.4.35-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/integration": "^0.7.2", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,9 +52,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 26c0fed02f..5fbb45e7d7 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-github-deployments +## 0.1.29-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/integration-react@0.1.21-next.0 + ## 0.1.28 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index ace3b9aa75..8f7e9acef3 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.28", + "version": "0.1.29-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index e62a316be9..35666459eb 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gitops-profiles +## 0.3.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.3.15 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index d7efcf9020..212c68c8e4 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.15", + "version": "0.3.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -45,9 +45,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 711aba22b9..589da1c7a6 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gocd +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 7ec9d4c1d6..3f3f8674e7 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,10 +29,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index 6bf1ea63d2..c3f5a1512f 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-graphiql +## 0.2.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.2.29 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index ef872e526b..cf90a45c29 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.2.29", + "version": "0.2.30-next.0", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -45,9 +45,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index 822fb4f10b..514837ef65 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-graphql-backend +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 424591f6fe..61d8069ff3 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "An experimental Backstage backend plugin for GraphQL", - "version": "0.1.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/plugin-catalog-graphql": "^0.3.1", "@graphql-tools/schema": "^8.3.1", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.35.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 4bbf3fa645..16a5d9fece 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-home +## 0.4.14-next.0 + +### Patch Changes + +- a4a777441d: Adds new StarredEntities component responsible for rendering a list of starred entities on the home page +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-search@0.6.2-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.4.13 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index b1d4fc362e..09df9ff510 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.13", + "version": "0.4.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,10 +22,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", - "@backstage/plugin-search": "^0.6.1", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", + "@backstage/plugin-search": "^0.6.2-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 9b17c74c28..8c17078dbe 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-ilert +## 0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.23 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index b9eb06a1a0..acd621bcf3 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.1.23", + "version": "0.1.24-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,10 +22,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@date-io/luxon": "2.x", "@material-ui/core": "^4.12.2", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index f05f051d9a..c02c0fc0ea 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-jenkins-backend +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index a5df566878..a4a8d1f192 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.12", + "version": "0.1.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/jenkins": "^0.23.1", "@types/supertest": "^2.0.8", "msw": "^0.35.0", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 882277af93..9bebccacb2 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins +## 0.5.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.5.19 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index fc611036e2..ee4106b465 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.5.19", + "version": "0.5.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,10 +33,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -50,9 +50,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index 62e802441a..34b93cc78a 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kafka-backend +## 0.2.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.2.16 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 6d9ad69cd2..4e46200e63 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.16", + "version": "0.2.17-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", @@ -44,7 +44,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/jest-when": "^2.7.2", "@types/lodash": "^4.14.151", "jest-when": "^3.1.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index 8452fd77d6..4ccbcdd080 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kafka +## 0.2.28-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.27 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 34188ba547..8ec2caf171 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.2.27", + "version": "0.2.28-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -36,9 +36,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 768bccf657..5ab8b2eaee 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-backend +## 0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.4.6 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index b30737f9f7..e9b5639e72 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.4.6", + "version": "0.4.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", @@ -55,7 +55,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/aws4": "^1.5.1", "supertest": "^6.1.3", "aws-sdk-mock": "^5.2.1", diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 5a493b7dd7..cd12eb3519 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -39,7 +39,7 @@ "@kubernetes/client-node": "^0.16.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" }, "jest": { "roots": [ diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index aba46a682c..dd4c3ddfab 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kubernetes +## 0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.5.6 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 487f1164f3..23087d7d61 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.5.6", + "version": "0.5.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,9 +33,9 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/plugin-kubernetes-common": "^0.2.2", "@kubernetes/client-node": "^0.16.0", "@backstage/theme": "^0.2.14", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index eee6a97e3f..d2a0325f0e 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-lighthouse +## 0.2.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.36 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 081ee6eb41..6e3a0902f2 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.2.36", + "version": "0.2.37-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index e61ab4900d..918fcb266b 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic-dashboard +## 0.1.6-next.0 + +### Patch Changes + +- 5ca42462b7: Export DashboardSnapshotComponent from new-relic-dashboard-plugin +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.5 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index af2c6c64e4..2c22afde40 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.1.5", + "version": "0.1.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,18 +21,18 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.13.1", - "@backstage/dev-utils": "^0.2.20", + "@backstage/cli": "^0.13.2-next.0", + "@backstage/dev-utils": "^0.2.21-next.0", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.0.6" diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index fa5b252db2..306aa16bbe 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-newrelic +## 0.3.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.3.15 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 286e967e8a..a249c08949 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.15", + "version": "0.3.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -44,9 +44,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 1e2f0118d3..76b3945a5d 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-org +## 0.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.4.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index f08c8d37ff..d05bd15bb3 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.4.1", + "version": "0.4.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ }, "devDependencies": { "@backstage/catalog-client": "^0.5.5", - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 4de0112481..78feb5bf08 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-pagerduty +## 0.3.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.3.24 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 96b1c6738b..af627e4152 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.3.24", + "version": "0.3.25-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,9 +32,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 5a2aaa72bf..ec68631956 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend +## 0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.10.0-next.0 + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-permission-node@0.4.3-next.0 + ## 0.4.2 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 8c0bdb93c4..bc6faae17b 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.4.2", + "version": "0.4.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -19,12 +19,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", - "@backstage/plugin-auth-backend": "^0.9.0", + "@backstage/plugin-auth-backend": "^0.10.0-next.0", "@backstage/plugin-permission-common": "^0.4.0", - "@backstage/plugin-permission-node": "^0.4.2", + "@backstage/plugin-permission-node": "^0.4.3-next.0", "@types/express": "*", "dataloader": "^2.0.0", "express": "^4.17.1", @@ -36,7 +36,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/lodash": "^4.14.151", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 103f342490..46e30e8ad3 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -45,7 +45,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "msw": "^0.35.0" } diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index c4690777f6..eb70f997ed 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-permission-node +## 0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.10.0-next.0 + - @backstage/backend-common@0.10.7-next.0 + ## 0.4.2 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index a5b6adabc2..6fb58251e3 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.4.2", + "version": "0.4.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", - "@backstage/plugin-auth-backend": "^0.9.0", + "@backstage/plugin-auth-backend": "^0.10.0-next.0", "@backstage/plugin-permission-common": "^0.4.0", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -40,7 +40,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "msw": "^0.35.0", "supertest": "^6.1.3" diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index b1e0350dcc..166259fe82 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -40,7 +40,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 4fb4328974..7d15c7fbad 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-proxy-backend +## 0.2.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.2.17 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 3d7d03794b..406e82c100 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.2.17", + "version": "0.2.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -43,7 +43,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 9f6c657935..473dbe97a2 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar-backend +## 0.1.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.20 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 81f288c9e8..4039aab295 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.20", + "version": "0.1.21-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@types/express": "^4.17.6", "camelcase-keys": "^7.0.1", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/supertest": "^2.0.8", "msw": "^0.36.3", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index fdb3feb3ea..7cd8b4c8f2 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar +## 0.3.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.3.25 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 35e660a650..ab0e453448 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.3.25", + "version": "0.3.26-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,9 +33,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -50,9 +50,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 231538cbc1..70f9e24222 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-scaffolder-backend@0.15.24-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index e7e2d7b469..fb22c8a308 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.1.10", + "version": "0.1.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,10 +20,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/plugin-scaffolder-backend": "^0.15.23", + "@backstage/plugin-scaffolder-backend": "^0.15.24-next.0", "@backstage/config": "^0.1.13", "@backstage/types": "^0.1.1", "command-exists": "^1.2.9", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", "@types/jest": "^26.0.7", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index bb78b9e5fd..cf406064de 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-scaffolder-backend@0.15.24-next.0 + ## 0.2.5 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 36d68bf46d..ef7d17193f 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.2.5", + "version": "0.2.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", - "@backstage/plugin-scaffolder-backend": "^0.15.23", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/plugin-scaffolder-backend": "^0.15.24-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", @@ -31,7 +31,7 @@ "fs-extra": "^9.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/jest": "^26.0.7", "@types/node": "^14.14.32", "@types/command-exists": "^1.2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 517cd20ca0..c41384fbda 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@0.15.24-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index b43d0c50bb..bb949075b3 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,13 +21,13 @@ }, "dependencies": { "@backstage/config": "^0.1.13", - "@backstage/plugin-scaffolder-backend": "^0.15.23", + "@backstage/plugin-scaffolder-backend": "^0.15.24-next.0", "@backstage/types": "^0.1.1", "winston": "^3.2.1", "yeoman-environment": "^3.6.0" }, "devDependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@types/jest": "^26.0.7" }, "files": [ diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index b6061e8a38..6650e75757 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-scaffolder-backend +## 0.15.24-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- 2bd5f24043: fix for the `gitlab:publish` action to use the `oauthToken` key when creating a + `Gitlab` client. This only happens if `ctx.input.token` is provided else the key `token` will be used. +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-catalog-backend@0.21.3-next.0 + - @backstage/plugin-scaffolder-backend-module-cookiecutter@0.1.11-next.0 + ## 0.15.23 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 32f584c69a..cac4185920 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "0.15.23", + "version": "0.15.24-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,15 +31,15 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/plugin-catalog-backend": "^0.21.2", + "@backstage/plugin-catalog-backend": "^0.21.3-next.0", "@backstage/plugin-scaffolder-common": "^0.1.3", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "^0.1.10", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "^0.1.11-next.0", "@backstage/types": "^0.1.1", "@gitbeaker/core": "^34.6.0", "@gitbeaker/node": "^35.1.0", @@ -73,7 +73,7 @@ "vm2": "^3.9.5" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index c1d99b987b..6b03a7c884 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -40,6 +40,6 @@ "@backstage/types": "^0.1.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" } } diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index dfbe114f82..ae767c34b5 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder +## 0.12.2-next.0 + +### Patch Changes + +- 33e139e652: Adds a loading bar to the scaffolder task page if the task is still loading. This can happen if it takes a while for a task worker to pick up a task. +- 6458be3307: Encode the `formData` in the `queryString` using `JSON.stringify` to keep the types in the decoded value +- 319f4b79a2: The ScaffolderPage can be passed an optional `TaskPageComponent` with a `loadingText` string. It will replace the Loading text in the scaffolder task page. +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/integration-react@0.1.21-next.0 + ## 0.12.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 60852e3b93..a7cd81affb 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "0.12.1", + "version": "0.12.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,13 +34,13 @@ "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/integration-react": "^0.1.20", + "@backstage/integration-react": "^0.1.21-next.0", "@backstage/plugin-catalog-common": "^0.1.2", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/plugin-permission-react": "^0.3.0", "@backstage/plugin-scaffolder-common": "^0.1.3", "@backstage/theme": "^0.2.14", @@ -69,10 +69,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", - "@backstage/plugin-catalog": "^0.7.11", + "@backstage/dev-utils": "^0.2.21-next.0", + "@backstage/plugin-catalog": "^0.7.12-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 79408a2e69..6b21d0d0ab 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -30,8 +30,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.10.6-next.0", - "@backstage/cli": "^0.13.1-next.1", + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/cli": "^0.13.2-next.0", "@elastic/elasticsearch-mock": "^0.3.0" }, "files": [ diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index 245a4ded3f..1934eec38f 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-pg +## 0.2.6-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.2.5 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index aab90d688b..4681213644 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.2.5", + "version": "0.2.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,15 +20,15 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/search-common": "^0.2.2", "@backstage/plugin-search-backend-node": "^0.4.5", "lodash": "^4.17.21", "knex": "^1.0.2" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.16", - "@backstage/cli": "^0.13.1" + "@backstage/backend-test-utils": "^0.1.17-next.0", + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist", diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index fb72994de5..e2d83d0f4f 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -26,8 +26,8 @@ "@types/lunr": "^2.3.3" }, "devDependencies": { - "@backstage/backend-common": "^0.10.6-next.0", - "@backstage/cli": "^0.13.1-next.1" + "@backstage/backend-common": "^0.10.7-next.0", + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index 46daea6df6..8c69c711e3 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend +## 0.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.10.0-next.0 + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-permission-node@0.4.3-next.0 + ## 0.4.1 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 3329115650..ee064851fa 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "0.4.1", + "version": "0.4.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,13 +20,13 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/search-common": "^0.2.2", - "@backstage/plugin-auth-backend": "^0.9.0", + "@backstage/plugin-auth-backend": "^0.10.0-next.0", "@backstage/plugin-permission-common": "^0.4.0-next.0", - "@backstage/plugin-permission-node": "^0.4.2", + "@backstage/plugin-permission-node": "^0.4.3-next.0", "@backstage/plugin-search-backend-node": "^0.4.5", "@backstage/types": "^0.1.1", "@types/express": "^4.17.6", @@ -40,7 +40,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index f6692413b4..2b42421811 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search +## 0.6.2-next.0 + +### Patch Changes + +- faf49ba82f: Modify modal search to clamp result length to 5 rows. +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.6.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 2a0b7f25a6..e39f95183d 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "0.6.1", + "version": "0.6.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,10 +32,10 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/search-common": "^0.2.2", "@backstage/theme": "^0.2.14", "@backstage/types": "^0.1.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index acccd2dc4c..e281d651b8 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sentry +## 0.3.36-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.3.35 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 274cc6e1e2..fbc6e1784e 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.3.35", + "version": "0.3.36-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,9 +33,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index 60c0b9fe84..e691540b1b 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-shortcuts +## 0.1.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.1.21 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 23e61cda42..bfcc14a439 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.1.21", + "version": "0.1.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,7 +21,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@backstage/types": "^0.1.1", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 7cbabeda41..b3939436e8 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sonarqube +## 0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.2.15 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 4d6d83a67a..d71749b3ef 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.2.15", + "version": "0.2.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -50,9 +50,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 90ff0a5bd1..8393807dc9 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-splunk-on-call +## 0.3.22-next.0 + +### Patch Changes + +- 6c6d1c6439: Correct spelling of 'Acknowledge' in tooltip. +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.3.21 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index f3de0d3602..14d6a26b93 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.3.21", + "version": "0.3.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,9 +32,9 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index d136927b9b..b5755c7fcf 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-tech-insights-node@0.2.2-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 77ce4b3268..4e56ee53a1 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.7", + "version": "0.1.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,11 +31,11 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/plugin-tech-insights-common": "^0.2.1", - "@backstage/plugin-tech-insights-node": "^0.2.1", + "@backstage/plugin-tech-insights-node": "^0.2.2-next.0", "ajv": "^7.0.3", "json-rules-engine": "^6.1.2", "lodash": "^4.17.21", @@ -43,7 +43,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/node-cron": "^3.0.1" }, "files": [ diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index a9032f9c98..236716ee65 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-tech-insights-backend +## 0.2.4-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/plugin-tech-insights-node@0.2.2-next.0 + ## 0.2.3 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 93803ed249..7d350e2cbc 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.2.3", + "version": "0.2.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,13 +31,13 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", "@backstage/errors": "^0.2.0", "@backstage/plugin-tech-insights-common": "^0.2.1", - "@backstage/plugin-tech-insights-node": "^0.2.1", + "@backstage/plugin-tech-insights-node": "^0.2.2-next.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -51,8 +51,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.16", - "@backstage/cli": "^0.13.1", + "@backstage/backend-test-utils": "^0.1.17-next.0", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "@types/node-cron": "^3.0.0", "@types/semver": "^7.3.8", diff --git a/plugins/tech-insights-common/package.json b/plugins/tech-insights-common/package.json index 2d9f166b09..a0b840da74 100644 --- a/plugins/tech-insights-common/package.json +++ b/plugins/tech-insights-common/package.json @@ -35,7 +35,7 @@ "@backstage/types": "^0.1.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1-next.0" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index 4f3ed0d13e..fe02fd2b36 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-insights-node +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 7ed74ab76d..5b880741d2 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/config": "^0.1.13", "@backstage/plugin-tech-insights-common": "^0.2.1", "@types/luxon": "^2.0.5", @@ -38,7 +38,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1" + "@backstage/cli": "^0.13.2-next.0" }, "files": [ "dist" diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index a63a1a8f80..82ca3653c6 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 2f0d2f3638..54d6740584 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.1.7", + "version": "0.1.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/plugin-tech-insights-common": "^0.2.1", "@backstage/theme": "^0.2.14", "@backstage/types": "^0.1.1", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index b7952b6f12..1f035b700d 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-radar +## 0.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.5.4 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 4da9252c6a..8fd20fc069 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.4", + "version": "0.5.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 4593b8db5b..4439bf25a1 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-backend +## 0.13.3-next.0 + +### Patch Changes + +- 2441d1cf59: chore(deps): bump `knex` from 0.95.6 to 1.0.2 + + This also replaces `sqlite3` with `@vscode/sqlite3` 5.0.7 + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + - @backstage/techdocs-common@0.11.7-next.0 + ## 0.13.2 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 38ad0752b4..044880866e 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "0.13.2", + "version": "0.13.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -39,7 +39,7 @@ "@backstage/integration": "^0.7.2", "@backstage/plugin-catalog-common": "^0.1.2", "@backstage/search-common": "^0.2.2", - "@backstage/techdocs-common": "^0.11.6", + "@backstage/techdocs-common": "^0.11.7-next.0", "@types/express": "^4.17.6", "cross-fetch": "^3.0.6", "dockerode": "^3.3.1", @@ -53,7 +53,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/test-utils": "^0.2.4", "@types/dockerode": "^3.3.0", "msw": "^0.35.0", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index e0547de64e..bdff088bf9 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs +## 0.13.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-search@0.6.2-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + - @backstage/integration-react@0.1.21-next.0 + - @backstage/plugin-catalog@0.7.12-next.0 + ## 0.13.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 6e571ec5ac..0f2338d19a 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "0.13.2", + "version": "0.13.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,14 +34,14 @@ "dependencies": { "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/integration": "^0.7.2", - "@backstage/integration-react": "^0.1.20", - "@backstage/plugin-catalog": "^0.7.11", - "@backstage/plugin-catalog-react": "^0.6.13", - "@backstage/plugin-search": "^0.6.1", + "@backstage/integration-react": "^0.1.21-next.0", + "@backstage/plugin-catalog": "^0.7.12-next.0", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", + "@backstage/plugin-search": "^0.6.2-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -62,9 +62,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index 9e2275dc7b..ec73cb1a58 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-todo-backend +## 0.1.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.10.7-next.0 + ## 0.1.20 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 456600e0be..309b70bd8d 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.20", + "version": "0.1.21-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,7 +25,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.10.6", + "@backstage/backend-common": "^0.10.7-next.0", "@backstage/catalog-client": "^0.5.5", "@backstage/catalog-model": "^0.9.10", "@backstage/config": "^0.1.13", @@ -39,7 +39,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@types/supertest": "^2.0.8", "msw": "^0.35.0", "supertest": "^6.1.3" diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index e659da3131..6080311b90 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.0-next.0 + +### Minor Changes + +- 323f48704d: **BREAKING**: The `EntityTodoContent` is now a routable extension. This means it must be rendered within a route, but that's most likely already the case for most apps. The mount point `RouteRef` is available via `todoPlugin.routes.entityContent`. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + - @backstage/plugin-catalog-react@0.6.14-next.0 + ## 0.1.21 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index fb433992a1..9623df973d 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.1.21", + "version": "0.2.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,10 +28,10 @@ }, "dependencies": { "@backstage/catalog-model": "^0.9.10", - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", - "@backstage/plugin-catalog-react": "^0.6.13", + "@backstage/plugin-catalog-react": "^0.6.14-next.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,9 +42,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index b4438be6ce..d7205f70d7 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-user-settings +## 0.3.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.3.18 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 4506cdfb75..a3da6821c9 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.3.18", + "version": "0.3.19-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,7 +31,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", @@ -44,9 +44,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 652dcca6b9..8b54ae9111 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-xcmetrics +## 0.2.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.8.8-next.0 + ## 0.2.17 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 7680c787d5..e0e850e1e5 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.17", + "version": "0.2.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,7 +21,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core-components": "^0.8.7", + "@backstage/core-components": "^0.8.8-next.0", "@backstage/core-plugin-api": "^0.6.0", "@backstage/errors": "^0.2.0", "@backstage/theme": "^0.2.14", @@ -37,9 +37,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.1", + "@backstage/cli": "^0.13.2-next.0", "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.20", + "@backstage/dev-utils": "^0.2.21-next.0", "@backstage/test-utils": "^0.2.4", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/yarn.lock b/yarn.lock index 196890de06..354559cc6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1366,6 +1366,49 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@backstage/core-components@*", "@backstage/core-components@^0.8.0", "@backstage/core-components@^0.8.7": + version "0.8.7" + resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.7.tgz#c4bb9760d57971882065415e6e715eb750db2392" + integrity sha512-77oIrnT5zV7vaE1MK+TTBzIt0GfqUifnNeieyBPm2uHctPt5Um0qG3+zR5UYGGcm1VWAZtNMzZIOBJUDgKPQjQ== + dependencies: + "@backstage/config" "^0.1.13" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/errors" "^0.2.0" + "@backstage/theme" "^0.2.14" + "@material-table/core" "^3.1.0" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + "@types/react-sparklines" "^1.7.0" + "@types/react-text-truncate" "^0.14.0" + ansi-regex "^5.0.1" + classnames "^2.2.6" + d3-selection "^3.0.0" + d3-shape "^3.0.0" + d3-zoom "^3.0.0" + dagre "^0.8.5" + history "^5.0.0" + immer "^9.0.1" + lodash "^4.17.21" + pluralize "^8.0.0" + prop-types "^15.7.2" + qs "^6.9.4" + rc-progress "3.2.4" + react-helmet "6.1.0" + react-hook-form "^7.12.2" + react-markdown "^8.0.0" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.5" + react-text-truncate "^0.17.0" + react-use "^17.2.4" + react-virtualized-auto-sizer "^1.0.6" + react-window "^1.8.6" + remark-gfm "^3.0.1" + zen-observable "^0.8.15" + zod "^3.11.6" + "@backstage/core-plugin-api@^0.4.0": version "0.4.1" resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.4.1.tgz#c0a13504bdfa61ae3d0db96934cd6c32a7574446" @@ -1382,6 +1425,69 @@ react-use "^17.2.4" zen-observable "^0.8.15" +"@backstage/integration-react@^0.1.10", "@backstage/integration-react@^0.1.20": + version "0.1.20" + resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-0.1.20.tgz#53610c718f963018d16496aa345926740b4eb131" + integrity sha512-vX65MB+Xd51wFcG5PbRbDlxN9Ti7pIlklbWWXZrxpeyR9h9FsXjKIioeP8kKqOYRTUgfvLutnU2FrTL2tulGGw== + dependencies: + "@backstage/config" "^0.1.13" + "@backstage/core-components" "^0.8.7" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/integration" "^0.7.2" + "@backstage/theme" "^0.2.14" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + react-use "^17.2.4" + +"@backstage/plugin-catalog-react@^0.6.13", "@backstage/plugin-catalog-react@^0.6.5": + version "0.6.13" + resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.6.13.tgz#b325eae501d3edeb8b7caef5d9615f2e632f5430" + integrity sha512-XBwop7PwAZqfongx3KP6jAJar+MEscLSp8nLuHYX5XxA+suQNiBgi96uO3SEQmvtae+hvsRM7c0WHSxbYiXsDA== + dependencies: + "@backstage/catalog-client" "^0.5.5" + "@backstage/catalog-model" "^0.9.10" + "@backstage/core-components" "^0.8.7" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/errors" "^0.2.0" + "@backstage/integration" "^0.7.2" + "@backstage/plugin-permission-common" "^0.4.0" + "@backstage/plugin-permission-react" "^0.3.0" + "@backstage/types" "^0.1.1" + "@backstage/version-bridge" "^0.1.1" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + jwt-decode "^3.1.0" + lodash "^4.17.21" + qs "^6.9.4" + react-router "6.0.0-beta.0" + react-use "^17.2.4" + zen-observable "^0.8.15" + +"@backstage/plugin-catalog@*": + version "0.7.11" + resolved "https://registry.npmjs.org/@backstage/plugin-catalog/-/plugin-catalog-0.7.11.tgz#9cd1d5c272300e4678a3e3ad7675b5b36aa51002" + integrity sha512-D9QohgQJZfRSrQ7aTuI6fH4tXBloEpyAC+WnXKoCjPaLm9gVbFEdBoC2+M6MiCybahJxdRK+LsNAG+jZj3ZdIg== + dependencies: + "@backstage/catalog-client" "^0.5.5" + "@backstage/catalog-model" "^0.9.10" + "@backstage/core-components" "^0.8.7" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/errors" "^0.2.0" + "@backstage/integration-react" "^0.1.20" + "@backstage/plugin-catalog-common" "^0.1.2" + "@backstage/plugin-catalog-react" "^0.6.13" + "@backstage/theme" "^0.2.14" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + history "^5.0.0" + lodash "^4.17.21" + react-helmet "6.1.0" + react-router "6.0.0-beta.0" + react-use "^17.2.4" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -11436,54 +11542,54 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.63" + version "0.2.64-next.0" dependencies: - "@backstage/app-defaults" "^0.1.6" + "@backstage/app-defaults" "^0.1.7-next.0" "@backstage/catalog-model" "^0.9.10" - "@backstage/cli" "^0.13.1" + "@backstage/cli" "^0.13.2-next.0" "@backstage/core-app-api" "^0.5.2" - "@backstage/core-components" "^0.8.7" + "@backstage/core-components" "^0.8.8-next.0" "@backstage/core-plugin-api" "^0.6.0" - "@backstage/integration-react" "^0.1.20" - "@backstage/plugin-airbrake" "^0.1.2" - "@backstage/plugin-apache-airflow" "^0.1.5" - "@backstage/plugin-api-docs" "^0.7.1" - "@backstage/plugin-azure-devops" "^0.1.13" - "@backstage/plugin-badges" "^0.2.21" - "@backstage/plugin-catalog" "^0.7.11" + "@backstage/integration-react" "^0.1.21-next.0" + "@backstage/plugin-airbrake" "^0.1.3-next.0" + "@backstage/plugin-apache-airflow" "^0.1.6-next.0" + "@backstage/plugin-api-docs" "^0.7.2-next.0" + "@backstage/plugin-azure-devops" "^0.1.14-next.0" + "@backstage/plugin-badges" "^0.2.22-next.0" + "@backstage/plugin-catalog" "^0.7.12-next.0" "@backstage/plugin-catalog-common" "^0.1.2" - "@backstage/plugin-catalog-graph" "^0.2.9" - "@backstage/plugin-catalog-import" "^0.8.0" - "@backstage/plugin-catalog-react" "^0.6.13" - "@backstage/plugin-circleci" "^0.2.36" - "@backstage/plugin-cloudbuild" "^0.2.34" - "@backstage/plugin-code-coverage" "^0.1.24" - "@backstage/plugin-cost-insights" "^0.11.19" - "@backstage/plugin-explore" "^0.3.28" - "@backstage/plugin-gcp-projects" "^0.3.16" - "@backstage/plugin-github-actions" "^0.4.34" - "@backstage/plugin-gocd" "^0.1.3" - "@backstage/plugin-graphiql" "^0.2.29" - "@backstage/plugin-home" "^0.4.13" - "@backstage/plugin-jenkins" "^0.5.19" - "@backstage/plugin-kafka" "^0.2.27" - "@backstage/plugin-kubernetes" "^0.5.6" - "@backstage/plugin-lighthouse" "^0.2.36" - "@backstage/plugin-newrelic" "^0.3.15" - "@backstage/plugin-newrelic-dashboard" "^0.1.5" - "@backstage/plugin-org" "^0.4.1" - "@backstage/plugin-pagerduty" "0.3.24" + "@backstage/plugin-catalog-graph" "^0.2.10-next.0" + "@backstage/plugin-catalog-import" "^0.8.1-next.0" + "@backstage/plugin-catalog-react" "^0.6.14-next.0" + "@backstage/plugin-circleci" "^0.2.37-next.0" + "@backstage/plugin-cloudbuild" "^0.2.35-next.0" + "@backstage/plugin-code-coverage" "^0.1.25-next.0" + "@backstage/plugin-cost-insights" "^0.11.20-next.0" + "@backstage/plugin-explore" "^0.3.29-next.0" + "@backstage/plugin-gcp-projects" "^0.3.17-next.0" + "@backstage/plugin-github-actions" "^0.4.35-next.0" + "@backstage/plugin-gocd" "^0.1.4-next.0" + "@backstage/plugin-graphiql" "^0.2.30-next.0" + "@backstage/plugin-home" "^0.4.14-next.0" + "@backstage/plugin-jenkins" "^0.5.20-next.0" + "@backstage/plugin-kafka" "^0.2.28-next.0" + "@backstage/plugin-kubernetes" "^0.5.7-next.0" + "@backstage/plugin-lighthouse" "^0.2.37-next.0" + "@backstage/plugin-newrelic" "^0.3.16-next.0" + "@backstage/plugin-newrelic-dashboard" "^0.1.6-next.0" + "@backstage/plugin-org" "^0.4.2-next.0" + "@backstage/plugin-pagerduty" "0.3.25-next.0" "@backstage/plugin-permission-react" "^0.3.0" - "@backstage/plugin-rollbar" "^0.3.25" - "@backstage/plugin-scaffolder" "^0.12.1" - "@backstage/plugin-search" "^0.6.1" - "@backstage/plugin-sentry" "^0.3.35" - "@backstage/plugin-shortcuts" "^0.1.21" - "@backstage/plugin-tech-insights" "^0.1.7" - "@backstage/plugin-tech-radar" "^0.5.4" - "@backstage/plugin-techdocs" "^0.13.2" - "@backstage/plugin-todo" "^0.1.21" - "@backstage/plugin-user-settings" "^0.3.18" + "@backstage/plugin-rollbar" "^0.3.26-next.0" + "@backstage/plugin-scaffolder" "^0.12.2-next.0" + "@backstage/plugin-search" "^0.6.2-next.0" + "@backstage/plugin-sentry" "^0.3.36-next.0" + "@backstage/plugin-shortcuts" "^0.1.22-next.0" + "@backstage/plugin-tech-insights" "^0.1.8-next.0" + "@backstage/plugin-tech-radar" "^0.5.5-next.0" + "@backstage/plugin-techdocs" "^0.13.3-next.0" + "@backstage/plugin-todo" "^0.2.0-next.0" + "@backstage/plugin-user-settings" "^0.3.19-next.0" "@backstage/search-common" "^0.2.2" "@backstage/theme" "^0.2.14" "@material-ui/core" "^4.12.2" @@ -22878,18 +22984,18 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.62" + version "0.2.63-next.0" dependencies: - "@backstage/app-defaults" "^0.1.6" + "@backstage/app-defaults" "^0.1.7-next.0" "@backstage/catalog-model" "^0.9.10" - "@backstage/cli" "^0.13.1" + "@backstage/cli" "^0.13.2-next.0" "@backstage/config" "^0.1.13" "@backstage/core-app-api" "^0.5.2" - "@backstage/core-components" "^0.8.7" + "@backstage/core-components" "^0.8.8-next.0" "@backstage/core-plugin-api" "^0.6.0" - "@backstage/integration-react" "^0.1.20" - "@backstage/plugin-catalog" "^0.7.11" - "@backstage/plugin-techdocs" "^0.13.2" + "@backstage/integration-react" "^0.1.21-next.0" + "@backstage/plugin-catalog" "^0.7.12-next.0" + "@backstage/plugin-techdocs" "^0.13.3-next.0" "@backstage/test-utils" "^0.2.4" "@backstage/theme" "^0.2.14" "@material-ui/core" "^4.11.0" From bb1615fbd62681075935ec20d95fba6d665c77f5 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Tue, 8 Feb 2022 12:50:50 -0800 Subject: [PATCH 120/130] docs: add invitae to adopters list Signed-off-by: Ryan Hanchett --- ADOPTERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ADOPTERS.md b/ADOPTERS.md index 120c828c43..fa63c366ad 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -90,3 +90,4 @@ | [VMware](https://www.vmware.com) | [@mpriamo](https://github.com/mpriamo), [@krisapplegate](https://github.com/krisapplegate) | Part of [Tanzu Application Platform](https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/index.html) offering; internal developer portal | | [Ualá](https://www.uala.com.ar/) | [Santiago Bernal](https://github.com/sabernal) | Initial work being done to centralize documentation for all our microservices and APIs, as well as scaffolding new services and tracking code quality | | [IKEA IT AB](https://www.ingka.com) | [@bjornramberg](https://github.com/bjornramberg), [@supriyachitale](https://github.com/supriyachitale) | Supporting engineers at scale with self serve access and connecting the dots of our engineering platform and services, enabling product teams to move faster and go further, and unleashing innovation, reuse and co-creation across the organisation. | +| [Invitae](https://www.invitae.com/en) | [@ryan-hanchett](https://github.com/ryan-hanchett), [@gmandler42](https://github.com/gmandler42) | Centralized Developer Experience portal, putting all of our tooling behind a single pane of glass and creating a living service catalog. | \ No newline at end of file From 6a9cc7fb1f040f530b4d308e7ede140a7b09ecc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Feb 2022 04:29:33 +0000 Subject: [PATCH 121/130] chore(deps-dev): bump ts-node from 10.4.0 to 10.5.0 Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.4.0 to 10.5.0. - [Release notes](https://github.com/TypeStrong/ts-node/releases) - [Commits](https://github.com/TypeStrong/ts-node/compare/v10.4.0...v10.5.0) --- updated-dependencies: - dependency-name: ts-node dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/yarn.lock b/yarn.lock index 354559cc6a..bcd770c36e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6802,17 +6802,7 @@ acorn@^7.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4: - version "8.6.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== - -acorn@^8.4.1: - version "8.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== - -acorn@^8.7.0: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0: version "8.7.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== @@ -22036,15 +22026,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6: - version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== @@ -23451,9 +23433,9 @@ ts-log@^2.2.3: integrity sha512-XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w== ts-node@^10.0.0, ts-node@^10.2.1, ts-node@^10.4.0: - version "10.4.0" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" - integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + version "10.5.0" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz#618bef5854c1fbbedf5e31465cbb224a1d524ef9" + integrity sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw== dependencies: "@cspotcode/source-map-support" "0.7.0" "@tsconfig/node10" "^1.0.7" @@ -23466,6 +23448,7 @@ ts-node@^10.0.0, ts-node@^10.2.1, ts-node@^10.4.0: create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" + v8-compile-cache-lib "^3.0.0" yn "3.1.1" ts-node@^9: @@ -24171,6 +24154,11 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" +v8-compile-cache-lib@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" + integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" From 7fa5dc7807a7fa1bcc410a63490d1e4e36787867 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Feb 2022 04:30:56 +0000 Subject: [PATCH 122/130] chore(deps-dev): bump @types/express-serve-static-core Bumps [@types/express-serve-static-core](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express-serve-static-core) from 4.17.24 to 4.17.28. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express-serve-static-core) --- updated-dependencies: - dependency-name: "@types/express-serve-static-core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 354559cc6a..9e31af7cbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5443,9 +5443,9 @@ integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": - version "4.17.24" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" - integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== + version "4.17.28" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" From bd4c3a213028dcd19daec8519ba53305acb42a26 Mon Sep 17 00:00:00 2001 From: Sunil Kumar Mohanty Date: Wed, 9 Feb 2022 11:08:00 +0200 Subject: [PATCH 123/130] add fortum to adopters list Signed-off-by: Sunil Kumar Mohanty --- ADOPTERS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index fa63c366ad..7036b10b5e 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -90,4 +90,5 @@ | [VMware](https://www.vmware.com) | [@mpriamo](https://github.com/mpriamo), [@krisapplegate](https://github.com/krisapplegate) | Part of [Tanzu Application Platform](https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/index.html) offering; internal developer portal | | [Ualá](https://www.uala.com.ar/) | [Santiago Bernal](https://github.com/sabernal) | Initial work being done to centralize documentation for all our microservices and APIs, as well as scaffolding new services and tracking code quality | | [IKEA IT AB](https://www.ingka.com) | [@bjornramberg](https://github.com/bjornramberg), [@supriyachitale](https://github.com/supriyachitale) | Supporting engineers at scale with self serve access and connecting the dots of our engineering platform and services, enabling product teams to move faster and go further, and unleashing innovation, reuse and co-creation across the organisation. | -| [Invitae](https://www.invitae.com/en) | [@ryan-hanchett](https://github.com/ryan-hanchett), [@gmandler42](https://github.com/gmandler42) | Centralized Developer Experience portal, putting all of our tooling behind a single pane of glass and creating a living service catalog. | \ No newline at end of file +| [Invitae](https://www.invitae.com/en) | [@ryan-hanchett](https://github.com/ryan-hanchett), [@gmandler42](https://github.com/gmandler42) | Centralized Developer Experience portal, putting all of our tooling behind a single pane of glass and creating a living service catalog. | +| [Fortum](https://www.fortum.com/) | [@brunoamaroalmeida](https://github.com/brunoamaroalmeida), [@dhaval-vithalani](https://github.com/dhaval-vithalani), [@sunilkumarmohanty](https://github.com/sunilkumarmohanty) | A central portal containing information about our applications, services, processes and other software assets to be used by Fortum software engineering community. | From c01113b6a613f6d0ad21d3a64f608559ef3a8bad Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Feb 2022 10:21:26 +0100 Subject: [PATCH 124/130] workflows: fix release sync dispatch Signed-off-by: Patrik Oldsberg --- .github/workflows/sync_release-manifest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 85c01d0631..24ff79b0b0 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -56,7 +56,7 @@ jobs: # TODO(Rugvip): Remove the create-app dispatch once we've been on the release version for a while script: | console.log('Dispatching upgrade helper sync - release version'); - await octokit.actions.createWorkflowDispatch({ + await github.actions.createWorkflowDispatch({ owner: 'backstage', repo: 'upgrade-helper-diff', workflow_id: 'release.yml', @@ -67,7 +67,7 @@ jobs: }); console.log('Dispatching upgrade helper sync - create-app version'); - await octokit.actions.createWorkflowDispatch({ + await github.actions.createWorkflowDispatch({ owner: 'backstage', repo: 'upgrade-helper-diff', workflow_id: 'release.yml', From e40e4fce1921c1d2e618d9e528c07036ee8d7985 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Wed, 9 Feb 2022 10:46:19 +0100 Subject: [PATCH 125/130] Update CHANGELOG.md Signed-off-by: Ben Lambert --- plugins/kubernetes/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index dd4c3ddfab..dabebfce4e 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -105,7 +105,7 @@ ## Backwards incompatible changes If your Kubernetes distribution does not have the [metrics server](https://github.com/kubernetes-sigs/metrics-server) installed, - you will need to set the `skipMetricsLookup` config flag to `false`. + you will need to set the `skipMetricsLookup` config flag to `true`. See the [configuration docs](https://backstage.io/docs/features/kubernetes/configuration) for more details. From c42cab6887aff0330a99e1aa5a8261bc7f55b5d8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Feb 2022 10:53:05 +0100 Subject: [PATCH 126/130] workflows: fix breaking v5 change in github-script Signed-off-by: Patrik Oldsberg --- .github/workflows/sync_release-manifest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 24ff79b0b0..b02af02f9d 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -56,7 +56,7 @@ jobs: # TODO(Rugvip): Remove the create-app dispatch once we've been on the release version for a while script: | console.log('Dispatching upgrade helper sync - release version'); - await github.actions.createWorkflowDispatch({ + await github.rest.actions.createWorkflowDispatch({ owner: 'backstage', repo: 'upgrade-helper-diff', workflow_id: 'release.yml', @@ -67,7 +67,7 @@ jobs: }); console.log('Dispatching upgrade helper sync - create-app version'); - await github.actions.createWorkflowDispatch({ + await github.rest.actions.createWorkflowDispatch({ owner: 'backstage', repo: 'upgrade-helper-diff', workflow_id: 'release.yml', From 9ed980cc2819275e4a1b30437c1d1445c3eed3b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Feb 2022 04:26:49 +0000 Subject: [PATCH 127/130] chore(deps): bump @roadiehq/backstage-plugin-github-pull-requests Bumps [@roadiehq/backstage-plugin-github-pull-requests](https://github.com/RoadieHQ/roadie-backstage-plugins/tree/HEAD/plugins/frontend/backstage-plugin-github-pull-requests) from 1.3.4 to 1.3.7. - [Release notes](https://github.com/RoadieHQ/roadie-backstage-plugins/releases) - [Changelog](https://github.com/RoadieHQ/roadie-backstage-plugins/blob/main/plugins/frontend/backstage-plugin-github-pull-requests/CHANGELOG.md) - [Commits](https://github.com/RoadieHQ/roadie-backstage-plugins/commits/HEAD/plugins/frontend/backstage-plugin-github-pull-requests) --- updated-dependencies: - dependency-name: "@roadiehq/backstage-plugin-github-pull-requests" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 71 +++++-------------------------------------------------- 1 file changed, 6 insertions(+), 65 deletions(-) diff --git a/yarn.lock b/yarn.lock index f6e6d29d57..7ef55c3caf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,18 +4110,6 @@ "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.0.3" -"@octokit/core@^3.2.3": - version "3.2.4" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106" - integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.4.12" - "@octokit/types" "^6.0.3" - before-after-hook "^2.1.0" - universal-user-agent "^6.0.0" - "@octokit/core@^3.3.2", "@octokit/core@^3.4.0", "@octokit/core@^3.5.1": version "3.5.1" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" @@ -4205,11 +4193,6 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== -"@octokit/openapi-types@^7.3.2": - version "7.3.2" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" - integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA== - "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" @@ -4222,31 +4205,11 @@ dependencies: "@octokit/types" "^6.34.0" -"@octokit/plugin-paginate-rest@^2.6.2": - version "2.7.0" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz#6bb7b043c246e0654119a6ec4e72a172c9e2c7f3" - integrity sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w== - dependencies: - "@octokit/types" "^6.0.1" - -"@octokit/plugin-request-log@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" - integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== - "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@5.3.1": - version "5.3.1" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz#deddce769b4ec3179170709ab42e4e9e6195aaa9" - integrity sha512-3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg== - dependencies: - "@octokit/types" "^6.16.2" - deprecation "^2.3.1" - "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.13.0" resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" @@ -4292,17 +4255,7 @@ node-fetch "^2.6.1" universal-user-agent "^6.0.0" -"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": - version "18.5.6" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.6.tgz#8c9a7c9329c7bbf478af20df78ddeab0d21f6d89" - integrity sha512-8HdG6ZjQdZytU6tCt8BQ2XLC7EJ5m4RrbyU/EARSkAM1/HP3ceOzMG/9atEfe17EDMer3IVdHWLedz2wDi73YQ== - dependencies: - "@octokit/core" "^3.2.3" - "@octokit/plugin-paginate-rest" "^2.6.2" - "@octokit/plugin-request-log" "^1.0.2" - "@octokit/plugin-rest-endpoint-methods" "5.3.1" - -"@octokit/rest@^18.12.0": +"@octokit/rest@^18.1.0", "@octokit/rest@^18.12.0", "@octokit/rest@^18.5.3": version "18.12.0" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== @@ -4319,14 +4272,7 @@ dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": - version "6.16.4" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe" - integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A== - dependencies: - "@octokit/openapi-types" "^7.3.2" - -"@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0": +"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0", "@octokit/types@^6.8.2": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== @@ -4512,13 +4458,13 @@ react-use "^17.2.4" "@roadiehq/backstage-plugin-github-pull-requests@^1.3.2": - version "1.3.4" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.3.4.tgz#3e6be41fe81909b28a3d517aadcc7ae6b70d7d7a" - integrity sha512-F1y3CmMZOiNiam3zt6TBaJ5+NqAhPwS3HkWbUsMvJq1PKAzYdSeDBPhoTBwhYOu3uV36EtKjfog4r4wVHOf7EA== + version "1.3.7" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.3.7.tgz#d3c884c9b85f88c5f851f383596a616598c56076" + integrity sha512-a3PBLQ6SRtEDGNIekcGT8v4Aaac3BoEww/UU9uaQuE7bCEVolx2MeOVbSxb1uCWr6C6uGeDF5Kw4S4hPJJcnNg== dependencies: "@backstage/catalog-model" "^0.9.7" "@backstage/core-components" "^0.8.0" - "@backstage/core-plugin-api" "^0.4.0" + "@backstage/core-plugin-api" "^0.6.0" "@backstage/plugin-catalog-react" "^0.6.5" "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" @@ -7757,11 +7703,6 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== -before-after-hook@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== - before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" From 4f743087e419983e9241ed3b1e327c0c439d88d7 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 9 Feb 2022 11:15:51 +0100 Subject: [PATCH 128/130] chore: updating yarn.lock Signed-off-by: blam --- yarn.lock | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7ef55c3caf..232f883cf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,6 +4110,18 @@ "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.0.3" +"@octokit/core@^3.2.3": + version "3.2.4" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106" + integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.4.12" + "@octokit/types" "^6.0.3" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + "@octokit/core@^3.3.2", "@octokit/core@^3.4.0", "@octokit/core@^3.5.1": version "3.5.1" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" @@ -4193,6 +4205,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^7.3.2": + version "7.3.2" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" + integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA== + "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" @@ -4205,11 +4222,31 @@ dependencies: "@octokit/types" "^6.34.0" +"@octokit/plugin-paginate-rest@^2.6.2": + version "2.7.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz#6bb7b043c246e0654119a6ec4e72a172c9e2c7f3" + integrity sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w== + dependencies: + "@octokit/types" "^6.0.1" + +"@octokit/plugin-request-log@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" + integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== + "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-rest-endpoint-methods@5.3.1": + version "5.3.1" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz#deddce769b4ec3179170709ab42e4e9e6195aaa9" + integrity sha512-3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg== + dependencies: + "@octokit/types" "^6.16.2" + deprecation "^2.3.1" + "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.13.0" resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" @@ -4255,7 +4292,17 @@ node-fetch "^2.6.1" universal-user-agent "^6.0.0" -"@octokit/rest@^18.1.0", "@octokit/rest@^18.12.0", "@octokit/rest@^18.5.3": +"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": + version "18.5.6" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.6.tgz#8c9a7c9329c7bbf478af20df78ddeab0d21f6d89" + integrity sha512-8HdG6ZjQdZytU6tCt8BQ2XLC7EJ5m4RrbyU/EARSkAM1/HP3ceOzMG/9atEfe17EDMer3IVdHWLedz2wDi73YQ== + dependencies: + "@octokit/core" "^3.2.3" + "@octokit/plugin-paginate-rest" "^2.6.2" + "@octokit/plugin-request-log" "^1.0.2" + "@octokit/plugin-rest-endpoint-methods" "5.3.1" + +"@octokit/rest@^18.12.0": version "18.12.0" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== @@ -4272,7 +4319,14 @@ dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0", "@octokit/types@^6.8.2": +"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": + version "6.16.4" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe" + integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A== + dependencies: + "@octokit/openapi-types" "^7.3.2" + +"@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== @@ -7703,6 +7757,11 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" From 4457994dae9e0fbbdae9c5b6259220eea3b871ca Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Feb 2022 12:46:41 +0100 Subject: [PATCH 129/130] workflows: fix package paths in manifest sync Signed-off-by: Patrik Oldsberg --- .github/workflows/sync_release-manifest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index b02af02f9d..4b44caafba 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -62,7 +62,7 @@ jobs: workflow_id: 'release.yml', ref: 'master', inputs: { - version: require('./package.json').version, + version: require('./backstage/package.json').version, }, }); @@ -73,6 +73,6 @@ jobs: workflow_id: 'release.yml', ref: 'master', inputs: { - version: require('./packages/create-app/package.json').version, + version: require('./backstage/packages/create-app/package.json').version, }, }); From 083666d4e629733d06a9f9b55ad9294b1391e234 Mon Sep 17 00:00:00 2001 From: Lorenzo Orsatti <49567430+lorsatti@users.noreply.github.com> Date: Wed, 9 Feb 2022 12:48:42 +0100 Subject: [PATCH 130/130] LogMeIn is now GoTo Signed-off-by: Lorenzo Orsatti <49567430+lorsatti@users.noreply.github.com> --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 7036b10b5e..beb161d9ee 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -71,7 +71,7 @@ | [Epic Games](https://www.epicgames.com) | [Brian Jung](https://github.com/brian-at-epic), [Jeff Goldian](https://github.com/jeffgoldian-Epic) | Developer Portal: Service Catalog, Documentation, Software Templates and more making our internal teams' lives easier! | | [Globo](https://globo.com) | [Carlos Gusmão](https://github.com/caeugusmao), [Guilherme Vierno](https://github.com/vierno), [Denis Aoki](https://github.com/dnsaoki2), [Maycon Dionisio](https://github.com/MayconDionisio), | Reduce the friction of accessing the information engineers need about Globo's digital services through a coherent and centralized experience. | | [QBE](https://www.qbe.com/) | [Daniel Steel](https://github.com/danielsteelqbe), [Pete Jespers](https://github.com/petejespersqbe) | Developer portal allowing our global teams to explore and create applications, documentation and cloud infrastructure easily and quickly 🚀 | -| [LogMeIn](https://www.logmein.com) | [Lorenzo Orsatti](https://github.com/lorsatti) | Improve onboarding experience of new developers. Discover faster and painlessly developer documentation, API definitions and team information. Provide useful dev metrics in a central place. Provide easy-to-use templates for new services. | +| [GoTo](https://www.goto.com) | [Lorenzo Orsatti](https://github.com/lorsatti) | Improve onboarding experience of new developers. Discover faster and painlessly developer documentation, API definitions and team information. Provide useful dev metrics in a central place. Provide easy-to-use templates for new services. | | [Telstra](https://www.telstra.com.au) | [@kiranpatel11](https://github.com/kiranpatel11), [JasonC](https://github.com/JasonC17) | Primary usage: software catalog and templates
Emerging usage : TechDocs, Explore Ecosystem, TechRadar, etc | | [Mosaico](https://www.mosaico.com.br/) | [Wédney Yuri](https://github.com/wedneyyuri),[@tino.milton](https://github.com/miltonjacomini) | A centralized service catalog of our documentation for our service engineers. | | [Mox Bank](https://www.mox.com/) | [Nick Laqua](https://github.com/nick-laqua-dragon), [Gauthier Roebroeck](https://github.com/gauthier-roebroeck-mox) | "Single pane of glass" developer portal for providing a best-in-class developer experience to our product teams and making Mox the best tech environment in Hongkong 🥰🚀 |