Skip to content
William Silversmith edited this page Aug 13, 2020 · 3 revisions

This page serves as a repository of policy decisions taken that are relevant to the CloudVolume community.

There is no formal process at the moment for adopting resolutions, but if enough interest develops I'm open to it.

Semantic Versioning

Release numbering starting from Dec. 10, 2019 will follow Semantic Versioning interpreted as major.minor.micro (e.g. 1.0.0). All releases within a major version number should be compatible with each other and require no code changes by CloudVolume community members on release. Minor version increments indicate a new feature or redesign of a feature. A micro increment indicates a bug fix or a refactor. A performance increase can fall into a minor or micro increment depending on the intent of the update.

Adopted December 10, 2019

Master Must Pass Automated Testing

The master branch must pass automated testing, even prior to release of a new version on PyPI. If it fails, action should be taken as soon as practical to restore it.

Adopted December 10, 2019

Python 2.7 End-of-Life

Python 2.7's End of Life date is January, 1 2020. CloudVolume will support Python 2.7 up to that point. Numpy will be dropping support on January 1. We will monitor Python 2.7 usage on PyPI stats to see if it drops and revisit this in June 2020. As of March 2020, 2.7 usage was low but not insignificant. It was higher than Python 3.4 and 3.8 and similar to Python 3.5. https://pypistats.org/packages/cloud-volume

In early August 2020, we began to run into technical annoyances around the use of unicode in JSON files and the use of higher performance JPEG libraries. A vote was held on Github and Twitter between August 10 to August 12 by anyone interested holding a Github or Twitter account that unanimously called for dropping Python 2.7 support (though the date and implementation were not specified).

https://github.com/seung-lab/cloud-volume/issues/380 -- 3 to 0 for dropping Python 2.7 https://twitter.com/thundercloudvol/status/1292912062662873089 -- 8 to 0 for dropping Python 2.7

There may be some overlap between the people voting in each poll.

Given the unanimous call for dropping Python 2.7, we will proceed to drop support as soon as practical. In order to protect any non-vocal Python 2.7 users, we will use the python_requires tag to ensure that 2.7 users continue to download the last compatible version of CloudVolume and CloudFiles.

Adopted Feb. 11, 2019; Amended Dec. 10, 2019, March 16, 2020, August 13, 2020.