Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cloudblue/connect-python-openapi-client
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 34.0
Choose a base ref
...
head repository: cloudblue/connect-python-openapi-client
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 35.0
Choose a head ref
  • 14 commits
  • 36 files changed
  • 3 contributors

Commits on Jun 23, 2025

  1. Configuration menu
    Copy the full SHA
    dd342a7 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2026

  1. build(deps): drop spurious importlib-metadata dependency

    importlib-metadata was declared as a direct dependency (^6.6) solely as a
    fallback for the stdlib importlib.metadata import in connect/client/version.py.
    
    Since the project requires Python >=3.9 and importlib.metadata has been in the
    standard library since 3.8, the except branch never executed and the <7 ceiling
    imposed by the caret was entirely artificial.
    
    Remove the dependency from pyproject.toml and the try/except fallback in
    version.py (now importing directly from importlib.metadata). importlib-metadata
    remains in the lock at 6.11.0 as a transitive dependency of mkdocs (python<3.10),
    so requirements/docs.txt is unaffected.
    
    LITE-34447
    pcaro committed Jun 26, 2026
    Configuration menu
    Copy the full SHA
    d2a5027 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2026

  1. Merge pull request #84 from cloudblue/fix/replace-INGRAM-for-cb-texts

    Automatic replacement of '202x Ingram Micro' for '2025 CloudBlue'
    arnaugiralt authored Jun 30, 2026
    Configuration menu
    Copy the full SHA
    0538ece View commit details
    Browse the repository at this point in the history
  2. Merge pull request #85 from cloudblue/cr/LITE-34447-drop-importlib-me…

    …tadata
    
    LITE-34447: Drop spurious importlib-metadata dependency
    pcaro authored Jun 30, 2026
    Configuration menu
    Copy the full SHA
    8d3ff5f View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2026

  1. build(deps): drop Python 3.9, bump httpx/pytest-httpx, adapt async mo…

    …cker
    
    Raise the runtime floor to Python 3.10 (verified on 3.10 and 3.12) and
    modernize the HTTP toolchain:
    
      - python >=3.10,<4 (drop 3.9 from deps and CI matrix)
      - httpx >=0.28, pytest-httpx >=0.35, inflect >=7
      - dev: pytest >=8,<9, pytest-asyncio >=0.24,<2, pytest-cov <7
    
    pytest-httpx >=0.35 (which pulls httpx 0.28) is the only path to httpx
    0.28, and it forces the pytest/pytest-asyncio bumps transitively. Its
    0.31+ API changes break the async mocker, so adapt it:
    
      - HTTPXMock now requires _HTTPXMockOptions; construct it with
        can_send_already_matched_responses=True so a single registered
        response answers the ConnectClient's retried requests. The strict
        assert_all_requests_were_expected default is kept, so an unmocked
        request fails the test.
      - reset() no longer performs assertions; call _assert_options()
        explicitly, gated by success, to keep failing on unrequested mocks.
      - match_content now serializes JSON with compact separators to match
        httpx 0.28's compact request-body serialization.
    
    Mark test_execute_error_with_reason (native httpx_mock fixture, retries
    on 500) with the matching httpx_mock options. All tests pass.
    pcaro committed Jul 1, 2026
    Configuration menu
    Copy the full SHA
    3ba7d6a View commit details
    Browse the repository at this point in the history
  2. refactor(client): drop private httpx imports for proxy discovery

    connect/client/fluent.py imported `Proxy` from httpx._config and
    `get_environment_proxies` from httpx._utils. Both are private httpx APIs
    that can change or vanish on any minor release, and the import happens at
    module load, so a break would take down the whole client, not just proxy
    support.
    
    Reimplement the environment proxy discovery locally as
    _get_environment_proxies() on top of stdlib urllib.request.getproxies()
    and ipaddress, faithfully porting httpx 0.28's algorithm: http/https/all
    schemes (normalizing bare host:port to a http:// URL) and NO_PROXY
    handling for domains, IPv4, IPv6, localhost, explicit-scheme hosts, and
    the NO_PROXY=* global bypass. Use the public httpx.Proxy instead of the
    private one.
    
    Add tests for this previously untested logic (scheme normalization, each
    NO_PROXY host form, and the wildcard bypass). All 407 tests pass.
    pcaro committed Jul 1, 2026
    Configuration menu
    Copy the full SHA
    22e568f View commit details
    Browse the repository at this point in the history
  3. docs: update minimum Python version to 3.10

    The install section still stated Python 3.9 as the minimum. Python 3.9
    support was dropped on this branch (pyproject.toml now requires >=3.10),
    so align the README with the actual requirement.
    pcaro committed Jul 1, 2026
    Configuration menu
    Copy the full SHA
    c14e8ee View commit details
    Browse the repository at this point in the history
  4. test(openapi): refresh spec fixture to v37.0 and update assertions

    The bundled OpenAPI spec fixture (tests/data/specs.yml) was a v22.0
    snapshot from 2021. Replace it with the current live spec (v37.0) from
    https://apispec.connect.cloudblue.com/connect-openapi30.yml so the
    introspection tests validate against the API's real, current structure.
    
    Update the exact-match assertions in test_openapi.py whose expected
    values changed with the new spec: get_namespaces (11 -> 21),
    get_collections (18 -> 29), get_actions and get_nested_collections for
    products. No client code changes: the client is spec-agnostic and only
    loads the spec for optional help/validation.
    pcaro committed Jul 1, 2026
    Configuration menu
    Copy the full SHA
    2c60e1a View commit details
    Browse the repository at this point in the history
  5. fix(testing): correct async mocker for httpx 0.28 body matching

    Address PR review on the httpx 0.28 / pytest-httpx 0.35 bump.
    
    - match_content now mirrors httpx 0.28's request-body serialization
      exactly by adding ensure_ascii=False and allow_nan=False. Without
      them a non-ASCII match_body serialized to \uXXXX escapes while httpx
      sends raw UTF-8, so the mock silently failed to match.
    - Pin an upper bound pytest-httpx >=0.35,<1. It is a runtime dependency
      (connect.client.testing ships the mocker and a pytest11 plugin) that
      relies on private pytest_httpx API (_HTTPXMockOptions, _assert_options),
      so an unbounded minor bump could break downstream test suites.
    - Add test_create_match_non_ascii_body and test_unrequested_mock_fails
      to cover the non-ASCII matching and the reset() assertion path, which
      previously had no coverage.
    pcaro committed Jul 1, 2026
    Configuration menu
    Copy the full SHA
    6a26429 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2026

  1. Merge pull request #87 from cloudblue/cr/LITE-33583-update-spec

    LITE-33583: Refresh OpenAPI spec fixture to v37.0
    pcaro authored Jul 2, 2026
    Configuration menu
    Copy the full SHA
    62d9035 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #86 from cloudblue/cr/LITE-deps-bump-py310

    LITE-33583: Runtime floor to Python 3.10 and modernize http toolchain
    pcaro authored Jul 2, 2026
    Configuration menu
    Copy the full SHA
    e167136 View commit details
    Browse the repository at this point in the history
  3. ci: bump checkout and setup-python to fix Node 20 deprecation

    GitHub Actions runners are dropping Node 20 support, forcing actions
    pinned to it onto Node 24 with a deprecation warning. Bump
    actions/checkout to v7 and actions/setup-python to v6 in the build and
    deploy workflows to versions that target current Node natively.
    
    Part of LITE-33583.
    pcaro committed Jul 2, 2026
    Configuration menu
    Copy the full SHA
    1b5cfe2 View commit details
    Browse the repository at this point in the history
  4. ci: replace deprecated SonarCloud action and bump github-script

    The SonarScanner (sonarcloud-github-action) is deprecated in favour of
    sonarqube-scan-action, and its internals still pull actions/cache@v4,
    which targets the now-deprecated Node 20 runtime. Switch to
    SonarSource/sonarqube-scan-action@v8 (runs on Node 24), setting
    SONAR_HOST_URL to https://sonarcloud.io since the generic scan action
    has no SonarCloud default; projectKey/organization stay in
    sonar-project.properties.
    
    Also bump actions/github-script v6 (Node 16) to v9 (Node 24) in
    deploy.yml, the remaining action on a deprecated runtime.
    pcaro committed Jul 2, 2026
    Configuration menu
    Copy the full SHA
    22fba35 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #89 from cloudblue/LITE-33583_fix_github_actions_n…

    …ode20
    
    ci: fix Node 20 deprecation warning in GitHub Actions
    pcaro authored Jul 2, 2026
    Configuration menu
    Copy the full SHA
    7cd0e02 View commit details
    Browse the repository at this point in the history
Loading