Blog

Libcloud 3.0.0-rc1 released

We are happy to announce Libcloud v3.0.0-rc1.

This is the first release candidate for Libcloud v3.0.0 which includes many changes, the biggest one being dropping support for Python 2.7 and Python 3 < 3.5.

Since this is a first release which drops support for those Python versions, we want to give our users some time to opt-in and test it and verify everything works as expected, before we produce a stable v3.0.0 release.

Other highlights include:

  • Type annotations for the base storage API
  • Various improvements in the Azure Blobs driver
  • New standard “prefix” keyword argument in the {list,iterate}_container_objects methods
  • 2 new compute drivers (KubeVirt, LXD)

If no major issues are found, this release candidate (with any other fixes which accumulate in trunk until then) will become a stable v3.0.0 release some time in the near future.

Keep in mind that this is a pre-release so it won’t be installed by pip by default when you run pip install apache-libcloud.

To install it, you need to explicitly specify a version as shown in the Download section below.

A list of all the changes can be found at https://libcloud.readthedocs.io/en/latest/changelog.html#changes-in-apache-libcloud-3-0-0-rc1.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install "apache-libcloud==3.0.0rc-1"

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade "apache-libcloud==3.0.0rc-1"

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/v3.0.0-rc1/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://github.com/apache/libcloud/issues.

Don’t forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.

Libcloud 2.8.0 released

We are pleased to announce the release of Libcloud 2.8.0.

This release includes various changes, most notable ones being:

  • Distribution now includes py.typed file which signals mypy that this package contains type annotations (currently only for the base compute API).
  • Fix wheel metadata. There was a bug where conditional dependencies were not specified correctly so it would try to install typing and enum34 dependency on Python versions where there is not needed.
  • Fix get_driver() bug / regression not working if the provider argument was a string and not a Provider ENUM.

Full change log can be found at https://libcloud.readthedocs.io/en/latest/changelog.html#changes-in-apache-libcloud-v2-8-0.

Dropping support for Python 2.7 and Python 3.4

The plan was for v2.7.0 to be the last major release before v3.0.0 which drops support for Python 2.7 and Python 3.4, but this has changed since v2.7.0 introduced some small regressions / bugs which needed to be fixed.

If no major issues are found in this release, this will be the last release before v3.0.0 which drops support for those Python versions.

For more information on dropping support for Python 2.7 and Python 3.4, please refer to the v2.7.0 release announcement https://libcloud.apache.org/blog/2019/12/09/libcloud-2-7-0-released.html.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install "apache-libcloud==2.8.0"

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade "apache-libcloud==2.8.0"

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/v2.8.0/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://github.com/apache/libcloud/issues. Don’t forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.

Libcloud 2.7.0 released

We are pleased to announce the release of Libcloud 2.7.0.

Among various smaller bug fixes, this release also includes a couple of big new features.

Highlights include:

  • Initial type annotations / hints support for the base Libcloud compute API.
  • S3 driver class has been updated to support region argument in the same manner as other drivers which support multiple regions (no more messy class per region approach). For backward compatibility reasons, “class per region” approach will still be supported until the next major release.
  • New start_node() and stop_node() method have been added to the base Libcloud compute API and the existing drivers which implement ex_start_node() and ex_stop_node() methods have been updated to implement those new methods. Old ex_ methods will continue to work for backward compatibility reasons.

Full change log can be found at https://libcloud.readthedocs.io/en/latest/changelog.html#changes-in-apache-libcloud-v2-7-0.

Dropping support for Python 2.7 and Python 3.4

Libcloud was among some of the other early larger Python projects which have supported Python 2.x and Python 3.x simultaneously using a single code base from 2011.

Over the years, the landscape has changed a lot. A lot of the users now use Python 3 as a default and a lot of the popular Python projects now not only support Python 3, but also make Python 3 the only supported Python version.

In addition to that, Python 2.7 will not be maintained past January 2020.

We have decided to sign the Python 3 statement and drop support for Python 2.7 and Python 3.4 in the next major release (v3.0.0) which will coincide with Python 2.7 EOL early next year.

This means that Libcloud v2.7.0 will be the last major release which still supports Python 2.7 and 3.4.

The change itself is still work in progress. People who are interested in it can check the following PR https://github.com/apache/libcloud/pull/1377.

How does this affect me?

If you still need to use Python 2.7 or Python 3.4 after Libcloud v3.0.0 is out, you will be able to do that by utilizing one of the older Libcloud releases which still supports that Python version.

All the new feature development and improvements will land in new release which support Python >= 3.5 only, but we may still do a release in the v2.7.x release series if a major bug or a security issue is found.

How does this affect the Libcloud development team?

Supporting Python 2.x and Python 3.x through a single code base was never totally trivial.

This is especially true for our project which doesn’t use six Python 2 / 3 compatibility library, but uses custom glue / wrapper code for that.

There are multiple reasons why we didn’t use six - one is that we still needed to support Python 2.5 which is not supported by six and another one is that we didn’t want to introduce another dependency on the end user in the days where Python packaging was still very much in the infancy.

Dropping support for Python 2.7 and Python 3.4 will allow us to streamline our code and remove a lot of the code which is not needed anymore.

This will result in easier development and cleaner code.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install apache-libcloud==2.7.0

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade apache-libcloud==2.7.0

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/v2.7.0/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://github.com/apache/libcloud/issues. Don’t forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.

Libcloud 2.6.1 released

We are pleased to announce the release of Libcloud 2.6.1!

This release includes various small bug fixes and improvements.

Full change log can be found at http://libcloud.readthedocs.io/en/latest/changelog.html#changes-in-apache-libcloud-2.6.1.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install apache-libcloud==2.6.1

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade apache-libcloud==2.6.1

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/v2.6.1/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://github.com/apache/libcloud/issues. Don’t forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.

Libcloud 2.6.0 released

We are pleased to announce the release of Libcloud 2.6.0!

This release includes many new features and improvements. Highlights include:

  • New compute driver for Gridscale.io provider
  • New compute driver for Maxihost provider
  • Various improvements in the OpenStack compute driver
  • Support for https proxies
  • Various improvements in the Azure blobs storage driver
  • Various improvements to the deploy node functionality and handling of unsupported SSH key types
  • CloudFlare DNS driver has been updated to use CloudFlare API v4
  • and much more.

Full change log can be found at http://libcloud.readthedocs.io/en/latest/changelog.html#changes-in-apache-libcloud-2.6.0.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install apache-libcloud==2.6.0

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade apache-libcloud==2.6.0

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/v2.6.0/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://github.com/apache/libcloud/issues. Don’t forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.