Skip to content

Conversation

@abhinavsingh
Copy link
Owner

@abhinavsingh abhinavsingh commented Dec 1, 2021

  • Added benchmark directory
  • Added automated CHANGELOG integration powered by chronographer
  • Converted certain HttpParser methods to property
    • is_http_1_1_keep_alive
    • is_connection_upgrade
    • is_https_tunnel
    • is_chunked_encoded
    • content_expected
    • body_expected
  • Refactored to improve performance and reduce unnecessary processing where possible in the core
  • ProxyPoolPlugin now skips remote proxy of private IP requests
  • Handled malformed request scenario where HTTP/1.1 packet is received without a content length or chunked encoding

dependabot bot and others added 14 commits November 29, 2021 14:03
pip prod(deps): bump pylint from 2.11.1 to 2.12.1
Bumps [ncipollo/release-action](https://github.com/ncipollo/release-action) from 1.8.10 to 1.9.0.
- [Release notes](https://github.com/ncipollo/release-action/releases)
- [Commits](ncipollo/release-action@v1.8.10...v1.9.0)

---
updated-dependencies:
- dependency-name: ncipollo/release-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abhinav Singh <126065+abhinavsingh@users.noreply.github.com>
Bumps [rollup-plugin-copy](https://github.com/vladshcherbin/rollup-plugin-copy) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/vladshcherbin/rollup-plugin-copy/releases)
- [Commits](vladshcherbin/rollup-plugin-copy@3.3.0...3.4.0)

---
updated-dependencies:
- dependency-name: rollup-plugin-copy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abhinav Singh <126065+abhinavsingh@users.noreply.github.com>
…k` (#827)

* Add benchmarks for `proxy.py`, `tornado`, `aiohttp`, `flask`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Lint happy

* Disable W0223 for tornado

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Move changelog out of README into a separate file

* Expose the changelog to Sphinx

* Integrate Towncrier configuration into the repo

* Include the change fragment docs in Sphinx

* Add a config for the Chronographer GitHub App

* Add a change note for PR #823

* Update CHANGELOG.md

Co-authored-by: Abhinav Singh <126065+abhinavsingh@users.noreply.github.com>
* Add benchmark results to top-level README

* mypy

* Push down WIP example

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Spelling

* Link rtfd within `Internal Documentation` for now

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Bumps [types-paramiko](https://github.com/python/typeshed) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/python/typeshed/releases)
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-paramiko
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [js-cookie](https://github.com/js-cookie/js-cookie) from 2.2.1 to 3.0.1.
- [Release notes](https://github.com/js-cookie/js-cookie/releases)
- [Changelog](https://github.com/js-cookie/js-cookie/blob/master/.release-it.json)
- [Commits](js-cookie/js-cookie@v2.2.1...v3.0.1)

---
updated-dependencies:
- dependency-name: js-cookie
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abhinav Singh <126065+abhinavsingh@users.noreply.github.com>
* Bail out of lock earlier

* Avoid calling `get_events` for unfinished work tasks.  Use `cached_property` for `HttpParser` optimization

* Add `type: ignore[no-any-return]`, odd scenario

* We dont have to rebuild response packet repeatedly within `WebServerPlugin`

* Parse line and header in one invocation

* Minor optimizations and update benchmark to use `oha` instead of `hey`

* Remove `flask` from benchmark, only benchmark `asgi` or `async` based libraries.  Use `uvicorn` and 10 workers for `blacksheep`.  Use `oha` instead of `hey`

* Add benchmark for `starlette`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add missing dep

* pre-commit

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Avoid proxy of requests to private IP within `ProxyPoolPlugin`

* Fix tests

* spell fix
* No content length or chunked case can occur with `HTTP/1.1` too

* `WPS331` false-positive
)

Bumps [eslint-plugin-standard](https://github.com/standard/eslint-plugin-standard) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/standard/eslint-plugin-standard/releases)
- [Commits](standard/eslint-plugin-standard@v4.1.0...v5.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-standard
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [twine](https://github.com/pypa/twine) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/pypa/twine/releases)
- [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
- [Commits](pypa/twine@3.5.0...3.6.0)

---
updated-dependencies:
- dependency-name: twine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* `task.result` can raise exception

* Remove redundant `except`

* Fix doc spell.  We need to fix it well, currently strategy feels dumb and PITA

* Move common words within `spelling_wordlist.txt`
@psf-chronographer psf-chronographer bot added the bot:chronographer:provided Used by chronographer to mark a PR as CHANGELOG provider label Dec 1, 2021
@codecov
Copy link

codecov bot commented Dec 1, 2021

Codecov Report

Merging #838 (257d237) into master (a8e4d03) will decrease coverage by 0.50%.
The diff coverage is 81.59%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #838      +/-   ##
==========================================
- Coverage   87.41%   86.91%   -0.51%     
==========================================
  Files         129      128       -1     
  Lines        5699     5747      +48     
  Branches      467      475       +8     
==========================================
+ Hits         4982     4995      +13     
- Misses        614      646      +32     
- Partials      103      106       +3     
Flag Coverage Δ
pytest 86.79% <81.59%> (-0.51%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
proxy/common/utils.py 94.16% <ø> (+0.83%) ⬆️
proxy/core/acceptor/__init__.py 100.00% <ø> (ø)
proxy/core/acceptor/executors.py 91.35% <ø> (ø)
proxy/core/acceptor/listener.py 90.74% <ø> (ø)
proxy/core/acceptor/local.py 51.61% <0.00%> (ø)
proxy/core/acceptor/pool.py 94.23% <ø> (ø)
proxy/core/acceptor/remote.py 96.42% <ø> (ø)
proxy/core/base/__init__.py 100.00% <ø> (ø)
proxy/core/base/tcp_tunnel.py 38.46% <ø> (ø)
proxy/core/base/tcp_upstream.py 33.33% <ø> (ø)
... and 42 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a8e4d03...257d237. Read the comment docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided Used by chronographer to mark a PR as CHANGELOG provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants