%global _empty_manifest_terminate_build 0 Name: python-projen Version: 0.71.7 Release: 1 Summary: CDK for software projects License: Apache-2.0 URL: https://github.com/projen/projen.git Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f5/7c/ec907e1c77c3813a5b1775b7e6875df95cc8c1f5f3e1320c28044c669329/projen-0.71.7.tar.gz BuildArch: noarch Requires: python3-jsii Requires: python3-publication Requires: python3-typeguard %description

projen

Define and maintain complex project configuration through code.

DocumentationChangelogProject typesJoin the community

Apache 2.0 License Gitpod ready-to-code Build badge Release badge Commit activity


*projen* synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript. As opposed to existing templating/scaffolding tools, *projen* is not a one-off generator. Synthesized files should never be manually edited (in fact, projen enforces that). To modify your project setup, users interact with rich strongly-typed class and execute `projen` to update their project configuration files. By defining a custom project type and using projen in multiple repositories, it's possible to update configuration files and CI/CD workflows across dozens (or hundreds!?) of projects. Check out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator. ## Getting Started *projen* doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run *projen* which takes care of all required setup steps. To create a new project, run the following command and follow the instructions: ```console $ mkdir my-project $ cd my-project $ npx projen new PROJECT-TYPE 馃 Synthesizing project... ... ``` ### Project types Currently supported project types (use `npx projen new` without a type for a full list): **Built-in:** (run `npx projen new `) * [awscdk-app-java](https://projen.io/api/API.html#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java. * [awscdk-app-py](https://projen.io/api/API.html#projen-awscdk-awscdkpythonapp) - AWS CDK app in Python. * [awscdk-app-ts](https://projen.io/api/API.html#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript. * [awscdk-construct](https://projen.io/api/API.html#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project. * [cdk8s-app-py](https://projen.io/api/API.html#projen-cdk8s-cdk8spythonapp) - CDK8s app in Python. * [cdk8s-app-ts](https://projen.io/api/API.html#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript. * [cdk8s-construct](https://projen.io/api/API.html#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project. * [cdktf-construct](https://projen.io/api/API.html#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project. * [java](https://projen.io/api/API.html#projen-java-javaproject) - Java project. * [jsii](https://projen.io/api/API.html#projen-cdk-jsiiproject) - Multi-language jsii library project. * [nextjs](https://projen.io/api/API.html#projen-web-nextjsproject) - Next.js project without TypeScript. * [nextjs-ts](https://projen.io/api/API.html#projen-web-nextjstypescriptproject) - Next.js project with TypeScript. * [node](https://projen.io/api/API.html#projen-javascript-nodeproject) - Node.js project. * [project](https://projen.io/api/API.html#projen-project) - Base project. * [python](https://projen.io/api/API.html#projen-python-pythonproject) - Python project. * [react](https://projen.io/api/API.html#projen-web-reactproject) - React project without TypeScript. * [react-ts](https://projen.io/api/API.html#projen-web-reacttypescriptproject) - React project with TypeScript. * [typescript](https://projen.io/api/API.html#projen-typescript-typescriptproject) - TypeScript project. * [typescript-app](https://projen.io/api/API.html#projen-typescript-typescriptappproject) - TypeScript app. **External:** (run `npx projen new --from `) * [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project. > Use `npx projen new PROJECT-TYPE --help` to view a list of command line > switches that allows you to specify most project options during bootstrapping. > For example: `npx projen new jsii --author-name "Jerry Berry"`. The `new` command will create a `.projenrc.js` file which looks like this for `jsii` projects: ```js const { JsiiProject } = require('projen'); const project = new JsiiProject({ authorAddress: "elad.benisrael@gmail.com", authorName: "Elad Ben-Israel", name: "foobar", repository: "https://github.com/eladn/foobar.git", }); project.synth(); ``` This program instantiates the project type with minimal setup, and then calls `synth()` to synthesize the project files. By default, the `new` command will also execute this program, which will result in a fully working project. Once your project is created, you can configure your project by editing `.projenrc.js` and re-running `npx projen` to synthesize again. > The files generated by *projen* are considered an "implementation detail" and > *projen* protects them from being manually edited (most files are marked > read-only, and an "anti tamper" check is configured in the CI build workflow > to ensure that files are not updated during build). For example, to setup PyPI publishing in `jsii` projects, you can use [`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget): ```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } }); ``` Run: ```shell npx projen ``` And you'll notice that your `package.json` file now contains a `python` section in its `jsii` config and the GitHub `release.yml` workflow includes a PyPI publishing step. We recommend to put this in your shell profile, so you can simply run `pj` every time you update `.projenrc.js`: ```bash alias pj='npx projen' ``` Most projects come with an assortment of **tasks** that handle various development activities, from compiling to publishing. Tasks can be and composed together, and can be run as local commands or turned into GitHub workflows. You can list all tasks with `npx projen --help`: ```shell $ npx projen --help projen [command] Commands: projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project projen clobber hard resets to HEAD of origin and cleans the local repo projen compile Only compile projen test Run tests projen build Full release build (test+compile) projen upgrade upgrade dependencies (including projen) ... ``` The `build` task is the same task that's executed in your CI builds. It typically compiles, lints, tests and packages your module for distribution. ### Shell Completions If installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run: ```shell # Bash projen completion >> ~/.bashrc # ZSH projen completion >> ~/.zshrc ``` ## Features Some examples for features built-in to project types: * Fully synthesize `package.json` * Standard npm scripts like `compile`, `build`, `test`, `package` * eslint * Jest * jsii: compile, package, api compatibility checks, API.md * Bump & release scripts with CHANGELOG generation based on conventional commits * Automated PR builds * Automated releases to npm, maven, NuGet and PyPI * Automated dependency upgrades * Mergify configuration * LICENSE file generation * gitignore + npmignore management * Node "engines" support with coupling to CI build environment and @types/node * Anti-tamper: CI builds will fail if a synthesized file is modified manually ## Documentation For documentation including examples and a full API reference, visit [https://projen.io/](https://projen.io/). ## Ecosystem *projen* takes a "batteries included" approach and aims to offer dozens of different project types out of the box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`, `projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)... Adding new project types is as simple as submitting a pull request to this repo and exporting a class that extends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your type will immediately be available in `projen new`. ### Projects in external modules *projen* is bundled with many project types out of the box, but it can also work with project types and components defined in external jsii modules (the reason we need jsii is because projen uses the jsii metadata to discover project types & options in projen new). Say we have a module in npm called `projen-vuejs` which includes a single project type for vue.js: ```bash $ npx projen new --from projen-vuejs ``` If the referenced module includes multiple project types, the type is required. Switches can also be used to specify initial values based on the project type APIs. You can also use any package syntax supported by [yarn add](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like `projen-vuejs@1.2.3`, `file:/path/to/local/folder`, `git@github.com/awesome/projen-vuejs#1.2.3`, etc. ```bash $ npx projen new --from projen-vuejs@^2 vuejs-ts --description "my awesome vue project" ``` Under the hood, `projen new` will install the `projen-vuejs` module from npm (version 2.0.0 and above), discover the project types in it and bootstrap the `vuejs-ts` project type. It will assign the value `"my awesome vue project"` to the `description` field. If you examine your `.projenrc.js` file, you'll see that `projen-vuejs` is defined as a dev dependency: ```javascript const { VueJsProject } = require('projen-vuejs'); const project = new VueJsProject({ name: 'my-vuejs-sample', description: "my awesome vue project", // ... devDeps: [ 'projen-vuejs' ] }); project.synth(); ``` ## Roadmap See [Vision](./VISION.md). ## FAQ ### Do I have to write my configuration in JavaScript? Not at all! JavaScript is the default, but it's also possible to write it in Java, TypeScript, or even JSON. Python support is also planned. This is made possible by the [jsii](https://github.com/aws/jsii) library which allows us to write APIs once and generate libraries in several languages. You can choose a different language by passing the `--projenrc-ts`, `--projenrc-java`, or `--projenrc-json` flags when running `projen new`. Note: using a `.projenrc.json` file to specify configuration only allows accessing a subset of the entire API - the options which are passed to the constructor of each project type. ### How does projen work with my IDE? projen has an unofficial [VS Code extension](https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen). Check it out! ## Community The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/) community Slack workspace. ### Virtual Meetup * Thursday June 30, 2022 * 1-2pm America/New_York (EDT) * [CFP](https://bit.ly/3NEc0UQ) a Google Form * CFP Closes Saturday April 30, 2022 * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success) ## Contributions Contributions of all kinds are welcome! Check out our [contributor's guide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md). For a quick start, check out a development environment: ```bash $ git clone git@github.com:projen/projen $ cd projen $ yarn $ yarn watch # compile in the background ``` Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): [![All Contributors](https://img.shields.io/badge/all_contributors-121-orange.svg?style=flat-square)](#contributors-)
 Aatman
Aatman

馃捇
Adam Elmore
Adam Elmore

馃捇
Adrian Dimech
Adrian Dimech

馃捇
Adrian Mace
Adrian Mace

馃捇
Alexander Forsyth
Alexander Forsyth

馃捇
Alexander Steppke
Alexander Steppke

馃捇
Amani Kilumanga
Amani Kilumanga

馃捇
Amin Fazl
Amin Fazl

馃捇
Amir Szekely
Amir Szekely

馃捇
Andrew Hammond
Andrew Hammond

馃捇
Ansgar Mertens
Ansgar Mertens

馃捇
Arun Donti
Arun Donti

馃捇
Ash
Ash

馃捇
Balagopal Kanattil
Balagopal Kanattil

馃捇
Bart Callant
Bart Callant

馃捇
Bilal Quadri
Bilal Quadri

馃捇
Boris Petersen
Boris Petersen

馃捇
Brandon Miller
Brandon Miller

馃捇
Brian Leonard
Brian Leonard

馃捇
Calvin Combs
Calvin Combs

馃捇
Campion Fellin
Campion Fellin

馃捇
Chris Gatt
Chris Gatt

馃捇
Christopher Rybicki
Christopher Rybicki

馃捇
Cory Hall
Cory Hall

馃捇
Cristian Pallar茅s
Cristian Pallar茅s

馃捇
Daniel Schmidt
Daniel Schmidt

馃捇
Danny Steenman
Danny Steenman

馃捇
Eduardo Rodrigues
Eduardo Rodrigues

馃捇
Elad Ben-Israel
Elad Ben-Israel

馃捇
Eli Polonsky
Eli Polonsky

馃捇
Eugene Cheung
Eugene Cheung

馃捇
Grady Barrett
Grady Barrett

馃捇
Greg Herlein
Greg Herlein

馃捇
Hasan
Hasan

馃捇
Hassan Azhar
Hassan Azhar

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Heiko Rothe
Heiko Rothe

馃捇
Henri Yandell
Henri Yandell

馃捇
Henry Sachs
Henry Sachs

馃捇
Hoseung
Hoseung

馃捇
Ikko Ashimine
Ikko Ashimine

馃捇
Jack Stevenson
Jack Stevenson

馃捇
Jacob
Jacob

馃捇
Jake Pearson
Jake Pearson

馃捇
Jan Brauer
Jan Brauer

馃捇
Jeff Malins
Jeff Malins

馃捇
Jeremy Jonas
Jeremy Jonas

馃捇
JoLo
JoLo

馃捇
Jonathan Goldwasser
Jonathan Goldwasser

馃捇
Joost van der Waal
Joost van der Waal

馃捇
Jordan Sinko
Jordan Sinko

馃捇
Joseph Egan
Joseph Egan

馃捇
Josh Kellendonk
Josh Kellendonk

馃捇
Juho Saarinen
Juho Saarinen

馃捇
Julian Michel
Julian Michel

馃捇
Kaizen Conroy
Kaizen Conroy

馃捇
Kenneth Winner
Kenneth Winner

馃捇
Kraig Amador
Kraig Amador

馃捇
Kunal Dabir
Kunal Dabir

馃捇
Lex Felix
Lex Felix

馃捇
Manuel
Manuel

馃捇
Marcio Cruz de Almeida
Marcio Cruz de Almeida

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark Nielsen
Mark Nielsen

馃捇
Marnix Dessing
Marnix Dessing

馃捇
Martin Muller
Martin Muller

馃捇
Masashi Tomooka
Masashi Tomooka

馃捇
Matt Gucci
Matt Gucci

馃捇
Matt Martz
Matt Martz

馃捇
Matteo Sessa
Matteo Sessa

馃捇
Matthew Bonig
Matthew Bonig

馃捇
Matthew Gamble
Matthew Gamble

馃捇
Max K枚rlinge
Max K枚rlinge

馃捇
Mayur Mahrotri
Mayur Mahrotri

馃捇
Mike
Mike

馃捇
Mitchell Valine
Mitchell Valine

馃捇
Momo Kornher
Momo Kornher

馃捇
Neil Kuan
Neil Kuan

馃捇
Nick Lynch
Nick Lynch

馃捇
Nicolas Byl
Nicolas Byl

馃捇
Nikhil Zadoo
Nikhil Zadoo

馃捇
Niraj Palecha
Niraj Palecha

馃捇
Pahud Hsieh
Pahud Hsieh

馃捇
Patrick
Patrick

馃捇
Patrick Florek
Patrick Florek

馃捇
Philip M. Gollucci
Philip M. Gollucci

馃捇
Philipp Garbe
Philipp Garbe

馃捇
Rafal Wilinski
Rafal Wilinski

馃捇
Rico Huijbers
Rico Huijbers

馃捇
Rodrigo Farias Rezino
Rodrigo Farias Rezino

馃捇
Roger Chi
Roger Chi

馃捇
Romain Marcadier
Romain Marcadier

馃捇
Ryan Sonshine
Ryan Sonshine

馃捇
Samuel Tschiedel
Samuel Tschiedel

馃捇
Saud Khanzada
Saud Khanzada

馃捇
Sebastian Korfmann
Sebastian Korfmann

馃捇
Shawn MacIntyre
Shawn MacIntyre

馃捇
Suhas Gaddam
Suhas Gaddam

馃捇
Thomas Klinger
Thomas Klinger

馃捇
Thorsten Hoeger
Thorsten Hoeger

馃捇
Tiara
Tiara

馃捇
Tobias
Tobias

馃捇
Tom Howard
Tom Howard

馃捇
Tom Keller
Tom Keller

馃捇
Tomasz 艁akomy
Tomasz 艁akomy

馃捇
Travis Martensen
Travis Martensen

馃捇
Will Dady
Will Dady

馃捇
Yigong Liu
Yigong Liu

馃捇
Yohta Kimura
Yohta Kimura

馃捇
andrestone
andrestone

馃捇
codeLeeek
codeLeeek

馃捇
flyingImer
flyingImer

馃捇
huaxk
huaxk

馃捇
john-tipper
john-tipper

馃捇
karlderkaefer
karlderkaefer

馃捇
lmarsden
lmarsden

馃捇
michaeltimbs
michaeltimbs

馃捇
orlandronen1
orlandronen1

馃捇
pvbouwel
pvbouwel

馃捇
## License Distributed under the [Apache-2.0](./LICENSE) license. %package -n python3-projen Summary: CDK for software projects Provides: python-projen BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-projen

projen

Define and maintain complex project configuration through code.

DocumentationChangelogProject typesJoin the community

Apache 2.0 License Gitpod ready-to-code Build badge Release badge Commit activity


*projen* synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript. As opposed to existing templating/scaffolding tools, *projen* is not a one-off generator. Synthesized files should never be manually edited (in fact, projen enforces that). To modify your project setup, users interact with rich strongly-typed class and execute `projen` to update their project configuration files. By defining a custom project type and using projen in multiple repositories, it's possible to update configuration files and CI/CD workflows across dozens (or hundreds!?) of projects. Check out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator. ## Getting Started *projen* doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run *projen* which takes care of all required setup steps. To create a new project, run the following command and follow the instructions: ```console $ mkdir my-project $ cd my-project $ npx projen new PROJECT-TYPE 馃 Synthesizing project... ... ``` ### Project types Currently supported project types (use `npx projen new` without a type for a full list): **Built-in:** (run `npx projen new `) * [awscdk-app-java](https://projen.io/api/API.html#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java. * [awscdk-app-py](https://projen.io/api/API.html#projen-awscdk-awscdkpythonapp) - AWS CDK app in Python. * [awscdk-app-ts](https://projen.io/api/API.html#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript. * [awscdk-construct](https://projen.io/api/API.html#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project. * [cdk8s-app-py](https://projen.io/api/API.html#projen-cdk8s-cdk8spythonapp) - CDK8s app in Python. * [cdk8s-app-ts](https://projen.io/api/API.html#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript. * [cdk8s-construct](https://projen.io/api/API.html#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project. * [cdktf-construct](https://projen.io/api/API.html#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project. * [java](https://projen.io/api/API.html#projen-java-javaproject) - Java project. * [jsii](https://projen.io/api/API.html#projen-cdk-jsiiproject) - Multi-language jsii library project. * [nextjs](https://projen.io/api/API.html#projen-web-nextjsproject) - Next.js project without TypeScript. * [nextjs-ts](https://projen.io/api/API.html#projen-web-nextjstypescriptproject) - Next.js project with TypeScript. * [node](https://projen.io/api/API.html#projen-javascript-nodeproject) - Node.js project. * [project](https://projen.io/api/API.html#projen-project) - Base project. * [python](https://projen.io/api/API.html#projen-python-pythonproject) - Python project. * [react](https://projen.io/api/API.html#projen-web-reactproject) - React project without TypeScript. * [react-ts](https://projen.io/api/API.html#projen-web-reacttypescriptproject) - React project with TypeScript. * [typescript](https://projen.io/api/API.html#projen-typescript-typescriptproject) - TypeScript project. * [typescript-app](https://projen.io/api/API.html#projen-typescript-typescriptappproject) - TypeScript app. **External:** (run `npx projen new --from `) * [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project. > Use `npx projen new PROJECT-TYPE --help` to view a list of command line > switches that allows you to specify most project options during bootstrapping. > For example: `npx projen new jsii --author-name "Jerry Berry"`. The `new` command will create a `.projenrc.js` file which looks like this for `jsii` projects: ```js const { JsiiProject } = require('projen'); const project = new JsiiProject({ authorAddress: "elad.benisrael@gmail.com", authorName: "Elad Ben-Israel", name: "foobar", repository: "https://github.com/eladn/foobar.git", }); project.synth(); ``` This program instantiates the project type with minimal setup, and then calls `synth()` to synthesize the project files. By default, the `new` command will also execute this program, which will result in a fully working project. Once your project is created, you can configure your project by editing `.projenrc.js` and re-running `npx projen` to synthesize again. > The files generated by *projen* are considered an "implementation detail" and > *projen* protects them from being manually edited (most files are marked > read-only, and an "anti tamper" check is configured in the CI build workflow > to ensure that files are not updated during build). For example, to setup PyPI publishing in `jsii` projects, you can use [`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget): ```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } }); ``` Run: ```shell npx projen ``` And you'll notice that your `package.json` file now contains a `python` section in its `jsii` config and the GitHub `release.yml` workflow includes a PyPI publishing step. We recommend to put this in your shell profile, so you can simply run `pj` every time you update `.projenrc.js`: ```bash alias pj='npx projen' ``` Most projects come with an assortment of **tasks** that handle various development activities, from compiling to publishing. Tasks can be and composed together, and can be run as local commands or turned into GitHub workflows. You can list all tasks with `npx projen --help`: ```shell $ npx projen --help projen [command] Commands: projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project projen clobber hard resets to HEAD of origin and cleans the local repo projen compile Only compile projen test Run tests projen build Full release build (test+compile) projen upgrade upgrade dependencies (including projen) ... ``` The `build` task is the same task that's executed in your CI builds. It typically compiles, lints, tests and packages your module for distribution. ### Shell Completions If installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run: ```shell # Bash projen completion >> ~/.bashrc # ZSH projen completion >> ~/.zshrc ``` ## Features Some examples for features built-in to project types: * Fully synthesize `package.json` * Standard npm scripts like `compile`, `build`, `test`, `package` * eslint * Jest * jsii: compile, package, api compatibility checks, API.md * Bump & release scripts with CHANGELOG generation based on conventional commits * Automated PR builds * Automated releases to npm, maven, NuGet and PyPI * Automated dependency upgrades * Mergify configuration * LICENSE file generation * gitignore + npmignore management * Node "engines" support with coupling to CI build environment and @types/node * Anti-tamper: CI builds will fail if a synthesized file is modified manually ## Documentation For documentation including examples and a full API reference, visit [https://projen.io/](https://projen.io/). ## Ecosystem *projen* takes a "batteries included" approach and aims to offer dozens of different project types out of the box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`, `projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)... Adding new project types is as simple as submitting a pull request to this repo and exporting a class that extends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your type will immediately be available in `projen new`. ### Projects in external modules *projen* is bundled with many project types out of the box, but it can also work with project types and components defined in external jsii modules (the reason we need jsii is because projen uses the jsii metadata to discover project types & options in projen new). Say we have a module in npm called `projen-vuejs` which includes a single project type for vue.js: ```bash $ npx projen new --from projen-vuejs ``` If the referenced module includes multiple project types, the type is required. Switches can also be used to specify initial values based on the project type APIs. You can also use any package syntax supported by [yarn add](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like `projen-vuejs@1.2.3`, `file:/path/to/local/folder`, `git@github.com/awesome/projen-vuejs#1.2.3`, etc. ```bash $ npx projen new --from projen-vuejs@^2 vuejs-ts --description "my awesome vue project" ``` Under the hood, `projen new` will install the `projen-vuejs` module from npm (version 2.0.0 and above), discover the project types in it and bootstrap the `vuejs-ts` project type. It will assign the value `"my awesome vue project"` to the `description` field. If you examine your `.projenrc.js` file, you'll see that `projen-vuejs` is defined as a dev dependency: ```javascript const { VueJsProject } = require('projen-vuejs'); const project = new VueJsProject({ name: 'my-vuejs-sample', description: "my awesome vue project", // ... devDeps: [ 'projen-vuejs' ] }); project.synth(); ``` ## Roadmap See [Vision](./VISION.md). ## FAQ ### Do I have to write my configuration in JavaScript? Not at all! JavaScript is the default, but it's also possible to write it in Java, TypeScript, or even JSON. Python support is also planned. This is made possible by the [jsii](https://github.com/aws/jsii) library which allows us to write APIs once and generate libraries in several languages. You can choose a different language by passing the `--projenrc-ts`, `--projenrc-java`, or `--projenrc-json` flags when running `projen new`. Note: using a `.projenrc.json` file to specify configuration only allows accessing a subset of the entire API - the options which are passed to the constructor of each project type. ### How does projen work with my IDE? projen has an unofficial [VS Code extension](https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen). Check it out! ## Community The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/) community Slack workspace. ### Virtual Meetup * Thursday June 30, 2022 * 1-2pm America/New_York (EDT) * [CFP](https://bit.ly/3NEc0UQ) a Google Form * CFP Closes Saturday April 30, 2022 * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success) ## Contributions Contributions of all kinds are welcome! Check out our [contributor's guide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md). For a quick start, check out a development environment: ```bash $ git clone git@github.com:projen/projen $ cd projen $ yarn $ yarn watch # compile in the background ``` Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): [![All Contributors](https://img.shields.io/badge/all_contributors-121-orange.svg?style=flat-square)](#contributors-)
 Aatman
Aatman

馃捇
Adam Elmore
Adam Elmore

馃捇
Adrian Dimech
Adrian Dimech

馃捇
Adrian Mace
Adrian Mace

馃捇
Alexander Forsyth
Alexander Forsyth

馃捇
Alexander Steppke
Alexander Steppke

馃捇
Amani Kilumanga
Amani Kilumanga

馃捇
Amin Fazl
Amin Fazl

馃捇
Amir Szekely
Amir Szekely

馃捇
Andrew Hammond
Andrew Hammond

馃捇
Ansgar Mertens
Ansgar Mertens

馃捇
Arun Donti
Arun Donti

馃捇
Ash
Ash

馃捇
Balagopal Kanattil
Balagopal Kanattil

馃捇
Bart Callant
Bart Callant

馃捇
Bilal Quadri
Bilal Quadri

馃捇
Boris Petersen
Boris Petersen

馃捇
Brandon Miller
Brandon Miller

馃捇
Brian Leonard
Brian Leonard

馃捇
Calvin Combs
Calvin Combs

馃捇
Campion Fellin
Campion Fellin

馃捇
Chris Gatt
Chris Gatt

馃捇
Christopher Rybicki
Christopher Rybicki

馃捇
Cory Hall
Cory Hall

馃捇
Cristian Pallar茅s
Cristian Pallar茅s

馃捇
Daniel Schmidt
Daniel Schmidt

馃捇
Danny Steenman
Danny Steenman

馃捇
Eduardo Rodrigues
Eduardo Rodrigues

馃捇
Elad Ben-Israel
Elad Ben-Israel

馃捇
Eli Polonsky
Eli Polonsky

馃捇
Eugene Cheung
Eugene Cheung

馃捇
Grady Barrett
Grady Barrett

馃捇
Greg Herlein
Greg Herlein

馃捇
Hasan
Hasan

馃捇
Hassan Azhar
Hassan Azhar

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Heiko Rothe
Heiko Rothe

馃捇
Henri Yandell
Henri Yandell

馃捇
Henry Sachs
Henry Sachs

馃捇
Hoseung
Hoseung

馃捇
Ikko Ashimine
Ikko Ashimine

馃捇
Jack Stevenson
Jack Stevenson

馃捇
Jacob
Jacob

馃捇
Jake Pearson
Jake Pearson

馃捇
Jan Brauer
Jan Brauer

馃捇
Jeff Malins
Jeff Malins

馃捇
Jeremy Jonas
Jeremy Jonas

馃捇
JoLo
JoLo

馃捇
Jonathan Goldwasser
Jonathan Goldwasser

馃捇
Joost van der Waal
Joost van der Waal

馃捇
Jordan Sinko
Jordan Sinko

馃捇
Joseph Egan
Joseph Egan

馃捇
Josh Kellendonk
Josh Kellendonk

馃捇
Juho Saarinen
Juho Saarinen

馃捇
Julian Michel
Julian Michel

馃捇
Kaizen Conroy
Kaizen Conroy

馃捇
Kenneth Winner
Kenneth Winner

馃捇
Kraig Amador
Kraig Amador

馃捇
Kunal Dabir
Kunal Dabir

馃捇
Lex Felix
Lex Felix

馃捇
Manuel
Manuel

馃捇
Marcio Cruz de Almeida
Marcio Cruz de Almeida

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark Nielsen
Mark Nielsen

馃捇
Marnix Dessing
Marnix Dessing

馃捇
Martin Muller
Martin Muller

馃捇
Masashi Tomooka
Masashi Tomooka

馃捇
Matt Gucci
Matt Gucci

馃捇
Matt Martz
Matt Martz

馃捇
Matteo Sessa
Matteo Sessa

馃捇
Matthew Bonig
Matthew Bonig

馃捇
Matthew Gamble
Matthew Gamble

馃捇
Max K枚rlinge
Max K枚rlinge

馃捇
Mayur Mahrotri
Mayur Mahrotri

馃捇
Mike
Mike

馃捇
Mitchell Valine
Mitchell Valine

馃捇
Momo Kornher
Momo Kornher

馃捇
Neil Kuan
Neil Kuan

馃捇
Nick Lynch
Nick Lynch

馃捇
Nicolas Byl
Nicolas Byl

馃捇
Nikhil Zadoo
Nikhil Zadoo

馃捇
Niraj Palecha
Niraj Palecha

馃捇
Pahud Hsieh
Pahud Hsieh

馃捇
Patrick
Patrick

馃捇
Patrick Florek
Patrick Florek

馃捇
Philip M. Gollucci
Philip M. Gollucci

馃捇
Philipp Garbe
Philipp Garbe

馃捇
Rafal Wilinski
Rafal Wilinski

馃捇
Rico Huijbers
Rico Huijbers

馃捇
Rodrigo Farias Rezino
Rodrigo Farias Rezino

馃捇
Roger Chi
Roger Chi

馃捇
Romain Marcadier
Romain Marcadier

馃捇
Ryan Sonshine
Ryan Sonshine

馃捇
Samuel Tschiedel
Samuel Tschiedel

馃捇
Saud Khanzada
Saud Khanzada

馃捇
Sebastian Korfmann
Sebastian Korfmann

馃捇
Shawn MacIntyre
Shawn MacIntyre

馃捇
Suhas Gaddam
Suhas Gaddam

馃捇
Thomas Klinger
Thomas Klinger

馃捇
Thorsten Hoeger
Thorsten Hoeger

馃捇
Tiara
Tiara

馃捇
Tobias
Tobias

馃捇
Tom Howard
Tom Howard

馃捇
Tom Keller
Tom Keller

馃捇
Tomasz 艁akomy
Tomasz 艁akomy

馃捇
Travis Martensen
Travis Martensen

馃捇
Will Dady
Will Dady

馃捇
Yigong Liu
Yigong Liu

馃捇
Yohta Kimura
Yohta Kimura

馃捇
andrestone
andrestone

馃捇
codeLeeek
codeLeeek

馃捇
flyingImer
flyingImer

馃捇
huaxk
huaxk

馃捇
john-tipper
john-tipper

馃捇
karlderkaefer
karlderkaefer

馃捇
lmarsden
lmarsden

馃捇
michaeltimbs
michaeltimbs

馃捇
orlandronen1
orlandronen1

馃捇
pvbouwel
pvbouwel

馃捇
## License Distributed under the [Apache-2.0](./LICENSE) license. %package help Summary: Development documents and examples for projen Provides: python3-projen-doc %description help

projen

Define and maintain complex project configuration through code.

DocumentationChangelogProject typesJoin the community

Apache 2.0 License Gitpod ready-to-code Build badge Release badge Commit activity


*projen* synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript. As opposed to existing templating/scaffolding tools, *projen* is not a one-off generator. Synthesized files should never be manually edited (in fact, projen enforces that). To modify your project setup, users interact with rich strongly-typed class and execute `projen` to update their project configuration files. By defining a custom project type and using projen in multiple repositories, it's possible to update configuration files and CI/CD workflows across dozens (or hundreds!?) of projects. Check out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator. ## Getting Started *projen* doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run *projen* which takes care of all required setup steps. To create a new project, run the following command and follow the instructions: ```console $ mkdir my-project $ cd my-project $ npx projen new PROJECT-TYPE 馃 Synthesizing project... ... ``` ### Project types Currently supported project types (use `npx projen new` without a type for a full list): **Built-in:** (run `npx projen new `) * [awscdk-app-java](https://projen.io/api/API.html#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java. * [awscdk-app-py](https://projen.io/api/API.html#projen-awscdk-awscdkpythonapp) - AWS CDK app in Python. * [awscdk-app-ts](https://projen.io/api/API.html#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript. * [awscdk-construct](https://projen.io/api/API.html#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project. * [cdk8s-app-py](https://projen.io/api/API.html#projen-cdk8s-cdk8spythonapp) - CDK8s app in Python. * [cdk8s-app-ts](https://projen.io/api/API.html#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript. * [cdk8s-construct](https://projen.io/api/API.html#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project. * [cdktf-construct](https://projen.io/api/API.html#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project. * [java](https://projen.io/api/API.html#projen-java-javaproject) - Java project. * [jsii](https://projen.io/api/API.html#projen-cdk-jsiiproject) - Multi-language jsii library project. * [nextjs](https://projen.io/api/API.html#projen-web-nextjsproject) - Next.js project without TypeScript. * [nextjs-ts](https://projen.io/api/API.html#projen-web-nextjstypescriptproject) - Next.js project with TypeScript. * [node](https://projen.io/api/API.html#projen-javascript-nodeproject) - Node.js project. * [project](https://projen.io/api/API.html#projen-project) - Base project. * [python](https://projen.io/api/API.html#projen-python-pythonproject) - Python project. * [react](https://projen.io/api/API.html#projen-web-reactproject) - React project without TypeScript. * [react-ts](https://projen.io/api/API.html#projen-web-reacttypescriptproject) - React project with TypeScript. * [typescript](https://projen.io/api/API.html#projen-typescript-typescriptproject) - TypeScript project. * [typescript-app](https://projen.io/api/API.html#projen-typescript-typescriptappproject) - TypeScript app. **External:** (run `npx projen new --from `) * [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project. > Use `npx projen new PROJECT-TYPE --help` to view a list of command line > switches that allows you to specify most project options during bootstrapping. > For example: `npx projen new jsii --author-name "Jerry Berry"`. The `new` command will create a `.projenrc.js` file which looks like this for `jsii` projects: ```js const { JsiiProject } = require('projen'); const project = new JsiiProject({ authorAddress: "elad.benisrael@gmail.com", authorName: "Elad Ben-Israel", name: "foobar", repository: "https://github.com/eladn/foobar.git", }); project.synth(); ``` This program instantiates the project type with minimal setup, and then calls `synth()` to synthesize the project files. By default, the `new` command will also execute this program, which will result in a fully working project. Once your project is created, you can configure your project by editing `.projenrc.js` and re-running `npx projen` to synthesize again. > The files generated by *projen* are considered an "implementation detail" and > *projen* protects them from being manually edited (most files are marked > read-only, and an "anti tamper" check is configured in the CI build workflow > to ensure that files are not updated during build). For example, to setup PyPI publishing in `jsii` projects, you can use [`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget): ```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } }); ``` Run: ```shell npx projen ``` And you'll notice that your `package.json` file now contains a `python` section in its `jsii` config and the GitHub `release.yml` workflow includes a PyPI publishing step. We recommend to put this in your shell profile, so you can simply run `pj` every time you update `.projenrc.js`: ```bash alias pj='npx projen' ``` Most projects come with an assortment of **tasks** that handle various development activities, from compiling to publishing. Tasks can be and composed together, and can be run as local commands or turned into GitHub workflows. You can list all tasks with `npx projen --help`: ```shell $ npx projen --help projen [command] Commands: projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project projen clobber hard resets to HEAD of origin and cleans the local repo projen compile Only compile projen test Run tests projen build Full release build (test+compile) projen upgrade upgrade dependencies (including projen) ... ``` The `build` task is the same task that's executed in your CI builds. It typically compiles, lints, tests and packages your module for distribution. ### Shell Completions If installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run: ```shell # Bash projen completion >> ~/.bashrc # ZSH projen completion >> ~/.zshrc ``` ## Features Some examples for features built-in to project types: * Fully synthesize `package.json` * Standard npm scripts like `compile`, `build`, `test`, `package` * eslint * Jest * jsii: compile, package, api compatibility checks, API.md * Bump & release scripts with CHANGELOG generation based on conventional commits * Automated PR builds * Automated releases to npm, maven, NuGet and PyPI * Automated dependency upgrades * Mergify configuration * LICENSE file generation * gitignore + npmignore management * Node "engines" support with coupling to CI build environment and @types/node * Anti-tamper: CI builds will fail if a synthesized file is modified manually ## Documentation For documentation including examples and a full API reference, visit [https://projen.io/](https://projen.io/). ## Ecosystem *projen* takes a "batteries included" approach and aims to offer dozens of different project types out of the box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`, `projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)... Adding new project types is as simple as submitting a pull request to this repo and exporting a class that extends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your type will immediately be available in `projen new`. ### Projects in external modules *projen* is bundled with many project types out of the box, but it can also work with project types and components defined in external jsii modules (the reason we need jsii is because projen uses the jsii metadata to discover project types & options in projen new). Say we have a module in npm called `projen-vuejs` which includes a single project type for vue.js: ```bash $ npx projen new --from projen-vuejs ``` If the referenced module includes multiple project types, the type is required. Switches can also be used to specify initial values based on the project type APIs. You can also use any package syntax supported by [yarn add](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like `projen-vuejs@1.2.3`, `file:/path/to/local/folder`, `git@github.com/awesome/projen-vuejs#1.2.3`, etc. ```bash $ npx projen new --from projen-vuejs@^2 vuejs-ts --description "my awesome vue project" ``` Under the hood, `projen new` will install the `projen-vuejs` module from npm (version 2.0.0 and above), discover the project types in it and bootstrap the `vuejs-ts` project type. It will assign the value `"my awesome vue project"` to the `description` field. If you examine your `.projenrc.js` file, you'll see that `projen-vuejs` is defined as a dev dependency: ```javascript const { VueJsProject } = require('projen-vuejs'); const project = new VueJsProject({ name: 'my-vuejs-sample', description: "my awesome vue project", // ... devDeps: [ 'projen-vuejs' ] }); project.synth(); ``` ## Roadmap See [Vision](./VISION.md). ## FAQ ### Do I have to write my configuration in JavaScript? Not at all! JavaScript is the default, but it's also possible to write it in Java, TypeScript, or even JSON. Python support is also planned. This is made possible by the [jsii](https://github.com/aws/jsii) library which allows us to write APIs once and generate libraries in several languages. You can choose a different language by passing the `--projenrc-ts`, `--projenrc-java`, or `--projenrc-json` flags when running `projen new`. Note: using a `.projenrc.json` file to specify configuration only allows accessing a subset of the entire API - the options which are passed to the constructor of each project type. ### How does projen work with my IDE? projen has an unofficial [VS Code extension](https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen). Check it out! ## Community The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/) community Slack workspace. ### Virtual Meetup * Thursday June 30, 2022 * 1-2pm America/New_York (EDT) * [CFP](https://bit.ly/3NEc0UQ) a Google Form * CFP Closes Saturday April 30, 2022 * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success) ## Contributions Contributions of all kinds are welcome! Check out our [contributor's guide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md). For a quick start, check out a development environment: ```bash $ git clone git@github.com:projen/projen $ cd projen $ yarn $ yarn watch # compile in the background ``` Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): [![All Contributors](https://img.shields.io/badge/all_contributors-121-orange.svg?style=flat-square)](#contributors-)
 Aatman
Aatman

馃捇
Adam Elmore
Adam Elmore

馃捇
Adrian Dimech
Adrian Dimech

馃捇
Adrian Mace
Adrian Mace

馃捇
Alexander Forsyth
Alexander Forsyth

馃捇
Alexander Steppke
Alexander Steppke

馃捇
Amani Kilumanga
Amani Kilumanga

馃捇
Amin Fazl
Amin Fazl

馃捇
Amir Szekely
Amir Szekely

馃捇
Andrew Hammond
Andrew Hammond

馃捇
Ansgar Mertens
Ansgar Mertens

馃捇
Arun Donti
Arun Donti

馃捇
Ash
Ash

馃捇
Balagopal Kanattil
Balagopal Kanattil

馃捇
Bart Callant
Bart Callant

馃捇
Bilal Quadri
Bilal Quadri

馃捇
Boris Petersen
Boris Petersen

馃捇
Brandon Miller
Brandon Miller

馃捇
Brian Leonard
Brian Leonard

馃捇
Calvin Combs
Calvin Combs

馃捇
Campion Fellin
Campion Fellin

馃捇
Chris Gatt
Chris Gatt

馃捇
Christopher Rybicki
Christopher Rybicki

馃捇
Cory Hall
Cory Hall

馃捇
Cristian Pallar茅s
Cristian Pallar茅s

馃捇
Daniel Schmidt
Daniel Schmidt

馃捇
Danny Steenman
Danny Steenman

馃捇
Eduardo Rodrigues
Eduardo Rodrigues

馃捇
Elad Ben-Israel
Elad Ben-Israel

馃捇
Eli Polonsky
Eli Polonsky

馃捇
Eugene Cheung
Eugene Cheung

馃捇
Grady Barrett
Grady Barrett

馃捇
Greg Herlein
Greg Herlein

馃捇
Hasan
Hasan

馃捇
Hassan Azhar
Hassan Azhar

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Hassan Mahmud
Hassan Mahmud

馃捇
Heiko Rothe
Heiko Rothe

馃捇
Henri Yandell
Henri Yandell

馃捇
Henry Sachs
Henry Sachs

馃捇
Hoseung
Hoseung

馃捇
Ikko Ashimine
Ikko Ashimine

馃捇
Jack Stevenson
Jack Stevenson

馃捇
Jacob
Jacob

馃捇
Jake Pearson
Jake Pearson

馃捇
Jan Brauer
Jan Brauer

馃捇
Jeff Malins
Jeff Malins

馃捇
Jeremy Jonas
Jeremy Jonas

馃捇
JoLo
JoLo

馃捇
Jonathan Goldwasser
Jonathan Goldwasser

馃捇
Joost van der Waal
Joost van der Waal

馃捇
Jordan Sinko
Jordan Sinko

馃捇
Joseph Egan
Joseph Egan

馃捇
Josh Kellendonk
Josh Kellendonk

馃捇
Juho Saarinen
Juho Saarinen

馃捇
Julian Michel
Julian Michel

馃捇
Kaizen Conroy
Kaizen Conroy

馃捇
Kenneth Winner
Kenneth Winner

馃捇
Kraig Amador
Kraig Amador

馃捇
Kunal Dabir
Kunal Dabir

馃捇
Lex Felix
Lex Felix

馃捇
Manuel
Manuel

馃捇
Marcio Cruz de Almeida
Marcio Cruz de Almeida

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark McCulloh
Mark McCulloh

馃捇
Mark Nielsen
Mark Nielsen

馃捇
Marnix Dessing
Marnix Dessing

馃捇
Martin Muller
Martin Muller

馃捇
Masashi Tomooka
Masashi Tomooka

馃捇
Matt Gucci
Matt Gucci

馃捇
Matt Martz
Matt Martz

馃捇
Matteo Sessa
Matteo Sessa

馃捇
Matthew Bonig
Matthew Bonig

馃捇
Matthew Gamble
Matthew Gamble

馃捇
Max K枚rlinge
Max K枚rlinge

馃捇
Mayur Mahrotri
Mayur Mahrotri

馃捇
Mike
Mike

馃捇
Mitchell Valine
Mitchell Valine

馃捇
Momo Kornher
Momo Kornher

馃捇
Neil Kuan
Neil Kuan

馃捇
Nick Lynch
Nick Lynch

馃捇
Nicolas Byl
Nicolas Byl

馃捇
Nikhil Zadoo
Nikhil Zadoo

馃捇
Niraj Palecha
Niraj Palecha

馃捇
Pahud Hsieh
Pahud Hsieh

馃捇
Patrick
Patrick

馃捇
Patrick Florek
Patrick Florek

馃捇
Philip M. Gollucci
Philip M. Gollucci

馃捇
Philipp Garbe
Philipp Garbe

馃捇
Rafal Wilinski
Rafal Wilinski

馃捇
Rico Huijbers
Rico Huijbers

馃捇
Rodrigo Farias Rezino
Rodrigo Farias Rezino

馃捇
Roger Chi
Roger Chi

馃捇
Romain Marcadier
Romain Marcadier

馃捇
Ryan Sonshine
Ryan Sonshine

馃捇
Samuel Tschiedel
Samuel Tschiedel

馃捇
Saud Khanzada
Saud Khanzada

馃捇
Sebastian Korfmann
Sebastian Korfmann

馃捇
Shawn MacIntyre
Shawn MacIntyre

馃捇
Suhas Gaddam
Suhas Gaddam

馃捇
Thomas Klinger
Thomas Klinger

馃捇
Thorsten Hoeger
Thorsten Hoeger

馃捇
Tiara
Tiara

馃捇
Tobias
Tobias

馃捇
Tom Howard
Tom Howard

馃捇
Tom Keller
Tom Keller

馃捇
Tomasz 艁akomy
Tomasz 艁akomy

馃捇
Travis Martensen
Travis Martensen

馃捇
Will Dady
Will Dady

馃捇
Yigong Liu
Yigong Liu

馃捇
Yohta Kimura
Yohta Kimura

馃捇
andrestone
andrestone

馃捇
codeLeeek
codeLeeek

馃捇
flyingImer
flyingImer

馃捇
huaxk
huaxk

馃捇
john-tipper
john-tipper

馃捇
karlderkaefer
karlderkaefer

馃捇
lmarsden
lmarsden

馃捇
michaeltimbs
michaeltimbs

馃捇
orlandronen1
orlandronen1

馃捇
pvbouwel
pvbouwel

馃捇
## License Distributed under the [Apache-2.0](./LICENSE) license. %prep %autosetup -n projen-0.71.7 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-projen -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 0.71.7-1 - Package Spec generated