Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot]
65f076fd34 chore(deps): bump actions/setup-python from 2 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 18:46:25 +00:00
26 changed files with 208 additions and 333 deletions

View File

@@ -42,7 +42,7 @@ jobs:
- uses: actions/setup-go@v2
with:
go-version: 1.21.5
- uses: actions/setup-python@v2
- uses: actions/setup-python@v5
with:
python-version: 3.11
- uses: oven-sh/setup-bun@v2

View File

@@ -1,21 +1,5 @@
# Changelog
## [1.441.2](https://github.com/windmill-labs/windmill/compare/v1.441.1...v1.441.2) (2024-12-27)
### Bug Fixes
* **backend:** fix zombies left by the bash executor ([#4985](https://github.com/windmill-labs/windmill/issues/4985)) ([8db69ce](https://github.com/windmill-labs/windmill/commit/8db69ce15e25601d0ac2ac98b1e45c0c01c11967))
## [1.441.1](https://github.com/windmill-labs/windmill/compare/v1.441.0...v1.441.1) (2024-12-24)
### Bug Fixes
* **backend:** timeout for bigquery/graphql/snowflake ([#4965](https://github.com/windmill-labs/windmill/issues/4965)) ([1d20dea](https://github.com/windmill-labs/windmill/commit/1d20dea6630407840fd058a8b51c410fae3fbe78))
* windows compatibility for C# ([#4980](https://github.com/windmill-labs/windmill/issues/4980)) ([b12e9c3](https://github.com/windmill-labs/windmill/commit/b12e9c3005db10d15ee27894a819dbb556832a83))
* **windows&python:** Access is denied. (os error 5) ([#4969](https://github.com/windmill-labs/windmill/issues/4969)) ([6bd2dc3](https://github.com/windmill-labs/windmill/commit/6bd2dc38325388a55dd288b94e26ac6018622aaa))
## [1.441.0](https://github.com/windmill-labs/windmill/compare/v1.440.3...v1.441.0) (2024-12-20)

282
backend/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[package]
name = "windmill"
version = "1.441.2"
version = "1.441.0"
authors.workspace = true
edition.workspace = true
@@ -30,7 +30,7 @@ members = [
]
[workspace.package]
version = "1.441.2"
version = "1.441.0"
authors = ["Ruben Fiszel <ruben@windmill.dev>"]
edition = "2021"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.441.2
version: 1.441.0
title: Windmill API
contact:

View File

@@ -122,7 +122,7 @@ exit_status=$?
# Clean up the named pipe and background processes
rm -f bp
pkill -P $$ || true
# Exit with the captured status
exit $exit_status

View File

@@ -45,17 +45,11 @@ use crate::SYSTEM_ROOT;
#[cfg(feature = "csharp")]
const NSJAIL_CONFIG_RUN_CSHARP_CONTENT: &str = include_str!("../nsjail/run.csharp.config.proto");
#[cfg(feature = "csharp")]
#[cfg(windows)]
const DOTNET_ROOT_DEFAULT: &str = "C:\\Program Files\\dotnet";
#[cfg(feature = "csharp")]
#[cfg(unix)]
const DOTNET_ROOT_DEFAULT: &str = "/usr/share/dotnet";
#[cfg(feature = "csharp")]
lazy_static::lazy_static! {
static ref DOTNET_ROOT: String = std::env::var("DOTNET_ROOT").unwrap_or_else(|_| DOTNET_ROOT_DEFAULT.to_string());
static ref HOME_DIR: String = std::env::var("HOME").expect("Could not find the HOME environment variable");
static ref DOTNET_ROOT: String = std::env::var("DOTNET_ROOT").expect("Could not find the DOTNET_ROOT environment variable");
}
#[cfg(feature = "csharp")]
@@ -89,30 +83,6 @@ pub async fn generate_nuget_lockfile(
.args(vec!["restore", "--use-lock-file"])
.stdout(Stdio::piped())
.stderr(Stdio::piped());
#[cfg(windows)]
gen_lockfile_cmd
.env("SystemRoot", SYSTEM_ROOT.as_str())
.env("SystemRoot", SYSTEM_ROOT.as_str())
.env(
"TMP",
std::env::var("TMP").unwrap_or_else(|_| "C:\\tmp".to_string()),
)
.env("USERPROFILE", crate::USERPROFILE_ENV.as_str())
.env(
"APPDATA",
std::env::var("APPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Roaming", HOME_ENV.as_str())),
)
.env(
"ProgramFiles",
std::env::var("ProgramFiles").unwrap_or_else(|_| String::from("C:\\Program Files")),
)
.env(
"LOCALAPPDATA",
std::env::var("LOCALAPPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Local", HOME_ENV.as_str())),
);
let gen_lockfile_process = start_child_process(gen_lockfile_cmd, DOTNET_PATH.as_str()).await?;
handle_child(
job_id,
@@ -177,17 +147,6 @@ fn gen_cs_proj(
})
.join("\n");
let item_group = if pkgs.is_empty() {
"".to_string()
} else {
format!(
r#" <ItemGroup>
{pkgs}
</ItemGroup>
"#
)
};
write_file(
job_dir,
"Main.csproj",
@@ -200,7 +159,10 @@ fn gen_cs_proj(
<StartupObject>WindmillScriptCSharpInternal.Wrapper</StartupObject>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>
{item_group}
<ItemGroup>
{pkgs}
</ItemGroup>
</Project>
"#
),
@@ -335,27 +297,13 @@ async fn build_cs_proj(
.stderr(Stdio::piped());
#[cfg(windows)]
build_cs_cmd
.env("SystemRoot", SYSTEM_ROOT.as_str())
.env(
{
build_cs_cmd.env("SystemRoot", SYSTEM_ROOT.as_str());
build_cs_cmd.env(
"TMP",
std::env::var("TMP").unwrap_or_else(|_| "C:\\tmp".to_string()),
)
.env("USERPROFILE", crate::USERPROFILE_ENV.as_str())
.env(
"APPDATA",
std::env::var("APPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Roaming", HOME_ENV.as_str())),
)
.env(
"ProgramFiles",
std::env::var("ProgramFiles").unwrap_or_else(|_| String::from("C:\\Program Files")),
)
.env(
"LOCALAPPDATA",
std::env::var("LOCALAPPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Local", HOME_ENV.as_str())),
);
}
let build_cs_process = start_child_process(build_cs_cmd, DOTNET_PATH.as_str()).await?;
handle_child(
@@ -374,6 +322,7 @@ async fn build_cs_proj(
)
.await?;
append_logs(job_id, w_id, "\n\n", db).await;
if let Err(e) = std::fs::remove_file(Path::new(job_dir).join("nuget.config")) {
if e.kind() != io::ErrorKind::NotFound {
Err(anyhow!("Error erasing nuget.config: {}", e))?;
@@ -381,15 +330,11 @@ async fn build_cs_proj(
}
let bin_path = format!("{}/{hash}", CSHARP_CACHE_DIR);
#[cfg(unix)]
let target = format!("{job_dir}/Main");
#[cfg(windows)]
let target = format!("{job_dir}/Main.exe");
match save_cache(
&bin_path,
&format!("{CSHARP_OBJECT_STORE_PREFIX}{hash}"),
&target,
&format!("{job_dir}/Main"),
)
.await
{
@@ -463,16 +408,18 @@ pub async fn handle_csharp_job(
let (cache, cache_logs) = windmill_common::worker::load_cache(&bin_path, &remote_path).await;
let cache_logs = if cache {
let target = format!("{job_dir}/Main");
#[cfg(unix)]
{
let target = format!("{job_dir}/Main");
let symlink = std::os::unix::fs::symlink(&bin_path, &target);
symlink.map_err(|e| {
Error::ExecutionErr(format!(
"could not copy cached binary from {bin_path} to {job_dir}/Main: {e:?}"
))
})?;
}
let symlink = std::os::unix::fs::symlink(&bin_path, &target);
#[cfg(windows)]
let symlink = std::os::windows::fs::symlink_dir(&bin_path, &target);
symlink.map_err(|e| {
Error::ExecutionErr(format!(
"could not copy cached binary from {bin_path} to {job_dir}/main: {e:?}"
))
})?;
cache_logs
} else {
@@ -550,21 +497,10 @@ pub async fn handle_csharp_job(
.args(vec!["--config", "run.config.proto", "--", "/tmp/main"])
.stdout(Stdio::piped())
.stderr(Stdio::piped());
#[cfg(windows)]
nsjail_cmd.env("SystemRoot", SYSTEM_ROOT.as_str());
start_child_process(nsjail_cmd, NSJAIL_PATH.as_str()).await?
} else {
#[cfg(unix)]
let compiled_executable_name = "./Main".to_string();
#[cfg(windows)]
let compiled_executable_name = if cache {
bin_path.to_string()
} else {
format!("{job_dir}/Main.exe")
};
let mut run_csharp = Command::new(&compiled_executable_name);
let compiled_executable_name = "./Main";
let mut run_csharp = Command::new(compiled_executable_name);
run_csharp
.current_dir(job_dir)
.env_clear()
@@ -579,31 +515,8 @@ pub async fn handle_csharp_job(
.env("HOME", HOME_ENV.as_str())
.stdout(Stdio::piped())
.stderr(Stdio::piped());
#[cfg(windows)]
run_csharp
.env("SystemRoot", SYSTEM_ROOT.as_str())
.env("SystemRoot", SYSTEM_ROOT.as_str())
.env(
"TMP",
std::env::var("TMP").unwrap_or_else(|_| "C:\\tmp".to_string()),
)
.env("USERPROFILE", crate::USERPROFILE_ENV.as_str())
.env(
"APPDATA",
std::env::var("APPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Roaming", HOME_ENV.as_str())),
)
.env(
"ProgramFiles",
std::env::var("ProgramFiles").unwrap_or_else(|_| String::from("C:\\Program Files")),
)
.env(
"LOCALAPPDATA",
std::env::var("LOCALAPPDATA")
.unwrap_or_else(|_| format!("{}\\AppData\\Local", HOME_ENV.as_str())),
);
start_child_process(run_csharp, &compiled_executable_name).await?
start_child_process(run_csharp, compiled_executable_name).await?
};
handle_child(

View File

@@ -331,12 +331,6 @@ lazy_static::lazy_static! {
pub static ref WORKER_EXECUTION_DURATION: Arc<RwLock<HashMap<String, prometheus::Histogram>>> = Arc::new(RwLock::new(HashMap::new()));
}
#[cfg(windows)]
const DOTNET_DEFAULT_PATH: &str = "C:\\Program Files\\dotnet\\dotnet.exe";
#[cfg(unix)]
const DOTNET_DEFAULT_PATH: &str = "/usr/bin/dotnet";
lazy_static::lazy_static! {
pub static ref JOB_TOKEN: Option<String> = std::env::var("JOB_TOKEN").ok();
@@ -391,7 +385,7 @@ lazy_static::lazy_static! {
pub static ref POWERSHELL_PATH: String = std::env::var("POWERSHELL_PATH").unwrap_or_else(|_| "/usr/bin/pwsh".to_string());
pub static ref PHP_PATH: String = std::env::var("PHP_PATH").unwrap_or_else(|_| "/usr/bin/php".to_string());
pub static ref COMPOSER_PATH: String = std::env::var("COMPOSER_PATH").unwrap_or_else(|_| "/usr/bin/composer".to_string());
pub static ref DOTNET_PATH: String = std::env::var("DOTNET_PATH").unwrap_or_else(|_| DOTNET_DEFAULT_PATH.to_string());
pub static ref DOTNET_PATH: String = std::env::var("DOTNET_PATH").unwrap_or_else(|_| "/usr/bin/dotnet".to_string());
pub static ref NSJAIL_PATH: String = std::env::var("NSJAIL_PATH").unwrap_or_else(|_| "nsjail".to_string());
pub static ref PATH_ENV: String = std::env::var("PATH").unwrap_or_else(|_| String::new());
pub static ref HOME_ENV: String = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string());

View File

@@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts";
import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts";
import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts";
export const VERSION = "v1.441.2";
export const VERSION = "v1.441.0";
export async function login(email: string, password: string): Promise<string> {
return await windmill.UserService.login({

View File

@@ -60,7 +60,7 @@ export {
// }
// });
export const VERSION = "1.441.2";
export const VERSION = "1.441.0";
const command = new Command()
.name("wmill")

View File

@@ -1,12 +1,12 @@
{
"name": "windmill-components",
"version": "1.441.2",
"version": "1.441.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "windmill-components",
"version": "1.441.2",
"version": "1.441.0",
"license": "AGPL-3.0",
"dependencies": {
"@anthropic-ai/sdk": "^0.32.1",

View File

@@ -1,6 +1,6 @@
{
"name": "windmill-components",
"version": "1.441.2",
"version": "1.441.0",
"scripts": {
"dev": "vite dev",
"build": "vite build",

View File

@@ -1,4 +1,4 @@
<script lang="ts">
<script lang="typescript">
import { enterpriseLicense } from '$lib/stores'
import { Alert, Button, Tab, Tabs } from './common'

View File

@@ -1,4 +1,4 @@
<script lang="ts">
<script lang="typescript">
import { isCloudHosted } from '$lib/cloud'
import { enterpriseLicense, isCriticalAlertsUIOpen } from '$lib/stores'
import {
@@ -184,7 +184,7 @@
<SimpleEditor
autoHeight
class="editor"
lang={setting.codeAreaLang ?? 'txt'}
lang={setting.codeAreaLang ?? "txt"}
bind:code={$values[setting.key]}
fixedOverflowWidgets={false}
/>

View File

@@ -148,21 +148,14 @@
}
async function loadLogins() {
try {
const allLogins = await OauthService.listOauthLogins()
logins = allLogins.oauth.map((login) => ({
type: login.type,
displayName: login.display_name || login.type
}))
saml = allLogins.saml
const allLogins = await OauthService.listOauthLogins()
logins = allLogins.oauth.map((login) => ({
type: login.type,
displayName: login.display_name || login.type
}))
saml = allLogins.saml
showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0)
} catch (e) {
logins = []
saml = undefined
showPassword = true
console.error('Could not load logins', e)
}
showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0)
}
loadLogins()

View File

@@ -1464,7 +1464,7 @@
<FlowProgressBar {job} class="py-4" />
<div class="w-full mt-10 mb-20">
<FlowStatusViewer
jobId={job?.id ?? ''}
jobId={job.id}
on:jobsLoaded={({ detail }) => {
job = detail
}}

View File

@@ -912,7 +912,7 @@
/>
<div class="w-full mt-10">
<FlowStatusViewer
jobId={job?.id ?? ''}
jobId={job.id}
on:jobsLoaded={({ detail }) => {
job = detail
}}

View File

@@ -1,19 +1,9 @@
FROM python:3.11-slim as python-base
FROM node:19-slim as node-base
FROM python-base
COPY --from=node-base /usr/local /usr/local
ENV PATH="/usr/local/bin:${PATH}"
FROM nikolaik/python-nodejs:python3.11-nodejs19-slim
RUN apt-get update \
&& apt-get install -y shellcheck wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& pip install pipenv
RUN npm install -g diagnostic-languageserver pyright
&& apt-get install -y shellcheck
RUN yarn global add diagnostic-languageserver
RUN yarn global add pyright
RUN set -eux; \
arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
url=; \
@@ -34,7 +24,6 @@ RUN set -eux; \
ENV PATH="${PATH}:/usr/local/go/bin"
ENV GOBIN=/usr/local/go/bin
RUN /usr/local/go/bin/go install -v golang.org/x/tools/gopls@latest
RUN pip3 install tornado python-lsp-jsonrpc ruff-lsp
COPY --from=denoland/deno:2.1.2 --chmod=755 /usr/bin/deno /usr/bin/deno
@@ -50,8 +39,10 @@ RUN pipenv install
COPY pyls_launcher.py .
RUN mkdir -p /tmp/monaco && chmod -R 777 /tmp/monaco
RUN cd /tmp/monaco && npm install --save-dev windmill-client
RUN cd /tmp/monaco && yarn add -D windmill-client
EXPOSE 3001
CMD ["python3", "pyls_launcher.py"]
CMD ["python3" ,"pyls_launcher.py"]

View File

@@ -4,8 +4,8 @@ verify_ssl = true
name = "pypi"
[packages]
wmill = ">=1.441.2"
wmill_pg = ">=1.441.2"
wmill = ">=1.441.0"
wmill_pg = ">=1.441.0"
sendgrid = "*"
mysql-connector-python = "*"
pymongo = "*"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.441.2
version: 1.441.0
title: OpenFlow Spec
contact:
name: Ruben Fiszel

View File

@@ -12,7 +12,7 @@
RootModule = 'WindmillClient.psm1'
# Version number of this module.
ModuleVersion = '1.441.2'
ModuleVersion = '1.441.0'
# Supported PSEditions
# CompatiblePSEditions = @()

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill"
version = "1.441.2"
version = "1.441.0"
description = "A client library for accessing Windmill server wrapping the Windmill client API"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill-pg"
version = "1.441.2"
version = "1.441.0"
description = "An extension client for the wmill client library focused on pg"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
{
"name": "@windmill/windmill",
"version": "1.441.2",
"version": "1.441.0",
"exports": "./src/index.ts",
"publish": {
"exclude": ["!src", "./s3Types.ts", "./client.ts"]

View File

@@ -1,7 +1,7 @@
{
"name": "windmill-client",
"description": "Windmill SDK client for browsers and Node.js",
"version": "1.441.2",
"version": "1.441.0",
"author": "Ruben Fiszel",
"license": "Apache 2.0",
"devDependencies": {

View File

@@ -1 +1 @@
1.441.2
1.441.0