|
| 1 | +## Table of Contents |
| 2 | + |
| 3 | +- [Table of Contents](#table-of-contents) |
| 4 | +- [Step 1: Build from Source](#step-1-build-from-source) |
| 5 | +- [Step 2: Configuring Git and GitHub for Development](#step-2-configuring-git-and-github-for-development) |
| 6 | + - [Create your fork](#create-your-fork) |
| 7 | + - [Configure remotes](#configure-remotes) |
| 8 | + - [Authenticating with GitHub](#authenticating-with-github) |
| 9 | +- [Guidelines](#guidelines) |
| 10 | + |
| 11 | +## Step 1: Build from Source |
| 12 | + |
| 13 | +To work on `python-template-cpp`, you are going to need to build it from source. See |
| 14 | +[Build from Source](Build-from-Source) for |
| 15 | +detailed build instructions. |
| 16 | + |
| 17 | +Once you've built `python-template-cpp` from a `git` clone, you will also need to |
| 18 | +configure `git` and your GitHub account for `python-template-cpp` development. |
| 19 | + |
| 20 | +## Step 2: Configuring Git and GitHub for Development |
| 21 | + |
| 22 | +### Create your fork |
| 23 | + |
| 24 | +The first step is to create a personal fork of `python-template-cpp`. To do so, click |
| 25 | +the "fork" button at https://github.com/python-project-templates/python-template-cpp, or just navigate |
| 26 | +[here](https://github.com/python-project-templates/python-template-cpp/fork) in your browser. Set the |
| 27 | +owner of the repository to your personal GitHub account if it is not |
| 28 | +already set that way and click "Create fork". |
| 29 | + |
| 30 | +### Configure remotes |
| 31 | + |
| 32 | +Next, you should set some names for the `git` remotes corresponding to |
| 33 | +main python-project-templates repository and your fork. See the [GitHub Docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork) for more information. |
| 34 | + |
| 35 | +### Authenticating with GitHub |
| 36 | + |
| 37 | +If you have not already configured `ssh` access to GitHub, you can find |
| 38 | +instructions to do so |
| 39 | +[here](https://docs.github.com/en/authentication/connecting-to-github-with-ssh), |
| 40 | +including instructions to create an SSH key if you have not done |
| 41 | +so. Authenticating with SSH is usually the easiest route. If you are working in |
| 42 | +an environment that does not allow SSH connections to GitHub, you can look into |
| 43 | +[configuring a hardware |
| 44 | +passkey](https://docs.github.com/en/authentication/authenticating-with-a-passkey/about-passkeys) |
| 45 | +or adding a [personal access |
| 46 | +token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) |
| 47 | +to avoid the need to type in your password every time you push to your fork. |
| 48 | + |
| 49 | +## Guidelines |
| 50 | + |
| 51 | +After developing a change locally, ensure that both [lints](Build-from-Source#lint-and-autoformat) and [tests](Build-from-Source#testing) pass. Commits should be squashed into logical units, and all commits must be signed (e.g. with the `-s` git flag). We require [Developer Certificate of Origin](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin) for all contributions. |
| 52 | + |
| 53 | +If your work is still in-progress, open a [draft pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests). Otherwise, open a normal pull request. It might take a few days for a maintainer to review and provide feedback, so please be patient. If a maintainer asks for changes, please make said changes and squash your commits if necessary. If everything looks good to go, a maintainer will approve and merge your changes for inclusion in the next release. |
| 54 | + |
| 55 | +Please note that non substantive changes, large changes without prior discussion, etc, are not accepted and pull requests may be closed. |
0 commit comments