-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(python): Multiple runtime versions #4579
base: main
Are you sure you want to change the base?
Conversation
Dirty and untested, but already something working
no_uv disable compile and install where no_uv_install and no_uv_compile are a bit more specific
Reason: warning: pip's `--disable-pip-version-check` has no effect
Before i realized we dont need it :)
Deploying windmill with Cloudflare Pages
|
- Added instance python version - Rework logic
error[E0599]: no method named `iter` found for tuple `(PyVersion, std::vec::Vec<std::string::String>)` in the current scope
config file missed /proc mount causing install phase to fail
/buildimage_nsjail |
7ca4a49
to
13be0cd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Reviewed everything up to 060fe92 in 1 minute and 48 seconds
More details
- Looked at
1818
lines of code in20
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. shell.nix:32
- Draft comment:
Theuv
package is commented out, but the PR description mentions its usage for Python runtime management. Ensure thatuv
is included if it's required for the new feature. - Reason this comment was not posted:
Comment did not seem useful.
Workflow ID: wflow_ZUSeqHwqBHnurdkg
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Incremental review on ad84b24 in 58 seconds
More details
- Looked at
46
lines of code in1
files - Skipped
0
files when reviewing. - Skipped posting
3
drafted comments based on config settings.
1. backend/windmill-worker/src/python_executor.rs:298
- Draft comment:
Usingunwrap_or_else
with a panic message can cause the application to crash. Consider handling errors more gracefully to avoid unexpected panics. This is applicable in other places as well, such as lines 46, 49, 52, and 53. - Reason this comment was not posted:
Comment was not on a valid diff hunk.
2. backend/windmill-worker/src/python_executor.rs:333
- Draft comment:
Usingunwrap_or_else
with a panic message can cause the application to crash. Consider handling errors more gracefully to avoid unexpected panics. This is applicable in other places as well, such as lines 46, 49, 52, and 53. - Reason this comment was not posted:
Marked as duplicate.
3. backend/windmill-worker/src/python_executor.rs:1527
- Draft comment:
Usingunwrap_or_else
with a panic message can cause the application to crash. Consider handling errors more gracefully to avoid unexpected panics. This is applicable in other places as well, such as lines 46, 49, 52, and 53. - Reason this comment was not posted:
Marked as duplicate.
Workflow ID: wflow_YFvJBi13qG7hxjqJ
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
Allows to choose specific python version used for python scripts.
Version for script can be annotated with py310, py311, py312 or py313 annotations.
Or global version by setting INSTANCE_PYTHON_VERSION to one of the mentioned versions above or to "Latest Stable".
For newly deployed scripts annotated version will be assigned to lockfile and all future executions will respect that version.
If none specified, 3.11 will be used (even if instance version changed to something else)
For test runs or deploys, if there are imported scripts, wmill will search through all of them and use found annotated version as final one, otherwise use instance version. It is possible to annotate only ONE runtime version in single tree.
For EE customers, S3 cache tarballs will be separated by py-version.
Important
Adds support for multiple Python runtime versions, allowing specification via annotations or global settings, with updates to backend and frontend for version management.
INSTANCE_PYTHON_VERSION
.parse_python_imports
inwindmill-parser-py-imports/src/lib.rs
to handle version annotations.PyVersion
enum inpython_executor.rs
to manage Python versions.handle_python_deps
andpython_dep
to usePyVersion
.Instance Python Version
setting ininstanceSettings.ts
andInstanceSetting.svelte
.ToggleButtonGroup
for version selection.Dockerfile
to preinstall Python runtimes.shell.nix
to comment outuv
.This description was created by for ad84b24. It will automatically update as commits are pushed.