diff --git a/.vscode/settings.json b/.vscode/settings.json index 5d171154..50a494c6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { "rust-analyzer.cargo.features": [ - "bincode","build","cargo","color","emit_and_set","git","header","repo","rustc","serde","si","trace","unstable","allow_remote" + "build","cargo","color","emit_and_set","git","header","repo","rustc","serde","si","trace","unstable","allow_remote" ] } \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index bb42e8d8..c665505d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ members = [ [workspace.dependencies] anyhow = "1.0.100" -bon = "3.8.1" -gix = { version = "0.77.0", default-features = false, features = [ +bon = "3.8.2" +gix = { version = "0.78.0", default-features = false, features = [ "revision", "worktree-mutation", "blocking-network-client", @@ -24,7 +24,7 @@ regex = { version = "1.12.2" } rustversion = "1.0.22" serial_test = "3.3.1" temp-env = "0.3.6" -time = { version = "0.3.44", features = [ +time = { version = "0.3.46", features = [ "formatting", "local-offset", "parsing", diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index d8d06201..65f45746 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -74,9 +74,7 @@ the [`TestRepos`] struct to creat temporary git repositories useful for `vergen- multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -291,10 +289,6 @@ the [`TestRepos`] struct to creat temporary git repositories useful for `vergen- rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] #[cfg(all(test, not(feature = "repo")))] diff --git a/vergen-git2/src/lib.rs b/vergen-git2/src/lib.rs index a433319a..1f8bdb73 100644 --- a/vergen-git2/src/lib.rs +++ b/vergen-git2/src/lib.rs @@ -246,9 +246,7 @@ let build = Build::builder().build_timestamp(true).build();" multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -462,12 +460,8 @@ let build = Build::builder().build_timestamp(true).build();" rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] +#![cfg_attr(all(nightly, coverage_nightly), feature(coverage_attribute))] mod git2; diff --git a/vergen-gitcl/src/lib.rs b/vergen-gitcl/src/lib.rs index 0d7250e7..05fd8589 100644 --- a/vergen-gitcl/src/lib.rs +++ b/vergen-gitcl/src/lib.rs @@ -246,9 +246,7 @@ let build = Build::builder().build_timestamp(true).build();" multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -462,12 +460,8 @@ let build = Build::builder().build_timestamp(true).build();" rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] +#![cfg_attr(all(nightly, coverage_nightly), feature(coverage_attribute))] #[cfg(test)] use {regex as _, temp_env as _}; diff --git a/vergen-gix/src/lib.rs b/vergen-gix/src/lib.rs index 8d1719e0..41b5a4a9 100644 --- a/vergen-gix/src/lib.rs +++ b/vergen-gix/src/lib.rs @@ -246,9 +246,7 @@ let build = Build::builder().build_timestamp(true).build();" multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -462,12 +460,8 @@ let build = Build::builder().build_timestamp(true).build();" rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] +#![cfg_attr(all(nightly, coverage_nightly), feature(coverage_attribute))] #[cfg(test)] use regex as _; diff --git a/vergen-lib/src/lib.rs b/vergen-lib/src/lib.rs index 412cde81..12612236 100644 --- a/vergen-lib/src/lib.rs +++ b/vergen-lib/src/lib.rs @@ -16,9 +16,7 @@ multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -235,12 +233,8 @@ rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] +#![cfg_attr(all(nightly, coverage_nightly), feature(coverage_attribute))] #[cfg(test)] use {temp_env as _, test_util as _}; diff --git a/vergen-pretty/Cargo.toml b/vergen-pretty/Cargo.toml index 0dd4ce3a..94b2ce21 100644 --- a/vergen-pretty/Cargo.toml +++ b/vergen-pretty/Cargo.toml @@ -18,19 +18,19 @@ version = "10.0.0-beta.5" name = "default" always_deny = ["unstable"] always_include = ["__vergen_test"] -include_optional = ["bincode", "serde"] +include_optional = ["serde"] [[package.metadata.cargo-matrix.channel]] name = "nightly" always_deny = [] always_include = ["__vergen_test", "unstable"] -include_optional = ["bincode", "serde"] +include_optional = ["serde"] [[package.metadata.cargo-matrix.channel]] name = "nightly-empty" always_deny = [] always_include = ["__vergen_empty_test", "unstable"] -include_optional = ["bincode", "serde"] +include_optional = ["serde"] [features] default = [] @@ -43,7 +43,6 @@ __vergen_empty_test = ["vergen-gix", "vergen-gix/unstable"] [dependencies] anyhow = { workspace = true } -bincode = { version = "=2.0.1", optional = true } bon = { workspace = true } console = { version = "0.16.2", optional = true } convert_case = "0.10.0" @@ -70,7 +69,7 @@ serde_json = "1.0.149" tracing-subscriber = { version = "=0.3.19", features = ["fmt"] } [package.metadata.docs.rs] -features = ["bincode", "color", "header", "serde", "trace"] +features = ["color", "header", "serde", "trace"] rustdoc-args = ["--cfg", "docsrs"] [lints.rust] diff --git a/vergen-pretty/src/lib.rs b/vergen-pretty/src/lib.rs index 778bd95a..964acb3b 100644 --- a/vergen-pretty/src/lib.rs +++ b/vergen-pretty/src/lib.rs @@ -106,9 +106,7 @@ assert!(!buf.is_empty()); multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -324,12 +322,7 @@ assert!(!buf.is_empty()); rustdoc::private_intra_doc_links, ) )] -#![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) -)] #![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] #[cfg(feature = "header")] mod header; @@ -343,7 +336,7 @@ pub use self::header::Env; #[cfg(feature = "header")] pub use self::header::header; pub use self::pretty::Pretty; -#[cfg(any(feature = "bincode", feature = "serde"))] +#[cfg(feature = "serde")] pub use self::pretty::feature::PrettyExt; pub use self::pretty::prefix::Prefix; pub use self::pretty::suffix::Suffix; diff --git a/vergen-pretty/src/pretty/feature/bincode.rs b/vergen-pretty/src/pretty/feature/bincode.rs deleted file mode 100644 index 8840e40a..00000000 --- a/vergen-pretty/src/pretty/feature/bincode.rs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2022 vergen developers -// -// Licensed under the Apache License, Version 2.0 -// or the MIT -// license , at your -// option. All files in the project carrying such notice may not be copied, -// modified, or distributed except according to those terms. - -use bincode::{ - BorrowDecode, Decode, Encode, - de::{BorrowDecoder, Decoder}, - enc::Encoder, - error::{DecodeError, EncodeError}, -}; - -use crate::{Prefix, Suffix}; - -impl Encode for Prefix { - fn encode(&self, encoder: &mut E) -> Result<(), EncodeError> { - self.lines.encode(encoder)?; - Ok(()) - } -} - -impl Decode for Prefix { - fn decode>(decoder: &mut D) -> Result { - Ok(Prefix::builder() - .lines(Vec::::decode(decoder)?) - .build()) - } -} - -impl<'de, Context> BorrowDecode<'de, Context> for Prefix { - fn borrow_decode>( - decoder: &mut D, - ) -> Result { - Ok(Prefix::builder() - .lines(Vec::::borrow_decode(decoder)?) - .build()) - } -} - -impl Encode for Suffix { - fn encode(&self, encoder: &mut E) -> Result<(), EncodeError> { - self.lines.encode(encoder)?; - Ok(()) - } -} - -impl Decode for Suffix { - fn decode>(decoder: &mut D) -> Result { - Ok(Suffix::builder() - .lines(Vec::::decode(decoder)?) - .build()) - } -} - -impl<'de, Context> BorrowDecode<'de, Context> for Suffix { - fn borrow_decode>( - decoder: &mut D, - ) -> Result { - Ok(Suffix::builder() - .lines(Vec::::borrow_decode(decoder)?) - .build()) - } -} diff --git a/vergen-pretty/src/pretty/feature/mod.rs b/vergen-pretty/src/pretty/feature/mod.rs index 8dc39544..387a3bd6 100644 --- a/vergen-pretty/src/pretty/feature/mod.rs +++ b/vergen-pretty/src/pretty/feature/mod.rs @@ -6,18 +6,14 @@ // option. All files in the project carrying such notice may not be copied, // modified, or distributed except according to those terms. -#[cfg(feature = "bincode")] -use ::bincode::{Decode, Encode}; #[cfg(feature = "serde")] use ::serde::{Deserialize, Serialize}; -#[cfg(any(feature = "bincode", feature = "serde"))] +#[cfg(feature = "serde")] use { crate::{Prefix, Pretty, Suffix}, bon::Builder, }; -#[cfg(feature = "bincode")] -pub(crate) mod bincode; #[cfg(feature = "color")] pub(crate) mod color; #[cfg(feature = "serde")] @@ -25,11 +21,10 @@ pub(crate) mod serde; #[cfg(feature = "trace")] pub(crate) mod trace; -#[cfg(any(feature = "bincode", feature = "serde"))] -/// Extension of `Pretty` to support `bincode` serialization +#[cfg(feature = "serde")] +/// Extension of `Pretty` to support `serde` serialization #[derive(Builder, Clone, Debug, PartialEq)] #[cfg_attr(feature = "serde", derive(Deserialize, Serialize))] -#[cfg_attr(feature = "bincode", derive(Decode, Encode))] pub struct PrettyExt { /// Environment variables from `vergen` vars: Vec<(String, String, String)>, @@ -39,7 +34,7 @@ pub struct PrettyExt { suffix: Option, } -#[cfg(any(feature = "bincode", feature = "serde"))] +#[cfg(feature = "serde")] impl PrettyExt { /// Get the environment variables #[must_use] @@ -60,7 +55,7 @@ impl PrettyExt { } } -#[cfg(any(feature = "bincode", feature = "serde"))] +#[cfg(feature = "serde")] impl From for PrettyExt { fn from(pretty: Pretty) -> Self { let mut pretty_c = pretty.clone(); @@ -79,51 +74,6 @@ impl From for PrettyExt { } } -#[cfg(all(test, feature = "bincode"))] -mod test_bincode { - use crate::{ - Prefix, Pretty, PrettyExt, Suffix, utils::test_utils::TEST_PREFIX_SUFFIX, vergen_pretty_env, - }; - use anyhow::Result; - use bincode::{config::standard, decode_from_slice, encode_to_vec}; - - #[test] - fn pretty_encode_decode_works() -> Result<()> { - let pretty = Pretty::builder().env(vergen_pretty_env!()).build(); - let pretty_ext = PrettyExt::from(pretty); - let encoded = encode_to_vec(&pretty_ext, standard())?; - let decoded: PrettyExt = decode_from_slice(&encoded, standard())?.0; - assert_eq!(pretty_ext, decoded); - assert!(!decoded.vars().is_empty()); - assert!(decoded.prefix().is_none()); - assert!(decoded.suffix().is_none()); - Ok(()) - } - - #[test] - fn pretty_encode_decode_with_prefix_suffix_works() -> Result<()> { - let prefix = Prefix::builder() - .lines(TEST_PREFIX_SUFFIX.lines().map(str::to_string).collect()) - .build(); - let suffix = Suffix::builder() - .lines(TEST_PREFIX_SUFFIX.lines().map(str::to_string).collect()) - .build(); - let pretty = Pretty::builder() - .env(vergen_pretty_env!()) - .prefix(prefix) - .suffix(suffix) - .build(); - let pretty_ext = PrettyExt::from(pretty); - let encoded = encode_to_vec(&pretty_ext, standard())?; - let decoded: PrettyExt = decode_from_slice(&encoded, standard())?.0; - assert_eq!(pretty_ext, decoded); - assert!(!decoded.vars().is_empty()); - assert!(decoded.prefix().is_some()); - assert!(decoded.suffix().is_some()); - Ok(()) - } -} - #[cfg(all(test, feature = "serde"))] mod test_serde { use crate::{ diff --git a/vergen/Cargo.toml b/vergen/Cargo.toml index fb0dd694..bee3a719 100644 --- a/vergen/Cargo.toml +++ b/vergen/Cargo.toml @@ -39,7 +39,7 @@ bon = { workspace = true } cargo_metadata = { version = "0.23.1", optional = true } regex = { workspace = true, optional = true } rustc_version = { version = "0.4.1", optional = true } -sysinfo = { version = "0.37.2", optional = true } +sysinfo = { version = "0.38.0", optional = true } time = { workspace = true, optional = true } vergen-lib = { version = "10.0.0-beta.5", path = "../vergen-lib" } diff --git a/vergen/src/feature/si.rs b/vergen/src/feature/si.rs index de5302f3..e34bada8 100644 --- a/vergen/src/feature/si.rs +++ b/vergen/src/feature/si.rs @@ -558,7 +558,7 @@ impl AddEntries for Sysinfo { Ok(()) } - #[cfg_attr(coverage_nightly, coverage(off))] + #[cfg_attr(all(nightly, coverage_nightly), coverage(off))] fn add_default_entries( &self, _config: &DefaultConfig, diff --git a/vergen/src/lib.rs b/vergen/src/lib.rs index b4c2d06a..bfe0ccd5 100644 --- a/vergen/src/lib.rs +++ b/vergen/src/lib.rs @@ -291,9 +291,7 @@ let build = Build::builder().build_timestamp(true).build();" multiple_supertrait_upcastable, must_not_suspend, non_exhaustive_omitted_patterns_lint, - rustdoc_missing_doc_code_examples, strict_provenance_lints, - supertrait_item_shadowing, unqualified_local_imports, ) )] @@ -508,12 +506,11 @@ let build = Build::builder().build_timestamp(true).build();" rustdoc::private_intra_doc_links, ) )] +#![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] #![cfg_attr( - all(nightly, feature = "unstable"), - deny(rustdoc::missing_doc_code_examples) + all(nightly, coverage_nightly, feature = "si"), + feature(coverage_attribute) )] -#![cfg_attr(all(docsrs, nightly), feature(doc_cfg))] -#![cfg_attr(coverage_nightly, feature(coverage_attribute))] mod feature;