UNPKG

@aws/pdk

Version:

All documentation is located at: https://aws.github.io/aws-pdk

429 lines (428 loc) 13.6 kB
import type { awscdk, github, GitOptions, IgnoreFileOptions, LoggerOptions, Project, ProjectType, ProjenrcJsonOptions, python, RenovatebotOptions, SampleReadmeProps } from 'projen'; /** * AwsCdkPythonAppOptions */ export interface AwsCdkPythonAppOptions { /** * Python sources directory. * @default "tests" * @stability experimental */ readonly testdir?: string; /** * Minimum version of the `constructs` library to depend on. * @default - for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5". * @stability experimental */ readonly constructsVersion?: string; /** * Use pinned version instead of caret version for CDK. * You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. * If you use experimental features this will let you define the moment you include breaking changes. * @stability experimental */ readonly cdkVersionPinning?: boolean; /** * AWS CDK modules required for testing. * @deprecated For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead * @stability deprecated */ readonly cdkTestDependencies?: Array<string>; /** * If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). * This is to ensure that downstream consumers actually have your CDK dependencies installed * when using npm < 7 or yarn, where peer dependencies are not automatically installed. * If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure * they are present during development. * * Note: this setting only applies to construct library projects * @default true * @deprecated Not supported in CDK v2. * @stability deprecated */ readonly cdkDependenciesAsDeps?: boolean; /** * Which AWS CDKv1 modules this project requires. * @deprecated For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library) * @stability deprecated */ readonly cdkDependencies?: Array<string>; /** * Install the assertions library? * Only needed for CDK 1.x. If using CDK 2.x then * assertions is already included in 'aws-cdk-lib' * @default - will be included by default for AWS CDK >= 1.111.0 < 2.0.0 * @stability experimental */ readonly cdkAssertions?: boolean; /** * Warning: NodeJS only. * Install the * @default - will be included by default for AWS CDK >= 1.0.0 < 2.0.0 * @deprecated The * @stability deprecated * @aws-cdk /assertions (in V1) and included in `aws-cdk-lib` for V2. */ readonly cdkAssert?: boolean; /** * Minimum version of the AWS CDK to depend on. * @default "2.1.0" * @stability experimental */ readonly cdkVersion?: string; /** * Glob patterns to include in `cdk watch`. * @default [] * @stability experimental */ readonly watchIncludes?: Array<string>; /** * Glob patterns to exclude from `cdk watch`. * @default [] * @stability experimental */ readonly watchExcludes?: Array<string>; /** * To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. * @default ApprovalLevel.BROADENING * @stability experimental */ readonly requireApproval?: awscdk.ApprovalLevel; /** * Include all feature flags in cdk.json. * @default true * @stability experimental */ readonly featureFlags?: boolean; /** * Additional context to include in `cdk.json`. * @default - no additional context * @stability experimental */ readonly context?: Record<string, any>; /** * cdk.out directory. * @default "cdk.out" * @stability experimental */ readonly cdkout?: string; /** * A command to execute before synthesis. * This command will be called when * running `cdk synth` or when `cdk watch` identifies a change in your source * code before redeployment. * @default - no build command * @stability experimental */ readonly buildCommand?: string; /** * Use setuptools with a setup.py script for packaging and publishing. * @default - true, unless poetry is true, then false * @stability experimental * @featured true */ readonly setuptools?: boolean; /** * Include sample code and test if the relevant directories don't exist. * @default true * @stability experimental */ readonly sample?: boolean; /** * pytest options. * @default - defaults * @stability experimental */ readonly pytestOptions?: python.PytestOptions; /** * Include pytest tests. * @default true * @stability experimental * @featured true */ readonly pytest?: boolean; /** * Options related to projenrc in python. * @default - default options * @stability experimental */ readonly projenrcPythonOptions?: python.ProjenrcOptions; /** * List of dev dependencies for this project. * Dependencies use the format: `<module>@<semver>` * * Additional dependencies can be added via `project.addDevDependency()`. * @default [] * @stability experimental * @featured true */ readonly devDeps?: Array<string>; /** * List of runtime dependencies for this project. * Dependencies use the format: `<module>@<semver>` * * Additional dependencies can be added via `project.addDependency()`. * @default [] * @stability experimental * @featured true */ readonly deps?: Array<string>; /** * Name of the python package as used in imports and filenames. * Must only consist of alphanumeric characters and underscores. * @default $PYTHON_MODULE_NAME * @stability experimental */ readonly moduleName?: string; /** * Path to the python executable to use. * @default "python" * @stability experimental */ readonly pythonExec?: string; /** * Additional fields to pass in the setup() function if using setuptools. * @stability experimental */ readonly setupConfig?: Record<string, any>; /** * Additional options to set for poetry if using poetry. * @stability experimental */ readonly poetryOptions?: python.PoetryPyprojectOptionsWithoutDeps; /** * Package name. * @stability experimental */ readonly packageName?: string; /** * License of this package as an SPDX identifier. * @stability experimental */ readonly license?: string; /** * A URL to the website of the project. * @stability experimental */ readonly homepage?: string; /** * A short description of the package. * @stability experimental * @featured true */ readonly description?: string; /** * A list of PyPI trove classifiers that describe the project. * @stability experimental */ readonly classifiers?: Array<string>; /** * Version of the package. * @default "0.1.0" * @stability experimental * @featured true */ readonly version?: string; /** * Author's name. * @default $GIT_USER_NAME * @stability experimental */ readonly authorName?: string; /** * Author's e-mail. * @default $GIT_USER_EMAIL * @stability experimental */ readonly authorEmail?: string; /** * Enable VSCode integration. * Enabled by default for root projects. Disabled for non-root projects. * @default true * @stability experimental */ readonly vscode?: boolean; /** * Auto-close stale issues and pull requests. * To disable set `stale` to `false`. * @default - see defaults in `StaleOptions` * @stability experimental */ readonly staleOptions?: github.StaleOptions; /** * Auto-close of stale issues and pull request. * See `staleOptions` for options. * @default false * @stability experimental */ readonly stale?: boolean; /** * The README setup. * @default - { filename: 'README.md', contents: '# replace this' } * @stability experimental */ readonly readme?: SampleReadmeProps; /** * The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. * This token needs to have the `repo`, `workflows` * and `packages` scope. * @default "PROJEN_GITHUB_TOKEN" * @deprecated use `projenCredentials` * @stability deprecated */ readonly projenTokenSecret?: string; /** * Choose a method of providing GitHub API access for projen workflows. * @default - use a personal access token named PROJEN_GITHUB_TOKEN * @stability experimental */ readonly projenCredentials?: github.GithubCredentials; /** * Which type of project this is (library/app). * @default ProjectType.UNKNOWN * @deprecated no longer supported at the base project level * @stability deprecated */ readonly projectType?: ProjectType; /** * Options for mergify. * @default - default options * @deprecated use `githubOptions.mergifyOptions` instead * @stability deprecated */ readonly mergifyOptions?: github.MergifyOptions; /** * Whether mergify should be enabled on this repository or not. * @default true * @deprecated use `githubOptions.mergify` instead * @stability deprecated */ readonly mergify?: boolean; /** * Add a Gitpod development environment. * @default false * @stability experimental */ readonly gitpod?: boolean; /** * Options for GitHub integration. * @default - see GitHubOptions * @stability experimental */ readonly githubOptions?: github.GitHubOptions; /** * Enable GitHub integration. * Enabled by default for root projects. Disabled for non-root projects. * @default true * @stability experimental */ readonly github?: boolean; /** * Add a VSCode development environment (used for GitHub Codespaces). * @default false * @stability experimental */ readonly devContainer?: boolean; /** * Add a `clobber` task which resets the repo to origin. * @default - true, but false for subprojects * @stability experimental */ readonly clobber?: boolean; /** * Configure options for automatic merging on GitHub. * Has no effect if * `github.mergify` or `autoMerge` is set to false. * @default - see defaults in `AutoMergeOptions` * @stability experimental */ readonly autoMergeOptions?: github.AutoMergeOptions; /** * Enable automatic merging on GitHub. * Has no effect if `github.mergify` * is set to false. * @default true * @stability experimental */ readonly autoMerge?: boolean; /** * Enable and configure the 'auto approve' workflow. * @default - auto approve is disabled * @stability experimental */ readonly autoApproveOptions?: github.AutoApproveOptions; /** * Options for renovatebot. * @default - default options * @stability experimental */ readonly renovatebotOptions?: RenovatebotOptions; /** * Use renovatebot to handle dependency upgrades. * @default false * @stability experimental */ readonly renovatebot?: boolean; /** * Options for .projenrc.json. * @default - default options * @stability experimental */ readonly projenrcJsonOptions?: ProjenrcJsonOptions; /** * Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. * @default false * @stability experimental */ readonly projenrcJson?: boolean; /** * The shell command to use in order to run the projen CLI. * Can be used to customize in special environments. * @default "npx projen" * @stability experimental */ readonly projenCommand?: string; /** * The parent project, if this project is part of a bigger project. * @stability experimental */ readonly parent?: Project; /** * The root directory of the project. * Relative to this directory, all files are synthesized. * * If this project has a parent, this directory is relative to the parent * directory and it cannot be the same as the parent or any of it's other * subprojects. * @default "." * @stability experimental */ readonly outdir?: string; /** * Configure logging options such as verbosity. * @default {} * @stability experimental */ readonly logging?: LoggerOptions; /** * Configuration options for git. * @stability experimental */ readonly gitOptions?: GitOptions; /** * Configuration options for .gitignore file. * @stability experimental */ readonly gitIgnoreOptions?: IgnoreFileOptions; /** * Whether to commit the managed files by default. * @default true * @stability experimental */ readonly commitGenerated?: boolean; /** * @default $BASEDIR */ readonly name: string; }