Repository: comtrya/comtrya (language: rust)

Issue:
Feature: replace serde_yaml
**Description**
[serde_yaml](https://github.com/dtolnay/serde-yaml/releases/tag/0.9.34) got archived, so we should replace it.

**Additional information**
There's no real good successor as of now, so we'll have to wait till something pops up to replace `serde_yaml`.


Discussion / hints:
https://github.com/sebastienrousseau/serde_yml seems like a good candidate :)

Fix patch:
diff --git a/Cargo.lock b/Cargo.lock
index 50ed1664..bb58d5f7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -173,12 +173,54 @@ dependencies = [
  "winapi",
 ]
 
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
 [[package]]
 name = "anstyle"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
 [[package]]
 name = "anyhow"
 version = "1.0.81"
@@ -414,6 +456,39 @@ dependencies = [
  "vec_map",
 ]
 
+[[package]]
+name = "clap"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+dependencies = [
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.1",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
 [[package]]
 name = "colored"
 version = "2.1.0"
@@ -483,7 +558,7 @@ dependencies = [
  "schemars",
  "serde",
  "serde_json",
- "serde_yaml",
+ "serde_yml",
  "sha256",
  "tar",
  "tempfile",
@@ -498,6 +573,19 @@ dependencies = [
  "whoami",
 ]
 
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
 [[package]]
 name = "const-random"
 version = "0.1.18"
@@ -660,6 +748,41 @@ dependencies = [
  "syn 2.0.55",
 ]
 
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 1.0.109",
+]
+
 [[package]]
 name = "dashmap"
 version = "5.5.3"
@@ -688,12 +811,56 @@ dependencies = [
  "powerfmt",
 ]
 
+[[package]]
+name = "derive_builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+dependencies = [
+ "derive_builder_core",
+ "syn 1.0.109",
+]
+
 [[package]]
 name = "deunicode"
 version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94"
 
+[[package]]
+name = "dialoguer"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
+dependencies = [
+ "console",
+ "shell-words",
+ "tempfile",
+ "thiserror",
+ "zeroize",
+]
+
 [[package]]
 name = "diff"
 version = "0.1.13"
@@ -776,6 +943,29 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
+[[package]]
+name = "dtt"
+version = "0.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6b2dd9ee2d76888dc4c17d6da74629fa11b3cb1e8094fdc159b7f8ff259fc88"
+dependencies = [
+ "regex",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "duct"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
+dependencies = [
+ "libc",
+ "once_cell",
+ "os_pipe",
+ "shared_child",
+]
+
 [[package]]
 name = "dyn-clone"
 version = "1.0.17"
@@ -788,6 +978,12 @@ version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
 [[package]]
 name = "encoding_rs"
 version = "0.8.33"
@@ -809,6 +1005,16 @@ dependencies = [
  "syn 2.0.55",
 ]
 
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
+]
+
 [[package]]
 name = "env_logger"
 version = "0.10.2"
@@ -822,6 +1028,19 @@ dependencies = [
  "termcolor",
 ]
 
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
 [[package]]
 name = "equivalent"
 version = "1.0.1"
@@ -850,6 +1069,12 @@ version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f"
 
+[[package]]
+name = "figlet-rs"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4742a071cd9694fc86f9fa1a08fa3e53d40cc899d7ee532295da2d085639fbc5"
+
 [[package]]
 name = "file_diff"
 version = "1.0.0"
@@ -952,6 +1177,21 @@ version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
 [[package]]
 name = "form_urlencoded"
 version = "1.2.1"
@@ -961,6 +1201,12 @@ dependencies = [
  "percent-encoding",
 ]
 
+[[package]]
+name = "fs_extra"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
+
 [[package]]
 name = "fuchsia-cprng"
 version = "0.1.1"
@@ -1118,13 +1364,19 @@ checksum = "d439f0c90afe368fe08a7ae60a4bc3ac3405c708167620c40dd752d1ab919419"
 dependencies = [
  "actix",
  "chrono",
- "env_logger",
+ "env_logger 0.10.2",
  "futures",
  "git2",
  "log",
  "tempdir",
 ]
 
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
 [[package]]
 name = "globset"
 version = "0.4.14"
@@ -1532,6 +1784,12 @@ dependencies = [
  "cc",
 ]
 
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
 [[package]]
 name = "idna"
 version = "0.4.0"
@@ -1998,6 +2256,32 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.55",
+]
+
 [[package]]
 name = "openssl-probe"
 version = "0.1.5"
@@ -2043,6 +2327,16 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "os_pipe"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
 [[package]]
 name = "overload"
 version = "0.1.1"
@@ -2644,6 +2938,30 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "rlg"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6ccf670238310d5c31a52fed1a3314620d037a64f1e5fbdc71b2c50909134dc"
+dependencies = [
+ "dtt",
+ "tokio",
+ "vrd 0.0.4",
+]
+
+[[package]]
+name = "rlg"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e02c717e23f67b23032a4acb01cf63534d6259938d592e6d2451c02f09fc368"
+dependencies = [
+ "dtt",
+ "hostname",
+ "serde_json",
+ "tokio",
+ "vrd 0.0.5",
+]
+
 [[package]]
 name = "rust-embed"
 version = "8.3.0"
@@ -3014,16 +3332,24 @@ dependencies = [
 ]
 
 [[package]]
-name = "serde_yaml"
-version = "0.9.34+deprecated"
+name = "serde_yml"
+version = "0.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
+checksum = "196c3750ff0411738366b0d9534ca55fc74d04a3d4284a450039de950bd11938"
 dependencies = [
+ "dtt",
+ "env_logger 0.11.3",
+ "figlet-rs",
  "indexmap",
  "itoa",
+ "log",
+ "openssl",
+ "rlg 0.0.3",
  "ryu",
  "serde",
  "unsafe-libyaml",
+ "uuid",
+ "xtasks",
 ]
 
 [[package]]
@@ -3059,6 +3385,22 @@ dependencies = [
  "lazy_static",
 ]
 
+[[package]]
+name = "shared_child"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
 [[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
@@ -3190,13 +3532,19 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
 [[package]]
 name = "structopt"
 version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
 dependencies = [
- "clap",
+ "clap 2.34.0",
  "lazy_static",
  "paw",
  "structopt-derive",
@@ -3486,9 +3834,21 @@ dependencies = [
  "pin-project-lite",
  "signal-hook-registry",
  "socket2",
+ "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.55",
+]
+
 [[package]]
 name = "tokio-rustls"
 version = "0.24.1"
@@ -3933,6 +4293,15 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+]
+
 [[package]]
 name = "uzers"
 version = "0.11.3"
@@ -3967,6 +4336,25 @@ version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
+[[package]]
+name = "vrd"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a81b8b5b404f3d7afa1b8142a6bc980c20cd68556c634c3db517871aa0402521"
+dependencies = [
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "vrd"
+version = "0.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee1067b8d17481f5be71b59d11c329e955ffe36348907e0a4a41b619682bb4af"
+dependencies = [
+ "rand 0.8.5",
+ "serde",
+]
+
 [[package]]
 name = "vte"
 version = "0.11.1"
@@ -4367,6 +4755,26 @@ dependencies = [
  "rustix",
 ]
 
+[[package]]
+name = "xtasks"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "940db5674e301470e6cd91098b2c68a1fad751a1623575d1133f7456146e6d2f"
+dependencies = [
+ "anyhow",
+ "clap 4.5.4",
+ "derive_builder",
+ "dialoguer",
+ "dtt",
+ "duct",
+ "fs_extra",
+ "glob",
+ "rlg 0.0.2",
+ "serde",
+ "serde_json",
+ "vrd 0.0.5",
+]
+
 [[package]]
 name = "yansi"
 version = "0.5.1"
diff --git a/app/src/main.rs b/app/src/main.rs
index 01e7ec37..eb17e703 100644
--- a/app/src/main.rs
+++ b/app/src/main.rs
@@ -7,6 +7,8 @@ use comtrya_lib::contexts::Contexts;
 use comtrya_lib::manifests;
 use structopt::StructOpt;
 use tracing::{error, Level};
+
+#[allow(unused_imports)]
 use tracing_subscriber::{fmt::writer::MakeWriterExt, layer::SubscriberExt, FmtSubscriber};
 
 mod commands;
diff --git a/lib/Cargo.toml b/lib/Cargo.toml
index 1b076fa4..d96ae79d 100644
--- a/lib/Cargo.toml
+++ b/lib/Cargo.toml
@@ -28,7 +28,7 @@ rhai = { version = "1.17", features = ["serde"] }
 schemars = "0.8"
 serde = { version = "1.0", features = ["derive"] }
 serde_json = "1.0"
-serde_yaml = "0.9"
+serde_yml = "0"
 sha256 = "1.5"
 tokio = "1.37"
 toml = "0.8"
diff --git a/lib/src/actions/directory/copy.rs b/lib/src/actions/directory/copy.rs
index bee63c82..e4db6ee3 100644
--- a/lib/src/actions/directory/copy.rs
+++ b/lib/src/actions/directory/copy.rs
@@ -80,7 +80,7 @@ mod tests {
     #[test]
     fn it_can_be_deserialized() {
         let example_yaml = std::fs::File::open(get_manifest_dir().join("dircopy.yaml")).unwrap();
-        let mut manifest: Manifest = serde_yaml::from_reader(example_yaml).unwrap();
+        let mut manifest: Manifest = serde_yml::from_reader(example_yaml).unwrap();
 
         match manifest.actions.pop() {
             Some(Actions::DirectoryCopy(action)) => {
diff --git a/lib/src/actions/directory/create.rs b/lib/src/actions/directory/create.rs
index 70a53572..7569c107 100644
--- a/lib/src/actions/directory/create.rs
+++ b/lib/src/actions/directory/create.rs
@@ -41,7 +41,7 @@ mod tests {
     #[test]
     fn it_can_be_deserialized() {
         let example_yaml = std::fs::File::open(get_manifest_dir().join("create.yaml")).unwrap();
-        let mut manifest: Manifest = serde_yaml::from_reader(example_yaml).unwrap();
+        let mut manifest: Manifest = serde_yml::from_reader(example_yaml).unwrap();
 
         match manifest.actions.pop() {
             Some(Actions::DirectoryCreate(action)) => {
diff --git a/lib/src/actions/directory/remove.rs b/lib/src/actions/directory/remove.rs
index 7c72b5b5..a5fd7a67 100644
--- a/lib/src/actions/directory/remove.rs
+++ b/lib/src/actions/directory/remove.rs
@@ -46,7 +46,7 @@ mod tests {
   target: a
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::DirectoryRemove(action)) => {
diff --git a/lib/src/actions/file/copy.rs b/lib/src/actions/file/copy.rs
index b8e3cc32..7f92490c 100644
--- a/lib/src/actions/file/copy.rs
+++ b/lib/src/actions/file/copy.rs
@@ -152,7 +152,7 @@ mod tests {
   chmod: "0777"
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::FileCopy(action)) => {
diff --git a/lib/src/actions/file/download.rs b/lib/src/actions/file/download.rs
index 821e9054..6dce5b46 100644
--- a/lib/src/actions/file/download.rs
+++ b/lib/src/actions/file/download.rs
@@ -85,7 +85,7 @@ mod tests {
   to: b
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::FileDownload(action)) => {
diff --git a/lib/src/actions/file/link.rs b/lib/src/actions/file/link.rs
index 204152cf..bc297bb5 100644
--- a/lib/src/actions/file/link.rs
+++ b/lib/src/actions/file/link.rs
@@ -153,7 +153,7 @@ mod tests {
   target: b
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::FileLink(action)) => {
@@ -172,7 +172,7 @@ mod tests {
   to: b
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::FileLink(action)) => {
diff --git a/lib/src/actions/file/remove.rs b/lib/src/actions/file/remove.rs
index 060c8857..ecf5a8fa 100644
--- a/lib/src/actions/file/remove.rs
+++ b/lib/src/actions/file/remove.rs
@@ -47,7 +47,7 @@ mod tests {
   target: a
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::FileRemove(action)) => {
diff --git a/lib/src/actions/group/providers/freebsd.rs b/lib/src/actions/group/providers/freebsd.rs
index d0edfc4c..70184d20 100644
--- a/lib/src/actions/group/providers/freebsd.rs
+++ b/lib/src/actions/group/providers/freebsd.rs
@@ -28,7 +28,7 @@ impl GroupProvider for FreeBSDGroupProvider {
 }
 
 #[cfg(target_os = "freebsd")]
-#[cfg(tests)]
+#[cfg(test)]
 mod test {
     use crate::actions::group::*;
 
diff --git a/lib/src/actions/mod.rs b/lib/src/actions/mod.rs
index fa8b2ddb..4a086836 100644
--- a/lib/src/actions/mod.rs
+++ b/lib/src/actions/mod.rs
@@ -229,7 +229,7 @@ impl<E: std::error::Error> From<E> for ActionError {
 pub trait Action {
     fn summarize(&self) -> String {
         warn!("need to define action summarize");
-        format!("not found action summarize")
+        "not found action summarize".to_string()
     }
     fn plan(&self, manifest: &Manifest, context: &Contexts) -> anyhow::Result<Vec<Step>>;
 }
@@ -251,7 +251,7 @@ actions:
     - where: Debian
       command: halt
 "#;
-        let m: Manifest = serde_yaml::from_str(content).unwrap();
+        let m: Manifest = serde_yml::from_str(content).unwrap();
 
         let action = &m.actions[0];
 
diff --git a/lib/src/actions/package/install.rs b/lib/src/actions/package/install.rs
index 223e6399..1d85d638 100644
--- a/lib/src/actions/package/install.rs
+++ b/lib/src/actions/package/install.rs
@@ -60,7 +60,7 @@ mod tests {
     - bash
 "#;
 
-        let mut actions: Vec<Actions> = serde_yaml::from_str(yaml).unwrap();
+        let mut actions: Vec<Actions> = serde_yml::from_str(yaml).unwrap();
 
         match actions.pop() {
             Some(Actions::PackageInstall(action)) => {
diff --git a/lib/src/config/mod.rs b/lib/src/config/mod.rs
index 851e7575..d29e91a0 100644
--- a/lib/src/config/mod.rs
+++ b/lib/src/config/mod.rs
@@ -33,7 +33,7 @@ pub fn load_config() -> Result<Config> {
                     ..Default::default()
                 },
 
-                false => serde_yaml::from_str(yaml.as_str())
+                false => serde_yml::from_str(yaml.as_str())
                     .with_context(|| "Found Comtrya.yaml, but couldn't deserialize the YAML.")?,
             };
 
diff --git a/lib/src/contexts/variable_include/file.rs b/lib/src/contexts/variable_include/file.rs
index 646ca12f..1d7d85f9 100644
--- a/lib/src/contexts/variable_include/file.rs
+++ b/lib/src/contexts/variable_include/file.rs
@@ -21,7 +21,7 @@ pub fn yaml_values(url: &Url, contexts: &mut HashMap<String, String>) -> Result<
     let path = url.path();
 
     let contents = std::fs::read_to_string(path)?;
-    let values: HashMap<String, Value> = serde_yaml::from_str(&contents)?;
+    let values: HashMap<String, Value> = serde_yml::from_str(&contents)?;
 
     for (key, value) in values {
         contexts.insert(key.to_string(), value.to_string());
diff --git a/lib/src/manifests/load.rs b/lib/src/manifests/load.rs
index 86056613..ae2a04ad 100644
--- a/lib/src/manifests/load.rs
+++ b/lib/src/manifests/load.rs
@@ -92,7 +92,7 @@ pub fn load(manifest_path: PathBuf, contexts: &Contexts) -> HashMap<String, Mani
                     .and_then(OsStr::to_str)
                 {
                     Some("yaml") | Some("yml") => {
-                        serde_yaml::from_str::<Manifest>(template.deref()).map_err(anyhow::Error::from)
+                        serde_yml::from_str::<Manifest>(template.deref()).map_err(anyhow::Error::from)
                     }
                     Some("toml") => toml::from_str::<Manifest>(template.deref()).map_err(anyhow::Error::from),
                     _ => {


Test patch:
diff --git a/app/tests/utils/mod.rs b/app/tests/utils/mod.rs
index ccb761ef..e15e6cbd 100644
--- a/app/tests/utils/mod.rs
+++ b/app/tests/utils/mod.rs
@@ -7,7 +7,6 @@ use std::{
 };
 
 // re-export for all modules to share
-pub use predicates::{prelude::PredicateBooleanExt, str::contains as c};
 use std::path::PathBuf;
 
 pub(crate) struct Dir {