Skip to content

Commit a9ae68a

Browse files
committed
Replace pkg_resources with importlib and regenerate lockfile/requirements
Lockfile diff: lockfiles/st2.lock [st2] == Upgraded dependencies == cryptography 46.0.5 --> 46.0.6 requests 2.32.5 --> 2.33.0 tomli 2.4.0 --> 2.4.1 == Added dependencies == importlib-resources 6.5.2
1 parent df2f2a6 commit a9ae68a

7 files changed

Lines changed: 173 additions & 110 deletions

File tree

CHANGELOG.rst

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,26 @@ Changelog
44
in development - unreleased
55
---------------------------
66

7-
Python3.8 and Python3.9 support has been removed.
8-
This release adds support for Python3.12, so StackStorm supports Python versions 3.10 - 3.12
7+
This release is tested with and supports the following Python versions and 3rd party dependencies.
8+
9+
```
10+
Python 3.10, 3.11 and 3.12
11+
MongoDB 8.2
12+
RabbitMQ 4.2
13+
Redis 8.6
14+
```
15+
916

1017
Fixed
1118
~~~~~
1219

20+
1321
Changed
1422
~~~~~~~
15-
23+
* Removed Python 3.8 and 3.9 from testing and CI/CD.
24+
* Removed mongodb 7.0, rabbitmq 3.13 and redis 8.0
25+
* Replaced deprecated `pkg_resources` module with `importlib-metadata` and `importlib-resources`.
26+
1627
Added
1728
~~~~~
1829

fixed-requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ gitdb==4.0.12
2020
# Note: greenlet is used by eventlet
2121
greenlet==3.1.1
2222
gunicorn==23.0.0
23+
# importlib backport to replace pkg_resrouce from setuptools.
24+
importlib-metadata==6.5
25+
importlib-resources==5.12
2326
jsonpath-rw==1.4.0
2427
# Using jsonschema>=4.18.0 requires refactoring/debugging use of $ref.
2528
jsonschema==4.17.3

lockfiles/st2.lock

Lines changed: 144 additions & 100 deletions
Large diffs are not rendered by default.

requirements-pants.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ gitpython
2121
# st2common/tests/integration/test_util_green.py requires greenlet (as does eventlet)
2222
greenlet
2323
gunicorn
24+
# importlib backport to replace pkg_resource from setuptools.
25+
importlib-metadata
26+
importlib-resources
2427
jinja2
2528
jsonpath-rw
2629
jsonschema

st2common/st2common/content/validators.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from __future__ import absolute_import
1717
import os
18-
from pkg_resources import get_distribution
18+
from importlib_metadata import get_distribution
1919

2020
from st2common.constants.pack import USER_PACK_NAME_BLACKLIST
2121

st2common/st2common/runners/base.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,13 @@ def get_metadata(package_name):
118118
119119
:rtype: ``list`` of ``dict``
120120
"""
121-
import pkg_resources
121+
import importlib_resources
122122

123-
file_path = pkg_resources.resource_filename(package_name, MANIFEST_FILE_NAME)
123+
ref = importlib_resources.files(package_name) / MANIFEST_FILE_NAME
124124

125-
with open(file_path, "r") as fp:
126-
content = fp.read()
125+
with importlib_resources.as_file(ref) as file_path:
126+
with open(file_path, "r") as fp:
127+
content = fp.read()
127128

128129
metadata = yaml.safe_load(content)
129130
return metadata

st2common/st2common/util/spec_loader.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# limitations under the License.
1515

1616
from __future__ import absolute_import
17-
import pkg_resources
17+
import importlib_resources
1818

1919
import jinja2
2020

@@ -42,7 +42,8 @@ def load_spec(module_name, spec_file):
4242

4343

4444
def generate_spec(module_name, spec_file):
45-
spec_template = pkg_resources.resource_string(module_name, spec_file)
45+
ref = importlib_resources.files(module_name).joinpath(spec_file)
46+
spec_template = ref.read_bytes()
4647
if not isinstance(spec_template, str):
4748
spec_template = spec_template.decode()
4849
spec_string = jinja2.Template(spec_template).render(**ARGUMENTS)

0 commit comments

Comments
 (0)