@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
319 lines (318 loc) • 9.59 kB
TypeScript
import type { github, GitOptions, IgnoreFileOptions, LoggerOptions, Project, ProjectType, ProjenrcJsonOptions, python, RenovatebotOptions, SampleReadmeProps } from 'projen';
/**
* PythonProjectOptions
*/
export interface PythonProjectOptions {
/**
* 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;
/**
* This is the name of your project.
* @default $BASEDIR
* @stability experimental
* @featured true
*/
readonly name?: string;
}