@codedrifters/configulator 0.0.129 → 0.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -18
- package/lib/index.d.mts +1 -22
- package/lib/index.d.ts +1 -22
- package/lib/index.js +43 -17
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +43 -18
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -532,28 +532,10 @@ interface MonorepoProjectOptions {
|
|
|
532
532
|
version?: string;
|
|
533
533
|
pnpmWorkspaceOptions?: PnpmWorkspaceOptions;
|
|
534
534
|
};
|
|
535
|
-
upgradeConfigulatorTask?: boolean; // Default: false — see below
|
|
536
|
-
upgradeConfigulatorTaskOptions?: UpgradeDependenciesOptions;
|
|
537
535
|
// ... all TypeScriptProjectOptions
|
|
538
536
|
}
|
|
539
537
|
```
|
|
540
538
|
|
|
541
|
-
#### Configulator upgrade workflow (default: off)
|
|
542
|
-
|
|
543
|
-
By default, `MonorepoProject` does **not** add a separate workflow that upgrades only `@codedrifters/configulator`. Monorepos that use configulator should rely on projen's built-in **upgrade** workflow for all dependency upgrades (including configulator), so there is one source of truth and no duplicate or conflicting automation.
|
|
544
|
-
|
|
545
|
-
To opt in to a dedicated scheduled workflow that upgrades only `@codedrifters/configulator` (e.g. nightly), set `upgradeConfigulatorTask: true` and optionally customize with `upgradeConfigulatorTaskOptions` (schedule, etc.):
|
|
546
|
-
|
|
547
|
-
```typescript
|
|
548
|
-
const project = new MonorepoProject({
|
|
549
|
-
name: 'my-monorepo',
|
|
550
|
-
upgradeConfigulatorTask: true,
|
|
551
|
-
upgradeConfigulatorTaskOptions: {
|
|
552
|
-
workflowOptions: { schedule: UpgradeDependenciesSchedule.DAILY },
|
|
553
|
-
},
|
|
554
|
-
});
|
|
555
|
-
```
|
|
556
|
-
|
|
557
539
|
### TypeScriptProjectOptions
|
|
558
540
|
|
|
559
541
|
Extends Projen's `TypeScriptProjectOptions` with CodeDrifters defaults. See the [TypeScriptProject](#typescriptproject) section for details.
|
package/lib/index.d.mts
CHANGED
|
@@ -4,9 +4,9 @@ import { AwsStageType, DeploymentTargetRoleType, AwsEnvironmentType, AWS_STAGE_T
|
|
|
4
4
|
import * as spec from '@jsii/spec';
|
|
5
5
|
import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
|
|
6
6
|
import { ValueOf } from 'type-fest';
|
|
7
|
-
import { NodeProject, UpgradeDependencies, UpgradeDependenciesOptions } from 'projen/lib/javascript';
|
|
8
7
|
import { Component as Component$1, Project as Project$1, Task } from 'projen/lib';
|
|
9
8
|
import { BuildWorkflowOptions, BuildWorkflow } from 'projen/lib/build';
|
|
9
|
+
import { NodeProject } from 'projen/lib/javascript';
|
|
10
10
|
import { JobStep } from 'projen/lib/github/workflows-model';
|
|
11
11
|
|
|
12
12
|
/*******************************************************************************
|
|
@@ -1301,21 +1301,6 @@ interface MonorepoProjectOptions extends Omit<TypeScriptProjectOptions$1, "defau
|
|
|
1301
1301
|
*/
|
|
1302
1302
|
pnpmWorkspaceOptions?: PnpmWorkspaceOptions;
|
|
1303
1303
|
};
|
|
1304
|
-
/**
|
|
1305
|
-
* Turn on a dedicated workflow that upgrades only
|
|
1306
|
-
* @codedrifters/configulator on a schedule (e.g. nightly). When false or
|
|
1307
|
-
* unset, rely on projen's default upgrade workflow for all dependency
|
|
1308
|
-
* upgrades instead.
|
|
1309
|
-
*
|
|
1310
|
-
* @default false
|
|
1311
|
-
*/
|
|
1312
|
-
readonly upgradeConfigulatorTask?: boolean;
|
|
1313
|
-
/**
|
|
1314
|
-
* Options for the upgrade configurator task.
|
|
1315
|
-
*
|
|
1316
|
-
* @default: daily schedule
|
|
1317
|
-
*/
|
|
1318
|
-
readonly upgradeConfigulatorTaskOptions?: UpgradeDependenciesOptions;
|
|
1319
1304
|
/**
|
|
1320
1305
|
* When set, adds the approve-and-merge-upgrade workflow (ADR 0001 §2).
|
|
1321
1306
|
* Uses a second GitHub App to approve and merge the dependency-upgrade PR
|
|
@@ -1331,12 +1316,6 @@ declare class MonorepoProject extends TypeScriptAppProject {
|
|
|
1331
1316
|
* Version of PNPM which the whole monorepo should use.
|
|
1332
1317
|
*/
|
|
1333
1318
|
readonly pnpmVersion: string;
|
|
1334
|
-
/**
|
|
1335
|
-
* Optional task that will attempt to upgrade the @codedrifters/configulator
|
|
1336
|
-
* package version nightly. This keeps the project up-to-date with the latest
|
|
1337
|
-
* official CodeDrifters configs.
|
|
1338
|
-
*/
|
|
1339
|
-
readonly upgradeConfigulatorTask?: UpgradeDependencies;
|
|
1340
1319
|
constructor(userOptions: MonorepoProjectOptions);
|
|
1341
1320
|
/**
|
|
1342
1321
|
* Allows a sub project to request installation of dependency at the Monorepo root
|
package/lib/index.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
|
|
|
3
3
|
import * as spec from '@jsii/spec';
|
|
4
4
|
import { TypeScriptProject as TypeScriptProject$1, TypeScriptAppProject, TypeScriptProjectOptions as TypeScriptProjectOptions$1 } from 'projen/lib/typescript';
|
|
5
5
|
import { ValueOf } from 'type-fest';
|
|
6
|
-
import { UpgradeDependencies, UpgradeDependenciesOptions, NodeProject } from 'projen/lib/javascript';
|
|
7
6
|
import { Task, Component as Component$1, Project as Project$1 } from 'projen/lib';
|
|
8
7
|
import { BuildWorkflow, BuildWorkflowOptions } from 'projen/lib/build';
|
|
8
|
+
import { NodeProject } from 'projen/lib/javascript';
|
|
9
9
|
import { JobStep } from 'projen/lib/github/workflows-model';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -1350,21 +1350,6 @@ interface MonorepoProjectOptions extends Omit<TypeScriptProjectOptions$1, "defau
|
|
|
1350
1350
|
*/
|
|
1351
1351
|
pnpmWorkspaceOptions?: PnpmWorkspaceOptions;
|
|
1352
1352
|
};
|
|
1353
|
-
/**
|
|
1354
|
-
* Turn on a dedicated workflow that upgrades only
|
|
1355
|
-
* @codedrifters/configulator on a schedule (e.g. nightly). When false or
|
|
1356
|
-
* unset, rely on projen's default upgrade workflow for all dependency
|
|
1357
|
-
* upgrades instead.
|
|
1358
|
-
*
|
|
1359
|
-
* @default false
|
|
1360
|
-
*/
|
|
1361
|
-
readonly upgradeConfigulatorTask?: boolean;
|
|
1362
|
-
/**
|
|
1363
|
-
* Options for the upgrade configurator task.
|
|
1364
|
-
*
|
|
1365
|
-
* @default: daily schedule
|
|
1366
|
-
*/
|
|
1367
|
-
readonly upgradeConfigulatorTaskOptions?: UpgradeDependenciesOptions;
|
|
1368
1353
|
/**
|
|
1369
1354
|
* When set, adds the approve-and-merge-upgrade workflow (ADR 0001 §2).
|
|
1370
1355
|
* Uses a second GitHub App to approve and merge the dependency-upgrade PR
|
|
@@ -1380,12 +1365,6 @@ declare class MonorepoProject extends TypeScriptAppProject {
|
|
|
1380
1365
|
* Version of PNPM which the whole monorepo should use.
|
|
1381
1366
|
*/
|
|
1382
1367
|
readonly pnpmVersion: string;
|
|
1383
|
-
/**
|
|
1384
|
-
* Optional task that will attempt to upgrade the @codedrifters/configulator
|
|
1385
|
-
* package version nightly. This keeps the project up-to-date with the latest
|
|
1386
|
-
* official CodeDrifters configs.
|
|
1387
|
-
*/
|
|
1388
|
-
readonly upgradeConfigulatorTask?: UpgradeDependencies;
|
|
1389
1368
|
constructor(userOptions: MonorepoProjectOptions);
|
|
1390
1369
|
/**
|
|
1391
1370
|
* Allows a sub project to request installation of dependency at the Monorepo root
|
package/lib/index.js
CHANGED
|
@@ -1457,6 +1457,18 @@ function addBuildCompleteJob(buildWorkflow) {
|
|
|
1457
1457
|
}
|
|
1458
1458
|
|
|
1459
1459
|
// src/projects/monorepo-project.ts
|
|
1460
|
+
var CONFIGULATOR_PACKAGE_NAME = "@codedrifters/configulator";
|
|
1461
|
+
function isConfigulatorRegistryConsumer(project) {
|
|
1462
|
+
const dep = project.deps.all.find(
|
|
1463
|
+
(d) => d.name === CONFIGULATOR_PACKAGE_NAME
|
|
1464
|
+
);
|
|
1465
|
+
if (!dep?.version) return false;
|
|
1466
|
+
const v = dep.version;
|
|
1467
|
+
if (v.startsWith("workspace:") || v.startsWith("file:") || v.startsWith("link:") || v.startsWith("catalog:")) {
|
|
1468
|
+
return false;
|
|
1469
|
+
}
|
|
1470
|
+
return true;
|
|
1471
|
+
}
|
|
1460
1472
|
var postInstallDependenciesMap = /* @__PURE__ */ new WeakMap();
|
|
1461
1473
|
var MonorepoProject = class extends import_typescript.TypeScriptAppProject {
|
|
1462
1474
|
constructor(userOptions) {
|
|
@@ -1542,9 +1554,12 @@ var MonorepoProject = class extends import_typescript.TypeScriptAppProject {
|
|
|
1542
1554
|
release: false,
|
|
1543
1555
|
/**
|
|
1544
1556
|
* Uppgrade dependencies automatically unless otherwise instructed.
|
|
1557
|
+
* Exclude @codedrifters/configulator so the default upgrade task does not
|
|
1558
|
+
* upgrade it (version is often managed in-repo or via a separate sync step).
|
|
1545
1559
|
*/
|
|
1546
1560
|
depsUpgrade: true,
|
|
1547
1561
|
depsUpgradeOptions: {
|
|
1562
|
+
exclude: ["@codedrifters/configulator"],
|
|
1548
1563
|
workflowOptions: {
|
|
1549
1564
|
schedule: import_javascript3.UpgradeDependenciesSchedule.DAILY
|
|
1550
1565
|
},
|
|
@@ -1675,29 +1690,40 @@ var MonorepoProject = class extends import_typescript.TypeScriptAppProject {
|
|
|
1675
1690
|
);
|
|
1676
1691
|
this.gitignore?.addPatterns(".DS_Store", "test-reports");
|
|
1677
1692
|
this.addDevDeps("constructs@catalog:");
|
|
1678
|
-
if (options.upgradeConfigulatorTask === true) {
|
|
1679
|
-
this.upgradeConfigulatorTask = new import_javascript3.UpgradeDependencies(
|
|
1680
|
-
this,
|
|
1681
|
-
(0, import_ts_deepmerge2.merge)(
|
|
1682
|
-
{
|
|
1683
|
-
include: ["@codedrifters/configulator"],
|
|
1684
|
-
taskName: `upgrade-codedrifters-configulator`,
|
|
1685
|
-
workflowOptions: {
|
|
1686
|
-
schedule: import_javascript3.UpgradeDependenciesSchedule.DAILY
|
|
1687
|
-
}
|
|
1688
|
-
},
|
|
1689
|
-
options.upgradeConfigulatorTaskOptions ?? {}
|
|
1690
|
-
)
|
|
1691
|
-
);
|
|
1692
|
-
}
|
|
1693
1693
|
if (options.approveMergeUpgradeOptions) {
|
|
1694
1694
|
addApproveMergeUpgradeWorkflow(this, options.approveMergeUpgradeOptions);
|
|
1695
1695
|
}
|
|
1696
1696
|
if (this.buildWorkflow) {
|
|
1697
1697
|
addBuildCompleteJob(this.buildWorkflow);
|
|
1698
1698
|
}
|
|
1699
|
-
this
|
|
1700
|
-
|
|
1699
|
+
if (isConfigulatorRegistryConsumer(this)) {
|
|
1700
|
+
this.tasks.tryFind("post-upgrade")?.exec(`pnpm update -r ${CONFIGULATOR_PACKAGE_NAME}`);
|
|
1701
|
+
this.tasks.tryFind("post-upgrade")?.spawn(this.defaultTask);
|
|
1702
|
+
}
|
|
1703
|
+
const upgradeWorkflow = this.github?.tryFindWorkflow("upgrade");
|
|
1704
|
+
const upgradeJob = upgradeWorkflow?.getJob("upgrade");
|
|
1705
|
+
const jobWithSteps = upgradeJob && "steps" in upgradeJob ? upgradeJob : void 0;
|
|
1706
|
+
if (jobWithSteps?.steps && Array.isArray(jobWithSteps.steps)) {
|
|
1707
|
+
const insertIndex = 4;
|
|
1708
|
+
if (isConfigulatorRegistryConsumer(this)) {
|
|
1709
|
+
jobWithSteps.steps.splice(insertIndex, 0, {
|
|
1710
|
+
name: `Sync ${CONFIGULATOR_PACKAGE_NAME} in workspace`,
|
|
1711
|
+
run: `pnpm update -r ${CONFIGULATOR_PACKAGE_NAME}`
|
|
1712
|
+
});
|
|
1713
|
+
jobWithSteps.steps.splice(insertIndex + 1, 0, {
|
|
1714
|
+
name: "Synthesize",
|
|
1715
|
+
run: this.runTaskCommand(this.defaultTask)
|
|
1716
|
+
});
|
|
1717
|
+
}
|
|
1718
|
+
jobWithSteps.steps.splice(
|
|
1719
|
+
insertIndex + (isConfigulatorRegistryConsumer(this) ? 2 : 0),
|
|
1720
|
+
0,
|
|
1721
|
+
{
|
|
1722
|
+
name: "Run subproject upgrades",
|
|
1723
|
+
run: "pnpm -r run upgrade"
|
|
1724
|
+
}
|
|
1725
|
+
);
|
|
1726
|
+
}
|
|
1701
1727
|
}
|
|
1702
1728
|
/**
|
|
1703
1729
|
* Allows a sub project to request installation of dependency at the Monorepo root
|