From 71a8c3bd4f8d665d569fa94b113be475ccfb9879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Weing=C3=A4rtner?= Date: Fri, 2 Jul 2021 15:00:54 -0300 Subject: [PATCH] Add datetimerange library to global requirements While developing a new feature in CloudKitty, we adopt a library (datetimerange) to facilitate the handling/processing of datetime ranges. Therefore, to make the Zuul requirements check happy, we are introducing this new dependency into the global requirements file. Add datetimerange library to global requirements While developing a new feature in CloudKitty, we adopt a library (datetimerange) to facilitate the handling/processing of datetime ranges. Therefore, to make the Zuul requirements check happy, we are introducing this new dependency into the global requirements file. Here follows the answers to the new library requirement questions: 1 - Is the library actively maintained? Yes, it is. As we see in [1], the component has more or less one yearly release. It is a very focused library, so this release process makes sense. 2 - Is the library good code? Yes, it is. As we can see in [2], it has a 95% of code coverage. Moreover, while navigating in the code repository, we can see that methods are well documented, and coded. 3 - Is the library python 3 compatible? Yes, it is. That is also found in the README of the project in [2]. 4 - Is the library license compatible? According to reference [3]: ``` In order to be acceptable as dependencies of OpenStack projects, external libraries (produced and published by 3rd-party developers) must be licensed under an OSI-approved license that does not restrict distribution of the consuming project. The list of acceptable licenses includes ASLv2, BSD (both forms), MIT, PSF, LGPL, ISC, and MPL. Licenses considered incompatible with this requirement include GPLv2, GPLv3, and AGPL. ``` Therefore, the project fits nicely into these requirements. The project in question is licensed under MIT, as we can see in [2], in the right corner part of the page, and also in the LICENSE file at the root of the project. 5 - Is the library already packaged in the distros we target (Ubuntu latest / Fedora latest)? It is installed via PIP; PIP is available in major distros. Therefore, it is possible to use this library in all of them by issues the command `pip install DateTimeRange`. 6 - Is the function of this library already covered by other libraries in global-requirements.txt? No. At least, I did not find it. 7 - Is the library required for OpenStack project or related dev or infrastructure setup? (Answer to this should be Yes, of course) Which? Yes, it is. We have a new feature being developed ion Cloudkitty in [4], which needs this library to handle DateTime ranges. 8 - If the library release is managed by the Openstack release process does it use the cycle-with-intermediary release type? It is not managed by the OpenStack release process. 9 - Do I need to update anything else? No. [1] https://github.com/thombashi/DateTimeRange/releases [2] https://github.com/thombashi/DateTimeRange [3] https://governance.openstack.org/tc/reference/licensing.html [4] https://review.opendev.org/c/openstack/cloudkitty/+/799207 Change-Id: I608331e28ef349399068f9b1fa16bd6a6c5779e6 --- global-requirements.txt | 1 + upper-constraints.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/global-requirements.txt b/global-requirements.txt index 2af645d6b3..b6cfcd4606 100644 --- a/global-requirements.txt +++ b/global-requirements.txt @@ -32,6 +32,7 @@ croniter # MIT License cryptography!=2.0 # BSD/Apache-2.0 cursive # Apache-2.0 dataclasses;python_version=='3.6' # Apache-2.0 +datetimerange # MIT ddt # MIT debtcollector<2.0.0;python_version<'3.6' # Apache-2.0 debtcollector;python_version>='3.6' # Apache-2.0 diff --git a/upper-constraints.txt b/upper-constraints.txt index 21efd9c989..78ca4b9ee8 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -469,6 +469,7 @@ simplegeneric===0.8.1 python-pcre===0.7 yappi===1.3.2 dataclasses===0.8;python_version=='3.6' +datetimerange===1.1.0 # MIT abclient===0.2.3 pymemcache===3.4.3 wrapt===1.12.1