Skip to content

Commit 911e172

Browse files
authored
Merge pull request #6181 from StackStorm/pants-requirements
Pants requirements
2 parents 4d34398 + f324e5f commit 911e172

File tree

19 files changed

+466
-376
lines changed

19 files changed

+466
-376
lines changed

CHANGELOG.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ Fixed
1313
Changed
1414
~~~~~~~
1515
* Bumped `jsonschema` 2.6.0 -> 3.2.0 now that python3.6 is not supported. #6118
16+
* Bumped many deps based on the lockfile generated by pants+pex. #6181 (by @cognifloyd and @nzlosh)
1617

1718
Added
1819
~~~~~
1920
* Continue introducing `pants <https://www.pantsbuild.org/docs>`_ to improve DX (Developer Experience)
2021
working on StackStorm, improve our security posture, and improve CI reliability thanks in part
2122
to pants' use of PEX lockfiles. This is not a user-facing addition.
22-
#6118 #6141 #6133 #6120
23+
#6118 #6141 #6133 #6120 #6181
2324
Contributed by @cognifloyd
2425
* Build of ST2 EL9 packages #6153
2526
Contributed by @amanda11

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ REQUIREMENTS := test-requirements.txt requirements.txt
5555

5656
# Pin common pip version here across all the targets
5757
# Note! Periodic maintenance pip upgrades are required to be up-to-date with the latest pip security fixes and updates
58-
PIP_VERSION ?= 20.3.3
59-
SETUPTOOLS_VERSION ?= 51.3.3
58+
PIP_VERSION ?= 24.0
59+
SETUPTOOLS_VERSION ?= 69.2.0
6060
PIP_OPTIONS := $(ST2_PIP_OPTIONS)
6161

6262
ifndef PYLINT_CONCURRENCY
@@ -735,8 +735,8 @@ check-dependency-conflicts:
735735
@echo
736736
# Verify there are no conflicting dependencies
737737
cat st2*/requirements.txt contrib/runners/*/requirements.txt | sort -u > req.txt && \
738-
$(VIRTUALENV_DIR)/bin/pip-compile req.txt || exit 1; \
739-
if [[ -e req.txt ]]; then rm req.txt; fi
738+
$(VIRTUALENV_DIR)/bin/pip-compile --strip-extras --output-file req.out req.txt || exit 1; \
739+
rm -f req.txt req.out
740740

741741
.PHONY: virtualenv
742742
# Note: We always want to update virtualenv/bin/activate file to make sure
@@ -1147,7 +1147,7 @@ ci-checks: .generated-files-check .shellcheck .black-check .pre-commit-checks .f
11471147
@echo
11481148
@echo "==================== rst-check ===================="
11491149
@echo
1150-
. $(VIRTUALENV_DIR)/bin/activate; rstcheck --report warning CHANGELOG.rst
1150+
. $(VIRTUALENV_DIR)/bin/activate; rstcheck --report-level WARNING CHANGELOG.rst
11511151

11521152
.PHONY: .generated-files-check
11531153
.generated-files-check:

contrib/runners/winrm_runner/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
# If you want to update depdencies for a single component, modify the
66
# in-requirements.txt for that component and then run 'make requirements' to
77
# update the component requirements.txt
8-
pywinrm==0.4.1
8+
pywinrm==0.4.3

fixed-requirements.txt

Lines changed: 54 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,85 @@
11
# Packages versions fixed for the whole st2 stack
22
# Note: amqp is used by kombu
3-
amqp==5.0.6
4-
apscheduler==3.7.0
5-
# requests 2.23 requires chardet < 3.1.0
6-
chardet<3.1.0
7-
cffi<1.15.0
3+
amqp==5.2.0
4+
apscheduler==3.10.4
5+
chardet==3.0.4
6+
cffi==1.16.0
87
# NOTE: 2.0 version breaks pymongo work with hosts
9-
dnspython>=1.16.0,<2.0.0
10-
cryptography==39.0.1
11-
# Note: 0.20.0 removed select.poll() on which some of our code and libraries we
12-
# depend on rely
13-
eventlet==0.33.3
8+
dnspython==1.16.0
9+
cryptography==42.0.5
10+
eventlet==0.36.1
1411
flex==6.14.1
1512
# Note: installs gitpython==3.1.37 (security fixed) under py3.8 and gitpython==3.1.18 (latest available, vulnerable) under py3.6
1613
# TODO: Pin to 3.1.37 or higher after dropping python3.6 support
17-
gitpython<=3.1.37
14+
gitpython==3.1.43
1815
# Needed by gitpython, old versions used to bundle it
19-
gitdb==4.0.2
16+
gitdb==4.0.11
2017
# Note: greenlet is used by eventlet
21-
greenlet==1.0.0
18+
greenlet==3.0.3
2219
gunicorn==21.2.0
2320
jsonpath-rw==1.4.0
2421
jsonschema==3.2.0
25-
kombu==5.0.2
22+
kombu==5.3.6
2623
lockfile==0.12.2
2724
# Fix MarkupSafe to < 2.1.0 as 2.1.0 removes soft_unicode
2825
# >=0.23 was from jinja2
29-
MarkupSafe<2.1.0,>=0.23
30-
mongoengine==0.23.0
26+
MarkupSafe==2.0.1
27+
mongoengine==0.23.1
3128
# required by orquesta (networkx<2.6 for py3.6, networkx<3 for py3.8)
32-
networkx<3
33-
# networkx requires decorator>=4.3,<5 which should resolve to version 4.4.2
34-
# but the wheel on pypi does not say it supports python3.8, so pip gets
35-
# confused. For now, pin decorator to work around pip's confusion.
36-
decorator==4.4.2
29+
networkx==2.8.8
30+
# networkx dropped its dep on decorator in version 2.6, so the old pin is unneeded.
31+
# now jsonpath-rw is the only thing that depends on decorator (a transitive dep)
32+
decorator==5.1.1
3733
# NOTE: Recent version substantially affect the performance and add big import time overhead
3834
# See https://github.com/StackStorm/st2/issues/4160#issuecomment-394386433 for details
39-
oslo.config>=1.12.1,<1.13
40-
oslo.utils<5.0,>=4.0.0
35+
oslo.config==1.12.1
36+
oslo.utils==7.1.0
4137
# paramiko 2.11.0 is needed by cryptography > 37.0.0
42-
paramiko==2.11.0
38+
paramiko==3.4.0
4339
passlib==1.7.4
44-
prompt-toolkit==1.0.15
40+
# For st2client: prompt-toolkit v2+ does not have prompt_toolkit.token.Token
41+
prompt-toolkit==1.0.18
4542
pyinotify==0.9.6 ; platform_system=="Linux"
46-
pymongo==3.11.3
47-
pyparsing<3
48-
zstandard==0.15.2
43+
pymongo==3.12.3
44+
pyparsing==3.1.2
45+
zstandard==0.22.0
4946
# pyOpenSSL 23.1.0 supports cryptography up to 40.0.x
50-
pyOpenSSL==23.1.0
47+
#pyOpenSSL==23.1.0
5148
python-editor==1.0.4
5249
python-keyczar==0.716
53-
pytz==2021.1
54-
pywinrm==0.4.1
55-
pyyaml==5.4.1
56-
redis==4.1.4
57-
requests[security]==2.25.1
58-
retrying==1.3.3
59-
routes==2.4.1
60-
semver==2.13.0
61-
six==1.13.0
62-
argparse==1.12.2
63-
# Note: argcomplete 1.12.3 supports importlib-metadata<5
64-
argcomplete==1.12.3
65-
prettytable==2.1.0
66-
# Note: installs importlib-metadata==4.10.1 (security fixed) under py3.8 and importlib-metadata==4.8.3 (latest available, vulnerable) under py3.6
67-
# TODO: Pin to 4.10.1 or higher after dropping python3.6 support
68-
importlib-metadata>=4.8.3,<=4.10.1
69-
# importlib-metadata requires typing-extensions but v4.2.0 requires py3.7+
70-
typing-extensions<4.2
50+
pytz==2024.1
51+
pywinrm==0.4.3
52+
pyyaml==6.0.1
53+
redis==5.0.3
54+
requests==2.31.0
55+
retrying==1.3.4
56+
routes==2.5.1
57+
semver==3.0.2
58+
six==1.16.0
59+
argparse==1.4.0
60+
argcomplete==3.2.3
61+
prettytable==3.10.0
62+
importlib-metadata==7.1.0
63+
typing-extensions==4.11.0
7164
# NOTE: sseclient has various issues which sometimes hang the connection for a long time, etc.
72-
sseclient-py==1.7
73-
stevedore==1.30.1
74-
tenacity>=3.2.1,<7.0.0
75-
tooz==2.8.0
65+
sseclient-py==1.8.0
66+
stevedore==5.2.0
67+
tenacity==8.2.3
68+
tooz==6.1.0
7669
# Note: virtualenv embeds wheels for pip, wheel, and setuptools. So pinning virtualenv pins those as well.
77-
# virtualenv==20.4.0 (<21) has pip==20.3.3 wheel==0.36.2 setuptools==51.3.3
78-
virtualenv==20.4.0
70+
# virtualenv==20.25.1 (<21) has pip==24.0 wheel==0.42.0 setuptools==68.0.0 and 69.1.0
71+
# lockfiles/st2.lock has pip==24.0 wheel==0.43.0 setuptools==69.2.0
72+
virtualenv==20.25.1
7973
webob==1.8.7
8074
zake==0.2.2
8175
# test requirements below
82-
bcrypt==3.2.0
83-
jinja2==2.11.3
84-
mock==4.0.3
76+
bcrypt==4.1.2
77+
jinja2==3.1.3
78+
mock==5.1.0
8579
nose-timer==1.0.1
8680
nose-parallel==0.4.0
87-
psutil==5.8.0
88-
python-dateutil==2.8.1
81+
psutil==5.9.8
82+
python-dateutil==2.9.0
8983
python-statsd==2.1.0
90-
orjson==3.5.2
91-
zipp<3.16.0
84+
orjson==3.10.0
85+
zipp==3.18.1

lockfiles/st2-constraints.txt

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,26 @@ MarkupSafe<2.1.0,>=0.23
2424

2525
# REQUIRED BY: kombu
2626
# REASON: unknown -- this looks like a lockfile-style pin
27+
# kombu 5.0.2 requires amqp>=5.0.0,<6.0.0
28+
# kombu 5.1.0 requires amqp>=5.0.6,<6.0.0
29+
# kombu 5.2.3 requires amqp>=5.0.9,<6.0.0
30+
# kombu 5.3.0 requires amqp>=5.1.1,<6.0.0
2731
# NOTE: try to remove constraint later.
28-
# DROPS RESOLVED VERSION: 5.1.1
29-
amqp==5.0.6
32+
# DROPS RESOLVED VERSION: 5.1.1 or 5.2.0
33+
#amqp==5.0.6
3034

3135
# REQUIRED BY: cryptography, paramiko, passlib
3236
# REASON: unknown -- this looks like a lockfile-style pin
37+
# bcrypt 4 is a rewrite in rust and wheels are manylinux2014 instead of manylinux2010
3338
# NOTE: try to remove constraint later.
3439
# DROPS RESOLVED VERSION: 4.0.1
35-
bcrypt==3.2.0
40+
#bcrypt==3.2.0
3641

3742
# REQUIRED BY: bcrypt, cryptography, pynacl, zstandard
3843
# REASON: unknown
3944
# NOTE: try to remove constraint later.
4045
# DROPS RESOLVED VERSION: 1.15.1
41-
cffi<1.15.0
46+
#cffi<1.15.0
4247

4348
# REQUIRED BY: orquesta, prance, requests
4449
# REASON: requests 2.23 requires chardet < 3.1.0
@@ -52,6 +57,8 @@ cffi<1.15.0
5257
# but the wheel on pypi does not say it supports python3.8, so pip gets
5358
# confused. For now, pin decorator to work around pip's confusion.
5459
# NOTE: Since pants/pex use a newer version of pip, this is not an issue.
60+
# Also, networkx dropped its dependency on decorator in v2.6, and we're
61+
# using 2.8, so this constraint is pointless now.
5562
# DROPS RESOLVED VERSION: 4.4.2
5663
#decorator==4.4.2
5764

@@ -62,9 +69,10 @@ cffi<1.15.0
6269
dnspython>=1.16.0,<2.0.0
6370

6471
# REQUIRED BY: eventlet
65-
# REASON: unknown -- this looks like a lockfile-style pin
66-
# NOTE: We are having a hard time upgrading eventlet, so this pin is commented
67-
# out to see if that will help. If any tests fail, uncomment this.
72+
# REASON: eventlet is difficult to upgrade.
73+
# greenlet 2 adds py3.11 support, platform compat changes, and better error checking
74+
# greenlet 3 adds py3.12 support, drops py3.6 support, fixes various crash conditions
75+
# NOTE: If constrained, bump carefully. Tests seem to be passing without this constraint.
6876
# DROPS RESOLVED VERSION: 1.1.3.post0
6977
#greenlet==1.0.0
7078

@@ -81,13 +89,13 @@ dnspython>=1.16.0,<2.0.0
8189
# REASON: unknown
8290
# NOTE: try to remove constraint later.
8391
# DROPS RESOLVED VERSION: 4.13
84-
oslo.utils<5.0,>=4.0.0
92+
#oslo.utils<5.0,>=4.0.0
8593

8694
# REQUIRED BY: tooz
8795
# REASON: unknown
8896
# NOTE: try to remove constraint later.
8997
# DROPS RESOLVED VERSION: 8.1
90-
tenacity>=3.2.1,<7.0.0
98+
#tenacity>=3.2.1,<7.0.0
9199

92100
# REQUIRED BY: st2-auth-backend-flat-file
93101
# REASON: unknown -- this looks like a lockfile-style pin
@@ -111,4 +119,4 @@ tenacity>=3.2.1,<7.0.0
111119
# REASON: importlib-metadata requires typing-extensions but v4.2.0 requires py3.7+
112120
# NOTE: try to remove constraint later.
113121
# DROPS RESOLVED VERSION: 4.1.1
114-
typing-extensions<4.2
122+
#typing-extensions<4.2

0 commit comments

Comments
 (0)