@mavogel/mvc-projen 0.0.32 → 0.0.34

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.
@@ -1,6 +1,6 @@
1
1
  # Toolchain Maintenance: projen / jsii / typescript
2
2
 
3
- **Last Updated:** 2026-07-21
3
+ **Last Updated:** 2026-09-12
4
4
 
5
5
  This repo's own build (`.projenrc.ts`, a `cdk.JsiiProject`) pins several versions as literals. These pins exist for specific reasons — don't remove them without understanding why.
6
6
 
@@ -9,9 +9,15 @@ This repo's own build (`.projenrc.ts`, a `cdk.JsiiProject`) pins several version
9
9
  | Setting | Value | Why pinned |
10
10
  |---|---|---|
11
11
  | `projenVersion` (const, top of file) | `0.101.17` | Source of truth for `package.json`'s `projen` entry — see below |
12
- | `jsiiVersion` | `~5.9.0` | Compiler compatibility |
12
+ | `jsiiVersion` | `~6.0.0` | Compiler compatibility |
13
13
  | `typescriptVersion` | `^6.0.2` | **Prevents drifting onto TypeScript 7** (see gotcha below) |
14
14
 
15
+ ## Use Node 24 locally, matching `.nvmrc`
16
+
17
+ This repo's `.nvmrc` pins Node `24` — the version jsii's compiler actually supports (jsii's supported list: `^24.0.0`, `^22.0.0`, `^20.0.0` [deprecated]). Before running `npx projen`, `npm run build`, `npm install`, or any other repo command, switch to it: `nvm use` (reads `.nvmrc` automatically) or `nvm use 24`.
18
+
19
+ Running under a newer Node (e.g. Node 26, the current non-LTS release as of this writing) doesn't break the build, but every `jsii`/`jsii-pacmak` invocation prints an "untested node version" warning and clutters output — annoying to read through and easy to mistake for a real problem. If a shell's default Node is already 26+, run `nvm use 24` first rather than ignoring the warning.
20
+
15
21
  ## ⚠️ Gotcha: unpinned `typescript` devDependency drifts onto breaking majors
16
22
 
17
23
  If `typescriptVersion` is ever removed from the `JsiiProject` options, projen adds `typescript` as a devDependency with **no version range** (`node_modules/projen/lib/typescript/typescript.js` — `tsDep = options.typescriptVersion ? "typescript@${...}" : "typescript"`). npm then resolves it to whatever is latest at synth time.
@@ -22,22 +28,23 @@ This broke the build on 2026-07-21: TypeScript 7.0.2 (the new Go-ported compiler
22
28
 
23
29
  **Known gap:** `src/projects/cdk-construct.ts` (`MvcCdkConstructLibrary`, what this module scaffolds for *consumers*) does NOT set `typescriptVersion` in its own projen options. Generated consumer projects are exposed to the same drift/break. Worth fixing in `cdk-construct.ts` as a follow-up — not yet done.
24
30
 
25
- ## Keeping `projen` itself current
31
+ ## Keeping `projen` and `jsii` current
32
+
33
+ `projenVersion` and `jsiiVersion` are hardcoded literals, not normal devDependency ranges — they're the source of truth that regenerates `package.json`'s `projen`/`jsii`/`jsii-rosetta` entries on every `npx projen` run. This is why `dependabotOptions.groups.default.excludePatterns`/`ignore` exclude `projen`, `jsii`, and `jsii-rosetta`: a Dependabot PR that only edits `package.json` would get silently reverted by the `self_mutation_happened` check in `.github/workflows/build.yml` (`npx projen` would just re-derive the old pinned literal). `typescriptVersion` doesn't need this — it's a caret range, so `npm update`/Dependabot can already advance it within the current major via lockfile-only changes.
26
34
 
27
- `projenVersion` is a hardcoded literal, not a normal devDependency range — it's the source of truth that regenerates `package.json`'s `projen` entry on every `npx projen` run. This is why `dependabotOptions.groups.default.excludePatterns` excludes `projen`: a Dependabot PR that only edits `package.json` would get silently reverted by the `self_mutation_happened` check in `.github/workflows/build.yml` (`npx projen` would just re-derive the old pinned version).
35
+ Two generated workflows automate the literal bumps instead (both weekly cron, Monday 06:00 UTC, + manual `workflow_dispatch`), sharing the `addSelfUpgradeWorkflow()` builder in `.projenrc.ts`:
28
36
 
29
- **`.github/workflows/upgrade-projen.yml`** automates this instead (weekly cron, Monday 06:00 UTC, + manual `workflow_dispatch`):
37
+ - **`.github/workflows/upgrade-projen.yml`**: compares `package.json`'s current `devDependencies.projen` against `npm view projen version`.
38
+ - **`.github/workflows/upgrade-jsii.yml`**: reads the `jsiiVersion` literal out of `.projenrc.ts` and compares it against the latest version *within the current major only* (`npm view jsii@<major>`) — crossing to the next jsii major stays a deliberate, human-reviewed bump, same as the `typescriptVersion` pin.
30
39
 
31
- 1. Compares `package.json`'s current `devDependencies.projen` against `npm view projen version`
32
- 2. If different: `sed`-updates the `projenVersion` const in `.projenrc.ts`, runs `npx projen` to re-synth everything, then `npm run build` as a gate
33
- 3. Only if the build passes: commits to a `chore/upgrade-projen-<version>` branch and opens a PR via `gh pr create` (labeled `dependencies`, `auto-approve`)
40
+ Both, if the versions differ: `sed`-update the literal in `.projenrc.ts`, run `npx projen` to re-synth everything, then `npm run build` as a gate. Only if the build passes: commit to a `chore/upgrade-<projen|jsii>-<version>` branch and open a PR via `gh pr create` (labeled `dependencies`, `auto-approve`) — auto-approved by a Mergify rule (since the PR is opened by `mvc-bot` via `PROJEN_GITHUB_TOKEN`, and GitHub rejects a PR review from the same account that authored the PR) and merged once required checks pass.
34
41
 
35
42
  To bump manually instead of waiting for the cron (or to debug it):
36
43
 
37
44
  ```bash
38
- npm view projen version # check latest
45
+ npm view projen version # check latest
39
46
  # edit the `projenVersion` const in .projenrc.ts
40
- npx projen && npm run build # re-synth + verify
47
+ npx projen && npm run build # re-synth + verify
41
48
  ```
42
49
 
43
50
  Same procedure applies to bumping `jsiiVersion` or `typescriptVersion` — always re-run the full build afterward; jsii/projen major bumps can change generated file layout (e.g. the 0.99→0.101 bump split `tsconfig.dev.json` into `tsconfig.json` + `test/tsconfig.json` + `projenrc/tsconfig.json`).
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "constructs": "^10.5.1",
11
- "projen": "^0.103.12"
11
+ "projen": "^0.103.20"
12
12
  },
13
13
  "dependencyClosure": {
14
14
  "constructs": {
@@ -86,7 +86,7 @@
86
86
  "stability": "stable"
87
87
  },
88
88
  "homepage": "https://github.com/mavogel/mvc-projen",
89
- "jsiiVersion": "6.0.5 (build 4738da5)",
89
+ "jsiiVersion": "6.0.13 (build 5c05d06)",
90
90
  "keywords": [
91
91
  "aws",
92
92
  "cdk",
@@ -100,7 +100,8 @@
100
100
  "hasDefaultInterfaces": true
101
101
  }
102
102
  },
103
- "tscRootDir": "/home/runner/work/mvc-projen/mvc-projen/src"
103
+ "tscOutDir": "lib",
104
+ "tscRootDir": "src"
104
105
  },
105
106
  "name": "@mavogel/mvc-projen",
106
107
  "readme": {
@@ -223,6 +224,6 @@
223
224
  "symbolId": "src/projects/cdk-construct:MvcCdkConstructLibraryOptions"
224
225
  }
225
226
  },
226
- "version": "0.0.32",
227
- "fingerprint": "XVWgvIqeIVseRQvbDBuejJkmXUYYuEOxCuRRAtG7cHA="
227
+ "version": "0.0.34",
228
+ "fingerprint": "Dvk1lcPJC18w4vWI1Golzm2I1WT0M7k3SlnLaEItpMI="
228
229
  }
package/API.md CHANGED
@@ -1477,6 +1477,7 @@ const mvcCdkConstructLibraryOptions: MvcCdkConstructLibraryOptions = { ... }
1477
1477
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
1478
1478
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
1479
1479
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
1480
+ | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.config">config</a></code> | <code>{[ key: string ]: any}</code> | Configuration values available to package scripts at runtime. |
1480
1481
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.dedupeDeps">dedupeDeps</a></code> | <code>boolean</code> | Add a `dedupe` task that deduplicates project dependencies. |
1481
1482
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.deleteOrphanedLockFiles">deleteOrphanedLockFiles</a></code> | <code>boolean</code> | Automatically delete lockfiles from package managers that are not the active one. |
1482
1483
  | <code><a href="#@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.deps">deps</a></code> | <code>string[]</code> | Runtime dependencies of this module. |
@@ -2209,6 +2210,23 @@ This is required if publishing packages to, or installing scoped packages from A
2209
2210
 
2210
2211
  ---
2211
2212
 
2213
+ ##### `config`<sup>Optional</sup> <a name="config" id="@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.config"></a>
2214
+
2215
+ ```typescript
2216
+ public readonly config: {[ key: string ]: any};
2217
+ ```
2218
+
2219
+ - *Type:* {[ key: string ]: any}
2220
+ - *Default:* no package configuration
2221
+
2222
+ Configuration values available to package scripts at runtime.
2223
+
2224
+ Values should be JSON-serializable.
2225
+
2226
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#config](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#config)
2227
+
2228
+ ---
2229
+
2212
2230
  ##### `dedupeDeps`<sup>Optional</sup> <a name="dedupeDeps" id="@mavogel/mvc-projen.MvcCdkConstructLibraryOptions.property.dedupeDeps"></a>
2213
2231
 
2214
2232
  ```typescript
@@ -57,7 +57,7 @@ const LAST_INTEG_RUNNER_VERSION = '2.203.0';
57
57
  * @pjid mvc-awscdk-construct
58
58
  */
59
59
  class MvcCdkConstructLibrary extends awscdk_1.AwsCdkConstructLibrary {
60
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@mavogel/mvc-projen.MvcCdkConstructLibrary", version: "0.0.32" };
60
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@mavogel/mvc-projen.MvcCdkConstructLibrary", version: "0.0.34" };
61
61
  constructor(options) {
62
62
  const baseAssetsDirectory = options.baseAssetsDirectory ?? `${process.cwd()}/node_modules/@mavogel/mvc-projen/assets`;
63
63
  const integTestRegions = options.integTestRegions ?? ['eu-west-1', 'eu-west-2'];
@@ -266,6 +266,15 @@ type MvcCdkConstructLibraryOptions struct {
266
266
  //
267
267
  // Experimental.
268
268
  CodeArtifactOptions *javascript.CodeArtifactOptions `field:"optional" json:"codeArtifactOptions" yaml:"codeArtifactOptions"`
269
+ // Configuration values available to package scripts at runtime.
270
+ //
271
+ // Values should be JSON-serializable.
272
+ // See: https://docs.npmjs.com/cli/v11/configuring-npm/package-json#config
273
+ //
274
+ // Default: - no package configuration.
275
+ //
276
+ // Experimental.
277
+ Config *map[string]interface{} `field:"optional" json:"config" yaml:"config"`
269
278
  // Add a `dedupe` task that deduplicates project dependencies.
270
279
  //
271
280
  // Deduplication prevents multiple versions of the same package from being
@@ -5,5 +5,5 @@ go 1.25
5
5
  require (
6
6
  github.com/aws/jsii-runtime-go v1.139.0
7
7
  github.com/aws/constructs-go/constructs/v10 v10.5.1
8
- github.com/projen/projen-go/projen v0.103.12
8
+ github.com/projen/projen-go/projen v0.103.20
9
9
  )
@@ -13,7 +13,7 @@ import (
13
13
  projen "github.com/projen/projen-go/projen/jsii"
14
14
  )
15
15
 
16
- //go:embed mavogel-mvc-projen-0.0.31.tgz
16
+ //go:embed mavogel-mvc-projen-0.0.33.tgz
17
17
  var tarball []byte
18
18
 
19
19
  // Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module.
@@ -24,5 +24,5 @@ func Initialize() {
24
24
  projen.Initialize()
25
25
 
26
26
  // Load this library into the kernel
27
- _jsii_.Load("@mavogel/mvc-projen", "0.0.31", tarball)
27
+ _jsii_.Load("@mavogel/mvc-projen", "0.0.33", tarball)
28
28
  }
@@ -1 +1 @@
1
- 0.0.31
1
+ 0.0.33
package/package.json CHANGED
@@ -57,18 +57,18 @@
57
57
  "jsii-docgen": "^10.5.0",
58
58
  "jsii-pacmak": "^1.139.0",
59
59
  "jsii-rosetta": "~6.0.0",
60
- "projen": "0.103.12",
60
+ "projen": "0.103.20",
61
61
  "ts-jest": "^29.4.11",
62
62
  "ts-node": "^10",
63
63
  "typescript": "^6.0.2"
64
64
  },
65
65
  "peerDependencies": {
66
66
  "constructs": "^10.5.1",
67
- "projen": "^0.103.12"
67
+ "projen": "^0.103.20"
68
68
  },
69
69
  "dependencies": {
70
70
  "constructs": "^10.5.1",
71
- "projen": "^0.103.12"
71
+ "projen": "^0.103.20"
72
72
  },
73
73
  "keywords": [
74
74
  "aws",
@@ -88,7 +88,7 @@
88
88
  "publishConfig": {
89
89
  "access": "public"
90
90
  },
91
- "version": "0.0.32",
91
+ "version": "0.0.34",
92
92
  "jest": {
93
93
  "coverageProvider": "v8",
94
94
  "testMatch": [