PyO3/pyo3

`pyo3-build-config` cleanups

Open

#4,761 opened on Dec 3, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Rust (668 forks)batch import
Good First Issuerefactoring

Repository metrics

Stars
 (10,152 stars)
PR merge metrics
 (Avg merge 9d 18h) (51 merged PRs in 30d)

Description

In https://github.com/PyO3/pyo3/pull/4758 I fixed the urgent bug with PYO3_CONFIG_FILE changes not correctly triggering rebuilds.

I think we can take action to ensure we don't have a similar accident again. I was playing around with various ideas, I've seen two so far which I think make sense:

  • A lot of pyo3-build-config APIs require being run in a build script. I wonder if we should have something like a BuildScriptContext struct which all those APIs take, and it can collect info about environment accesses so that we can both test them and emit to cargo reliably.
  • We can add clippy configuration to ban direct environment variable access, as suggested by @alex .

Contributor guide