projen-modules
A collection of custom projen modules, that can be used to bootstrap and maintain consistent project configuration, tooling, dependencies, and builds.
Getting Started
Prerequisites:
- Node.js 22
- Yarn 1 (classic)
yarn install
npx projen build
This will:
- Install the dependencies
- Apply any projen changes
- Run tests
- Package project locally
Any files changed by projen should be committed to git.
Running the tests like this will update any snapshot files, this should be reviewed and committed to git.
Testing
Types of testing:
- Snapshot - projen project outputs are stored as a snapshot in the corresponding
__snapshots__directory. When the project changes then it is expected that these snapshots change too and should be reviewed committed alongside the project. - Unit tests - these assert on specific functionality of the project and should be written for any new functionality added.
Creating a New Project
npx projen new {project} --from projen-modules
Some projects may have required fields that need to be specified as part of this command, review any errors for details what needs to be specified.
Project Types
| Project type | Description |
|---|---|
| cdk-typescript-app | A typescript CDK app |
| npm-package | A typescript npm package |
| python-package | A python package |
| jsii-package | A typescript JSII package |
Project Structure
All source is located in src and is grouped by:
components- these are common building blocks that can be used by projects to implement specific project functionality.projects- these are projects that can be built from this project (see #something)utils- these are helper functions that are often reused
test contains tests, and mirrors the src directory structure. Within here there are __snapshots__ which contain snapshots of project tests (see #section).
Contributing
Pull request titles must follow Conventional Commits, with one of the types feat, fix or chore, such as feat: describe the change. The Validate PR title check fails until the title does.
Once a pull request is approved, or is opened by daveshepherd, and its checks pass, the Mergify merge queue squash merges it, with its title as the commit message. Draft pull requests and those labelled do-not-merge are not merged.
The type decides the next release: feat releases a minor version and fix a patch version, while a breaking change, marked by ! after the type (such as feat!: ...) or a BREAKING CHANGE: footer, releases a major version. Other types still release a patch version. While the version is below 1.0.0, a breaking change releases a minor version and feat a patch version.
GitHub Configuration
The one-off configuration that this repository needs on GitHub, such as the Mergify merge queue and the branch ruleset, is described in docs/github-configuration.md.
Known Issues
cdk-typescript-app defaults to Jest 30, which hoists @sinonjs/fake-timers 15 whose bundled types conflict with the @types/sinon used by aws-sdk-client-mock. Projects using aws-sdk-client-mock can set compilerOptions.skipLibCheck on the test tsconfig:
project.tryFindObjectFile('test/tsconfig.json')?.addOverride('compilerOptions.skipLibCheck', true);
Metadata
Release files for projen-modules 5.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| projen_modules-5.6.0.tar.gz | 440.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| projen_modules-5.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 879.7 kB
Release files / projen_modules-5.6.0.tar.gz
| Download URL | projen_modules-5.6.0.tar.gz |
|---|---|
| Size | 440.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1920d108d600777ed827ba1be8e7792b57244fee6dbd4debebbf380d078e3218
|
|
BLAKE2b-256 checksum How to use checksums |
c8bbc310a24d0e6b5a3fbb334f74ebf94692e257a9c387a3a0588be5d39e0930
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.14.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / projen_modules-5.6.0-py3-none-any.whl
| Download URL | projen_modules-5.6.0-py3-none-any.whl |
|---|---|
| Size | 439.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
159f198e91a070f6dc8c5d6f0900a8ded2d5af2032b1a796dd3e6ad4e359c383
|
|
BLAKE2b-256 checksum How to use checksums |
186d18fd4906315eaebcbdf9243f5901ded7feb070acb73b4dc237859cefd397
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.14.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log