Skip to content

Releases: jumic/projen

v0.34.0

03 Mar 07:24
11fd842
Compare
Choose a tag to compare

0.34.0 (2024-03-03)

⚠ 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 now esnext by default, to preserve previous behavior, set module to CommonJS.
  • nextjs: Next.js TSConfig moduleResolution is now BUNDLER by default, to preserve previous behavior, set moduleResolution to NODE.
  • nextjs: Next.js TSConfig strict is now set to true by default, to preserve previous behavior, set strict to false.
  • gitlab: current cache definitions will need to be changed into an array or will get a compile time exception.
  • 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.

Features

Read more

v0.33.0

25 Jul 11:32
ccb183b
Compare
Choose a tag to compare

0.33.0 (2023-07-25)

⚠ BREAKING CHANGES

  • 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)
  • typescript: EslintOptions.lintProjenRc is now a string
  • new versions of projen now require node v14, since node v12 reaches EOL on April 30, 2022.
  • The deprecated projenUpgradeSecret is removed, and GitHub API access is now customizable through githubOptions.projenCredentials.
  • Separate tasks/workflows for upgrading projen (and approving those PRs) are no longer generated by default. autoApproveProjenUpgrades, projenUpgradeAutoMerge, and projenUpgradeSchedulehave been correspondingly removed.
  • stale.yml GitHub workflow is no longer generated as the default behavior in projects. To keep generating it, specify stale: true or initialize a github.Stale component directly.
  • ReactProject's eject task now ejects the project from projen instead of ejecting from React.
  • Project.defaultTask is now optional as it may be undefined if a project is being ejected.
  • FileBase.PROJEN_MARKER is now deprecated, please use FileBase.marker instead. This value will be undefined if the project is being ejected.
  • cdk8s: The import task in the Cdk8sTypeScriptApp project now outputs to the src directory by default instead of the project root.

Features

Read more

v0.32.0

03 Jan 11:19
ef7ff81
Compare
Choose a tag to compare

0.32.0 (2022-01-03)

⚠ BREAKING CHANGES

  • jest: The method jest.addTypeScriptSupport() is no longer available. This code is now inside TypeScriptProject.
  • java: cdkVersion parameter of AwsCdkJavaApp no longer support caret (eg: "^1.136.0" ). That behavior is now controlled on whether cdkVersionPinning is set to true or false.
  • java: addCdkDependency method of AwsCdkJavaApp now expects fully qualified package names (eg: software.amazon.awscdk/aws-lambda).
  • eslint: Prettier configuration is now under a settings option instead (instead of prettierOptions: { bracketSpacing: false }, write prettierOptions: { settings: { bracketSpacing: false } }).
  • prettier: prettier.config is now called prettier.settings and DOES NOT include overrides.
  • node: The prettierIgnoreEnabled option is now under prettierOptions.ignoreFile and can be accessed via prettier.ignoreFile. Similarly, project.addPrettierIgnore() is now project.prettier.addIgnorePattern().
  • workflows: A secret called PROJEN_GITHUB_TOKEN with workflows, packages and repo scopes is now required for all projects. As much as this is a bit of a burden, most projects already have such a token because otherwise projen upgrade workflows cannot really function.
  • jsii: The package task now only produces an npm tarball. To create all language bindings, use package-all or package:LANG for a specific language.
  • NewProject has been renamed InitProject, and NewProjectOptionHints has been renamed InitProjectOptionHints
  • PythonProject is now initialized with a .projenrc.py file by default instead of .projenrc.js.
  • awscdk: LambdaFunction and AutoDiscover now requires cdkDeps so they can interact with CDK version manager.
  • awscdk: The cdkVersion and constructsVersion options are now semver ranges and not just specific versions. To enable the previous behavior, use a caret prefix ^.
  • awscdk: LambdaFunction and AutoDiscover now requires cdkDeps so they can interact with CDK version manager.
  • the default version of @types/node installed if no
    minNodeVersion is specified on Node projects is now ^12 instead of
    ^14.
  • release: npmDistTag only effects publishing (and supported for each release branch) setting and so it is no longer set in package.json.
  • workflow.addJobsLater() is no longer supported. Use postSynthesis hooks and call .addJobs() as needed.
  • publish:xxxx tasks for automated releases are not defined by default since normally they should only be executed from within workflows. Set publishingTasks: true to create them.
  • awscdk-construct: cdkVersion default value updated to 2.0.0
  • cdkAssert deprecated and default changed to false
  • new property cdkAssertions added and defaulted to true

Features

Bug Fixes

Read more

v0.31.0

07 Dec 17:35
87fbb27
Compare
Choose a tag to compare

0.31.0 (2021-12-07)

⚠ BREAKING CHANGES

  • awscdk-construct: awscdk.AutoDiscover and awscdk.IntegrationTest now require tsconfigPath.
  • dependency cycles between submodules in Python and Go (projen#1286)

Features

  • allow customising or disabling git-push used by manual release (#1282) (ae786c2), closes #1267
  • support specifiying alternative github runner (#1296) (87fbb27), closes #1295

Bug Fixes

v0.30.0

01 Dec 20:26
6532fc9
Compare
Choose a tag to compare

0.30.0 (2021-12-01)

⚠ BREAKING CHANGES

  • cdk8s: cdk8s-plus is not included automatically in cdk8s project. Users need to add this dependency explicitly.
  • awscdk: AutoDiscover now requires testdir.
  • node: minor tweaks of the LambdaFunction and Bundler APIs.
  • It is now impossible to modify the build task. Instead, extend one of the specific build phases (precompile, compile, post compile, test and package). To access these tasks use project.xxxTask.
  • The compileBeforeTest option in TypeScriptProject is not supported any more. Tests are always executed after compilation.
  • projenDuringBuild is no longer supported. Let us know if you have a use case for it that we are not aware of.

Features

Bug Fixes

v0.29.1

05 Nov 20:34
891b9ef
Compare
Choose a tag to compare

0.29.1 (2021-11-05)

Features

Bug Fixes

v0.29.0

01 Nov 17:17
955e0c8
Compare
Choose a tag to compare

0.29.0 (2021-11-01)

⚠ BREAKING CHANGES

  • awscdk: CdkApprovalLevel is now awscdk.ApprovalLevel.
  • awscdk: cdkTypeScriptApp.cdkConfig now refers to a awscdk.CdkConfig object. To add custom fields to cdk.json use cdkTypeScriptApp.cdkConfig.json.
  • typescript: nodeProject.testCompileTask has been removed.
  • typescript: tsconfig.jest.json and tsconfig.eslint.json are now combined into a single tsconfig.dev.json. You can interact with this file it via the typescriptProject.tsconfigDev property.
  • jest: The method generateTypescriptConfig() has been replaced with addTypeScriptSupport().
  • project.github.workflows has been renamed project.github.workflowsEnabled - project.github.workflows now returns an array of all GithubWorkflow instances in the project.

Features

Bug Fixes

v0.28.0

18 Sep 19:01
634d972
Compare
Choose a tag to compare

0.28.0 (2021-09-18)

⚠ BREAKING CHANGES

  • The default minimum Node.js version for node projects is now 14.x since Node 10.x is now end-of-life. Therefore we also change the default build container for JSII projects is now jsii/superchain:node14.

Co-authored-by: Elad Ben-Israel [email protected]

Features

Bug Fixes

v0.27.30

31 Aug 12:21
e66a80f
Compare
Choose a tag to compare

0.27.30 (2021-08-31)

Features

Bug Fixes

v0.27.29

24 Aug 20:50
be7c9fc
Compare
Choose a tag to compare

0.27.29 (2021-08-24)

Bug Fixes

  • release: path in npmRegistry not considered (#985) (84a0ddb), closes #984
  • upgrade: set commit author in upgrade workflow (#989) (2a756a3)