From c52683e53cb4dbe9b5feaa53476b024f1c99da9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:16:31 +0000 Subject: [PATCH 1/7] chore: upgrade dependencies --- Cargo.lock | 223 +++++++++++++---------------------------------------- Cargo.toml | 9 ++- 2 files changed, 58 insertions(+), 174 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 624f48a..7755517 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.17" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -29,49 +29,50 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", - "windows-sys 0.59.0", + "once_cell_polyfill", + "windows-sys", ] [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "clap" -version = "4.5.20" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" dependencies = [ "clap_builder", "clap_derive", @@ -79,9 +80,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" dependencies = [ "anstream", "anstyle", @@ -91,18 +92,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.35" +version = "4.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07a13ab5b8cb13dbe35e68b83f6c12f9293b2f601797b71bc9f23befdb329feb" +checksum = "3be2ad0423bdbbb0e25bc89add796f3559706d4a95e1bc98e4d9662a957b6a19" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" dependencies = [ "heck", "proc-macro2", @@ -112,15 +113,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "dotenvy" @@ -136,24 +137,30 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.27" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -166,9 +173,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.16" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -177,151 +184,27 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-targets 0.48.0", + "windows-link", ] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/Cargo.toml b/Cargo.toml index 1492d48..d0cb25d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ description = "docker cli wrapper" readme = "README.md" version = "0.4.2" edition = "2021" +rust-version = "1.85" license = "MIT" authors = ["Matej Janežič "] repository = "https://github.com/janezicmatej/ahab.git" @@ -12,11 +13,11 @@ build = "build.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -clap = { version = "4.5.20", features = ["derive"] } +clap = { version = "4.6.6", features = ["derive"] } # clap_complete = "4.5.35" -anyhow = "1.0.91" +anyhow = "1.0.104" dotenvy = "0.15.7" [build-dependencies] -clap = { version = "4.5.20", features = ["derive"] } -clap_complete = "4.5.35" +clap = { version = "4.6.6", features = ["derive"] } +clap_complete = "4.6.9" From 3ed1fad4a726351e403cd14dd98e1db77ef2ad7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:16:44 +0000 Subject: [PATCH 2/7] chore: move to edition 2024 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d0cb25d..aaafd21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "ahab" description = "docker cli wrapper" readme = "README.md" version = "0.4.2" -edition = "2021" +edition = "2024" rust-version = "1.85" license = "MIT" authors = ["Matej Janežič "] From a301097120174bcdf1c79337148e6a304d7d61b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:17:09 +0000 Subject: [PATCH 3/7] refactor: drop unused CommandBuilder::new --- src/command_builder.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/command_builder.rs b/src/command_builder.rs index c8064cb..0da1c6a 100644 --- a/src/command_builder.rs +++ b/src/command_builder.rs @@ -49,10 +49,6 @@ impl Display for CommandBuilder { } impl CommandBuilder { - pub fn new(args: &str) -> Self { - Self::default().args("docker") - } - pub fn docker() -> Self { Self::default().args("docker") } From ec4168769e50674405316d3bc9f584fafa90f22d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:17:20 +0000 Subject: [PATCH 4/7] fix: keep existing contents in create_file --- src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index c24d234..561f014 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,6 +19,12 @@ fn safe_create_file(path: PathBuf) -> Result { OpenOptions::new().write(true).create_new(true).open(path) } +// truncate(false) keeps an existing file's contents, which is what callers creating +// an empty __init__.py want fn create_file(path: PathBuf) -> Result { - OpenOptions::new().write(true).create(true).open(path) + OpenOptions::new() + .write(true) + .create(true) + .truncate(false) + .open(path) } From e10e1fb0173686724afc0b2ccc4eedd0a6f7012c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:17:35 +0000 Subject: [PATCH 5/7] chore: drop allow(unused) and clear what it hid --- src/command_builder.rs | 15 +++++---------- src/lib.rs | 2 -- src/scripts/postgres.rs | 4 ++-- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/command_builder.rs b/src/command_builder.rs index 0da1c6a..708a703 100644 --- a/src/command_builder.rs +++ b/src/command_builder.rs @@ -1,12 +1,7 @@ -use anyhow::{anyhow, Context, Result}; +use anyhow::{Context, Result}; use std::{ - collections::VecDeque, env, - ffi::OsStr, fmt::Display, - fs::{File, OpenOptions}, - os::unix::process::CommandExt, - path::PathBuf, process::{Child, Command, Stdio}, }; @@ -77,20 +72,20 @@ impl CommandBuilder { Ok(command) } - pub fn exec_get_stdout(mut self) -> Result { + pub fn exec_get_stdout(self) -> Result { Ok(String::from_utf8(self.build()?.output()?.stdout)?) } - pub fn exec(mut self) -> Result<()> { + pub fn exec(self) -> Result<()> { self.build()?.spawn()?.wait()?; Ok(()) } - pub fn spawn(mut self) -> Result<(Child)> { + pub fn spawn(self) -> Result { Ok(self.build()?.spawn()?) } - pub fn exec_redirect_stdout(mut self, stdio: Stdio) -> Result<()> { + pub fn exec_redirect_stdout(self, stdio: Stdio) -> Result<()> { self.build()?.stdout(stdio).spawn()?.wait()?; Ok(()) } diff --git a/src/lib.rs b/src/lib.rs index 561f014..99c221c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,3 @@ -#![allow(unused)] - use std::{ fs::{File, OpenOptions}, path::PathBuf, diff --git a/src/scripts/postgres.rs b/src/scripts/postgres.rs index 5e23c93..30e7e2c 100644 --- a/src/scripts/postgres.rs +++ b/src/scripts/postgres.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Context, Result}; +use anyhow::{anyhow, Result}; use std::{ fs::File, path::{Path, PathBuf}, @@ -37,7 +37,7 @@ fn get_containers(container: &str) -> Result<[String; 2]> { } pub fn import(container: &str, file: &Path) -> Result<()> { - let [db_container, app_containers] = get_containers(container)?; + let [db_container, _] = get_containers(container)?; let dump_file = file.to_string_lossy(); eprintln!("stopping all containers"); From 8751c39ccec0a8ff330ba1ef67c88c689bc63720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:17:48 +0000 Subject: [PATCH 6/7] style: run cargo fmt --- build.rs | 5 ++--- src/command_builder.rs | 2 +- src/main.rs | 4 +++- src/scripts/django.rs | 2 +- src/scripts/link.rs | 2 +- src/scripts/postgres.rs | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/build.rs b/build.rs index c5cd678..3266995 100644 --- a/build.rs +++ b/build.rs @@ -1,12 +1,11 @@ use clap::{CommandFactory, ValueEnum}; -use clap_complete::{generate_to, Shell}; +use clap_complete::{Shell, generate_to}; use std::{env, io::Error}; include!("src/cli/mod.rs"); fn main() -> Result<(), Error> { - let outdir = env::var_os("SHELL_COMPLETIONS_DIR") - .or_else(|| env::var_os("OUT_DIR")); + let outdir = env::var_os("SHELL_COMPLETIONS_DIR").or_else(|| env::var_os("OUT_DIR")); let Some(outdir) = outdir else { return Ok(()); diff --git a/src/command_builder.rs b/src/command_builder.rs index 708a703..4381fa3 100644 --- a/src/command_builder.rs +++ b/src/command_builder.rs @@ -81,7 +81,7 @@ impl CommandBuilder { Ok(()) } - pub fn spawn(self) -> Result { + pub fn spawn(self) -> Result { Ok(self.build()?.spawn()?) } diff --git a/src/main.rs b/src/main.rs index 82782ec..51efbb7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,9 @@ fn main() -> Result<()> { match args.command { cli::Commands::Compose { command } => { - eprintln!("DEPRECATION NOTICE: this is deprecated in favor of docker compose COMPOSE_FILE env"); + eprintln!( + "DEPRECATION NOTICE: this is deprecated in favor of docker compose COMPOSE_FILE env" + ); match command { cli::DockerCompose::Bash => scripts::docker_compose::bash(), cli::DockerCompose::Build => scripts::docker_compose::build(), diff --git a/src/scripts/django.rs b/src/scripts/django.rs index 83e3bff..e64821e 100644 --- a/src/scripts/django.rs +++ b/src/scripts/django.rs @@ -3,7 +3,7 @@ use std::fs::create_dir; use std::io::Write; use std::path::{Path, PathBuf}; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use crate::command_builder::CommandBuilder; use crate::{create_file, safe_create_file}; diff --git a/src/scripts/link.rs b/src/scripts/link.rs index fa78bf5..92f2d79 100644 --- a/src/scripts/link.rs +++ b/src/scripts/link.rs @@ -6,7 +6,7 @@ use std::os::unix::fs::symlink; use std::path::{Path, PathBuf}; use std::process::Command; -use anyhow::{anyhow, Context, Result}; +use anyhow::{Context, Result, anyhow}; const BACKUP_SUFFIX: &str = ".ahab-bak"; const LOCAL_NAMESPACE: &str = "_local"; diff --git a/src/scripts/postgres.rs b/src/scripts/postgres.rs index 30e7e2c..36575d5 100644 --- a/src/scripts/postgres.rs +++ b/src/scripts/postgres.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use std::{ fs::File, path::{Path, PathBuf}, From 1afff02ee9ef4f35fa9c80a2ff6530709e4318ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Fri, 4 Sep 2026 09:21:17 +0000 Subject: [PATCH 7/7] ci: add gitlab pipeline --- .gitlab-ci.yml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..9e549e6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,58 @@ +default: + image: rust:1.97 + cache: + key: + files: + - Cargo.lock + paths: + - .cargo/registry + # so the audit job does not rebuild cargo-audit on every schedule + - .cargo/bin + - target + +variables: + # keep the registry inside the project so it lands in the cache + CARGO_HOME: $CI_PROJECT_DIR/.cargo + CARGO_TERM_COLOR: always + +# without this a push to a branch with an open merge request runs twice +workflow: + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS + when: never + - if: $CI_COMMIT_BRANCH + - if: $CI_PIPELINE_SOURCE == "schedule" + +check: + script: + - rustup component add rustfmt clippy + - cargo fmt --check + - cargo clippy --all-targets -- -D warnings + - cargo test --locked + - cargo build --release --locked + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + when: never + - when: always + +# runs only from a pipeline schedule, so set one up in the project settings +audit: + script: + - cargo install cargo-audit --locked + - cargo audit + # reports dependencies that have drifted behind, without changing the lockfile + - cargo update --dry-run + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + allow_failure: true + +# the msrv declared in Cargo.toml, so it fails when something needs a newer rustc +msrv: + image: rust:1.85 + script: + - cargo build --locked + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + when: never + - when: always