Skip to content

Commit

Permalink
chore: setup @aws-cdk/tmp-toolkit-helpers as a package to temporarily…
Browse files Browse the repository at this point in the history
… hold code shared between Toolkit CLI and Library
  • Loading branch information
mrgrain committed Feb 28, 2025
1 parent 97d02a8 commit 2ca8fcb
Show file tree
Hide file tree
Showing 18 changed files with 96 additions and 27 deletions.
52 changes: 47 additions & 5 deletions .projenrc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,21 @@ function transitiveFeaturesAndFixes(thisPkg: string, depPkgs: string[]) {
].join(' '));
}

/**
* Returns all packages that are considered part of the toolkit,
* as relative paths from the provided package.
*/
function transitiveToolkitPackages(thisPkg: string) {
const toolkitPackages = [
'aws-cdk',
'@aws-cdk/tmp-toolkit-helpers',
'@aws-cdk/cloud-assembly-schema',
'@aws-cdk/cloudformation-diff',
];

return transitiveFeaturesAndFixes(thisPkg, toolkitPackages.filter(name => name !== thisPkg));
}

const repoProject = new yarn.Monorepo({
projenrcTs: true,
name: 'aws-cdk-cli',
Expand Down Expand Up @@ -669,6 +684,31 @@ cdkAssets.eslint?.addRules({ 'jest/no-export': ['off'] });

//////////////////////////////////////////////////////////////////////

const tmpToolkitHelpers = configureProject(
new yarn.TypeScriptWorkspace({
...genericCdkProps({
private: true,
}),
parent: repo,
name: '@aws-cdk/tmp-toolkit-helpers',
description: 'A temporary package to hold code shared between aws-cdk and @aws-cdk/toolkit-lib',
deps: [],
devDeps: [
cdkBuildTools,
],
tsconfig: {
compilerOptions: {
target: 'es2022',
lib: ['es2022', 'esnext.disposable'],
module: 'NodeNext',
esModuleInterop: false,
},
},
}),
);

//////////////////////////////////////////////////////////////////////

let CLI_SDK_VERSION: '2' | '3' = ('3' as any);

const cli = configureProject(
Expand All @@ -684,6 +724,7 @@ const cli = configureProject(
cdkBuildTools,
yargsGen,
cliPluginContract,
tmpToolkitHelpers,
'@octokit/rest',
'@types/archiver',
'@types/fs-extra@^9',
Expand Down Expand Up @@ -827,7 +868,7 @@ const cli = configureProject(
// Append a specific version string for testing
nextVersionCommand: 'tsx ../../projenrc/next-version.ts maybeRc',

releasableCommits: transitiveFeaturesAndFixes('aws-cdk', [cloudAssemblySchema.name, cloudFormationDiff.name]),
releasableCommits: transitiveToolkitPackages('aws-cdk'),
}),
);

Expand Down Expand Up @@ -963,7 +1004,7 @@ const cliLib = configureProject(
devDeps: ['aws-cdk-lib', cli, 'constructs'],
disableTsconfig: true,
nextVersionCommand: `tsx ../../../projenrc/next-version.ts copyVersion:../../../${cliPackageJson} append:-alpha.0`,
releasableCommits: transitiveFeaturesAndFixes('@aws-cdk/cli-lib-alpha', [cli.name, cloudAssemblySchema.name, cloudFormationDiff.name]),
releasableCommits: transitiveToolkitPackages('@aws-cdk/cli-lib-alpha'),
eslintOptions: {
dirs: ['lib'],
ignorePatterns: [
Expand Down Expand Up @@ -1119,13 +1160,14 @@ const toolkitLib = configureProject(
'@types/fs-extra',
'@types/split2',
cli,
tmpToolkitHelpers,
'aws-cdk-lib',
'aws-sdk-client-mock',
'esbuild',
'typedoc',
],
// Watch 2 directories at once
releasableCommits: transitiveFeaturesAndFixes('@aws-cdk/toolkit-lib', [cli.name, cloudAssemblySchema.name, cloudFormationDiff.name]),
releasableCommits: transitiveToolkitPackages('@aws-cdk/toolkit-lib'),
eslintOptions: {
dirs: ['lib'],
ignorePatterns: [
Expand Down Expand Up @@ -1266,7 +1308,7 @@ const cdkCliWrapper = configureProject(
srcdir: 'lib',
devDeps: ['aws-cdk-lib', cli, 'constructs', '@aws-cdk/integ-runner'],
nextVersionCommand: `tsx ../../../projenrc/next-version.ts copyVersion:../../../${cliPackageJson}`,
releasableCommits: transitiveFeaturesAndFixes('@aws-cdk/cdk-cli-wrapper', [cli.name, cloudAssemblySchema.name, cloudFormationDiff.name]),
releasableCommits: transitiveToolkitPackages('@aws-cdk/cdk-cli-wrapper'),

jestOptions: jestOptionsForProject({
jestConfig: {
Expand Down Expand Up @@ -1296,7 +1338,7 @@ const cdkAliasPackage = configureProject(
srcdir: 'lib',
deps: [cli],
nextVersionCommand: `tsx ../../projenrc/next-version.ts copyVersion:../../${cliPackageJson}`,
releasableCommits: transitiveFeaturesAndFixes('cdk', [cli.name, cloudAssemblySchema.name, cloudFormationDiff.name]),
releasableCommits: transitiveToolkitPackages('cdk'),
}),
);
void cdkAliasPackage;
Expand Down
3 changes: 3 additions & 0 deletions aws-cdk-cli.code-workspace

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/@aws-cdk/cli-lib-alpha/.projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions packages/@aws-cdk/toolkit-lib/.projen/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions packages/@aws-cdk/toolkit-lib/.projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/@aws-cdk/toolkit-lib/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions packages/@aws-cdk/toolkit-lib/tsconfig.dev.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions packages/@aws-cdk/toolkit-lib/tsconfig.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions packages/aws-cdk/.projen/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions packages/aws-cdk/.projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/aws-cdk/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions packages/aws-cdk/tsconfig.dev.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions packages/aws-cdk/tsconfig.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/cdk/.projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions tsconfig.dev.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions tsconfig.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 5 additions & 11 deletions yarn.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 2ca8fcb

Please sign in to comment.