Skip to content

v0.57.0

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Dec 04:20
· 324 commits to refs/heads/main since this release
2b1d78d

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, pass TestFailureBehavior.FAIL_SYNTHESIS as third parameter to the JsonPatch.test call.
  • json-patch: Calls of JsonPatch.test are now only relevant to the scope of the list of patches passed to ObjectFile.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 all JsonPatches in a single call of ObjectFile.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 from NodePackage. It should never have been used. Instead, configure the appropriate depsUpgradeOptions 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 and JestConfigOptions.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 required Projenrc 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 or package-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 when alwaysUpdateSnapshots is enabled (default is enabled). This task was exactly the same as test which can be used instead. Alternatively set alwaysUpdateSnapshots to false to change the behavior of test and add an explicit test: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 in buildWorkflow) 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
  • release: existing tags for prerelease not respected (projen#2098)
  • add Project.commitGenerated prop (projen#1972)
  • cdk8s: * python: PytestSample now requires an explicit moduleName, as part of the new options: PytestSampleOptions parameter (replacing testdir). If you have a PythonProject the module name is available from pythonProject.moduleName.
  • cdk8s: In Cdk8sTypeScriptApp, information about the used cdk8s version are now available from Cdk8sTypeScriptApp.cdk8sDeps.
  • circleci: WorkflowJob no longer has a parameters key, and the parameters key in Job is now an object with description?, type, and default? keys.
  • react: reactTypeDef is no longer exposed on React project types, and ReactTypeDef and ReactTypeDefOptions 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 a SourceCode 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

Bug Fixes