Skip to content

Commit bff7688

Browse files
feat: upgrade to Python 3.12+ only support (#34)
* feat: upgrade to Python 3.12+ only support - Update CI matrix to use Python 3.12 and 3.13 only - Remove Python 3.10 and 3.11 support from all configurations - Update pyproject.toml files to require Python >=3.12 - Update Black/Ruff target versions to py312 - Update all documentation to reflect Python 3.12+ requirement - Fix numpy 2.3.4 compatibility issues with older Python versions This resolves CI failures caused by numpy 2.3.4 not being available for Python 3.10, and aligns with modern Python ecosystem requirements. Breaking Change: Python 3.10 and 3.11 are no longer supported. Users must upgrade to Python 3.12 or later. * fix: resolve dependency conflict in requirements-dev.txt - Update prompt-toolkit from 3.0.52 to 3.0.51 to resolve conflict with commitizen - Regenerate requirements-dev.txt with pip-compile to ensure compatibility - Fixes pre-push hook failure caused by dependency resolution conflicts --------- Co-authored-by: Ben De Cock <[email protected]>
1 parent dc3d18b commit bff7688

File tree

10 files changed

+21
-23
lines changed

10 files changed

+21
-23
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: ['3.10', '3.11', '3.12']
18+
python-version: ['3.12', '3.13']
1919
steps:
2020
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
2121
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
@@ -53,7 +53,7 @@ jobs:
5353
runs-on: ubuntu-latest
5454
strategy:
5555
matrix:
56-
python-version: ['3.10', '3.11', '3.12']
56+
python-version: ['3.12', '3.13']
5757
steps:
5858
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
5959
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
![SAST: Semgrep](https://img.shields.io/badge/SAST-Semgrep-blue)
1717

1818
<!-- Python & License -->
19-
![Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)
19+
![Python Version](https://img.shields.io/badge/python-3.12%20%7C%203.13-blue)
2020
![License](https://img.shields.io/github/license/VirtualAgentics/ConextForge_memory)
2121

2222
<!-- Repository Stats -->

clients/python/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ A robust Python client library for the ContextForge Memory API with comprehensiv
1616

1717
### Requirements
1818

19-
- Python 3.10+
19+
- Python 3.12+
2020
- httpx (HTTP client library)
2121

2222
### Install Dependencies

clients/python/pyproject.toml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "contextforge-memory-client"
7-
version = "0.1.0"
7+
version = "0.2.0"
88
description = "Python client library for ContextForge Memory API"
99
readme = "README.md"
10-
requires-python = ">=3.10"
10+
requires-python = ">=3.12"
1111
authors = [
1212
{name = "ContextForge Team", email = "[email protected]"}
1313
]
@@ -19,9 +19,8 @@ classifiers = [
1919
"License :: OSI Approved :: MIT License",
2020
"Operating System :: OS Independent",
2121
"Programming Language :: Python :: 3",
22-
"Programming Language :: Python :: 3.10",
23-
"Programming Language :: Python :: 3.11",
2422
"Programming Language :: Python :: 3.12",
23+
"Programming Language :: Python :: 3.13",
2524
"Topic :: Software Development :: Libraries :: Python Modules",
2625
"Topic :: Scientific/Engineering :: Artificial Intelligence",
2726
]
@@ -56,12 +55,12 @@ contextforge_memory_client = ["py.typed"]
5655

5756
[tool.black]
5857
line-length = 88
59-
target-version = ["py310"]
58+
target-version = ["py312"]
6059
# Format all Python files by default; rely on .gitignore and excludes
6160
include = ".*\\.pyi?$"
6261

6362
[tool.ruff]
64-
target-version = "py310"
63+
target-version = "py312"
6564
line-length = 88
6665
extend-exclude = [
6766
".venv",

docs/ci-cd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ The project uses GitHub Actions for continuous integration and deployment with a
7575

7676
#### Main CI Features
7777

78-
- **Matrix Strategy**: Tests across Python 3.10, 3.11, 3.12
78+
- **Matrix Strategy**: Tests across Python 3.12, 3.13
7979
- **Caching**: Custom pip cache action for faster builds
8080
- **Security**: Pinned pip version (25.2) for security (GHSA-4xh5-x5gv-qwph)
8181
- **Coverage**: 30% minimum coverage requirement

docs/deployment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This guide covers deploying the ContextForge Memory service in various environme
44

55
## Prerequisites
66

7-
- Python 3.10 or higher
7+
- Python 3.12 or higher
88
- pip or pipx for package management
99
- Docker (optional, for containerized deployment)
1010
- Systemd (for Linux service deployment)

docs/development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ and efficiently.
55

66
## Prerequisites
77

8-
- Python 3.10+
8+
- Python 3.12+
99
- Git
1010
- Make (optional but recommended)
1111

docs/renovate.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ Renovate PRs will auto-merge only if:
4747

4848
**Required CI checks for auto-merge:**
4949

50-
- `lint` (Python 3.10, 3.11, 3.12)
51-
- `test` (Python 3.10, 3.11, 3.12)
50+
- `lint` (Python 3.12, 3.13)
51+
- `test` (Python 3.12, 3.13)
5252
- `security`
5353
- `pre-commit`
5454
- `semgrep`

pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[tool.black]
22
line-length = 88
3-
target-version = ["py310"]
3+
target-version = ["py312"]
44
include = "(src|clients/python|tests)/.*\\.py$"
55

66
[tool.ruff]
7-
target-version = "py310"
7+
target-version = "py312"
88
line-length = 88
99
extend-exclude = [
1010
".venv",
@@ -48,8 +48,9 @@ build-backend = "setuptools.build_meta"
4848

4949
[project]
5050
name = "contextforge-memory"
51-
version = "0.1.0"
51+
version = "0.2.0"
5252
description = "ContextForge Memory API"
53+
requires-python = ">=3.12"
5354
dependencies = [
5455
"numpy>=1.26.0",
5556
"fastapi>=0.115.0",

requirements-dev.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ colorama==0.4.6
3232
# via commitizen
3333
commitizen==4.9.1
3434
# via -r requirements-dev.in
35-
cyclonedx-python-lib==11.3.0
35+
cyclonedx-python-lib==9.1.0
3636
# via pip-audit
3737
decli==0.6.3
3838
# via commitizen
@@ -64,8 +64,6 @@ mdurl==0.1.2
6464
# via markdown-it-py
6565
msgpack==1.1.2
6666
# via cachecontrol
67-
mypy==1.18.2
68-
# via -r requirements-dev.in
6967
mypy-extensions==1.1.0
7068
# via black
7169
nodeenv==1.9.1
@@ -101,7 +99,7 @@ pluggy==1.6.0
10199
# via pytest
102100
pre-commit==4.3.0
103101
# via -r requirements-dev.in
104-
prompt-toolkit==3.0.52
102+
prompt-toolkit==3.0.51
105103
# via
106104
# commitizen
107105
# questionary
@@ -157,7 +155,7 @@ wcwidth==0.2.14
157155
# via prompt-toolkit
158156
wheel==0.45.1
159157
# via pip-tools
160-
wrapt==2.0.0
158+
wrapt==1.17.3
161159
# via deprecated
162160

163161
# The following packages are considered to be unsafe in a requirements file:

0 commit comments

Comments
 (0)