CHANGELOG.rst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. 4.1.0 - June 15, 2026 (sha 4d7999ac8785bececaa62964d25f4f552df7c3a0)
  2. ---------------------------------------------------------------------
  3. ## Release highlights
  4. This minor release adds Azure DNS support and modernizes the release pipeline. The public CloudBridge
  5. API is backward compatible with 4.0 — no code changes are required.
  6. ## What's new
  7. * **Azure DNS support.** The Azure provider can now manage DNS zones and records, bringing it in line
  8. with the DNS service already offered by the other providers. This adds ``azure-mgmt-dns`` to the
  9. Azure dependency set.
  10. ## Fixes and maintenance
  11. * Azure disks now use the region name (not the zone name) when resolving their location.
  12. * Test reliability: retry default-subnet creation, and allow storage-account creation enough time to
  13. resolve DNS.
  14. ## Build and CI
  15. * PyPI releases now use a trusted publisher (PyPI OIDC) from GitHub Actions instead of a stored API
  16. token. The deploy workflow is split into separate build and publish jobs, and integration runs are
  17. skipped on docs-only changes.
  18. ## Pull Requests
  19. * Use a trusted publisher when publishing to PyPI by @ksuderman in https://github.com/CloudVE/cloudbridge/pull/330
  20. * Add Azure DNS support by @nuwang in https://github.com/CloudVE/cloudbridge/pull/331
  21. * CI hygiene: split deploy job + dedicated env, skip CI on docs-only changes by @nuwang in https://github.com/CloudVE/cloudbridge/pull/332
  22. **Full Changelog**: https://github.com/CloudVE/cloudbridge/compare/v4.0.0...v4.1.0
  23. 4.0.0 - May 15, 2026 (sha 4963adc3f5f10cd885640138062800d7cd20e93a)
  24. ---------------------------------------------------------------------
  25. ## Release highlights
  26. This is a major release that brings the dependency stack up to date. The public CloudBridge API is unchanged —
  27. most users will not need any code changes. The version bump reflects the breadth of the underlying modernization
  28. rather than interface breakage.
  29. ## What users should know
  30. Python 3.13 or higher is now required. Support for older Python versions, including 2.7 compatibility
  31. shims (``six``), has been removed. Earlier Python versions are no longer tested; the default test environment
  32. is Python 3.13.
  33. Azure public IPs now use the Standard SKU. Basic-SKU public IPs are being retired by Azure. Public IPs created
  34. by CloudBridge are now Standard SKU. Within a single virtual network, public IPs of different SKUs cannot be
  35. mixed (Azure restriction). If you have a network that already contains Basic-SKU IPs created by CloudBridge 3.x,
  36. plan to standardize on one SKU before letting 4.0 add new IPs to that network.
  37. Mock provider now requires moto >= 5.0. If you use MockAWSCloudProvider in your own test suite alongside direct
  38. moto usage, your test harness must be on moto 5. In moto 5, the per-service decorators (mock_ec2, mock_s3, …) were
  39. unified into a single mock_aws.
  40. If you pin cloud SDKs alongside CloudBridge, you may need to relax upper bounds. The biggest jumps:
  41. azure-mgmt-compute (up to <39), azure-mgmt-network (<31), openstacksdk (<5).
  42. ### Under the hood (no action required)
  43. CloudBridge migrated off several abandoned Azure libraries (msrestazure, azure-cosmosdb-table, pysftp) and onto their
  44. maintained successors. The migration is transparent at the API level. Existing Azure resources created by
  45. 3.x — including key pairs stored in Azure Table Storage — are read by 4.0 without migration.
  46. ## Pull Requests
  47. * Update codecov badge by @nuwang in https://github.com/CloudVE/cloudbridge/pull/319
  48. * pull_request to pull_request_target for tests by @almahmoud in https://github.com/CloudVE/cloudbridge/pull/322
  49. * Azure - add AZURE_NETWORK_RESOURCE_GROUP to pick vnet from another ResourceGroup by @patchkez in https://github.com/CloudVE/cloudbridge/pull/321
  50. * Run in pull_request mode with approval by @nuwang in https://github.com/CloudVE/cloudbridge/pull/327
  51. * Upgrade azure, openstack sdks and moto to latest by @nuwang in https://github.com/CloudVE/cloudbridge/pull/323
  52. * Modernize project setup by @nuwang in https://github.com/CloudVE/cloudbridge/pull/328
  53. ## New Contributors
  54. * @patchkez made their first contribution in https://github.com/CloudVE/cloudbridge/pull/321
  55. **Full Changelog**: https://github.com/CloudVE/cloudbridge/compare/v3.2.0...v4.0.0
  56. 3.2.0 - September 06, 2023 (sha dd7ccbba9457232880da755ca66f8ae9d2e7dce4)
  57. ---------------------------------------------------------------------
  58. * Use external non-shared network for gateway by @almahmoud in https://github.com/CloudVE/cloudbridge/pull/307
  59. * Install cloudbridge full in examples by @nuwang in https://github.com/CloudVE/cloudbridge/pull/310
  60. * Add new `ec2_retries_value` config for `AWSCloudProvider` by @MosheFriedland in https://github.com/CloudVE/cloudbridge/pull/313
  61. * Add packaging action by @nuwang in https://github.com/CloudVE/cloudbridge/pull/314
  62. * Fix linting error in resource comparison by @nuwang in https://github.com/CloudVE/cloudbridge/pull/315
  63. * Fix tox syntax and branch references by @nuwang in https://github.com/CloudVE/cloudbridge/pull/316
  64. * Switch to pytest by @nuwang in https://github.com/CloudVE/cloudbridge/pull/317
  65. * Update tox syntax and pin min tox version by @nuwang in https://github.com/CloudVE/cloudbridge/pull/318
  66. 3.1.0 - August 19, 2022 (sha 28067e22377a60423e7fcf4f995ce224307b8b09)
  67. ---------------------------------------------------------------------
  68. * Added app credentials support to openstack.
  69. * Added VM instance create time property to all providers (thanks to @rodrigonull)
  70. * Added Azure stop VM instance method (thanks to @rodrigonull)
  71. * Cloud provider sdks updated to latest versions
  72. * Other misc fixes.
  73. 3.0.0 - December 3, 2021 (sha 327e330bed78b8b70c9ff9d256513d71bc27545f)
  74. ---------------------------------------------------------------------
  75. * This is a major release due to packaging changes, although there are no backward incompatible interface changes.
  76. * The cloudbridge package no longer installs any providers by default, and you must use `pip install cloudbridge[full]`
  77. instead of `pip install cloudbridge` to obtain previous behaviour. This is to allow greater control over what
  78. providers are installed. To install only specific providers, use `pip install cloudbridge[aws,gcp]` etc. #292
  79. (thanks to @RyanSiu1995)
  80. * Allow users to create signed urls with write permissions #294 (thanks to @FabioRosado)
  81. 2.2.0 - November 5, 2021 (sha f3fb8e18781cd3ede4509ef75a69e7c2a420a167)
  82. ---------------------------------------------------------------------
  83. * This is a maintenance release with no backward incompatible changes.
  84. * Azure dependencies updated to latest version and associated fixes #274, #277, #278, #279, #281, #282
  85. (thanks to @FabioRosado)
  86. * AWS, GCP and OpenStack dependencies updated to latest versions and associated fixes.
  87. * AWS resources use TagSpecification support, removing extra requests for initial tagging.
  88. * Fixed wrong logging object in cloud provider #272 (thanks to @MosheFriedland)
  89. * Switched to github actions from travis
  90. * Patch discovery.build calls in GCP provider to use google's improved httplib2 #263 (thanks to @selshowk)
  91. * Added feature to start and stop aws instance #271 (thanks to @abhi005)
  92. * Miscellaneous doc and maintenance fixes.
  93. 2.1.0 - December 1, 2020 (sha a5c3af8ebc5be3ed44db34ebba097848f17305fb)
  94. ---------------------------------------------------------------------
  95. * This release introduces the DNS service, which is a top level service for managing DNS zones and records.
  96. * Support for using the newly added AWS instance type offerings API. This removes the dependency on a static machine
  97. type list, and returns up-to-date information on instance type availability.
  98. * The default package no longer bundles Azure, as the Azure python libraries are very large and affects docker
  99. container size when using cloudbridge. To install with Azure, use `pip install cloudbridge[full]` or
  100. `pip install cloudbridge[azure]`.
  101. * A convenience method for cloning providers in different zones has been added, which helps with multi-zone operations.
  102. * Support for specifying s3 signature version for the AWS provider.
  103. * Miscellaneous bug fixes and error handling improvements.
  104. * Support for python<3 dropped.
  105. * No major backward incompatible changes (apart from Azure not being bundled by default)
  106. 2.0.0 - March 13, 2019 (sha 10e28a0d07251af4a424fcbf11435fa4d52e5277)
  107. ---------------------------------------------------------------------
  108. * This is a major release which contains many improvements and some breaking
  109. changes to the interface, but the changes are fairly straightforward.
  110. * Support for Google Cloud (thanks to @mbookman, @chiniforooshan, @baizhang)
  111. * Support for middleware, event listening and interception, allowing
  112. CloudBridge to be extended without needing to modify library code (This is
  113. also potentially useful for handling corner cases for specific clouds).
  114. * The mock provider is now available by default as a standard cloud provider,
  115. which is useful for testing applications that use CloudBridge.
  116. * Providers now operate in a single zone, and therefore, all methods that
  117. previously required the zone as a parameter no longer do. Specifically,
  118. ``instance.create()``, ``volume.create()``, ``subnet.create``,
  119. ``subnet.get_or_create_default()`` are affected in services,
  120. and ``snap.create_volume`` is affected in resources. The provider's default
  121. zone must now be specified through the provider config.
  122. * All exceptions that are generated by CloudBridge will now extend from
  123. ``CloudBridgeBaseException``
  124. * The cloud package is deprecated and everything under it has been moved
  125. one level up. For example, instead of
  126. ``from cloudbridge.cloud.factory import CloudProviderFactory`` use
  127. ``from cloudbridge.factory import CloudProviderFactory``.
  128. * Services are much more uniform now, and sub-services have been introduced
  129. for greater uniformity. For example, ``net.create_subnet()`` is now
  130. ``net.subnets.create()``
  131. * ``gateways.get_or_create_inet_gateway()`` is now simply
  132. ``gateways.get_or_create()``
  133. * AWS instance types are now served through Amazon CloudFront for better
  134. performance.
  135. * Miscellaneous bug fixes and improvements.
  136. 1.0.2 - September 25, 2018 (sha 621aeed1a8d7c5ad270649f8ee960e9682e57dae)
  137. -------------------------------------------------------------------------
  138. * Added AWS instance types caching for better performance
  139. * Added ``router.subnets`` property
  140. * Ensure the default network for CloudBridge on AWS has subnets
  141. 1.0.1 - September 7, 2018. (sha 3130492008c5e0e115b8dfec880d32a4ac90b761)
  142. -------------------------------------------------------------------------
  143. * Fixed minor bug when retrieving buckets with only limited access.
  144. * Relaxed some library version dependencies (e.g. six).
  145. 1.0.0 - September 6, 2018. (sha 11bccd822f21a598fc753995440cf1a409984889)
  146. -------------------------------------------------------------------------
  147. * Added Microsoft Azure as a provider.
  148. * Restructured the interface to make it more comprehensible and uniform across
  149. all supported providers. See `issue #69 <https://github.com/CloudVE/cloudbridge/issues/69>`_
  150. for more details as well as the library layout image for an easy visual
  151. reference: https://github.com/CloudVE/cloudbridge#quick-reference.
  152. * Migrated AWS implementation to use the boto3 library (thanks @01000101)
  153. * Cleaned up use of ``name`` property for resources. Resources now have ``id``,
  154. ``name``, and ``label`` properties to represent respectively: a unique
  155. identifier supplied by the provider; a descriptive, unchangeable name; and a
  156. user-supplied label that can be modified during the existence of a resource.
  157. * Added enforcement of name and label value: names must be at least 3 characters
  158. in length at minimum, and 64 characters at maximum, consisting of only lower
  159. case letters and dashes. Should not start or end with a dash.
  160. * Refactored tests and extracted standard interface tests where all resources
  161. are being tested using the same code structure. Also, tests will run only
  162. for providers that implement a given service.
  163. * Moved the repository from github.com/gvlproject to github.com/cloudve org.
  164. * When deleting an OpenStack network, clear any ports.
  165. * Added support for launching OpenStack instances into a specific subnet
  166. * Update image list interface to allow filtering by owner.
  167. * When listing images on AWS, filter only the ones by current account owner.
  168. * Retrieve AWS instance types from a public service to include latest values.
  169. * Instance state uses ``DELETED`` state instead of ``TERMINATED``.
  170. * Return VM type RAM in GB.
  171. * Add implementation for ``generate_url`` on OpenStack.
  172. * General documentation updates.
  173. 0.3.3 - August 7, 2017. (sha 348e1e88935f61f53a83ed8d6a0e012a46621e25)
  174. ----------------------------------------------------------------------
  175. * Remove explicit versioning of requests and Babel.
  176. 0.3.2 - June 10, 2017. (sha f07f3cbd758a0872b847b5537d9073c90f87c24d)
  177. ---------------------------------------------------------------------
  178. * Patch release to support files>5GB with OpenStack (thanks @MartinPaulo).
  179. * Misc bug fixes.
  180. 0.3.1 - April 18, 2017. (sha f36a462e886d8444cb2818f6573677ecf0565315)
  181. ----------------------------------------------------------------------
  182. * Patch for binary file handling in OpenStack.
  183. 0.3.0 - April 11, 2017. (sha 13539ccda9e4809082796574d18b1b9bb3f2c624)
  184. ----------------------------------------------------------------------
  185. * Reworked test framework to rely on tox's test generation features. This
  186. allows for individual test cases to be run on a per provider basis.
  187. * Added more OpenStack swift config options (OS_AUTH_TOKEN and OS_STORAGE_URL)
  188. * Added supports for accessing EC2 containers with restricted permissions.
  189. * Removed exists() method from object store interface. Use get()==None check
  190. instead.
  191. * New method (img.min_disk) for getting size of machine image.
  192. * Test improvements (flake8 during build, more tests).
  193. * Misc bug fixes and improvements.
  194. * Changed library to beta state
  195. * General documentation updates (testing, release process)
  196. 0.2.0 - March 23, 2017. (sha a442d96b829ea2c721728520b01981fa61774625)
  197. ----------------------------------------------------------------------
  198. * Reworked the instance launch method to require subnet vs. network. This
  199. removed the option of adding network interface to a launch config object.
  200. * Added object store methods: upload from file path, list objects with a
  201. prefix, check if an object exists, (AWS only) get an accessible URL for an
  202. object (thanks @VJalili).
  203. * Modified `get_ec2_credentials()` method to `get_or_create_ec2_credentials()`
  204. * Added an option to read provider config values from a file
  205. (`~/.cloudbridge` or `/etc/cloudbridge`).
  206. * Replaced py35 with py36 for running tests.
  207. * Added logging configuration for the library.
  208. * General documentation updates.
  209. 0.1.1 - Aug 10, 2016. (sha 0122fb1173c88ae64e40140ffd35ff3797e9e4ad)
  210. --------------------------------------------------------------------
  211. * For AWS, always launch instances into private networking (i.e., VPC).
  212. * Support for using OpenStack Keystone v3.
  213. * Add functionality to manipulate routers and routes.
  214. * Add FloatingIP resource type and integrate with Network service.
  215. * Numerous documentation updates.
  216. * For an OpenStack provider, add method to get the ec2 credentials for a user.
  217. 0.1.0 - Jan 30, 2016.
  218. ---------------------
  219. * Initial release of CloudBridge.
  220. * Support for Bucket, Instance, Instance type, Key pair, Machine image.
  221. Region, Security group, Snapshot, Volume, Network and Subnet services.
  222. * Support for paging results, block device mapping and launching into VPCs.
  223. * Support for AWS and OpenStack clouds.
  224. * Basic usage docs and complete API docs.
  225. * 95% test coverage.
  226. * Support for AWS mock test provider (via
  227. `moto <https://github.com/spulec/moto>`_).