opendp / opendp

The core library of differential privacy algorithms powering the OpenDP Project.
https://opendp.org
MIT License
284 stars 46 forks source link

PyO3 recompiles on every build #1537

Open Shoeboxam opened 2 weeks ago

Shoeboxam commented 2 weeks ago

This issue significantly slows down the dev process.

See: https://github.com/PyO3/pyo3/issues/1708

As mentioned in the thread, setting PYO3_PYTHON also resolves the problem for me. Might want to add a note about this in the development instructions.

See logic for marking dirty here: https://github.com/PyO3/pyo3/blob/8734b76f60058475ddc3b80c86b8106796870fac/pyo3-build-config/src/impl_.rs#L1706-L1732

export PYO3_PYTHON=$(python -c "import sys; print(sys.executable)")

If you only want to set it in vscode RA settings, then there's a ton of different places:

    "rust-analyzer.cargo.extraEnv": {
        "OPENDP_SPHINX_PORTx": "8020",
        "OPENDP_RUSTDOC_PORTx": "8021",
        "PYO3_PYTHON": "/Users/michael/openDP/openDP/.venv/bin/python3",
    },
    "rust-analyzer.runnables.extraEnv": {
        "PYO3_PYTHON": "/Users/michael/openDP/openDP/.venv/bin/python3",
    },
    "rust-analyzer.check.extraEnv": {
        "PYO3_PYTHON": "/Users/michael/openDP/openDP/.venv/bin/python3",
    },
    "rust-analyzer.server.extraEnv": {
        "PYO3_PYTHON": "/Users/michael/openDP/openDP/.venv/bin/python3",
    },
mccalluc commented 2 weeks ago

I'm reminded of OPENDP_LIB_DIR which we need to set for R. Maybe both of these could go into a little shell script which we'd source at the top of development-environment.rst?