This is a non-problem for Go as it can be version-locked via go.mod and go.sum but for Python we don't have this.
My use case is: I want to standardize the build tools for all projects with same/similar build scripts and Dagger/Python is perfect for this.
However, if I want to ensure that the correct version of dagger are installed there is currently no way to enforce it short of telling everyone to run the same pip3 install -v dagger-io==0.xx command before running the build scripts.
Either that or I have to force every project to include a poetry (or venv/pip/requirements.txt) lock file, which is not ideal and kind of defeat the purposes of using the Python SDK (instead of the Go SDK with built-in version locking) in the first place.
Python is almost universally available, no matter what platform you are on, compared to Go or Node. I'd love to be able to just python build.py wherever any of my codebase happens to be cloned to and get reproducible builds there. I already have a diag message printed out if the user hasn't yet to install the dagger-io package, but I cannot enforce (or check/validate) the version if it's already installed.
At the moment I'd love to be able to tell if the script is running with the right Dagger version from inside the script itself and at least produce a proper help text/error message if it's not.
Is this possible? What are alternatives?