Skip to content

Commit a3b0126

Browse files
committed
chore: gate pyo3 extension module behind optional feature
1 parent 4414c0e commit a3b0126

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

.agents/tasks/2025/08/18-1208-tracer-trait

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ artefact, it will be used only for testing.
7171

7272
Refer to the design-docs folder for the current planned design. Add/update files in the folder to match what was implemented in this task.
7373

74+
75+
--- FOLLOW UP TASK ---
76+
1. In codetracer-python-recorder/Cargo.toml, move pyo3’s extension-module feature to an optional crate feature and enable it only for release builds.
77+
2. Update Justfile (and CI scripts) to run cargo test --no-default-features so the test binary links with the Python C library.
78+
3. Add pyo3 with auto-initialize under [dev-dependencies] if tests require the interpreter to be initialized automatically.

Justfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,15 @@ dev:
3232
uv run --directory codetracer-python-recorder maturin develop --uv
3333

3434
# Run unit tests of dev build
35-
test:
36-
uv run --group dev --group test pytest
37-
uv run --group dev --group test cargo test --manifest-path codetracer-python-recorder/Cargo.toml
35+
test: cargo-test py-test
36+
37+
# Run Rust unit tests without default features to link Python C library
38+
cargo-test:
39+
cargo test --manifest-path codetracer-python-recorder/Cargo.toml --no-default-features
3840

41+
py-test:
42+
uv run --group dev --group test pytest
43+
3944
# Run tests only on the pure recorder
4045
test-pure:
4146
uv run --group dev --group test pytest codetracer-pure-python-recorder

codetracer-python-recorder/Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ repository = "https://github.com/metacraft-labs/codetracer-python-recorder"
1010
name = "codetracer_python_recorder"
1111
crate-type = ["cdylib", "rlib"]
1212

13+
[features]
14+
extension-module = ["pyo3/extension-module"]
15+
default = ["extension-module"]
16+
1317
[dependencies]
14-
pyo3 = { version = "0.25.1", features = ["extension-module", "abi3-py312"] }
18+
pyo3 = { version = "0.25.1" }
1519
runtime_tracing = "0.14.0"
1620
bitflags = "2.4"
21+
22+
[dev-dependencies]
23+
pyo3 = { version = "0.25.1", features = ["auto-initialize"] }

0 commit comments

Comments
 (0)