Skip to content

Releases: graphql-python/gql

v4.0.0a0

20 May 14:27
Compare
Choose a tag to compare
v4.0.0a0 Pre-release
Pre-release

Breaking Changes

  • Set ssl=True by default for AIOHTTPTransport (#538) (issue #529)
  • New TransportConnectionClosed Exception replacing ConnectionClosed Exception (#536)
  • websocket attribute removed from transport, now using _connected instead (#536)
  • Upgrade lastest websockets and Exceptions overhaul (#543)

Fixes

  • Fix httpx test deprecated warning (#542)

  • Refactor websockets transports (#536) :

    Refactor WebSockets Transport with Dependency Injection Architecture

    This major architectural improvement implements dependency injection patterns across the WebSockets transport layer, creating a more modular, testable, and extensible system:

    • Created abstract AdapterConnection interface in common/adapters/connection.py
    • Implemented concrete WebSocketsAdapter to wrap the websockets library
    • Moved websockets_base.py to common/base.py maintaining better structure which is independant of the websockets library used
    • Added new TransportConnectionClosed exception for clearer error handling
    • Reorganized code with proper separation of concerns:
    • Moved common functionality into dedicated adapters folder
    • Isolated connection handling from transport business logic
    • Separated ListenerQueue into its own file for better modularity

Misc

  • bump aiohttp to 3.11.2 (#541)
  • Bumping all the dev dependencies to latest versions (#540)
  • Bump test dependencies (#539)
  • Update pytest to 8.3.4 and pytest-asyncio to 0.25.3 (#537)

v3.5.3

20 May 12:36
Compare
Choose a tag to compare
  • Bump graphql-core to v3.2.6 #547

v3.5.2

06 Mar 10:45
Compare
Choose a tag to compare

Now supporting graphql-core v3.2.4 again (See issue #534)

  • Allow graphql-core 3.2.4 by retrofitting introspection commits #535

v3.5.1

19 Feb 14:53
Compare
Choose a tag to compare

3.5.1

Issue #529 reported that by default the AIOHTTPTransport was not validating ssl certificates
(a self-certificate was accepted by default).

This version adds a warning to warn users (See PR #533).

As a workaround, using ssl=True in the transport arguments fix the issue.

graphql-core has been restricted to <3.2.4 to fix tests.

A new stable version will be made shortly.

v3.6.0b4

18 Feb 14:20
Compare
Choose a tag to compare
v3.6.0b4 Pre-release
Pre-release

Warning

Issue #529 reported that by default the AIOHTTPTransport was not validating ssl certificates
(a self-certificate was accepted by default).

This version adds a warning to warn users, in the PR:

  • AIOHTTPTransport default ssl cert validation add warning (#530)

A new major version will be made shortly to change this default behavior to always verify
ssl certificates by default.

Features

  • Use httpx with gql-cli if aiohttp is not available on auto (#528)

Fixes

  • Using gql version of the get_introspection_query method (#523)
    This would reset the change of graphql-core to increase the type recursion level from 7 to 9
    in version graphql-core==3.3.0a7 and allow the possibility to change the introspection
    query recursion level.

Misc

  • Sort elements in node_tree method (#520)
  • Fix test for introspection type recursion level change in graphql-core v3.3.0a7 (#521)
  • Adding the input_value_deprecation argument to get_introspection_query_ast (#524)
  • Remove Python 3.8 support (#525)
  • Bump sphinx dev dependencies (#526)
  • Bump httpx to min 0.27 (#531)
  • Bump websockets to 13.x (#532)

v3.6.0b3

20 Jan 19:55
Compare
Choose a tag to compare
v3.6.0b3 Pre-release
Pre-release

Features

  • New transport AIOHTTPWebsocketsTransport (#478)
  • Wire httpx transport in gql-cli (#513)

Fixes

  • Fix properly exiting the WebsocketsTransport when a connection_error is received during init (#486)
  • Always close transport when an exception appears during the transport connect (#488)
  • Fix ssl=None not supported on recent versions of aiohttp (#496)
  • Websockets transport Fix long hang under certain network failures (#517)

Misc

  • Bump mypy to 1.10 (#485)
  • Remove Python 3.7 support (#489)
  • Bump pytest-cov dev-dependency to 5.0.0 (#487)
  • Remove Python 3.7 support - cleaning old code (#495)
  • Update annotation for client.execute_batch, get_execution_result argu… (#483)
  • Adding MIT License classifier (#498)
  • Delete gql-checker folder (#502)
  • Fix build wheel warnings (#503)
  • Using unittest.mock instead of mock (#504)
  • Using pyupgrade with --py38-plus (#505)
  • Upgrade GitHub workflows (#506)
  • Restrict permissions to GitHub actions (#509)
  • types-mock was only useful when using old standalone "mock" module (#511)
  • Fix python 3.11 test coverage issues (#512)
  • Add minimal pyproject.toml (#514)
  • Fix docs sphinx nitpick warnings - adding intersphinx_mapping (#515)
  • Fix tests failing vcrpy urllib3 dep (#518)
  • Support Python 3.13 (#519)
  • Fix deploy to Pypi GitHub action

v3.6.0b2

14 Apr 20:01
Compare
Choose a tag to compare
v3.6.0b2 Pre-release
Pre-release

Fixes

Misc

  • Fix spelling of _source (#474)
  • Doc Fix confusion about TransportQueryError execute retries (#473)

v3.6.0b1

08 Feb 22:50
Compare
Choose a tag to compare
v3.6.0b1 Pre-release
Pre-release

Features

  • Adding json_serialize and json_deserialize to requests transport (#466)
  • Adding json_deserialize parameter to aiohttp and httpx transports (#465)

v3.6.0b0

03 Jan 15:03
Compare
Choose a tag to compare
v3.6.0b0 Pre-release
Pre-release

Same as stable version 3.5.0 but with graphql-core back to versions >= 3.3.0a3

v3.5.0

03 Jan 14:51
Compare
Choose a tag to compare

IMPORTANT: graphql-core has been reverted to the stable versions 3.2.x
See #427
A new pre-release version will be made shortly with the graphql-core versions 3.3.x

New features

  • Add execute-timeout argument for gql-cli (#349)
  • Add HTTPX transport (#370)
  • Don't try to close the aiohttp session if connector_owner is False (#382)
  • Feature allow to set the content-type of file uploads (#386)
  • Allow to configure the introspection query sent to recover the schema (#402)
  • Python 3.11 support (#410)
  • Make retry backoff and status codes customizable for the requests transport (#421)
  • Support batching queries using sync transports (#431)
  • Support automatic batching of sync requests coming from different threads (#436)
  • httpx transport now working with trio (#455)
    new anyio dependency added

Bug fixes

  • Fix KeyError when errors is not iterable (#359)
  • Handle JSON response being None (#365)
  • Get response headers even with 4xx return code (#367)
  • TransportQueryError should extend TransportError (#392)
  • Fix sync subscribe graceful shutdown (#395)
  • Restrict urllib3 to versions 1.x (#413)
    This should fix the problems which appeared when requests version 2.30 bumped urllib3 to a 2.x version.
  • DSLSchema transform type attribute assert into AttributeError (#409)
  • Fix typo response_headers in httpx transport (#407)
  • Allow alias on DSLMetaField (#405)
  • Fix parse_results with fragments (#446)
  • Fix missing empty directives in DSL nodes (#448)

Documentation

  • Add documentation on websockets level ping frames (#345)
  • Minor Spelling Mistake (#351)
  • Add phoenix channel transport example (#354)
  • DOC minor typo (#396)

Misc

  • Make AsyncTransport and Transport proper abstract base classes (#350)
  • Update graphql-core to 3.3.0 and dropping support for Python 3.6 (#363)
  • Update Sphinx dev dependency to 5.3.0 (#371)
  • Update aiohttp minimum dependency version to 3.8.0 (#393)
  • Bump websockets dependency to allow 11.x versions (#424)
  • Adjust aiohttp pin (#425)
  • Validate the argument of the gql function (#435)
  • Switch ubuntu-latest to ubuntu-20.04 to fix github actions
  • Bump vcrpy and requests_toolbelt (#440) : allows users to use urllib3 2.x versions
  • Fix automatic documentation build on readthedocs.io:
    readthedocs remove system_packages: true in config
  • DOC explain how to install pre-releases versions
  • Fix tests with Python 3.12 (#442)
  • Adding node_tree method in utilities to debug and compare DocumentNode instances (#449)