.. include:: /extras.rst.txt .. highlight:: rst .. index:: py3-project-inputs ; Index .. _project-inputs: ================== New Project Inputs ================== *Portions are Copyright 2015, Audrey Roy Greenfeld* When you create a package, you are prompted to enter these values. Templated Values ---------------- The following appear in various parts of your generated project. full_name ~~~~~~~~~ Your full name. email ~~~~~ Your email address. github_username ~~~~~~~~~~~~~~~ Your GitHub username. project_name ~~~~~~~~~~~~ The name of your new Python package project. This is used in documentation, so spaces and any characters are fine here. git_project_name ~~~~~~~~~~~~~~~~ The name of the GitHub project repository you have created. If it is the same as your project_name but with hyphens instead of spaces leave this blank. Your GitHub repository name will be generated with hyphens. If its different enter your project GitHub repository name here. project_slug ~~~~~~~~~~~~ The namespace of your Python package. This should be Python import-friendly. Typically, it is the slugified version of project_name. Note: your PyPi project will use project_slug, so change those in the README afterwards. project_short_description ~~~~~~~~~~~~~~~~~~~~~~~~~ A 1-sentence description of what your Python package does. pypi_username ~~~~~~~~~~~~~ Your Python Package Index account username. version ~~~~~~~ The starting version number of the package. Options ------- The following package configuration options set up different features for your project. **use_repo_status_badge** *default = no* Whether to include a `Repo Status `_ badge. Options: ['no', 'concept', 'wip', 'active'] **use_pyup_io** *default = n* Keep your open source package Python dependencies secure, up-to-date & compliant for free with `Pyup `_. This badge will advertise your security level. Requires a free Pyup account. **use_readthedocs** *default = y* Host your open source package documentation for free with `Read the Docs `_ and this badge will provide a link to your documentation. Requires a free Read the Docs account. **use_pre_commit** *default = y* Pre-commit is useful for identifying simple issues before submission to code review. **command_line_interface** *default = Click* Whether to create a console script using Click. Console script entry point will match the project_slug. Options: ['Click', 'Argparse', 'No command-line interface'] **create_author_file** *default = y* Whether to create an authors file. **create_conventional_commits_edit_message** *default = y* Whether to use a commit message that helps you adhere to the `Conventional Commits `_ specification. If you plan to use the create_auto_CHANGELOG feature, this template will help you keep your messages in the correct format for the auto CHANGELOG feature. .. important:: If you choose yes, don't forget to run the following command after initiating git to let git know you are using a custom template. .. code-block:: bash git config --local commit.template .github/.git-commit-template.txt **create_repo_auto_test_workflow** *default = y* A GitHub action workflow will run your test suite using tox and pytest when creating a pull request to the main branch. .. todo:: Create a tutorial to demonstrate GitHub protected branches configuration to make the best use of the create_repo_auto_test_workflow feature. See `Issue 72 `_. **create_auto_CHANGELOG** *default = y* create_auto_CHANGELOG will use GitHub actions to generate a changelog using a cron job, scheduled daily. **github_CHANGELOG_access_token** *default = secrets.GITHUB_TOKEN* For new or small repositories, select `secrets.GITHUB_TOKEN`. This is adequate for most small packages. For larger repositories, the `GITHUB_TOKEN` may error on the rate limit when generating the CHANGELOG. If so you will need a PAT so select `secrets.CHANGELOG_UPDATE`. After generating your GitHub PAT, ensure you use `CHANGELOG_UPDATE` as the repository secret name. Be careful not to share the secret or commit it to the repository accidentally. See `Encrypted Secrets `_ for more information on generating secrets and repository security. **use_GH_action_semantic-version** *default = y* A GitHub action workflow will check your git commit message's information, update the semantic version, and publish assets to your package repository. A GitHub PAT is required, and the repository secret is named `SEM_VER` for this feature to work. **use_GH_custom_issue_templates** *default = y* Four custom GitHub issue templates for your package: #. bug-report.md #. chore.md #. documentation-request.md #. feature-request.md The custom issue templates prompt users to help provide enough information in a templated format. The default assignee is you; however, re-assign if required at creation time or any time after. See the critical template markdown file settings below for a feature request. .. code-block:: yaml --- name: Feature request about: Suggest an idea for this project title: "[FEAT]:" labels: enhancement assignees: { { cookiecutter.github_username } } --- | If you prefer, a simple issue template is available for use with all issues if you choose `no` for this feature. **automatic_set_up_git_and_initial_commit** *default = y* pre-requisites: #. git_project_name #. github_username #. email Initiation of your local git repository is automatic; all files are added and committed with a conventional commits style message. You can run a git reflog and check all is ok before pushing to the repository. .. code-block:: bash git reflog .. note:: Selecting this option also includes automatically adding the conventional commits message template to git config if you have chosen that option. **Initialise your local git requires Git v2.33.0 or above. A bug report has been raised and a fix is coming.** **use_release_to_test_pypi_with_tags** *default = n* Selecting this option will configure a workflow to simulate a production test and then release to PyPi; however, the release will go to the Test PyPi index. This feature is helpful to help iron out any bugs before releasing your package into the PyPi index. To use this feature, tag with 'dev*' before pushing to the repository. The `dev` tag will trigger the workflow. See the example tags below .. code-block:: bash git tag dev git tag dev-new-feature git tag dev-testing-some-update .. note:: Perhaps using semantic version below version 1.0.0 could be one way to use the test PyPi releases. **open_source_license** *default = MIT* Choose a `license `_. Options: 1. MIT License, 2. BSD license, 3. ISC license, 4. Apache Software License 2.0, 5. GNU General Public License v3, 6. Not open source