Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Jun 12:52
· 779 commits to refs/heads/main since this release
3e51bec

0.6.0 (2022-06-02)

⚠ BREAKING CHANGES

  • 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.
  • 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
  • awscdk-construct: awscdk.AutoDiscover and awscdk.IntegrationTest now require tsconfigPath.
  • dependency cycles between submodules in Python and Go (projen#1286)
  • 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.
  • 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.
  • 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 benisrae@amazon.com

  • nextjs: Removed web.NextJsTypeDef component. This file is automatically managed by Next.js - delete the one created by projen and let it regenerate if you run into errors.
  • auto-merge: AutoMerge now expects a GitHub component as its first argument, and no longer requires Mergify to be provided.
  • Publisher is now release.Publisher
  • Task categories have been removed.
  • projen new: projen new will no longer ask you if you want to create a git repository nor push the initial commit to github. By default, it will create a repo and a commit (which you will need to push yourself). Use --no-git to disable.
  • node: DependabotOptions.autoMerge was removed. Pass project.autoApprove.label into DependabotOptions.labels instead. In addition, projenUpgradeAutoMerge now defaults to false.
  • release: The releaseWorkflows is now a map instead of an array.
  • release: The initialVersion option has been removed. The default is v0.1.0 or vMM.0.0.
  • project: The mergifyAutoMerge option in NodeProjectOptions
    has been removed. To auto merge PRs, use the 'auto approve'
    functionality via the autoApproveOptions option.
  • release: task.toShellCommand() has been removed, as well as the option to render npm scripts as shell commands. Maintaining this task rendition is too expensive and limits the ability to expand the task system.
  • tasks: The Task initializer no longer takes Tasks as the first argument (no longer needed).
  • node: The npmTaskExecution option has been removed.
  • license: The initializer of the License now takes spdx through the options struct instead of a positional argument. Additionally, an error is thrown if MIT license is selected but the copyrightOwner is not provided (because it is required in the license text).
  • github: the GitHub Workflow triggers and job
    keys now use camelCase instead of snake_case or
    kebab-case.
  • version numbers are now maintained through git tags instead of version.json. This file should be deleted alongside the CHANGELOG.md file. Change log entries are now included inside a GitHub Release.
  • @projen rebuild is no longer supported due to a security issue.
  • as we migrate the default value of defaultReleaseBranch from master to main, this option will be required and an error will be printed if the value is not set. We will make this optional in a future release.
  • Projects created with projen will now default to using the main branch.
  • GithubWorkflow no longer extends FileBase. Use workflow.file instead to access file properties.
  • project project.tryFindJsonFile() is now deprecated. Use tryFindObjectFile() instead.
  • project The obj field on files is now private. Use file.addOverride() to make changes instead.
  • the java option in jsii projects is now called publishToMaven.
  • node: The libdir, srcdir and testdir options are no longer available in NodeProject. Instead they are available in specific project types like typescript, nextjs and react.
  • the name option is now required for all project types.
  • node: Version.resolveVersion(outdir) is now Version.version.
  • NodeProjectCommonOptions is now NodePackageOptions.
  • all deprecated dependencies APIs have been removed.
warn - PROP projen.NodeProjectCommonOptions.bundledDependencies: has been removed [removed:projen.NodeProjectCommonOptions.bundledDependencies]
warn - PROP projen.NodeProjectCommonOptions.dependencies: has been removed [removed:projen.NodeProjectCommonOptions.dependencies]
warn - PROP projen.NodeProjectCommonOptions.devDependencies: has been removed [removed:projen.NodeProjectCommonOptions.devDependencies]
warn - PROP projen.NodeProjectCommonOptions.peerDependencies: has been removed [removed:projen.NodeProjectCommonOptions.peerDependencies]
warn - PROP projen.NodeProjectOptions.bundledDependencies: has been removed [removed:projen.NodeProjectOptions.bundledDependencies]
warn - PROP projen.NodeProjectOptions.dependencies: has been removed [removed:projen.NodeProjectOptions.dependencies]
warn - PROP projen.NodeProjectOptions.devDependencies: has been removed [removed:projen.NodeProjectOptions.devDependencies]
warn - PROP projen.NodeProjectOptions.peerDependencies: has been removed [removed:projen.NodeProjectOptions.peerDependencies]
  • node: bootstrapTask is no longer available. To obtain the bootstrapping steps for GitHub workflows, use installWorkflowSteps.
  • node: the workflowBootstrapSteps is no longer available. The equivalent is [ { uses: 'actions/checkout@v2' }, project.installWorkflowSteps ].
  • node: the NodeBuildWorkflowOptions struct is no now internal.

Features

Bug Fixes