... | ... | @@ -52,8 +52,31 @@ HTTPX.get("http://example.come") |
|
|
|
|
|
## Contributing
|
|
|
|
|
|
If you want to contribute, you have to focus on minimalism. If you look at the test suite, only one assertion method from minitest is mostly being used: `assert`. There will be exceptions, but you'll be asked to use `assert` whenever possible.
|
|
|
If you want to contribute, here's what you'll need to know.
|
|
|
|
|
|
All HTTP features have an integration test using `httpbin` (with a few exceptions). If you want to add a missing HTTP feature, test it using an endpoint from `httpbin` which can validate your contribution.
|
|
|
|
|
|
You can also use the docker images to develop locally instead of relying fully on the remote endpoints. See how the automated test suite is build. |
|
|
\ No newline at end of file |
|
|
### Ruby or docker
|
|
|
|
|
|
In order to contribute, you can choose to develop in your machine, or use the `docker-compose` setup we use for the CI builds.
|
|
|
|
|
|
If you choose to develop locally, you'll have to have **ruby** installed. It's recommended you use a ruby version manager for this. If you never worked with one, my personal recommendation is to use `chruby` and `ruby-install`. You'll also need `gcc` (or `clang`) and `make` installed (some development dependencies require the installation of C-extensions). All test runs will hit publicly available peers (i.e.: `nghttp2.org`).
|
|
|
|
|
|
If you choose to develop using `docker`:
|
|
|
|
|
|
```
|
|
|
# this example is for ruby 2.6 specifically, there's a compose file for each supported version
|
|
|
> docker-compose -f docker-compose -f docker-compose-ruby-2.6.yml run --entrypoint sh httpx
|
|
|
> test/support/ci/build.sh
|
|
|
```
|
|
|
|
|
|
and you're good to go. All tests will run against the containerized services.
|
|
|
|
|
|
### assert
|
|
|
|
|
|
When writing tests, you have to focus on minimalism. If you look at the test suite, only one assertion method from `minitest` is being used in most cases: `assert`. There will be exceptions, but you'll be asked to use `assert` whenever possible.
|
|
|
|
|
|
|
|
|
### Integration test first
|
|
|
|
|
|
All HTTP features have an integration test using `httpbin` (with a few exceptions). If you want to add a specific HTTP feature, test it using an endpoint from `httpbin` which can validate it.
|
|
|
|