From 2ffdf6f968e95021c6256e6cf872dff3c01fd840 Mon Sep 17 00:00:00 2001 From: Sam Seay Date: Tue, 1 Aug 2023 09:47:10 +0800 Subject: [PATCH] Remove all schema checking code from Code Analyzer. (#39487) --- pnpm-lock.yaml | 25 ++- tools/code-analyzer/package.json | 4 +- .../src/commands/analyzer/analyzer-lint.ts | 37 +---- .../src/commands/analyzer/analyzer-scan.ts | 33 +--- tools/code-analyzer/src/git.ts | 146 ------------------ tools/code-analyzer/src/lib/scan-changes.ts | 79 +--------- tools/code-analyzer/src/lib/schema-changes.ts | 60 ------- tools/code-analyzer/src/print.ts | 38 ----- tools/code-analyzer/src/utils.ts | 15 -- tools/release-posts/README.md | 30 ++-- .../release-post/release-post-release.ts | 8 +- tools/release-posts/templates/database.ejs | 27 ---- 12 files changed, 47 insertions(+), 455 deletions(-) delete mode 100644 tools/code-analyzer/src/git.ts delete mode 100644 tools/code-analyzer/src/lib/schema-changes.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ab065f4bb6..5d54b5888f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3456,8 +3456,8 @@ importers: specifier: ^1.10.0 version: 1.10.0 '@commander-js/extra-typings': - specifier: ^0.1.0 - version: 0.1.0(commander@9.4.0) + specifier: ^10.0.3 + version: 10.0.3(commander@9.4.0) '@oclif/core': specifier: ^2.4.0 version: 2.4.0 @@ -4179,7 +4179,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@jridgewell/trace-mapping': 0.3.16 + '@jridgewell/trace-mapping': 0.3.17 commander: 4.1.1 convert-source-map: 1.8.0 fs-readdir-recursive: 1.1.0 @@ -10193,6 +10193,14 @@ packages: commander: 10.0.1 dev: false + /@commander-js/extra-typings@10.0.3(commander@9.4.0): + resolution: {integrity: sha512-OIw28QV/GlP8k0B5CJTRsl8IyNvd0R8C8rfo54Yz9P388vCNDgdNrFlKxZTGqps+5j6lSw3Ss9JTQwcur1w1oA==} + peerDependencies: + commander: 10.0.x + dependencies: + commander: 9.4.0 + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -11734,6 +11742,7 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -16996,7 +17005,7 @@ packages: functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.5.0 + semver: 7.5.3 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -17210,7 +17219,7 @@ packages: debug: 4.3.4(supports-color@9.2.2) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.0 + semver: 7.5.3 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -26697,7 +26706,7 @@ packages: jsdoctypeparser: 9.0.0 lodash: 4.17.21 regextras: 0.7.1 - semver: 7.5.0 + semver: 7.5.3 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -26717,7 +26726,7 @@ packages: jsdoc-type-pratt-parser: 1.2.0 lodash: 4.17.21 regextras: 0.8.0 - semver: 7.5.0 + semver: 7.5.3 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -36164,7 +36173,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.5.0 + semver: 7.5.3 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 diff --git a/tools/code-analyzer/package.json b/tools/code-analyzer/package.json index a020b700d57..3ca92e7640d 100644 --- a/tools/code-analyzer/package.json +++ b/tools/code-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "code-analyzer", - "version": "0.0.1", + "version": "1.0.0", "description": "A tool to analyze code changes in WooCommerce Monorepo.", "author": "Automattic", "homepage": "https://github.com/woocommerce/woocommerce", @@ -8,7 +8,7 @@ "repository": "woocommerce/woocommerce", "dependencies": { "@actions/core": "^1.10.0", - "@commander-js/extra-typings": "^0.1.0", + "@commander-js/extra-typings": "^10.0.3", "@woocommerce/monorepo-utils": "workspace:*", "@oclif/core": "^2.4.0", "@tsconfig/node16": "^1.0.3", diff --git a/tools/code-analyzer/src/commands/analyzer/analyzer-lint.ts b/tools/code-analyzer/src/commands/analyzer/analyzer-lint.ts index d21e19af687..2a250e78178 100644 --- a/tools/code-analyzer/src/commands/analyzer/analyzer-lint.ts +++ b/tools/code-analyzer/src/commands/analyzer/analyzer-lint.ts @@ -1,7 +1,7 @@ /** * External dependencies */ -import { Command } from '@commander-js/extra-typings'; +import { Command, Option } from '@commander-js/extra-typings'; import { Logger } from '@woocommerce/monorepo-utils/src/core/logger'; import { join } from 'path'; @@ -12,7 +12,6 @@ import { scanForChanges } from '../../lib/scan-changes'; import { printDatabaseUpdates, printHookResults, - printSchemaChange, printTemplateResults, } from '../../print'; @@ -36,22 +35,18 @@ const program = new Command() 'Git repo url or local path to a git repo.', join( process.cwd(), '../../' ) ) - .option( - '-o, --outputStyle ', - 'Output style for the results. Options: github, cli. Github output will set the results as an output variable for Github actions.', - 'cli' - ) - .option( - '-ss, --skipSchemaCheck', - 'Skip the schema check, enable this if you are not analyzing WooCommerce' + .addOption( + new Option( '-o, --outputStyle ' ).choices( [ + 'github', + 'cli', + ] as const ) ) .action( async ( compare, sinceVersion, options ) => { - const { skipSchemaCheck = false, source, base, outputStyle } = options; + const { source, base, outputStyle = 'cli' } = options; const changes = await scanForChanges( compare, sinceVersion, - skipSchemaCheck, source, base, outputStyle @@ -93,24 +88,6 @@ const program = new Command() ); } - if ( changes.schema.filter( ( s ) => ! s.areEqual ).length ) { - printSchemaChange( - changes.schema, - sinceVersion, - outputStyle, - Logger.notice - ); - } else { - Logger.notice( '\n\n## SCHEMA CHANGES' ); - Logger.notice( - '---------------------------------------------------' - ); - Logger.notice( 'No schema changes found.' ); - Logger.notice( - '---------------------------------------------------' - ); - } - if ( changes.db ) { printDatabaseUpdates( changes.db, outputStyle, Logger.notice ); } else { diff --git a/tools/code-analyzer/src/commands/analyzer/analyzer-scan.ts b/tools/code-analyzer/src/commands/analyzer/analyzer-scan.ts index 8f1e9e39d14..a48de187479 100644 --- a/tools/code-analyzer/src/commands/analyzer/analyzer-scan.ts +++ b/tools/code-analyzer/src/commands/analyzer/analyzer-scan.ts @@ -11,14 +11,12 @@ import { join } from 'path'; import { scanChangesForDB, scanChangesForHooks, - scanChangesForSchema, scanChangesForTemplates, ScanType, } from '../../lib/scan-changes'; import { printDatabaseUpdates, printHookResults, - printSchemaChange, printTemplateResults, } from '../../print'; @@ -33,7 +31,7 @@ const program = new Command() .command( 'scan' ) .argument( '', - 'Type of change to scan for. Options: templates, hooks, database, schema.' + 'Type of change to scan for. Options: templates, hooks, database.' ) .argument( '', @@ -46,7 +44,7 @@ const program = new Command() ) .option( '-s, --since ', - 'Specify the version used to determine which changes are included (version listed in @since code doc). Only needed for hook, template, schema changes.' + 'Specify the version used to determine which changes are included (version listed in @since code doc). Only needed for hook and template changes.' ) .option( '-src, --source ', @@ -62,12 +60,10 @@ const program = new Command() const { since: sinceVersion, source, outputStyle } = options; if ( - ( scanType === 'hooks' || - scanType === 'templates' || - scanType === 'schema' ) && + ( scanType === 'hooks' || scanType === 'templates' ) && ! sinceVersion ) { - throw new Error( + Logger.error( `To scan for ${ scanType } changes you must provide the since argument.` ); } @@ -128,26 +124,9 @@ const program = new Command() printEmptyNotice( 'database' ); } break; - case 'schema': - const schemaChanges = await scanChangesForSchema( - compare, - base, - source - ); - if ( schemaChanges && schemaChanges.length && sinceVersion ) { - printSchemaChange( - schemaChanges, - sinceVersion, - 'cli', - Logger.notice - ); - } else { - printEmptyNotice( 'schema' ); - } - break; default: - throw new Error( - 'Invalid scan type. Options: templates, hooks, database, schema.' + Logger.error( + `Invalid scan type: ${ scanType } Options: templates, hooks, database.` ); } } ); diff --git a/tools/code-analyzer/src/git.ts b/tools/code-analyzer/src/git.ts deleted file mode 100644 index d2b4023d590..00000000000 --- a/tools/code-analyzer/src/git.ts +++ /dev/null @@ -1,146 +0,0 @@ -/** - * External dependencies - */ -import { join } from 'path'; -import { simpleGit } from 'simple-git'; -import { execAsync } from '@woocommerce/monorepo-utils/src/core/util'; -import { - startWPEnv, - stopWPEnv, -} from '@woocommerce/monorepo-utils/src/core/wpenv'; - -export type SchemaDump = { - schema: string; - OrdersTableDataStore: string; -}; - -/** - * Get all schema strings found in WooCommerce. - * - * @param {string} tmpRepoPath - filepath to the repo to generate a schema from. - * @param {Function} error - Error logging function. - * @return {Object} Object of schema strings. - */ -export const getSchema = async ( - tmpRepoPath: string, - error: ( s: string ) => void -): Promise< SchemaDump | void > => { - try { - const pluginPath = join( tmpRepoPath, 'plugins/woocommerce' ); - const getSchemaPath = - 'wp-content/plugins/woocommerce/bin/wc-get-schema.php'; - - // Get the WooCommerce schema from wp cli - const schemaOutput = await execAsync( - `wp-env run cli wp eval-file '${ getSchemaPath }'`, - { - cwd: pluginPath, - encoding: 'utf-8', - } - ); - - // Get the OrdersTableDataStore schema. - const ordersTableOutput = await execAsync( - 'wp-env run cli wp eval \'echo (new Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableDataStore)->get_database_schema();\'', - { - cwd: pluginPath, - encoding: 'utf-8', - } - ); - - return { - schema: schemaOutput.stdout, - OrdersTableDataStore: ordersTableOutput.stdout, - }; - } catch ( e ) { - if ( e instanceof Error ) { - error( e.message ); - } - } -}; - -export type SchemaDiff = { - name: string; - description: string; - base: string; - compare: string; - method: string; - areEqual: boolean; -}; - -/** - * Generate a schema for each branch being compared. - * - * @param {string} tmpRepoPath Path to repository used to generate schema diff. - * @param {string} compare Branch/commit hash to compare against the base. - * @param {string} base Base branch/commit hash. - * @param {Function} build Build to perform between checkouts. - * @param {Function} error error print method. - * @return {Promise} diff object. - */ -export const generateSchemaDiff = async ( - tmpRepoPath: string, - compare: string, - base: string, - build: () => Promise< void > | void, - error: ( s: string ) => void -): Promise< SchemaDiff[] | null > => { - const git = simpleGit( { - baseDir: tmpRepoPath, - config: [ 'core.hooksPath=/dev/null' ], - } ); - - // Be sure the wp-env engine is started. - await startWPEnv( tmpRepoPath, error ); - - // Force checkout because sometimes a build will generate a lockfile change. - await git.checkout( base, [ '--force' ] ); - await build(); - const baseSchema = await getSchema( - tmpRepoPath, - ( errorMessage: string ) => { - error( - `Unable to get schema for branch ${ base }. \n${ errorMessage }` - ); - } - ); - - // Force checkout because sometimes a build will generate a lockfile change. - await git.checkout( compare, [ '--force' ] ); - await build(); - const compareSchema = await getSchema( - tmpRepoPath, - ( errorMessage: string ) => { - error( - `Unable to get schema for branch ${ compare }. \n${ errorMessage }` - ); - } - ); - - await stopWPEnv( tmpRepoPath, error ); - - if ( ! baseSchema || ! compareSchema ) { - return null; - } - - return [ - { - name: 'schema', - description: 'WooCommerce Base Schema', - base: baseSchema.schema, - compare: compareSchema.schema, - method: 'WC_Install->get_schema', - areEqual: baseSchema.schema === compareSchema.schema, - }, - { - name: 'OrdersTableDataStore', - description: 'OrdersTableDataStore Schema', - base: baseSchema.OrdersTableDataStore, - compare: compareSchema.OrdersTableDataStore, - method: 'Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableDataStore->get_database_schema', - areEqual: - baseSchema.OrdersTableDataStore === - compareSchema.OrdersTableDataStore, - }, - ]; -}; diff --git a/tools/code-analyzer/src/lib/scan-changes.ts b/tools/code-analyzer/src/lib/scan-changes.ts index cb61f784e5f..9eb8964d7cc 100644 --- a/tools/code-analyzer/src/lib/scan-changes.ts +++ b/tools/code-analyzer/src/lib/scan-changes.ts @@ -2,25 +2,20 @@ * External dependencies */ import { Logger } from '@woocommerce/monorepo-utils/src/core/logger'; -import { join } from 'path'; import { cloneRepo, generateDiff, } from '@woocommerce/monorepo-utils/src/core/git'; -import { readFile } from 'fs/promises'; import { execSync } from 'child_process'; /** * Internal dependencies */ -import { execAsync } from '../utils'; import { scanForDBChanges } from './db-changes'; import { scanForHookChanges } from './hook-changes'; import { scanForTemplateChanges } from './template-changes'; -import { SchemaDiff, generateSchemaDiff } from '../git'; -import { scanForSchemaChanges } from './schema-changes'; -export type ScanType = 'schema' | 'db' | 'hooks' | 'templates' | string; +export type ScanType = 'db' | 'hooks' | 'templates' | string; const generateVersionDiff = async ( compareVersion: string, @@ -118,29 +113,12 @@ export const scanChangesForTemplates = async ( return Array.from( templateChanges.values() ); }; -export const scanChangesForSchema = async ( - compareVersion: string, - base: string, - source: string, - clonedPath?: string -) => { - const { tmpRepoPath } = await generateVersionDiff( - compareVersion, - base, - source, - clonedPath - ); - - return scanForSchemaChanges( compareVersion, base, tmpRepoPath ); -}; - export const scanForChanges = async ( compareVersion: string, sinceVersion: string, - skipSchemaCheck: boolean, source: string, base: string, - outputStyle: string, + outputStyle: 'cli' | 'github', clonedPath?: string ) => { Logger.startTask( `Making temporary clone of ${ source }...` ); @@ -178,8 +156,6 @@ export const scanForChanges = async ( ); } - const pluginPath = join( tmpRepoPath, 'plugins/woocommerce' ); - Logger.startTask( 'Detecting hook changes...' ); const hookChanges = await scanForHookChanges( diff, @@ -200,60 +176,9 @@ export const scanForChanges = async ( const dbChanges = scanForDBChanges( diff ); Logger.endTask(); - let schemaChanges: SchemaDiff[] = []; - - if ( ! skipSchemaCheck ) { - const build = async () => { - const fileStr = await readFile( - join( pluginPath, 'package.json' ), - 'utf-8' - ); - const packageJSON = JSON.parse( fileStr ); - - // Temporarily save the current PNPM version. - await execAsync( `tmpgPNPM="$(pnpm --version)"` ); - - if ( packageJSON.engines && packageJSON.engines.pnpm ) { - await execAsync( - `npm i -g pnpm@${ packageJSON.engines.pnpm }`, - { - cwd: pluginPath, - } - ); - } - - // Note doing the minimal work to get a DB scan to work, avoiding full build for speed. - await execAsync( 'composer install', { cwd: pluginPath } ); - await execAsync( - 'pnpm run --filter=woocommerce build:feature-config', - { - cwd: pluginPath, - } - ); - }; - - Logger.startTask( 'Generating schema diff...' ); - - const schemaDiff = await generateSchemaDiff( - tmpRepoPath, - compareVersion, - base, - build, - Logger.error - ); - - schemaChanges = schemaDiff || []; - - // Restore the previously saved PNPM version - await execAsync( `npm i -g pnpm@"$tmpgPNPM"` ); - - Logger.endTask(); - } - return { hooks: hookChanges, templates: templateChanges, - schema: schemaChanges, db: dbChanges, }; }; diff --git a/tools/code-analyzer/src/lib/schema-changes.ts b/tools/code-analyzer/src/lib/schema-changes.ts deleted file mode 100644 index dd17c1d48c5..00000000000 --- a/tools/code-analyzer/src/lib/schema-changes.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * External dependencies - */ -import { Logger } from '@woocommerce/monorepo-utils/src/core/logger'; -import { readFile } from 'fs/promises'; -import { join } from 'path'; - -/** - * Internal dependencies - */ -import { generateSchemaDiff } from '../git'; -import { execAsync } from '../utils'; - -export const scanForSchemaChanges = async ( - compareVersion: string, - base: string, - tmpRepoPath: string -) => { - const pluginPath = join( tmpRepoPath, 'plugins/woocommerce' ); - - const build = async () => { - const fileStr = await readFile( - join( pluginPath, 'package.json' ), - 'utf-8' - ); - const packageJSON = JSON.parse( fileStr ); - - // Temporarily save the current PNPM version. - await execAsync( `tmpgPNPM="$(pnpm --version)"` ); - - if ( packageJSON.engines && packageJSON.engines.pnpm ) { - await execAsync( `npm i -g pnpm@${ packageJSON.engines.pnpm }`, { - cwd: pluginPath, - } ); - } - - // Note doing the minimal work to get a DB scan to work, avoiding full build for speed. - await execAsync( 'composer install', { cwd: pluginPath } ); - await execAsync( 'pnpm run --filter=woocommerce build:feature-config', { - cwd: pluginPath, - } ); - }; - - Logger.startTask( 'Generating schema diff...' ); - - const schemaDiff = await generateSchemaDiff( - tmpRepoPath, - compareVersion, - base, - build, - Logger.error - ); - - // Restore the previously saved PNPM version - await execAsync( `npm i -g pnpm@"$tmpgPNPM"` ); - - Logger.endTask(); - - return schemaDiff; -}; diff --git a/tools/code-analyzer/src/print.ts b/tools/code-analyzer/src/print.ts index 592d993da69..fa6a2697421 100644 --- a/tools/code-analyzer/src/print.ts +++ b/tools/code-analyzer/src/print.ts @@ -6,7 +6,6 @@ import { setOutput } from '@actions/core'; /** * Internal dependencies */ -import { SchemaDiff } from './git'; import { HookChangeDescription } from './lib/hook-changes'; import { TemplateChangeDescription } from './lib/template-changes'; @@ -113,43 +112,6 @@ export const printHookResults = ( } }; -/** - * Print Schema change results. - * - * @param {Object} schemaDiffs Schema diff object - * @param {string} version Version change was introduced. - * @param {string} output Output style. - * @param {Function} log Print method. - */ -export const printSchemaChange = ( - schemaDiffs: SchemaDiff[], - version: string, - output: string, - log: ( s: string ) => void -) => { - if ( output === 'github' ) { - let githubCommentContent = '\\n\\n### New schema changes:'; - schemaDiffs.forEach( ( schemaDiff ) => { - if ( ! schemaDiff.areEqual ) { - githubCommentContent += `\\n* **Schema:** ${ schemaDiff.method } introduced in ${ version }`; - } - } ); - - setOutput( 'schema', githubCommentContent ); - } else { - log( '\n## SCHEMA CHANGES' ); - log( '---------------------------------------------------' ); - schemaDiffs.forEach( ( schemaDiff ) => { - if ( ! schemaDiff.areEqual ) { - log( - ` NOTICE | Schema changes detected in ${ schemaDiff.method } as of ${ version }` - ); - log( '---------------------------------------------------' ); - } - } ); - } -}; - /** * * @param {Object} databaseUpdates Database update info. diff --git a/tools/code-analyzer/src/utils.ts b/tools/code-analyzer/src/utils.ts index e1ea693a148..a52209b9c63 100644 --- a/tools/code-analyzer/src/utils.ts +++ b/tools/code-analyzer/src/utils.ts @@ -4,11 +4,6 @@ import { exec } from 'child_process'; import { promisify } from 'util'; -/** - * Internal dependencies - */ -import { SchemaDiff } from './git'; - export const execAsync = promisify( exec ); /** @@ -41,16 +36,6 @@ export const getHookName = ( name: string ): string => { return name.replace( /(\'|\")/g, '' ).trim(); }; -/** - * Determine if schema diff object contains schemas that are equal. - * - * @param {Array} schemaDiffs - * @return {boolean|void} If the schema diff describes schemas that are equal. - */ -export const areSchemasEqual = ( schemaDiffs: SchemaDiff[] ): boolean => { - return ! schemaDiffs.some( ( s ) => ! s.areEqual ); -}; - /** * Extract hook description from a raw diff. * diff --git a/tools/release-posts/README.md b/tools/release-posts/README.md index 27ab6497022..21560816cde 100644 --- a/tools/release-posts/README.md +++ b/tools/release-posts/README.md @@ -10,10 +10,11 @@ don't have access to a WordPress.com auth token. 1. Make sure `pnpm i` has been run in the monorepo. 2. Make sure you have added a `.env` file with the env variables set. WCCOM_TOKEN is optional if you're using `--outputOnly`, but -the `GITHUB_ACCESS_TOKEN` is required. If you need help generating a token see [the docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). To silence all CLI output, set `LOGGER_LEVEL` to `"silent"`. + the `GITHUB_ACCESS_TOKEN` is required. If you need help generating a token see [the docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). To silence all CLI output, set `LOGGER_LEVEL` to `"silent"`. 3. Note that the env file should live at the same path that you're running the command from. -4. Run the tool via the npm script, e.g. `pnpm run release-post -- "6.8.0" --outputOnly` -5. For more help on individual options, run the help `pnpm run release-post -- --help` +4. Run the tool via the npm script, e.g. `pnpm run release-post release "6.8.0" --outputOnly` +5. For more help on individual options, run the help `pnpm run release-post --help`. e.g. `pnpm run release-post rc --help` + ### Publishing Draft Posts This tool will publish draft posts to `https://developer.woocommerce.com` for you if you omit the `--outputOnly` flag. There is some minimal first time setup for this though: @@ -21,25 +22,24 @@ This tool will publish draft posts to `https://developer.woocommerce.com` for yo 1. Create an app on WordPress.com [here](https://developer.wordpress.com/apps/). 2. Recommended settings: -* Name can be anything -* Description can be left blank -* Website URL just put http://localhost -* Redirect URLs, by default you should add: http://localhost:3000/oauth -* JavaScript Origins put http://localhost -* Type - choose "Web" +- Name can be anything +- Description can be left blank +- Website URL just put http://localhost +- Redirect URLs, by default you should add: http://localhost:3000/oauth +- JavaScript Origins put http://localhost +- Type - choose "Web" 3. Once your app is created you can go back to the -app list and click "manage app". + app list and click "manage app". 4. Take note of the `client secret` and the `client id`. 5. In your `.env` file add the client secret to the `WPCOM_OAUTH_CLIENT_SECRET` variable and the client id to the `WPCOM_OAUTH_CLIENT_ID` variable. - ### Generating Just a Contributors List If you don't have a final release yet you can generate an HTML contributors list that you can copy paste into a blank post. -To do that simply run `pnpm run release-post contributors -- "" ""` +To do that simply run `pnpm run release-post contributors "" ""` ### Advanced @@ -49,9 +49,3 @@ Steps: 1. Add your preferred redirect URI to the `WPCOM_OAUTH_REDIRECT_URI` variable in `.env`. e.g. `http://localhost:4321/oauth` 2. When creating your app on [WordPress.com](https://developer.wordpress.com/apps/) make sure the redirect URL you set matches the one set in `.env` - - - - - - diff --git a/tools/release-posts/commands/release-post/release-post-release.ts b/tools/release-posts/commands/release-post/release-post-release.ts index 30ac1948f57..8d69d406cff 100644 --- a/tools/release-posts/commands/release-post/release-post-release.ts +++ b/tools/release-posts/commands/release-post/release-post-release.ts @@ -171,15 +171,12 @@ const program = new Command() const changes = await scanForChanges( currentVersionRef, `${ previousParsed.major }.${ previousParsed.minor }.${ previousParsed.patch }`, - false, SOURCE_REPO, previousVersionRef, 'cli', tmpRepoPath ); - const schemaChanges = changes.schema.filter( ( s ) => ! s.areEqual ); - Logger.startTask( 'Finding contributors' ); const title = `WooCommerce ${ currentVersion } Released`; @@ -191,10 +188,7 @@ const program = new Command() const postVariables = { contributors, title, - changes: { - ...changes, - schema: schemaChanges, - }, + changes, displayVersion: currentVersion, }; diff --git a/tools/release-posts/templates/database.ejs b/tools/release-posts/templates/database.ejs index de3fea44d6f..de0523954fe 100644 --- a/tools/release-posts/templates/database.ejs +++ b/tools/release-posts/templates/database.ejs @@ -2,33 +2,6 @@

Database Changes

-<% if (changes.schema.length) { %> - -

Schema Updates

- - - -
- - - - - - - <% changes.schema.forEach(({areEqual, name, method}) => { %> - <% if (!areEqual) { %> - - - - - <% } %> - <% }) %> - -
Class NameCode Ref
<%= name %><%= method %>
-
- -<% } %> - <% if (changes.db) { %>

DB Updates