Skip to content

0.9.0

Compare
Choose a tag to compare
@randomir randomir released this 29 Sep 23:03
· 483 commits to master since this release

Prelude

We began using Reno as a changelog tool after the release of 0.8.7. Content added before that release is not included. See releases for previous release notes.

New Features

  • Default dwave config create configuration flow is now simplified to prompt only for essential parameters (at the moment that's only token).

    Interactive configuration of an extended set of non-essential parameters (i.e. the previous default) is now available via a new flag: --full.

    See #304

  • A low-level dwave.cloud.api.client added to abstract SAPI communication details (like authentication, response decoding, error handling, retries, etc).

  • All SAPI requests and responses modelled in dwave.cloud.api.models.*. These models are used for data validation and representation.

  • Added model-level interfaces to SAPI resources (in a REST sense), dwave.cloud.api.resources.Solvers and dwave.cloud.api.resources.Problems.
  • Added mock solver data generators.
  • New layer of exceptions added in dwave.cloud.api.exceptions. Base exception RequestError subclasses requests's exception and includes raw .response object, along with .error_msg and .error_code returned by SAPI.
  • Begin using reno for changelog.

Upgrade Notes

  • SAPIError exception is now just an alias for dwave.cloud.api.exceptions.RequestError.
  • To configure non-essential parameters such as endpoint, client and solver, configuration create command now has to be called with the --full option:

    dwave config create --full
    
  • dwave.cloud.client module is now a namespace containing all client subclasses as submodules. You should update your imports accordingly:

    dwave.cloud.Client         -->  dwave.cloud.client.base.Client
    dwave.cloud.hybrid.Client  -->  dwave.cloud.client.hybrid.Client
    dwave.cloud.qpu.Client     -->  dwave.cloud.client.qpu.Client
    dwave.cloud.sw.Client      -->  dwave.cloud.client.sw.Client
    

    For backwards compatibility, old import paths still work, but are deprecated.

Deprecation Notes

  • Import paths dwave.cloud.{hybrid,qpu,sw}.Client are deprecated and should be replaced with dwave.cloud.client.{hybrid,qpu,sw}.Client.

Bug Fixes

  • Configured client session creation is sped up by caching user-agent construction (per client). Client session is now created ~200x faster, making it on par with requests.Session creation time (~50us).
  • When a path to a nonexistent config file is provided to dwave config create, we'll now happily create that file, instead of failing.
  • Avoid character encoding / charset guessing for speed and stability.