mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-18 16:02:10 +00:00
1e7a37ac8b
* Update `shell.nix`
- Replace pip-compile with uv packages
- Pin rust version
- Add var to trigger windmill print more info in stdout
* Replace `pip-compile` with `uv` (dirty + untested)
* Fix arguments passed to uv
Some of the flags are included by default in UV and can be safely removed:
- --resolver=backtracking
- --no-emit-index-url
Also uv does not support `--pip-args` and suggests to directly pass args to uv.
* Remove extra `dbg!`
* Replace 'pip-compile' with 'uv' in Dockerfile
* Add fallback option to `pip-compile` (Disabled)
* Add `uv` to `docker/DockerfileSlim*`
* Add `get_annotation_python` and rename `get_annotation` to `get_annotation_ts`
* Add option to fallback to pip-compile
Put `# no_uv` on top the file for specific python script
Or set `USE_PIP_COMPILE` variable to `true`
* Put back `pip-tools` into shell.nix
* Make sure lockfile resolves again if `#no_uv` used
Add #no_uv to the end of requirements (requirements.in)
That way if something breaks for customer, then they put #no_uv and new lockfile will be resolved
* Put `pip install pip-tools` in original spot
* Fix compilation error
* Fix EE compilation error
error[E0658]: attributes on expressions are experimental
--> windmill-worker/src/python_executor.rs:144:5
|
144 | #[cfg(feature = "enterprise")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #15701 <https://github.com/rust-lang/rust/issues/15701> for more information
* Add `no_cache` annotation
Will force recalculation of lockfile
And block uv from using cached values
* Target uv cache to /tmp/windmill/cache
* Prohibit uv from managing python
* Add uv to DockerfileBackendTests
* Pin uv version to 0.4.18 in Dockerfiles
* Dont put `#no_uv` in requirements.in
Instead postfix hash for requirements.in with `-no_uv`
* Push Warning to logs if fallbacked to pip-compile
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
62 lines
1.5 KiB
Nix
62 lines
1.5 KiB
Nix
{ pkgs ? import <nixpkgs> { } }:
|
|
|
|
/* based on
|
|
https://discourse.nixos.org/t/how-can-i-set-up-my-rust-programming-environment/4501/9
|
|
*/
|
|
let
|
|
rust_overlay = import (builtins.fetchTarball
|
|
"https://github.com/oxalica/rust-overlay/archive/master.tar.gz");
|
|
pkgs = import <nixpkgs> { overlays = [ rust_overlay ]; };
|
|
# TODO: Pin version?
|
|
# rustVersion = "latest";
|
|
rustVersion = "2024-09-30";
|
|
rust = pkgs.rust-bin.nightly.${rustVersion}.default.override {
|
|
extensions = [
|
|
"rust-src" # for rust-analyzer
|
|
"rust-analyzer"
|
|
];
|
|
};
|
|
in pkgs.mkShell {
|
|
|
|
packages = with pkgs; [
|
|
rust
|
|
# rustup
|
|
cargo-watch
|
|
typescript # tsc
|
|
typescript-language-server
|
|
postgresql
|
|
watchexec # used in client's dev.nu
|
|
poetry # for python client
|
|
uv
|
|
python312Packages.pip-tools # pip-compile
|
|
];
|
|
|
|
# buildInputs = with pkgs; [ xz lzma ];
|
|
|
|
# Add the following lines to set the LD_LIBRARY_PATH
|
|
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath (with pkgs; [
|
|
lzma
|
|
libseccomp
|
|
bzip2
|
|
openssl_3_3
|
|
#
|
|
])}";
|
|
|
|
REMOTE = "http://127.0.0.1:8000";
|
|
REMOTE_LSP = "http://127.0.0.1:3001";
|
|
|
|
DATABASE_URL =
|
|
"postgres://postgres:changeme@127.0.0.1:5432/windmill?sslmode=disable";
|
|
|
|
RUSTC_LINKER = "${pkgs.clang}/bin/clang";
|
|
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER = "${pkgs.clang}/bin/clang";
|
|
|
|
RUSTFLAGS =
|
|
"-C link-arg=-fuse-ld=${pkgs.mold}/bin/mold -Zshare-generics=y -Z threads=4";
|
|
RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache";
|
|
|
|
# Useful for development
|
|
RUST_LOG = "debug";
|
|
|
|
}
|