Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 17 additions & 19 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Contributing

Thank you for being interested in contributing to HTTPX.
Thank you for being interested in contributing to httpx2.
There are many ways you can contribute to the project:

- Try HTTPX and [report bugs/issues you find](https://github.com/encode/httpx/issues/new)
- [Implement new features](https://github.com/encode/httpx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
- [Review Pull Requests of others](https://github.com/encode/httpx/pulls)
- Try httpx2 and [report bugs/issues you find](https://github.com/pydantic/httpx2/issues/new)
- [Implement new features](https://github.com/pydantic/httpx2/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
- [Review Pull Requests of others](https://github.com/pydantic/httpx2/pulls)
- Write documentation
- Participate in discussions

## Reporting Bugs or Other Issues

Found something that HTTPX should support?
Found something that httpx2 should support?
Stumbled upon some unexpected behaviour?

Contributions should generally start out with [a discussion](https://github.com/encode/httpx/discussions).
Contributions should generally start out with [a discussion](https://github.com/pydantic/httpx2/discussions).
Possible bugs may be raised as a "Potential Issue" discussion, feature requests may
be raised as an "Ideas" discussion. We can then determine if the discussion needs
to be escalated into an "Issue" or not, or if we'd consider a pull request.
Expand All @@ -39,20 +39,20 @@ Some possibly useful tips for narrowing down potential issues...

## Development

To start developing HTTPX create a **fork** of the
[HTTPX repository](https://github.com/encode/httpx) on GitHub.
To start developing httpx2 create a **fork** of the
[httpx2 repository](https://github.com/pydantic/httpx2) on GitHub.

Then clone your fork with the following command replacing `YOUR-USERNAME` with
your GitHub username:

```shell
$ git clone https://github.com/YOUR-USERNAME/httpx
$ git clone https://github.com/YOUR-USERNAME/httpx2
```

You can now install the project and its dependencies using:

```shell
$ cd httpx
$ cd httpx2
$ scripts/install
```

Expand Down Expand Up @@ -101,15 +101,15 @@ Once you've submitted your pull request, the test suite will automatically run,
If the test suite fails, you'll want to click through to the "Details" link, and try to identify why the test suite failed.

<p align="center" style="margin: 0 0 10px">
<img src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/gh-actions-fail.png" alt='Failing PR commit status'>
<img src="https://raw.githubusercontent.com/pydantic/httpx2/main/docs/img/gh-actions-fail.png" alt='Failing PR commit status'>
</p>

Here are some common ways the test suite can fail:

### Check Job Failed

<p align="center" style="margin: 0 0 10px">
<img src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/gh-actions-fail-check.png" alt='Failing GitHub action lint job'>
<img src="https://raw.githubusercontent.com/pydantic/httpx2/main/docs/img/gh-actions-fail-check.png" alt='Failing GitHub action lint job'>
</p>

This job failing means there is either a code formatting issue or type-annotation issue.
Expand All @@ -130,7 +130,7 @@ a variety of reasons like invalid markdown or missing configuration within `mkdo
### Python 3.X Job Failed

<p align="center" style="margin: 0 0 10px">
<img src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/gh-actions-fail-test.png" alt='Failing GitHub action test job'>
<img src="https://raw.githubusercontent.com/pydantic/httpx2/main/docs/img/gh-actions-fail-test.png" alt='Failing GitHub action test job'>
</p>

This job failing means the unit tests failed or not all code paths are covered by unit tests.
Expand All @@ -152,25 +152,23 @@ Before releasing a new version, create a pull request that includes:

- **An update to the changelog**:
- We follow the format from [keepachangelog](https://keepachangelog.com/en/1.0.0/).
- [Compare](https://github.com/encode/httpx/compare/) `master` with the tag of the latest release, and list all entries that are of interest to our users:
- [Compare](https://github.com/pydantic/httpx2/compare/) `main` with the tag of the latest release, and list all entries that are of interest to our users:
- Things that **must** go in the changelog: added, changed, deprecated or removed features, and bug fixes.
- Things that **should not** go in the changelog: changes to documentation, tests or tooling.
- Try sorting entries in descending order of impact / importance.
- Keep it concise and to-the-point. 🎯
- **A version bump**: see `__version__.py`.

For an example, see [#1006](https://github.com/encode/httpx/pull/1006).
- **A version bump**: the version is derived automatically from git tags via `uv-dynamic-versioning` — no file edit needed, just ensure the tag is applied after the release PR merges.

Once the release PR is merged, create a
[new release](https://github.com/encode/httpx/releases/new) including:
[new release](https://github.com/pydantic/httpx2/releases/new) including:

- Tag version like `0.13.3`.
- Release title `Version 0.13.3`
- Description copied from the changelog.

Once created this release will be automatically uploaded to PyPI.

If something goes wrong with the PyPI job the release can be published using the
If something goes wrong with the PyPI job the release can be re-published using the
`scripts/publish` script.

## Development proxy setup
Expand Down
Loading