pyproject-local-kernel has been getting really good now.
https://github.com/bluss/pyproject-local-kernel
It enables you - when using JupyterLab - to define your notebook dependencies in a `pyproject.toml`, for example in a uv project.
It's very powerful, especially for enabling reproducible notebook environments and keeping many different notebook projects, with separate dependencies, going.
pyproject-local-kernel has now switched over to use kernel provisioning, which is perfect for this use case, and that's why it's feeling solid now.

