Blog

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.

Clemens Wolff (clewolff) joins our team

Please help us extend a warm welcome to our newest team member Clemens Wolff!

The Project Management Committee (PMC) for Apache Libcloud has invited Clemens Wolff to join us as a committer and we are pleased to announce that he has accepted.

Clemens has participated in the Libcloud community for a while now and during his participation he made a number of high quality contributions to the project.

For anyone who would like to know more about Clemens here is his short bio:

Clemens Wolff is a tech lead in Microsoft’s Commercial Software Engineering team, enabling customers from around the world to create scalable, resilient and efficient software solutions applying relevant technologies and platforms, including cloud computing, highly scalable data engines, machine learning and analytics, and distributed messaging systems.

And in his own words:

I was introduced to Libcloud while working with a research group at Imperial College London on porting OKpy, an open source computer science classroom management system, from GCP to Azure. OKpy uses Libcloud which made migrating the object storage needs of the application a breeze. Since this initial exposure, I’ve been using Libcloud on many projects to ensure cross-cloud compatibility and to simplify testing via the local provider implementations. Most of my contributions have been about maintaining and updating the Azure implementation of Libcloud’s storage driver and building test automation to ensure that Libcloud can seamlessly be used with Azure.

We are happy to have him in our team and we are looking forward to his future participation and contributions.