* update audit log to track aproval and cancellation of job
* approval to resource field
* audit resource as json
* refactor aproval audit logs
* moving audit logs to worker_flow
* striping u/ from auditor name
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* fix(python): fix uv can't find ssl certificates
- Add `PY_NATIVE_CERT` flag, forces UV to use native tls
- Rename `PIP_INDEX_CERT` to `PY_INDEX_CERT`
- Rename `PIP_TRUSTED_HOST` to `PY_TRUSTED_HOST`
For backwards compatibility PIP* variables are still accessible
* feat(python): add `custom_wheels` directory to PYTHONPATH
Add global directory by path `<CACHE_DIR>/python_xyz/custom_wheels`
For example for scripts running python 3.11, in every execution
`<CACHE_DIR>/python_311/custom_wheels` will be accessible and all wheels placed there could be imported and used.
This is usefull for preinstalling wheels before runtime
* Make it work with Nsjail
* Rework and make custom_wheels optional
* Remove `create_dir_all` from imports
* Use sync version of metadata
* Rename `custom_wheels` to `global-site-packages`
- Add `PY_NATIVE_CERT` flag, forces UV to use native tls
- Rename `PIP_INDEX_CERT` to `PY_INDEX_CERT`
- Rename `PIP_TRUSTED_HOST` to `PY_TRUSTED_HOST`
For backwards compatibility PIP* variables are still accessible
* feat: Handle `pip install` by `uv`
Dirty and untested, but already something working
* Integrate with NSJAIL and prepare fallbacks
* Refactor fallback
no_uv disable compile and install
where no_uv_install and no_uv_compile are a bit more specific
* Remove `--disable-pip-version-check`
Reason:
warning: pip's `--disable-pip-version-check` has no effect
* Fix backend compilation error
* Pip fallback overwrite UV's cache
* Initially refactor cache (No S3)
* Support S3
* Remove unused import
* Handle flags for NSJAIL
* Return deleted flag
* Remove verbose mode and enable link-mode=copy
* Granural migration of lockfiles
Before i realized we dont need it :)
* Initial draft (not-working)
* Add fallback
* Fix bug preventing uv from installing deps
'\n' - Love it
* Add verbosity indicator
* Iterate on feature
- Added instance python version
- Rework logic
* Fix EE build error
error[E0599]: no method named `iter` found for tuple `(PyVersion, std::vec::Vec<std::string::String>)` in the current scope
* Support S3
* Support NSJAIL
* Refactor `get_python`
* Make NSJAIL work [Unsafe]
config file missed /proc mount causing install phase to fail
* Trigger CI
* Clean up
* Make Actions build it
* Trigger CI #2
* Update Dockerfile and clean up
* Change fallbacks
now there is only no_uv and NOUV
* Expose INSTANCE_PYTHON_VERSION through env variable
* Change namings
* Include py-version to requirements.in
Also add comments and make code much cleaner
* Use const for python installation dir
It was hardcoded before
* Pin preinstalled version
* Update python_executor.rs
* Up to date branch
* Create PYCACHE dirs
TODO: PY_TAR_DIRS
* Fix after merge
* Make it safer
* Implement USE_SYSTEM_PYTHON
* Implement latest_stable option
* Load INSTANCE_PYTHON_VERSION on startup
* Check for multiple annotations used
* Fix Latest Stable button not pressed if selected
* Proper error handling for conflict on multiple annotations
* Fix merge conflicts
* Preinstall 3.11 and Latest Stable
* Preinstall latest stable in non-blocking manner
* Fix Warning
* Gate preinstall logic behind "python" feature
* Handle raw_deps properly
* Make it work with nsjail
* Revert docker-image.yml
* Revert Dockerfile
* Cleanup + Fixing
* Add windows support
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* bun: Migrate to bun.lock
(In backwards compatible way)
Read more: https://bun.sh/blog/bun-lock-text-lockfile
* Clean up
* More clean up
* Mount bun.lock to jailed process
* Revert solution with Mutex
* Implement valid.windmill logic
* Remove unused import
* valid.windmill -> .valid.windmill
Just like .lock
* Dont delete wheels if cancelled/failed
Now we dont clean up requirement folder if it was failed.
This way we can fully utilize uv's flock system.
Also if we left wheel dir, but it was partially filled (resulting to invalid wheel)
we use --reinstall flag in order to overwrite any content of wheels
* Add comment
* Add --reinstall to nsjail
* fix(python): Cancel installation and start again within 1s caused module not found
* fix(python): Fix uv install job not exiting on fail
Specifically with nmslib installation was hanging without any output, even tho library build was failed.
It can be monitored with strace or catp.
* Replace ofiles approach with mutex
* Small refactor
* Return space for consistency
* Revert incorrect fix
* Fix module not found
* Remove unused import
* fix: windows env vars for c#
* fix bin name and windows flags
* Fix env vars and remove symlinks for windows
* More env vars
* Format error
* Default dotnet path on windows and unix
* fix Unused var
* fix unused