Skip to content

Commit dab3dd1

Browse files
Merge remote-tracking branch 'upstream/hotfixes' into release
2 parents f815f18 + 36bb4f1 commit dab3dd1

File tree

4 files changed

+77
-19
lines changed

4 files changed

+77
-19
lines changed

Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ RUN apt-get -y install gcc g++ flex bison pkg-config automake autoconf cmake
77
RUN apt-get -y install python3-dev python3-pydot python3-tk
88
RUN apt-get -y install libopenblas-dev liblapack-dev libboost-all-dev libncurses5-dev libtool libssl-dev libjemalloc-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev libxml2-dev libxslt-dev libfreetype6-dev libsuitesparse-dev libclang-16-dev llvm-16-dev libthrift-dev libfftw3-dev
99
RUN python3 -m pip install --upgrade pip
10-
RUN pip3 install graphviz==0.21 networkx==3.5 packaging==25.0 python-dateutil==2.9.0.post0 pytz==2025.2 setuptools==80.9.0 six==1.17.0 tzdata==2025.2 wheel==0.45.1
10+
RUN pip3 install graphviz==0.21 networkx==3.6 packaging==25.0 python-dateutil==2.9.0.post0 pytz==2025.2 setuptools==80.9.0 six==1.17.0 tzdata==2025.2 wheel==0.46.1
1111
RUN pip3 install colorama==0.4.6 cycler==0.12.1 pyparsing==3.2.5 tqdm==4.67.1
12-
RUN pip3 install lxml==6.0.2 numpy==2.3.4 pandas==2.3.3 scipy==1.16.3
13-
RUN pip3 install contourpy==1.3.3 fonttools==4.60.1 kiwisolver==1.4.9 matplotlib==3.10.7 pillow==12.0.0
14-
RUN pip3 install anyio==4.11.0 asttokens==3.0.0 attrs==25.4.0 certifi==2025.10.5 charset-normalizer==3.4.4 convertdate==2.4.0 decorator==5.2.1 distro==1.9.0 executing==2.2.1 h11==0.16.0 httpcore==1.0.9 httpx==0.28.1 idna==3.11 ipython==9.6.0 jedi==0.19.2 Jinja2==3.1.6 jsonpickle==4.1.1 jsonschema-specifications==2025.9.1 lunardate==0.2.2 MarkupSafe==3.0.3 matplotlib-inline==0.2.1 parso==0.8.5 prompt-toolkit==3.0.52 pure-eval==0.2.3 pydantic==2.12.3 Pygments==2.19.2 pyluach==2.3.0 PyMeeus==0.5.12 referencing==0.37.0 rpds-py==0.28.0 sniffio==1.3.1 stack-data==0.6.3 traitlets==5.14.3 typing_extensions==4.15.0 urllib3==2.5.0 wcwidth==0.2.14
15-
RUN pip3 install jsonschema==4.25.1 openai==2.7.1 pyvis==0.3.2 requests==2.32.5 workalendar==17.0.0
12+
RUN pip3 install lxml==6.0.2 numpy==2.3.5 pandas==2.3.3 scipy==1.16.3
13+
RUN pip3 install contourpy==1.3.3 fonttools==4.61.0 kiwisolver==1.4.9 matplotlib==3.10.7 pillow==12.0.0
14+
RUN pip3 install anyio==4.12.0 asttokens==3.0.1 attrs==25.4.0 certifi==2025.11.12 charset-normalizer==3.4.4 convertdate==2.4.0 decorator==5.2.1 distro==1.9.0 executing==2.2.1 h11==0.16.0 httpcore==1.0.9 httpx==0.28.1 idna==3.11 ipython==9.8.0 jedi==0.19.2 Jinja2==3.1.6 jsonpickle==4.1.1 jsonschema-specifications==2025.9.1 lunardate==0.2.2 MarkupSafe==3.0.3 matplotlib-inline==0.2.1 parso==0.8.5 prompt-toolkit==3.0.52 pure-eval==0.2.3 pydantic==2.12.5 Pygments==2.19.2 pyluach==2.3.0 PyMeeus==0.5.12 referencing==0.37.0 rpds-py==0.30.0 sniffio==1.3.1 stack-data==0.6.3 traitlets==5.14.3 typing_extensions==4.15.0 urllib3==2.5.0 wcwidth==0.2.14
15+
RUN pip3 install jsonschema==4.25.1 openai==2.8.1 pyvis==0.3.2 requests==2.32.5 workalendar==17.0.0
1616
RUN pip3 install -U meson-python==0.15.0 Cython==3.0.10 ninja==1.11.1.1 spin==0.8 build==1.2.1 setuptools_scm==8.0.4
1717

1818
#RUN cd / && git clone https://github.com/numpy/numpy.git && cd /numpy && git submodule update --init && pip3 install .

requirements_stable.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ graphviz==0.21
66
kiwisolver==1.4.9
77
lxml==6.0.2
88
matplotlib==3.10.7
9-
networkx==3.5
10-
numpy==2.3.4
9+
networkx==3.6
10+
numpy==2.3.5
1111
packaging==25.0
1212
pandas==2.3.3
1313
pillow==12.0.0
@@ -19,4 +19,4 @@ setuptools==80.9.0
1919
six==1.17.0
2020
tqdm==4.67.1
2121
tzdata==2025.2
22-
wheel==0.45.1
22+
wheel==0.46.1

third_party/LICENSES_TRANSITIVE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
| colorama | https://pypi.org/pypi/colorama/json | BSD License | 0.4.6 |
1010
| contourpy | https://pypi.org/pypi/contourpy/json | BSD License | 1.3.3 |
1111
| cycler | https://pypi.org/pypi/cycler/json | BSD License | 0.12.1 |
12-
| fonttools | https://pypi.org/pypi/fonttools/json | Unspecified | 4.60.1 |
12+
| fonttools | https://pypi.org/pypi/fonttools/json | Unspecified | 4.61.0 |
1313
| graphviz | https://pypi.org/pypi/graphviz/json | Unspecified | 0.21 |
1414
| kiwisolver | https://pypi.org/pypi/kiwisolver/json | BSD License | 1.4.9 |
1515
| lxml | https://pypi.org/pypi/lxml/json | Unspecified | 6.0.2 |
1616
| matplotlib | https://pypi.org/pypi/matplotlib/json | Python Software Foundation License | 3.10.7 |
17-
| networkx | https://pypi.org/pypi/networkx/json | BSD License | 3.5 |
18-
| numpy | https://pypi.org/pypi/numpy/json | BSD License | 2.3.4 |
17+
| networkx | https://pypi.org/pypi/networkx/json | Unspecified | 3.6 |
18+
| numpy | https://pypi.org/pypi/numpy/json | BSD License | 2.3.5 |
1919
| packaging | https://pypi.org/pypi/packaging/json | BSD License | 25.0 |
2020
| pandas | https://pypi.org/pypi/pandas/json | BSD License | 2.3.3 |
2121
| pillow | https://pypi.org/pypi/pillow/json | Unspecified | 12.0.0 |
@@ -27,4 +27,4 @@
2727
| six | https://pypi.org/pypi/six/json | MIT License | 1.17.0 |
2828
| tqdm | https://pypi.org/pypi/tqdm/json | Mozilla Public License 2.0 (MPL 2.0) | 4.67.1 |
2929
| tzdata | https://pypi.org/pypi/tzdata/json | Apache Software License | 2025.2 |
30-
| wheel | https://pypi.org/pypi/wheel/json | MIT License | 0.45.1 |
30+
| wheel | https://pypi.org/pypi/wheel/json | MIT License | 0.46.1 |

third_party/generate_dependencies.py

Lines changed: 65 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import json
66
import importlib.util
77
from copy import deepcopy
8-
8+
from packaging.version import Version, InvalidVersion
99

1010
REMOVE_DEPS_AT_END = True
1111
UPDATE_DOCKERFILE = True
@@ -16,15 +16,73 @@
1616
def get_version(package):
1717
url = "https://pypi.org/pypi/" + package + "/json"
1818
r = requests.get(url)
19-
res0 = r.text
20-
dictio = r.json()
21-
#json.dump(dictio, open("temp2.txt", "w"), indent=2)
19+
r.raise_for_status()
20+
data = r.json()
21+
22+
# your debug dump
23+
#json.dump(data, open("temp2.txt", "w"), indent=2)
24+
25+
# ---- license (same as before) ----
2226
license = "Unspecified"
23-
for classi in dictio["info"]["classifiers"]:
27+
for classi in data["info"].get("classifiers", []):
2428
if classi.startswith("License ::"):
2529
license = classi.split(":: ")[-1]
26-
version = dictio["info"]["version"]
27-
#print(package, url, version, license)
30+
31+
releases = data.get("releases", {})
32+
33+
versions = []
34+
for s in releases.keys():
35+
try:
36+
versions.append(Version(s))
37+
except InvalidVersion:
38+
# skip weird/non-PEP 440 tags
39+
continue
40+
41+
if not versions:
42+
# fallback: behave like before, use info["version"]
43+
version = data["info"]["version"]
44+
time.sleep(0.1)
45+
return package, url, version, license
46+
47+
versions.sort(reverse=True)
48+
49+
# latest stable (non-pre-release)
50+
stable_versions = [v for v in versions if not v.is_prerelease]
51+
latest_stable = stable_versions[0] if stable_versions else None
52+
53+
# latest beta/RC (pre-release; you can restrict to 'b' and 'rc')
54+
prereleases = [v for v in versions if v.is_prerelease]
55+
56+
# Only beta and rc; drop alphas if you don't want them
57+
beta_rc_versions = [
58+
v for v in prereleases
59+
if v.pre is not None and v.pre[0] in ("b", "rc")
60+
]
61+
latest_beta_rc = beta_rc_versions[0] if beta_rc_versions else None
62+
63+
# ---- version choice logic with INCLUDE_BETAS ----
64+
if not INCLUDE_BETAS:
65+
# always stable if possible
66+
if latest_stable is not None:
67+
chosen = latest_stable
68+
else:
69+
# no stable versions, fall back to newest overall
70+
chosen = versions[0]
71+
else:
72+
# prefer beta/rc only if it is *newer* than latest stable
73+
if latest_beta_rc is not None and latest_stable is not None:
74+
chosen = latest_beta_rc if latest_beta_rc > latest_stable else latest_stable
75+
elif latest_beta_rc is not None:
76+
# no stable, but we do have beta/rc
77+
chosen = latest_beta_rc
78+
elif latest_stable is not None:
79+
chosen = latest_stable
80+
else:
81+
# extremely weird case: only unparseable vs; fall back
82+
chosen = versions[0]
83+
84+
version = str(chosen)
85+
2886
time.sleep(0.1)
2987
return package, url, version, license
3088

0 commit comments

Comments
 (0)