diff --git a/kipina-codebench/Dockerfile.cargo-test b/kipina-codebench/Dockerfile.cargo-test index 0a10c9c..241c804 100644 --- a/kipina-codebench/Dockerfile.cargo-test +++ b/kipina-codebench/Dockerfile.cargo-test @@ -1,28 +1,4 @@ -FROM rust:1.87-slim -RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/* +FROM rust:latest +RUN apt-get update && apt-get install -y pkg-config libssl-dev cmake && rm -rf /var/lib/apt/lists/* WORKDIR /work - -# Esikäännä riippuvuudet dummy-projektilla — nämä cachetaan Docker-layeriin -RUN cargo init --name bench-precompile . && \ - cat > Cargo.toml <<'TOML' -[package] -name = "bench-precompile" -version = "0.1.0" -edition = "2024" - -[dependencies] -axum = "0.8" -tokio = { version = "1", features = ["full"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] } -tower-http = { version = "0.6", features = ["cors"] } -chrono = { version = "0.4", features = ["serde"] } - -[dev-dependencies] -reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } -tokio = { version = "1", features = ["full", "test-util"] } -TOML -RUN cargo check 2>&1 && cargo build --tests 2>&1 && rm -rf src target/debug/deps/bench_precompile* target/debug/bench-precompile* - ENTRYPOINT ["sh", "-c", "cp -r /src/* . && cargo test 2>&1"] diff --git a/kipina-codebench/benchmark.mjs b/kipina-codebench/benchmark.mjs index 5aab6ce..7f905e2 100644 --- a/kipina-codebench/benchmark.mjs +++ b/kipina-codebench/benchmark.mjs @@ -404,7 +404,7 @@ async function runPipeline(model, scenario) { let checkOut = ''; try { checkOut = execSync( - `docker run --rm --entrypoint sh -v "${dir}:/src:ro" ${LCONF.dockerImage} -c "cp -r /src/* . && cargo check 2>&1"`, + `docker run --rm --entrypoint sh -v "${dir}:/src:ro" -v kipina-cargo-registry:/usr/local/cargo/registry -v kipina-cargo-target:/work/target ${LCONF.dockerImage} -c "cp -r /src/* . && cargo check 2>&1"`, { timeout: 300000, encoding: 'utf-8' } ); } catch (e) { @@ -507,7 +507,7 @@ async function runPipeline(model, scenario) { let testOut = ''; try { testOut = execSync( - `docker run --rm -v "${dir}:/src:ro" ${LCONF.dockerImage} 2>&1`, + `docker run --rm -v "${dir}:/src:ro" -v kipina-cargo-registry:/usr/local/cargo/registry -v kipina-cargo-target:/work/target ${LCONF.dockerImage} 2>&1`, { timeout: dockerTimeout, encoding: 'utf-8' } ); } catch (e) { diff --git a/kipina-codebench/golden-examples/todo-rs.md b/kipina-codebench/golden-examples/todo-rs.md index 982cad5..f747e0f 100644 --- a/kipina-codebench/golden-examples/todo-rs.md +++ b/kipina-codebench/golden-examples/todo-rs.md @@ -22,7 +22,7 @@ sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] } tower-http = { version = "0.6", features = ["cors"] } [dev-dependencies] -reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } +reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] } tokio = { version = "1", features = ["full", "test-util"] } ``` diff --git a/kipina-codebench/golden-examples/todo-rs/Cargo.toml b/kipina-codebench/golden-examples/todo-rs/Cargo.toml index 619b916..dfc8509 100644 --- a/kipina-codebench/golden-examples/todo-rs/Cargo.toml +++ b/kipina-codebench/golden-examples/todo-rs/Cargo.toml @@ -12,5 +12,5 @@ sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] } tower-http = { version = "0.6", features = ["cors"] } [dev-dependencies] -reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } +reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] } tokio = { version = "1", features = ["full", "test-util"] } diff --git a/kipina-codebench/prompts/code-rs.md b/kipina-codebench/prompts/code-rs.md index c546c1a..553aeba 100644 --- a/kipina-codebench/prompts/code-rs.md +++ b/kipina-codebench/prompts/code-rs.md @@ -2,7 +2,7 @@ You are a Rust backend developer. Generate an Axum web project with SQLx and SQL Given the project requirements, JSON specification, and a REFERENCE IMPLEMENTATION, generate these files: -1. Cargo.toml — axum 0.8, tokio, serde/serde_json, sqlx (sqlite, runtime-tokio), tower-http, reqwest (for tests) +1. Cargo.toml — axum 0.8, tokio, serde/serde_json, sqlx (sqlite, runtime-tokio), tower-http, reqwest 0.13 with features ["json", "rustls"] (for tests) 2. src/models.rs — Structs with Serialize, Deserialize, FromRow derives 3. src/handlers.rs — Async handler functions for each CRUD endpoint 4. src/lib.rs — Public app(pool) function returning Router, init_db() for table creation diff --git a/kipina-codebench/prompts/golden-compact-rs.md b/kipina-codebench/prompts/golden-compact-rs.md index faa1aa3..692b638 100644 --- a/kipina-codebench/prompts/golden-compact-rs.md +++ b/kipina-codebench/prompts/golden-compact-rs.md @@ -5,7 +5,7 @@ STACK: Axum 0.8 + SQLx + SQLite + Tokio + Serde Cargo.toml: edition = "2024" deps: axum 0.8, tokio (full), serde (derive), serde_json, sqlx (sqlite, runtime-tokio), tower-http (cors) - dev: reqwest (rustls-tls) + dev: reqwest 0.13 (rustls) src/models.rs: #[derive(Debug, Serialize, Deserialize, FromRow)]