Skip to content

Commit c804b7b

Browse files
authored
Merge branch 'main' into test-panic-abort
2 parents 0ee0b1e + 55ffacc commit c804b7b

8 files changed

Lines changed: 191 additions & 105 deletions

File tree

.github/workflows/codspeed.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ permissions:
1212

1313
env:
1414
UV_FROZEN: true
15-
UV_PYTHON: 3.13 # use the latest version of Python because it is faster
16-
RUST_VERSION: "1.87.0"
15+
UV_PYTHON: 3.13 # use the latest version of Python because it is faster FIXME(@MarshalX): update to 3.14 when CodSpeed supports it
16+
RUST_VERSION: "1.90.0"
1717

1818
jobs:
1919
benchmarks:
@@ -77,7 +77,8 @@ jobs:
7777
run: uv pip install ${{ steps.pgo-wheel.outputs.path }} --force-reinstall
7878

7979
- name: Run CodSpeed benchmarks.
80-
uses: CodSpeedHQ/action@v3
80+
uses: CodSpeedHQ/action@v4
8181
with:
82+
mode: instrumentation
8283
token: ${{ secrets.CODSPEED_TOKEN }}
8384
run: uv run --group=codspeed pytest . --codspeed -n auto

.github/workflows/release.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ permissions:
1212
contents: read
1313

1414
env:
15-
RUST_VERSION: "1.87.0"
15+
RUST_VERSION: "1.90.0"
1616

1717
jobs:
1818
build:
@@ -28,39 +28,39 @@ jobs:
2828

2929
- os: windows
3030
target: x86_64
31-
interpreter: pypy3.9 pypy3.10 pypy3.11
31+
interpreter: pypy3.11
3232
- os: windows
3333
target: i686
3434
python-architecture: x86
35-
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
35+
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13 3.14
3636
- os: windows
3737
target: aarch64
38-
interpreter: 3.11 3.12 3.13
38+
interpreter: 3.11 3.12 3.13 3.14
3939

4040
- os: macos
4141
target: x86_64
42-
interpreter: pypy3.9 pypy3.10 pypy3.11
42+
interpreter: pypy3.11
4343
- os: macos
4444
target: aarch64
4545
# actions/setup-python@v5 does not support 3.8 and 3.9 on arm64
46-
interpreter: 3.8 3.9 pypy3.9 pypy3.10 pypy3.11
46+
interpreter: 3.8 3.9 pypy3.11
4747

4848
- os: ubuntu
4949
target: x86_64
50-
interpreter: pypy3.9 pypy3.10 pypy3.11
50+
interpreter: pypy3.11
5151
- os: ubuntu
5252
target: i686
5353
- os: ubuntu
5454
target: aarch64
5555
- os: ubuntu
5656
target: armv7
57-
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
57+
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13 3.14
5858
- os: ubuntu
5959
target: ppc64le
60-
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
60+
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13 3.14
6161
- os: ubuntu
6262
target: s390x
63-
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13
63+
interpreter: 3.8 3.9 3.10 3.11 3.12 3.13 3.14
6464

6565
- os: ubuntu
6666
target: x86_64
@@ -93,7 +93,7 @@ jobs:
9393
with:
9494
target: ${{ matrix.target }}
9595
manylinux: ${{ matrix.manylinux || 'auto' }}
96-
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10 pypy3.11' }}
96+
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.8 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.11' }}
9797
rust-toolchain: ${{ env.RUST_VERSION }}
9898
docker-options: -e CI
9999

@@ -112,7 +112,7 @@ jobs:
112112
fail-fast: false
113113
matrix:
114114
os: [ ubuntu-latest, windows-latest, macos-13, macos-14 ]
115-
interpreter: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ]
115+
interpreter: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
116116
exclude:
117117
# actions/setup-python@v5 does not support 3.8 and 3.9 on arm64
118118
- os: macos-14
@@ -216,7 +216,7 @@ jobs:
216216
- uses: actions/checkout@v4
217217
- uses: actions/setup-python@v5
218218
with:
219-
python-version: '3.13'
219+
python-version: '3.14'
220220

221221
- name: Get dist artifacts.
222222
uses: actions/download-artifact@v4

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ name = "libipld"
1313
crate-type = ["rlib", "cdylib"]
1414

1515
[dependencies]
16-
pyo3 = { version = "0.25.1", features = ["generate-import-lib", "anyhow"] }
16+
pyo3 = { version = "0.27.1", features = ["generate-import-lib", "anyhow"] }
1717
python3-dll-a = "0.2.14"
18-
anyhow = "1.0.95"
18+
anyhow = "1.0.100"
1919
libipld = { version = "0.16.0", features = ["dag-cbor"] }
20-
multibase = "0.9.1"
20+
multibase = "0.9.2"
2121
byteorder = "1.5.0"
2222
multihash = "0.18.1"
2323

profiling/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ structopt = "0.3.26"
1111
clap = "4.5.29"
1212

1313
[dependencies.pyo3]
14-
version = "0.25.1"
14+
version = "0.27.1"

pyproject.toml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ authors = [
66
{name = "Ilya (Marshal)", email = "ilya@marshal.dev"}
77
]
88
license = "MIT"
9-
repository = "https://github.com/MarshalX/python-libipld"
109
readme = "README.md"
1110
keywords = ["library", "lib", "ipld", "cid", "multibase", "multihash", "dag", "cbor", "dag-cbor"]
1211
requires-python = ">=3.8"
@@ -27,27 +26,32 @@ classifiers = [
2726
"Programming Language :: Python :: 3.11",
2827
"Programming Language :: Python :: 3.12",
2928
"Programming Language :: Python :: 3.13",
29+
"Programming Language :: Python :: 3.14",
3030
"Topic :: Software Development",
3131
"Topic :: Software Development :: Libraries :: Python Modules",
3232
"Topic :: Software Development :: Pre-processors",
3333
]
3434

3535
[project.urls]
3636
"Homepage" = "https://github.com/MarshalX/python-libipld"
37+
"Repository" = "https://github.com/MarshalX/python-libipld"
3738
"Tracker" = "https://github.com/MarshalX/python-libipld/issues"
3839
"Author" = "https://github.com/MarshalX"
3940

4041
[dependency-groups]
41-
dev = ["maturin>=1.2,<2.0"]
42+
dev = ["maturin>=1.8.7,<2.0"]
4243
testing = [
4344
{ include-group = "dev" },
44-
"pytest==8.3.5",
45-
"pytest-benchmark==4.0.0",
46-
"pytest-xdist==3.6.1",
45+
'pytest==8.3.5; python_version == "3.8"',
46+
'pytest==8.4.1; python_version >= "3.9"',
47+
'pytest-benchmark==4.0.0; python_version == "3.8"',
48+
'pytest-benchmark==5.1.0; python_version >= "3.9"',
49+
'pytest-xdist==3.6.1; python_version == "3.8"',
50+
'pytest-xdist==3.8.0; python_version >= "3.9"',
4751
]
4852
codspeed = [
49-
# only run on CI with the latest Python version
50-
'pytest-codspeed==3.2.0; python_version == "3.13" and implementation_name == "cpython"',
53+
# only run on CI with the latest Python version FIXME(@MarshalX): update to 3.14 when CodSpeed supports it
54+
'pytest-codspeed==4.1.1; python_version == "3.13" and implementation_name == "cpython"',
5155
]
5256

5357
all = [
@@ -68,5 +72,5 @@ bindings = "pyo3"
6872
features = ["pyo3/extension-module"]
6973

7074
[build-system]
71-
requires = ["maturin>=1.2,<2.0"]
75+
requires = ["maturin>=1.8.7,<2.0"]
7276
build-backend = "maturin"

pytests/test_decode_car.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_decode_car_invalid_header_type() -> None:
4141
header_obj = libipld.encode_dag_cbor('strInsteadOfObj')
4242
libipld.decode_car(header_len + header_obj)
4343

44-
assert "cannot be converted to 'PyDict'" in str(exc_info.value)
44+
assert "cannot be cast as 'dict'" in str(exc_info.value)
4545

4646

4747
def test_decode_car_invalid_header_version_key() -> None:
@@ -77,7 +77,7 @@ def test_decode_car_invalid_header_roots_value_type() -> None:
7777
header_obj = libipld.encode_dag_cbor({'version': 1, 'roots': 123})
7878
libipld.decode_car(header_len + header_obj)
7979

80-
assert "cannot be converted to 'PyList'" in str(exc_info.value)
80+
assert "cannot be cast as 'list'" in str(exc_info.value)
8181

8282

8383
def test_decode_car_invalid_header_roots_value_empty_list() -> None:

0 commit comments

Comments
 (0)