From 8d81ceebca5ccf0310dbf0fce1f9a314c987e1c6 Mon Sep 17 00:00:00 2001 From: Radomir Dopieralski Date: Wed, 6 Nov 2024 11:26:27 +0100 Subject: [PATCH] Add libsass The django-pyscss and pyscss libraries currently being used in Horizon are not currently maintained and have an increasing number of problems that we have to work around. We want to instead switch to using the libsass library, which is using a C library of the same name under the hood, which in turn contains the official implementation of the sass and scss parsers. python3-libsass * Is the library actively maintained? The library is a python wrapper for the official C libsass library, and it's updated with every libsass release. https://github.com/sass/libsass-python/commits/main/ * Is the library good code? As far as I can tell, it's a correctly written python wrapper for C library. It includes tests. * Is the library license compatible? Yes, it's MIT license. * Is the library already packaged in the distros we target (Ubuntu latest / Fedora latest)? Yes. https://packages.fedoraproject.org/pkgs/python-libsass/python3-libsass/ https://packages.ubuntu.com/oracular/python3-libsass * Is the function of this library already covered by other libraries in global-requirements.txt? Yes, we are replacing python3-pyscss because it's unmaintained and has problems with recent versions of Python. * Is the library required for OpenStack project or related dev or infrastructure setup? (Answer to this should be Yes, of course) Which? It's needed for openstack-dashboard, aka Horizon. * If the library release is managed by the Openstack release process does it use the cycle-with-intermediary release type? It's not managed by the OpenStack. We no longer need django-libsass, we replaced it with our own code. Change-Id: I6d5c895e36766c9b1e1bb41f4c98468ba1b51a64 --- global-requirements.txt | 1 + upper-constraints.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/global-requirements.txt b/global-requirements.txt index 2cfcfc2746..9e2ffb26c3 100644 --- a/global-requirements.txt +++ b/global-requirements.txt @@ -36,6 +36,7 @@ django-compressor # MIT django-debreach # BSD django-formtools # BSD django-pyscss # BSD License (2 clause) +libsass # MIT Django<4.3 # BSD # eventlet is not compatibile with 2.0.0: https://github.com/eventlet/eventlet/issues/619 dnspython!=2.0.0,!=2.2.0 # http://www.dnspython.org/LICENSE diff --git a/upper-constraints.txt b/upper-constraints.txt index 52313385a5..1264e26a47 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -288,6 +288,7 @@ importlib-metadata===6.11.0;python_version>='3.10' oslo.middleware===6.2.0 XStatic-mdi===1.6.50.2 django-pyscss===2.0.3 +libsass===0.23.0 uritemplate===4.1.1 docutils===0.21.2 threadpoolctl===3.5.0