Releases: agdimech/projen
Releases · agdimech/projen
v0.58.0
0.58.0 (2024-03-07)
⚠ BREAKING CHANGES
- python: Poetry is now required to be at version 1.2.0 or above. Please update Poetry if needed.
- nextjs: Minimum Node version is now 16.14.0 to match Next 13's minimum node version.
- nextjs: Next.js TSConfig
module
is nowesnext
by default, to preserve previous behavior, setmodule
toCommonJS
. - nextjs: Next.js TSConfig
moduleResolution
is nowBUNDLER
by default, to preserve previous behavior, setmoduleResolution
toNODE
. - nextjs: Next.js TSConfig
strict
is now set totrue
by default, to preserve previous behavior, setstrict
tofalse
. - gitlab: current cache definitions will need to be changed into an array or will get a compile time exception.
Features
- bundler: additional esbuild options and generic escape hatch to pass any options to esbuild (#3366) (482f782), closes #3364
- cdktf: update default constructs version (#3309) (aa8a2e3)
- github: download artifact workflow step (#3365) (dbe4aeb)
- gitlab: add gitlab multiple cache support (#3151) (0c8088f), closes #3022
- IgnoreFile: allow ignorePatterns to be set via options (#3373) (8c93086)
- java: support for parent POM in maven projects (#3326) (41b610d)
- jest: addModuleNameMappers, addModulePaths, addRoots (#3287) (9436206)
- node: allow enforcement of licenses used by dependencies (#2614) (7402c57)
- node: release from CI with npm provenance statements (#3330) (e41812c)
- node: update aws-actions/configure-aws-credentials@v2 to v4 (#3329) (8eb0b03), closes #2932 #3324
- release: subproject releases (#3208) (e2b393d)
- task: getStep, editStep, removeStep, cwd (#3311) (d46b89b)
- tsconfig: downlevelIteration, incremental, tsBuildInfoFile added to compilerOptions (#3314) (681aa72)
- typescript: ts-jest now uses a non-deprecated implementation (#3201) (2ccae02)
- vscode: support input variables in launch config (#3166) (d24cbf6)
Bug Fixes
- awscdk-app-py: app sample code is created in
appEntrypoint
file (#3356) (5310c04), closes #3300 - cli: unclear error messages when using
projen new
with--from
(#3385) (6cca0b5) - deps: upgrade bundled dependencies (#3328) (f5a89f9)
- deps: upgrade bundled dependencies (#3349) (4f3ab75)
- deps: upgrade bundled dependencies (#3352) (67b3544)
- deps: upgrade bundled dependencies (#3402) (8041446)
- deps: upgrade bundled dependencies (#3424) (12df1d2)
- ESLint now handles zero extensions gracefully, task open for extension (#3220) (77532db)
- file: directory separators are inconsistent between platforms in metadata (#3374) (90fb41e)
- file: incorrectly detects file changes on Windows when isExecutable is set (#3107) (128c68d), closes /github.com/projen/projen/blob/f8a1ac04d4a635f39a511f2af205dc0a75294d74/src/util.ts#L421-L428
- github: bump peter-evans/create-pull-request to v6 (#3361) (e8fed11), closes #3337
- github: bump upload/download artifact actions to v4; resolves runtime deprecation warnings (#3335) (0fcbcb3)
- github: bump version of actions/checkout to v4; resolves runtime deprecation warnings (#3344) (c2b3a25)
- github: bump version of actions/setup-node to v4; resolves runtime deprecation warnings (#3345) (9281501)
- github: bump version of actions/setup-python to v5; resolves runtime deprecation warnings (#3346) (47d6959), closes #3337
- github: bump version of pnpm/action-setup to v3 (#3359) (2d5be25), closes #3337
- github: bump version of tibdex/github-app-token action; resolves runtime deprecation warnings (#3338) (d4bdfed)
- github: invalid commit for tibdex/github-app-token action (#3341) (8ed7e0e), closes #3338
- gitignore: paths separators are inconsistent for cross platform development (#3325) (7b37e5c), closes #3284
- jest: build fails when running with an old (<29) version of jest that is not explicitly specified as
jestVersion
(#3276) (fbc92f0), closes #3201 - jest: directory separators are inconsistent for cross platform development (#3370) (7ca6024), closes #3284
- jest: external TypeScript projects are created with outdated jest config (#3397) (7bbfe5c), closes #3396
- jest: ts-jest configuration spelling mistakes ([projen#3226](https:/...
v0.57.0
0.57.0 (2023-12-05)
⚠ BREAKING CHANGES
- python: Python >=3.8 is now required for projen and consequently for all projects. Upgrade to a supported Python version.
- json-patch: A failure of
JsonPatch.test
does not fail synthesis anymore. To preserve previous behavior, passTestFailureBehavior.FAIL_SYNTHESIS
as third parameter to theJsonPatch.test
call. - json-patch: Calls of
JsonPatch.test
are now only relevant to the scope of the list of patches passed toObjectFile.patch
. This should not break anything for truthy tests, and should not be relevant for failing tests. However, in case any issues are encountered, the previous behavior can be restored by placing allJsonPatch
es in a single call ofObjectFile.patch
. - gitlab: All
variables
are now Records of strings, as per documentation. If you are currently passing in a number, please convert it to a string. - node-package: This may potentially affect some edge cases that were relying on the internal implementation of the dependencies handling. If new dependencies appear/disappear after applying this fix, previous code
preSynthesize
handler should be inspected for any.addDependency
-like calls - those were incorrectly ignored previously and should be removed if actually are not needed. - upgrade-dependencies: When upgrading dependencies, installed packages are now checked for peer dependencies and updates will be filtered to satisfy respective version constraints. The previous behavior was to always upgrade to the latest minor version and ignore incompatible peer dependency constraints. To use the previous behavior, set
satisfyPeerDependencies: false
. - upgrade-dependencies: In v0.72.0 a bug was accidently introduced that causes peer dependencies to be always excluded from version upgrades. This releases fixes the issue. To not upgrade peer dependencies, only list desired dependency types in
types
.
Fixes projen#2874
Fixes projen#2875
Closes projen#1601
- upgrade-dependencies: the
renderUpgradePackagesCommand
has been removed fromNodePackage
. It should never have been used. Instead, configure the appropriatedepsUpgradeOptions
to control the upgrade task. If you render the upgrade command for a different purpose, you'll have to construct the command yourself according to the appropriate package manager. - github: To align the
PullRequestFromPatchOptions
interface with the newly introduced feature, two options have moved:
PullRequestFromPatchOptions.patch.workflowName
->PullRequestFromPatchOptions.workflowName
,PullRequestFromPatchOptions.ref
->PullRequestFromPatchOptions.patch.ref
. - The values of
JestConfigOptions.transforms
andJestConfigOptions.watchPlugins
have changed types and now use a dedicated class, in order to enable use in non-JS/TS languages. - node: default to node16
To use any other Node version, explicitly provide the desired version number - node: remove
jsii/superchain
image from AwsCdkConstructLibrary workflows - subproject: Projenrc components are no longer added to subprojects
When a project is a subproject, they do not require a projenrc file.
Previously a Projenrc component was added to every subproject.
To restore the previous behavior, you can manually add the requiredProjenrc
component to the project:
declare subproject: typescript.TypeScriptProject;
new typescript.Projenrc(subproject);
- python: The default Python version used for Poetry and Setuptools was updated to
>=3.7
as required by each of these packages. - gitlab: GitLab job names from the projen CI configuration will be preserved rather than changed to snake case
- github: If you have customized the
package-python
orpackage-dotnet
jobs of the release workflow, please review the changes for the release of the respective action.
actions/setup-python@v4: https://github.com/actions/setup-python/releases/tag/v4.0.0
actions/setup-dotnet@v3: https://github.com/actions/setup-dotnet/releases/tag/v3.0.0
- github: Requires self-hosted GitHub Actions runners to be updated to version 2.297.0 or greater.
- jest: Removal of
test:update
task whenalwaysUpdateSnapshots
is enabled (default is enabled). This task was exactly the same astest
which can be used instead. Alternatively setalwaysUpdateSnapshots
tofalse
to change the behavior oftest
and add an explicittest:update
task.
fixes projen#1144
Description
- As a lot of users is noticing, updating snapshot in task "test" is a unexpected behavior and it should be separated as "test:update" that already exists
- I believe that snapshot should not be updated in the
buildWorkflow
, because snapshot test is one important way to confirm that the auto updates doesn't break something. Although, I would try to keep the current behavior (updating snapshots inbuildWorkflow
) as a default to avoid breaking changes
Fix
- Deleted "--updateSnapshot" for the task "test"
- Added
alwaysUpdateSnapshots
option to keep the current behavior- Deleted "test:update" if
alwaysUpdateSnapshots
is true because it is confusing that "test:update" is doing the same thing- This can be a breaking change for people currently using "test:update", but I think it is easy enough to migrate to "test" or configuring
alwaysUpdateSnapshots
false, because it's doing almost same thing already
- This can be a breaking change for people currently using "test:update", but I think it is easy enough to migrate to "test" or configuring
- Deleted "test:update" if
- release: existing tags for prerelease not respected (projen#2098)
- add Project.commitGenerated prop (projen#1972)
- cdk8s: * python:
PytestSample
now requires an explicitmoduleName
, as part of the newoptions: PytestSampleOptions
parameter (replacingtestdir
). If you have aPythonProject
the module name is available frompythonProject.moduleName
. - cdk8s: In
Cdk8sTypeScriptApp
, information about the usedcdk8s
version are now available fromCdk8sTypeScriptApp.cdk8sDeps
. - circleci: WorkflowJob no longer has a parameters key, and the parameters key in Job is now an object with
description?
,type
, anddefault?
keys. - react:
reactTypeDef
is no longer exposed on React project types, andReactTypeDef
andReactTypeDefOptions
are deprecated. This file is now created as a sample file so it will be managed by the user (and they can edit it, delete it, etc.) instead of by projen. Create aSourceCode
file instead if you would like to use a managed react type definitions file in your project. - update GitHub actions to recent versions (projen#1890)
Features
- add
workflowContainerImage
toPublisher
(#2572) (9554bd7) - add Node.js 18 Lambda runtime (#2289) (133b10a)
- add Project.commitGenerated prop (#1972) (b578083)
- add runner group support (#2817) (9bdf7d0), closes #2814
- add smithy build support to projen (#1970) (b962f6a)
- add support for
cp
command on Windows using shx (#2004) (a7058b7) - add support for Git LFS (#2455) (adfcf6c)
- add support for gzip compression in latest jsii/file-redirect s… (#2025) (7a3ba34), closes #2024
- add support for package resolution overrides (#1902) (75d05ef), closes #1854
- add Yarnrc component for YARN_BERRY (#3048) (7a3883a), closes #2980
- Adding notes about forcing release versions (#2070) (274682b)
- adding steps for upgrading project to .ts file (#1995) (10551cf)
- allow prettier configuration in yaml (#2388) (8cba761), closes /github.com/projen/projen/blob/main/src/javascript/eslint.ts#L85
- auto-merge: rule name and queue name can be configured (#3135) (da981a3)
- awscdk: add experimental integ-runner support ([projen#2963](https://github.com/projen/proje...