diff --git a/packages/cli/package.json b/packages/cli/package.json index d86eab5b..af461308 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@ag-grid-devtools/cli", - "version": "33.0.1", + "version": "33.3.0", "license": "MIT", "description": "AG Grid developer toolkit", "author": "AG Grid ", diff --git a/packages/cli/src/codemods/transforms/transform-modules-to-packages-v33/transformers/combined-transform.ts b/packages/cli/src/codemods/transforms/transform-modules-to-packages-v33/transformers/combined-transform.ts index 5e798f1d..569fcce4 100644 --- a/packages/cli/src/codemods/transforms/transform-modules-to-packages-v33/transformers/combined-transform.ts +++ b/packages/cli/src/codemods/transforms/transform-modules-to-packages-v33/transformers/combined-transform.ts @@ -17,7 +17,8 @@ export const combinedTransform: JSCodeShiftTransformer = (root) => { packageLicenseManager(root); } else { // already using modules - registerModule(root), updateStyles(root); + registerModule(root); + updateStyles(root); addAllCommunityModule(root); chartImports(root); updateImportPaths(root); diff --git a/packages/cli/src/codemods/versions/33.1.0/README.md b/packages/cli/src/codemods/versions/33.1.0/README.md new file mode 100644 index 00000000..4d2fea06 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.1.0/README.md @@ -0,0 +1,35 @@ +# 33.1.0 + +Codemod for upgrading to [AG Grid v33.1.0](https://github.com/ag-grid/ag-grid/releases/tag/v33.1.0) + +## Usage + +``` +npx @ag-grid-devtools/cli migrate --to 33.1.0 +``` + +Source code transformations applied by this codemod are specified in [`transforms.ts`](./transforms.ts). + +## Common tasks + +### Add a transform + +Option 1: Create a new source code transformation to add to this codemod release version: + +``` +pnpm run task:create-transform --release 33.1.0 +``` + +Option 2: Add an existing source code transformation to this codemod release version: + +``` +pnpm run task:include-transform --version 33.1.0 +``` + +### Add a test case + +Create a new unit test scenario for this version: + +``` +pnpm run task:create-test --type version --target 33.1.0 +``` diff --git a/packages/cli/src/codemods/versions/33.1.0/__fixtures__/scenarios/.gitignore b/packages/cli/src/codemods/versions/33.1.0/__fixtures__/scenarios/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/src/codemods/versions/33.1.0/codemod.test.ts b/packages/cli/src/codemods/versions/33.1.0/codemod.test.ts new file mode 100644 index 00000000..35a622d1 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.1.0/codemod.test.ts @@ -0,0 +1,16 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, onTestFinished, test } from 'vitest'; +import { loadCodemodExampleScenarios } from '../../test/runners/codemod'; + +import codemod from './codemod'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +describe(codemod, () => { + const scenariosPath = join(__dirname, './__fixtures__/scenarios'); + loadCodemodExampleScenarios(scenariosPath, { + codemod, + vitest: { describe, expect, test, onTestFinished }, + }); +}); diff --git a/packages/cli/src/codemods/versions/33.1.0/codemod.ts b/packages/cli/src/codemods/versions/33.1.0/codemod.ts new file mode 100644 index 00000000..c53f35b7 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.1.0/codemod.ts @@ -0,0 +1,24 @@ +import { transformFileAst } from '@ag-grid-devtools/codemod-utils'; +import { + type Codemod, + type CodemodInput, + type CodemodOptions, + type CodemodResult, +} from '@ag-grid-devtools/types'; + +import transforms from './transforms'; + +const codemod: Codemod = function codemodV33_1_0( + file: CodemodInput, + options: CodemodOptions, +): CodemodResult { + const { path, source } = file; + const { fs, userConfig } = options; + return transformFileAst(source, transforms, { + filename: path, + fs, + userConfig, + }); +}; + +export default codemod; diff --git a/packages/cli/src/codemods/versions/33.1.0/manifest.ts b/packages/cli/src/codemods/versions/33.1.0/manifest.ts new file mode 100644 index 00000000..ef0812ca --- /dev/null +++ b/packages/cli/src/codemods/versions/33.1.0/manifest.ts @@ -0,0 +1,11 @@ +import { type TransformManifest, type VersionManifest } from '@ag-grid-devtools/types'; + +const transforms: Array = []; + +const manifest: VersionManifest = { + version: '33.1.0', + codemodPath: 'versions/33.1.0', + transforms, +}; + +export default manifest; diff --git a/packages/cli/src/codemods/versions/33.1.0/transforms.ts b/packages/cli/src/codemods/versions/33.1.0/transforms.ts new file mode 100644 index 00000000..f7779321 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.1.0/transforms.ts @@ -0,0 +1,5 @@ +import { type AstCliContext, type AstTransform } from '@ag-grid-devtools/ast'; + +const transforms: Array> = []; + +export default transforms; diff --git a/packages/cli/src/codemods/versions/33.2.0/README.md b/packages/cli/src/codemods/versions/33.2.0/README.md new file mode 100644 index 00000000..0d903359 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.2.0/README.md @@ -0,0 +1,35 @@ +# 33.2.0 + +Codemod for upgrading to [AG Grid v33.2.0](https://github.com/ag-grid/ag-grid/releases/tag/v33.2.0) + +## Usage + +``` +npx @ag-grid-devtools/cli migrate --to 33.2.0 +``` + +Source code transformations applied by this codemod are specified in [`transforms.ts`](./transforms.ts). + +## Common tasks + +### Add a transform + +Option 1: Create a new source code transformation to add to this codemod release version: + +``` +pnpm run task:create-transform --release 33.2.0 +``` + +Option 2: Add an existing source code transformation to this codemod release version: + +``` +pnpm run task:include-transform --version 33.2.0 +``` + +### Add a test case + +Create a new unit test scenario for this version: + +``` +pnpm run task:create-test --type version --target 33.2.0 +``` diff --git a/packages/cli/src/codemods/versions/33.2.0/__fixtures__/scenarios/.gitignore b/packages/cli/src/codemods/versions/33.2.0/__fixtures__/scenarios/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/src/codemods/versions/33.2.0/codemod.test.ts b/packages/cli/src/codemods/versions/33.2.0/codemod.test.ts new file mode 100644 index 00000000..35a622d1 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.2.0/codemod.test.ts @@ -0,0 +1,16 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, onTestFinished, test } from 'vitest'; +import { loadCodemodExampleScenarios } from '../../test/runners/codemod'; + +import codemod from './codemod'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +describe(codemod, () => { + const scenariosPath = join(__dirname, './__fixtures__/scenarios'); + loadCodemodExampleScenarios(scenariosPath, { + codemod, + vitest: { describe, expect, test, onTestFinished }, + }); +}); diff --git a/packages/cli/src/codemods/versions/33.2.0/codemod.ts b/packages/cli/src/codemods/versions/33.2.0/codemod.ts new file mode 100644 index 00000000..0d936281 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.2.0/codemod.ts @@ -0,0 +1,24 @@ +import { transformFileAst } from '@ag-grid-devtools/codemod-utils'; +import { + type Codemod, + type CodemodInput, + type CodemodOptions, + type CodemodResult, +} from '@ag-grid-devtools/types'; + +import transforms from './transforms'; + +const codemod: Codemod = function codemodV33_2_0( + file: CodemodInput, + options: CodemodOptions, +): CodemodResult { + const { path, source } = file; + const { fs, userConfig } = options; + return transformFileAst(source, transforms, { + filename: path, + fs, + userConfig, + }); +}; + +export default codemod; diff --git a/packages/cli/src/codemods/versions/33.2.0/manifest.ts b/packages/cli/src/codemods/versions/33.2.0/manifest.ts new file mode 100644 index 00000000..4d97e6a9 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.2.0/manifest.ts @@ -0,0 +1,11 @@ +import { type TransformManifest, type VersionManifest } from '@ag-grid-devtools/types'; + +const transforms: Array = []; + +const manifest: VersionManifest = { + version: '33.2.0', + codemodPath: 'versions/33.2.0', + transforms, +}; + +export default manifest; diff --git a/packages/cli/src/codemods/versions/33.2.0/transforms.ts b/packages/cli/src/codemods/versions/33.2.0/transforms.ts new file mode 100644 index 00000000..f7779321 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.2.0/transforms.ts @@ -0,0 +1,5 @@ +import { type AstCliContext, type AstTransform } from '@ag-grid-devtools/ast'; + +const transforms: Array> = []; + +export default transforms; diff --git a/packages/cli/src/codemods/versions/33.3.0/README.md b/packages/cli/src/codemods/versions/33.3.0/README.md new file mode 100644 index 00000000..55348df0 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.3.0/README.md @@ -0,0 +1,35 @@ +# 33.3.0 + +Codemod for upgrading to [AG Grid v33.3.0](https://github.com/ag-grid/ag-grid/releases/tag/v33.3.0) + +## Usage + +``` +npx @ag-grid-devtools/cli migrate --to 33.3.0 +``` + +Source code transformations applied by this codemod are specified in [`transforms.ts`](./transforms.ts). + +## Common tasks + +### Add a transform + +Option 1: Create a new source code transformation to add to this codemod release version: + +``` +pnpm run task:create-transform --release 33.3.0 +``` + +Option 2: Add an existing source code transformation to this codemod release version: + +``` +pnpm run task:include-transform --version 33.3.0 +``` + +### Add a test case + +Create a new unit test scenario for this version: + +``` +pnpm run task:create-test --type version --target 33.3.0 +``` diff --git a/packages/cli/src/codemods/versions/33.3.0/__fixtures__/scenarios/.gitignore b/packages/cli/src/codemods/versions/33.3.0/__fixtures__/scenarios/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/src/codemods/versions/33.3.0/codemod.test.ts b/packages/cli/src/codemods/versions/33.3.0/codemod.test.ts new file mode 100644 index 00000000..35a622d1 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.3.0/codemod.test.ts @@ -0,0 +1,16 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, onTestFinished, test } from 'vitest'; +import { loadCodemodExampleScenarios } from '../../test/runners/codemod'; + +import codemod from './codemod'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +describe(codemod, () => { + const scenariosPath = join(__dirname, './__fixtures__/scenarios'); + loadCodemodExampleScenarios(scenariosPath, { + codemod, + vitest: { describe, expect, test, onTestFinished }, + }); +}); diff --git a/packages/cli/src/codemods/versions/33.3.0/codemod.ts b/packages/cli/src/codemods/versions/33.3.0/codemod.ts new file mode 100644 index 00000000..f4ff037f --- /dev/null +++ b/packages/cli/src/codemods/versions/33.3.0/codemod.ts @@ -0,0 +1,24 @@ +import { transformFileAst } from '@ag-grid-devtools/codemod-utils'; +import { + type Codemod, + type CodemodInput, + type CodemodOptions, + type CodemodResult, +} from '@ag-grid-devtools/types'; + +import transforms from './transforms'; + +const codemod: Codemod = function codemodV33_3_0( + file: CodemodInput, + options: CodemodOptions, +): CodemodResult { + const { path, source } = file; + const { fs, userConfig } = options; + return transformFileAst(source, transforms, { + filename: path, + fs, + userConfig, + }); +}; + +export default codemod; diff --git a/packages/cli/src/codemods/versions/33.3.0/manifest.ts b/packages/cli/src/codemods/versions/33.3.0/manifest.ts new file mode 100644 index 00000000..0f23d889 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.3.0/manifest.ts @@ -0,0 +1,11 @@ +import { type TransformManifest, type VersionManifest } from '@ag-grid-devtools/types'; + +const transforms: Array = []; + +const manifest: VersionManifest = { + version: '33.3.0', + codemodPath: 'versions/33.3.0', + transforms, +}; + +export default manifest; diff --git a/packages/cli/src/codemods/versions/33.3.0/transforms.ts b/packages/cli/src/codemods/versions/33.3.0/transforms.ts new file mode 100644 index 00000000..f7779321 --- /dev/null +++ b/packages/cli/src/codemods/versions/33.3.0/transforms.ts @@ -0,0 +1,5 @@ +import { type AstCliContext, type AstTransform } from '@ag-grid-devtools/ast'; + +const transforms: Array> = []; + +export default transforms; diff --git a/packages/cli/src/codemods/versions/manifest.ts b/packages/cli/src/codemods/versions/manifest.ts index 4065f321..94aeb7cc 100644 --- a/packages/cli/src/codemods/versions/manifest.ts +++ b/packages/cli/src/codemods/versions/manifest.ts @@ -14,6 +14,12 @@ import v32_2_0 from './32.2.0/manifest'; import v33_0_0 from './33.0.0/manifest'; +import v33_1_0 from './33.1.0/manifest'; + +import v33_2_0 from './33.2.0/manifest'; + +import v33_3_0 from './33.3.0/manifest'; + const versions: Array = [ v31_0_0, v31_1_0, @@ -22,6 +28,9 @@ const versions: Array = [ v32_0_0, v32_2_0, v33_0_0, + v33_1_0, + v33_2_0, + v33_3_0, ]; export default versions; diff --git a/packages/cli/src/commands/migrate.ts b/packages/cli/src/commands/migrate.ts index ad6721b5..2be1b35c 100644 --- a/packages/cli/src/commands/migrate.ts +++ b/packages/cli/src/commands/migrate.ts @@ -28,7 +28,7 @@ import { CliArgsError, CliError } from '../utils/cli'; import { findGitRoot, findSourceFiles } from '../utils/fs'; import { findInGitRepository, getUncommittedGitFiles } from '../utils/git'; import { getCliCommand, getCliPackageVersion } from '../utils/pkg'; -import { green, indentErrorMessage, log } from '../utils/stdio'; +import { green, indentErrorMessage, log, red } from '../utils/stdio'; import { Worker, WorkerTaskQueue, type WorkerOptions } from '../utils/worker'; const { versions } = codemods; @@ -335,6 +335,13 @@ async function migrate( ); } + if (from && semver.lt(from, '30.0.0')) { + await log( + stderr, + `\nCodemods are only supported from v30. You have specified from version ${red(from, env)}.\nThe codemods will still run but we recommend that you manually check the migration guide for any breaking changes up until v30.\n`, + ); + } + const gitSourceFilePaths = gitRoot ? (await getGitSourceFiles(gitRoot)).map((path) => resolve(gitRoot, path)) : null; diff --git a/packages/codemods-tasks/tasks/create-version.mjs b/packages/codemods-tasks/tasks/create-version.mjs index 4de14490..9917b033 100644 --- a/packages/codemods-tasks/tasks/create-version.mjs +++ b/packages/codemods-tasks/tasks/create-version.mjs @@ -25,7 +25,7 @@ const CODEMOD_TEMPLATE_DIR = join(TEMPLATE_DIR, 'codemod'); const PROJECT_VERSIONS_DIR = './versions'; const MANIFEST_FILENAME = 'manifest.ts'; -const MANIFEST_TEST_PATH = './lib.test.ts'; +const MANIFEST_TEST_PATH = './lib.ts'; const VARIABLES = [ { @@ -115,7 +115,7 @@ export default async function task(...args) { versionManifestPath: stripFileExtension(versionManifestPath), versionIdentifier: `v${versionIdentifier}`, }); - await addReleaseToVersionsManifestTests({ manifestTestPath: versionsManifestTestPath, version }); + // await addReleaseToVersionsManifestTests({ manifestTestPath: versionsManifestTestPath, version }); process.stderr.write(`\nCreated codemod version ${green(version)} in ${outputPath}\n`); }