Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,19 @@ jobs:
DIRNAME: python313
SYN_MASTER_REF: synapse-3xx

build_314:
executor: amd64
steps:
- docker_build:
DIRNAME: python314

test_314:
executor: amd64
steps:
- docker_test:
DIRNAME: python314
SYN_MASTER_REF: synapse-3xx

workflows:
build-and-test:
jobs:
Expand All @@ -115,4 +128,8 @@ workflows:
- build_313
- test_313:
requires:
- build_313
- build_313
- build_314
- test_314:
requires:
- build_314
51 changes: 51 additions & 0 deletions python314/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
FROM python:3.14.0-slim-bookworm

LABEL maintainer="vEpiphyte <[email protected]>"

ENV DEBIAN_FRONTEND="noninteractive"
ENV PYTHONUNBUFFERED=1

COPY pandoc.deb.sha256 pandoc.deb.sha256
# COPY requirements requirements
# COPY python314/rmlist.txt rmlist.txt

# Install dependencies, Python 3.14, and setup environment
RUN set -ex \
&& apt-get clean \
&& apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y libffi-dev \
&& apt-get install -y locales curl tini nano build-essential \
# Upgrade pip
&& python -m pip install --upgrade pip \
# Install pandoc
&& curl -L -o pandoc-amd64.deb https://github.com/jgm/pandoc/releases/download/3.1.9/pandoc-3.1.9-1-amd64.deb \
&& sha256sum --check pandoc.deb.sha256 \
&& dpkg -i pandoc-amd64.deb \
# Configure locales
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen en_US.UTF-8 \
&& dpkg-reconfigure locales \
&& /usr/sbin/update-locale LANG=en_US.UTF-8 \
# Install our packages
# && mv requirements/requirements_314.txt requirements/requirements_specific.txt \
# && pip install -U pip setuptools \
# && pip install --no-cache-dir --no-deps -r requirements/requirements.txt \
# Setup synuser
&& groupadd -g 999 synuser \
&& useradd -r --home-dir=/home/synuser -u 999 -g synuser --shell /bin/bash synuser \
&& mkdir -p /home/synuser \
&& chown synuser:synuser /home/synuser \
# Cleanup
#&& rm -rf requirements \
#&& apt-get remove -y --purge curl build-essential \
&& apt-get remove -y --allow-remove-essential --purge e2fsprogs \
&& apt-get autoremove -y --purge \
&& apt-get clean && apt-get purge \
&& rm -rf /var/lib/apt/lists/* \
&& rm pandoc.deb.sha256 \
&& rm pandoc-amd64.deb
# && while read path; do if [ -e $path ]; then echo "Removing ${path}" && rm -rf $path; else echo "! Path not present: ${path}"; exit 1; fi done < rmlist.txt \
# && rm rmlist.txt

ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8"
2 changes: 2 additions & 0 deletions requirements/requirements_314.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# 3.14+ support for a mainline dependency
vcrpy==7.0.0
2 changes: 1 addition & 1 deletion requirements/requirements_dep.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
###################################
# referencing -> rpds-py
rpds-py==0.24.0
rpds-py==0.28.0
###################################
# stix2-validator -> simplejson
simplejson==3.20.1
Expand Down
62 changes: 33 additions & 29 deletions requirements/requirements_synapse.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
# Required packages for synapse
tornado==6.5.2
aiohttp==3.12.15
aiohttp-socks==0.10.1
aiosmtplib==3.0.2
pyOpenSSL==24.2.1
cryptography==43.0.3
msgpack==1.1.0
xxhash==3.5.0
lmdb==1.7.3
regex==2025.7.34
PyYAML==6.0.2
prompt-toolkit==3.0.51
Pygments==2.19.2
pyOpenSSL>=24.0.0,<24.3.0
msgpack>=1.0.5,<1.2.0
xxhash>=1.4.4,<3.6.0
lmdb>=1.7.0,<1.8.0
tornado>=6.2.0,<7.0.0
regex>=2022.9.11
PyYAML>=5.4,<6.1.0
aiohttp>=3.10.0,<4.0
aiohttp-socks>=0.9.0,<0.11.0
aiosmtplib>=3.0.0,<3.1.0
prompt_toolkit>=3.0.29,<3.1.0
lark==1.2.2
packaging==24.2
fastjsonschema==2.21.1
stix2-validator==3.2.0
base58==2.1.1
python-bitcoinlib==0.12.2
typing-extensions==4.14.1
scalecodec==1.2.9
cbor2==5.6.5
Pygments>=2.7.4,<2.20.0
fastjsonschema>=2.20.0,<2.22.0
packaging>=20.0,<25.0
stix2-validator>=3.2.0,<4.0.0
vcrpy>=7.0.0,<8.0.0
base58>=2.1.0,<2.2.0
python-bitcoinlib>=0.11.0,<0.13.0
pycryptodome>=3.11.0,<3.24.0
typing-extensions>=3.7.4,<5.0.0 # synapse.vendor.xrpl req
scalecodec>=1.0.2,<1.3.0 # synapse.vendor.substrateinterface req
cbor2>=5.4.1,<5.7.0
bech32==1.2.0
oauthlib==3.3.1
pycryptodome==3.23.0
idna==3.10
python-dateutil==2.9.0.post0
pytz==2025.2
beautifulsoup4==4.13.4
vtx-yyjson==4.3.0
oauthlib>=3.2.1,<4.0.0
idna>=3.6,<3.11
python-dateutil>=2.8,<3.0
pytz>=2023.3,<2025.3
beautifulsoup4[html5lib]>=4.11.1,<5.0.0
# Cryptography is a pyopenssl dependency which has now has a maximum version
# pin. Cryptography also vendors a copy of OpenSSL, so it needs to be able to
# have a minimum version bumped in the event of a OpenSSL vulnerability that
# needs to be patched.
cryptography>=43.0.1,<44.0.0
vtx-yyjson>=4.3.0,<5.0.0
2 changes: 2 additions & 0 deletions test/synapse_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ cd ./synapse
cp -v /opt/test/pytest.ini .
which python3
which python
python -m pip install -r requirements.txt
python -m pip install -r requirements_dev.txt
python -m pip install pytest pytest-cov
SYN_VENDOR_TEST=1 python3 -m pytest
# pytest -v -s --disable-warnings --durations 6 --maxfail 6
Expand Down