mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
* feat: add R language support Add R as a new supported scripting language in Windmill, following the same pattern used for Ruby. Includes: - Backend: ScriptLang::Rlang enum variant, DB migration, tree-sitter-r parser crate with tests, WASM parser binding, R executor with NSJail sandboxing, job dispatch and signature parsing - Frontend: language picker, R icon, syntax highlighting, editor bar insertions (Sys.getenv, get_variable, get_resource), schema inference, init code template, BETA badge - CLI: .r extension mapping, sync support, bootstrap template R scripts use `main <- function(...)` syntax, jsonlite for JSON serialization, and system curl for the Windmill client helper. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add R package resolution and installation Parse library()/require() calls from R scripts to extract dependencies. Resolve versions from CRAN, cache lockfiles in pip_resolution_cache, and install packages to a shared R library cache. The run step sets R_LIBS_USER so installed packages are available to the script. - Parser: parse_r_requirements() extracts package names from AST - Executor: resolve() generates lockfile, install() installs from CRAN - Worker lockfiles: wire up R resolve for dependency jobs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add nsjail sandboxing for R resolve and install phases Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: fix R get_variable/get_resource and add sandbox annotation + e2e tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: fix R arg inference with JS fallback parser and get_variable/get_resource Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix flake * nsjail * nits * fix: R install improvements - suppress verbose output, flat lockfile logging, Dockerfile R support, rlimits - Suppress renv verbose output during resolve and install (controlled by #verbose annotation) - Filter renv from install list (already loaded, causes noisy restart message) - Log compact "resolved N packages" instead of full renv.lock JSON - Add R (r-base, r-cran-renv) to DockerfileFull and DockerfileFullEe - Use disable_rl for nsjail install config (R compiles from source) - Reduce default concurrency from 20 to 5 - Add rlang to openflow.openapi.yaml - Fix MainArgSignature (no_main_func -> auto_kind) after main merge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * final * fix: remove accidental R install from multiplayer Dockerfile Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: remove R from Windows build and DockerfileExtra Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: rename R migration to avoid timestamp collision with trigger_filter_logic Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * all * fix: R install improvements - suppress verbose output, flat lockfile logging, Dockerfile R support, rlimits Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: add clear error when Rscript binary is missing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: fix type errors in R fallback parser, use format! in wrap(), add R system prompts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: pyranota <pyra@duck.com>
112 lines
2.9 KiB
Rust
112 lines
2.9 KiB
Rust
#[cfg(all(feature = "enterprise", feature = "bigquery"))]
|
|
mod bigquery_executor;
|
|
#[cfg(all(feature = "enterprise", feature = "mssql"))]
|
|
mod mssql_executor;
|
|
#[cfg(feature = "enterprise")]
|
|
mod snowflake_executor;
|
|
|
|
mod agent_workers;
|
|
#[cfg(feature = "python")]
|
|
mod ansible_executor;
|
|
mod bash_executor;
|
|
mod pwsh_executor;
|
|
|
|
#[cfg(feature = "java")]
|
|
mod java_executor;
|
|
|
|
#[cfg(feature = "ruby")]
|
|
mod ruby_executor;
|
|
|
|
#[cfg(feature = "rlang")]
|
|
mod r_executor;
|
|
|
|
mod ai;
|
|
mod ai_executor;
|
|
mod bun_executor;
|
|
pub mod common;
|
|
mod config;
|
|
mod csharp_executor;
|
|
|
|
#[cfg(feature = "private")]
|
|
mod dedicated_worker_ee;
|
|
mod dedicated_worker_oss;
|
|
mod deno_executor;
|
|
#[cfg(feature = "duckdb")]
|
|
mod duckdb_executor;
|
|
mod global_cache;
|
|
mod go_executor;
|
|
mod graphql_executor;
|
|
mod handle_child;
|
|
pub mod job_logger;
|
|
#[cfg(feature = "private")]
|
|
pub mod job_logger_ee;
|
|
mod job_logger_oss;
|
|
mod js_eval;
|
|
pub mod memory_common;
|
|
#[cfg(feature = "private")]
|
|
pub mod memory_ee;
|
|
pub mod memory_oss;
|
|
#[cfg(feature = "mysql")]
|
|
mod mysql_executor;
|
|
#[cfg(feature = "nu")]
|
|
mod nu_executor;
|
|
#[cfg(feature = "oracledb")]
|
|
mod oracledb_executor;
|
|
#[cfg(feature = "private")]
|
|
pub mod otel_ee;
|
|
mod otel_oss;
|
|
#[cfg(all(feature = "private", feature = "enterprise"))]
|
|
mod otel_tracing_proxy_ee;
|
|
mod otel_tracing_proxy_oss;
|
|
mod pg_executor;
|
|
#[cfg(feature = "php")]
|
|
mod php_executor;
|
|
mod prepare_deps;
|
|
#[cfg(feature = "python")]
|
|
mod python_executor;
|
|
#[cfg(feature = "python")]
|
|
mod python_versions;
|
|
pub mod result_processor;
|
|
#[cfg(feature = "rust")]
|
|
mod rust_executor;
|
|
mod sanitized_sql_params;
|
|
mod schema;
|
|
pub mod sql_utils;
|
|
mod universal_pkg_installer;
|
|
#[cfg(feature = "private")]
|
|
mod volume_ee;
|
|
mod volume_oss;
|
|
pub mod wac_executor;
|
|
mod worker;
|
|
mod worker_flow;
|
|
mod worker_lockfiles;
|
|
mod worker_utils;
|
|
|
|
#[cfg(all(feature = "private", feature = "enterprise"))]
|
|
pub use otel_tracing_proxy_ee::start_jobs_otel_tracing;
|
|
#[cfg(all(feature = "private", feature = "enterprise", feature = "deno_core"))]
|
|
pub use otel_tracing_proxy_ee::{load_internal_otel_exporter, DENO_OTEL_INITIALIZED};
|
|
pub use worker::*;
|
|
|
|
pub use bun_executor::{
|
|
build_loader, compute_bundle_local_and_remote_path, get_common_bun_proc_envs,
|
|
install_bun_lockfile, prebundle_bun_script, prepare_job_dir, LoaderMode,
|
|
BUN_DEDICATED_WORKER_ARGS, RELATIVE_BUN_BUILDER, RELATIVE_BUN_LOADER,
|
|
};
|
|
#[cfg(any(feature = "private", test))]
|
|
pub use bun_executor::{
|
|
compute_ts_codegen, generate_multi_script_wrapper, TsScriptCodegen, TsScriptEntry,
|
|
};
|
|
#[cfg(any(feature = "private", test))]
|
|
pub use deno_executor::generate_dedicated_worker_wrapper as generate_deno_dedicated_worker_wrapper;
|
|
pub use deno_executor::{generate_deno_lock, DENO_UNSTABLE_ARGS};
|
|
pub use prepare_deps::run_prepare_deps_cli;
|
|
|
|
#[cfg(all(feature = "python", any(feature = "private", test)))]
|
|
pub use python_executor::{
|
|
compute_py_codegen, generate_multi_script_wrapper as generate_py_multi_script_wrapper,
|
|
PyScriptCodegen, PyScriptEntry,
|
|
};
|
|
#[cfg(feature = "python")]
|
|
pub use python_versions::PyV;
|