v4.2.0
Release highlights
This release makes CloudBridge's entire public API strongly typed (shipped with a PEP 561 py.typed marker), adds cross-provider multipart upload for large objects, and removes the long-deprecated deprecation dependency along with the deprecated APIs it supported.
What's new
- Comprehensive type hints. The whole public interface is now annotated and ships a PEP 561
py.typedmarker, so downstream users get a fully-typed API even though the underlying cloud SDKs are untyped. Amypycheck runs in CI — the interface and base layers under a strict bar, and the SDK-wrapping providers under a pragmatic tier. - Cross-provider multipart upload. Large object uploads now use multipart transfer with per-call
TransferConfigknobs (threshold, part size, concurrency), with parts uploaded in parallel via cloned providers.
Breaking changes
- Removed the
deprecationdependency and the long-expired deprecated APIs it supported (both markedremoved_in=2.0):- the
network_id=keyword alias onsecurity.vm_firewalls.create— usenetwork=instead; - the
AZURE_VM_DEFAULT_USER_NAMEenvironment/config variable — useAZURE_VM_DEFAULT_USERNAMEinstead.
- the
Fixes and maintenance
- Typing surfaced and fixed several latent provider issues: Azure
Volume.sourcenow resolves to aSnapshotobject, the Azure multi-firewall merge on launch passes the required network, and Azureparse_urlreports a meaningful parameter on error. - GCP volume attach/detach now waits for the operation to complete, and the attachments check was corrected.
- Reconciled numerous cross-provider return-type and behaviour inconsistencies to match the interface — e.g.
start/stop/deletereturnNoneconsistently, firewall-ruledirectionreturns theTrafficDirectionenum, and fatal missing-id paths raiseProviderInternalExceptioninstead of returningNone.
Build and CI
- Added a
mypytox environment (tox -e mypy) and a CI step; thelintenvironment now also enforces import order viaflake8-import-order.
Pull Requests
- Add cross-provider multipart upload support by @nuwang in #333
- Wait for GCP volume attach/detach operations; fix attachments check by @nuwang in #334
- Add comprehensive typing to cloudbridge + mypy tox check by @nuwang in #335
- Remove the deprecation dependency and long-expired deprecated APIs by @nuwang in #336
- Fix latent provider bugs surfaced during the typing work by @nuwang in #337
Full Changelog: v4.1.0...v4.2.0