Blog

Call for Maintainers and Contributors; The Future of Apache Libcloud

We’ve reached an important crossroads for Apache Libcloud. The project has been running for nearly 15 years, serving as a stable and widely used abstraction layer for cloud services. Over the years, we’ve seen a steady stream of contributions - new drivers, bug fixes, small enhancements, and automation improvements.

However, sustaining long-term project health has always been a challenge, and in recent years, the situation has become more pressing. This is a call to action for maintainers and contributors who can help ensure Libcloud continues to serve its users.

The Challenge

Libcloud follows a driver/adapter pattern, meaning it consists of many individual drivers for different cloud providers. Naturally, most contributors are only interested in a specific driver, fixing or adding features for the one they use. This is completely understandable and has been the case since the beginning. Apache Jclouds, a similar project in Java, faced the same issue. This is a common challenge for projects like this - where core maintainers are responsible for the entire project while most contributions remain localized.

We’re incredibly grateful for all contributions, big or small, but the reality is that maintaining the overall project health requires a group of dedicated maintainers, which we have struggled with.

The Minimum Required to Keep Libcloud Healthy

According to Apache PMC guidelines, every project needs at least three active PMC members to provide basic oversight, including:

  • Monitoring and responding to security vulnerabilities
  • Keeping dependencies up to date
  • Ensuring the project remains functional

Currently, the project’s maintenance responsibilities are not evenly distributed, which is not sustainable in the long term.

Like all open-source projects, Libcloud’s long-term sustainability depends on active participation. If the project no longer meets the minimum oversight requirements, the community will need to discuss its future, including the possibility of retirement and movement to the Apache Attic.

While I recognize that every project eventually reaches its natural end-of-life, Libcloud is still widely used, and projects continue to depend on it. It would be unfortunate to see it discontinued simply due to a lack of maintainers.

That said, if the community and PMC members believe that retiring the project is the best course of action, we will of course follow that decision. Our goal is to ensure that Libcloud is maintained as long as it remains useful, but ultimately, the project’s future should reflect the needs and capacity of its community.

Call to Action

We’re looking for contributors who can help with basic project maintenance and oversight. The bar for involvement isn’t high, but minimum commitment is key. Ideally, we’re looking for people who:

  • Use Libcloud regularly in a meaningful way
  • Have experience contributing to Libcloud or similar open-source projects
  • Are willing to help with security oversight, dependencies, and general maintenance

If you’re interested, please reach out. You can post on our developer mailing list, introduce yourself, and let us know how you’d like to contribute.

We’re open to discussions on how to make involvement easier. If you use Libcloud and find it valuable, we encourage you to get involved. Contributions of all sizes help ensure the project remains healthy and sustainable.

What’s Next for Libcloud?

At this stage, I don’t expect any major evolutions. Keeping things up to date and making sure security issues are handled should be enough to keep the project in a healthy state.

That said, I’d be happy to be proven wrong. If someone is interested in larger contributions, new APIs, or major improvements, you are, of course, more than welcome. But first and foremost, we need to ensure the project remains maintainable and sustainable.

Thank You

Before closing, I want to thank everyone who has contributed to Libcloud over the years—whether it was a bug fix, a new driver, documentation improvements, or ongoing maintenance.

To all past and present contributors, committers, and PMC members: thank you for your dedication and hard work. And to those who have moved on to new projects and challenges, I wish you all the best. Your efforts helped shape Libcloud into what it is today.

If you’d like to be part of Libcloud’s future, now is the time to get involved. Let’s keep this project alive and thriving.

Thank you.

For those interested in the history of the project and our governance model, here are some useful links:

Libcloud 3.8.0 Released

We are happy to announce Libcloud v3.8.0.

This release includes new features, improvements, and bug fixes.

Highlights include:

  • Performance improvements in the storage drivers
  • Removal of 18 drivers for providers that are no longer active (they went out of business, have been acquired, or similar).

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

In addition to the end-user visible changes, we have made various changes to our development process and practices to better follow and align with modern Python development and packaging best practices.

  • Tooling (pylint, mypy, bandit, isort, black, etc.) config options have been migrated into pyproject.yaml file.
  • Package setup and build-related metadata have been migrated from setup.py and setup.cfg to pyproject.toml.
  • The unsafe “setup.py test” wrapper command has been removed in favor of invoking pytest directly.
  • The “build” PyPi package is now used for creating release artifacts (sdist, wheel) in an isolated virtual environment.

Download

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

pip install "apache-libcloud==3.8.0"

Upgrading

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

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

Upgrade notes

A page that 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.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 that reproduces your problem.

Thanks

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

Special thanks to Anthony Monthe - @ZuluPro for contributing driver removal / clean up change.

Libcloud 3.7.0 released

We are happy to announce Libcloud v3.7.0.

This release includes new features, improvements and bug fixes.

Highlights include:

  • Improvements in the CloudSigma compute driver
  • Support for af-south-1 region in the Amazon S3 storage driver
  • Bug fix for OAuth2 desktop client authentication in the Google Cloud Platform compute driver
  • Support for Python 3.6 has been dropped

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

Note on Python 3.6 support

Python 3.6 support has been dropped in Libcloud v3.7.0.

Python 3.6 has been EOL and non-supported for more than a year now (https://endoflife.date/python) and a lot of libraries (including some we depend on) have already dropped support for it.

Last release which still supports Python 3.6 is Libcloud v3.6.1.

Note on code style change (developers only)

To make formatting and styling in our code base more consistent, we have re-formatted all the code with black (https://github.com/psf/black) and pyupgrade Python 3.5+ (https://github.com/asottile/pyupgrade) and we will automatically enforce black code style (https://black.readthedocs.io/en/stable/) and pyupgrade checks for all the new code going forward.

This should make it easier to contribute and read the code since all the code will be using the same style.

Download

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

pip install "apache-libcloud==3.7.0"

Upgrading

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

pip install --upgrade "apache-libcloud==3.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/v3.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 3.6.1 released

We are happy to announce Libcloud v3.6.1.

This release includes new features, improvements and bug fixes.

Highlights include:

  • Improvements in the EC2 price scraping script and updated pricing
  • Improvements in the Azure ARM compute driver
  • Improvements in the GCE compute driver
  • Various bug fixes in the EC2 compute, OpenStack compute, Azure storage and other drivers

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

Note on Python 3.5 support

Python 3.5 support has been dropped in Libcloud v3.5.0.

Python 3.5 has been EOL and non-supported for more than a year now (https://endoflife.date/python) and a lot of libraries (including some we depend on) have already dropped support for it.

Last release which still supports Python 3.5 is Libcloud v3.4.1.

Note on code style change (developers only)

To make formatting and styling in our code base more consistent, we have re-formatted all the code with black (https://github.com/psf/black) and pyupgrade Python 3.5+ (https://github.com/asottile/pyupgrade) and we will automatically enforce black code style (https://black.readthedocs.io/en/stable/) and pyupgrade checks for all the new code going forward.

This should make it easier to contribute and read the code since all the code will be using the same style.

Download

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

pip install "apache-libcloud==3.6.1"

Upgrading

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

pip install --upgrade "apache-libcloud==3.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/v3.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 3.6.0 released

We are happy to announce Libcloud v3.6.0.

This release includes new features, improvements and bug fixes.

Highlights include:

  • Improvements in the Kuberneter container driver
  • Improvements in the OpenStack compute driver (support for micro versions, etc.)
  • Compatibility / support for paramiko >= 2.9.0 including backward compatibility layer for backward incompatible changes in paramiko related to old OpenSSH versions. More information on that available in the Upgrade Notes - https://libcloud.readthedocs.io/en/latest/upgrade_notes.html#libcloud-3-6-0
  • Support for authenticating using Azure AD credentials in the Azure Blobs storage driver

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

Note on Python 3.5 support

Python 3.5 support has been dropped in Libcloud v3.5.0.

Python 3.5 has been EOL and non-supported for more than a year now (https://endoflife.date/python) and a lot of libraries (including some we depend on) have already dropped support for it.

Last release which still supports Python 3.5 is Libcloud v3.4.1.

Note on code style change (developers only)

To make formating and styling in our code base more consistent, we have re-formatted all the code with black (https://github.com/psf/black) and we will automatically enforce black code style (https://black.readthedocs.io/en/stable/) for all the new code going forward.

This should make it easier to contribute and read the code since all the code will be using the same style.

Download

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

pip install "apache-libcloud==3.6.0"

Upgrading

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

pip install --upgrade "apache-libcloud==3.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/v3.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.