From 3284149bd65b550ad4493dc388a0a17aba5fd663 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Thu, 24 Nov 2022 15:02:25 +0000 Subject: [PATCH] radicle-surf: rename serialize to serde Instead of creating a named feature flag, opt for using the `serde` package name as the feature flag name. This makes it more clear that the feature is only enabling serde serialization and nothing else. This patch also cleans up the testing flags by removing the serialize flag for testing, as this should just always be tested, and also adds the syntax flag for future testing. Signed-off-by: Fintan Halpenny X-Clacks-Overhead: GNU Terry Pratchett --- radicle-surf/Cargo.toml | 7 ++- radicle-surf/src/diff.rs | 64 ++++++++------------------ radicle-surf/src/git/commit.rs | 14 +++--- radicle-surf/src/git/stats.rs | 8 +--- radicle-surf/src/source/commit.rs | 10 ++-- radicle-surf/src/source/object/blob.rs | 6 +-- radicle-surf/src/source/object/tree.rs | 4 +- radicle-surf/src/source/person.rs | 5 +- radicle-surf/t/Cargo.toml | 3 +- radicle-surf/t/src/git.rs | 2 - radicle-surf/t/src/git/commit.rs | 1 - radicle-surf/t/src/git/diff.rs | 1 - test/Cargo.toml | 2 +- 13 files changed, 45 insertions(+), 82 deletions(-) diff --git a/radicle-surf/Cargo.toml b/radicle-surf/Cargo.toml index a720eed..d32026e 100644 --- a/radicle-surf/Cargo.toml +++ b/radicle-surf/Cargo.toml @@ -20,7 +20,6 @@ test = false doctest = false [features] -serialize = ["serde"] syntax = ["syntect", "lazy_static"] # NOTE: testing `test_submodule_failure` on GH actions # is painful since it uses this specific repo and expects @@ -32,7 +31,6 @@ gh-actions = [] base64 = "0.13" log = "0.4" nonempty = "0.5" -serde = { features = ["serde_derive"], optional = true, version = "1" } thiserror = "1.0" [dependencies.git2] @@ -58,6 +56,11 @@ features = ["serde"] version = "0.1.0" path = "../radicle-std-ext" +[dependencies.serde] +version = "1" +features = ["serde_derive"] +optional = true + [dependencies.syntect] version = "5" optional = true diff --git a/radicle-surf/src/diff.rs b/radicle-surf/src/diff.rs index 855894c..8742734 100644 --- a/radicle-surf/src/diff.rs +++ b/radicle-surf/src/diff.rs @@ -19,16 +19,12 @@ use std::{convert::TryFrom, path::PathBuf, slice}; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::{ser, Serialize, Serializer}; pub mod git; -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct Diff { pub created: Vec, @@ -44,47 +40,35 @@ impl Default for Diff { } } -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct CreateFile { pub path: PathBuf, pub diff: FileDiff, } -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct DeleteFile { pub path: PathBuf, pub diff: FileDiff, } -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct MoveFile { pub old_path: PathBuf, pub new_path: PathBuf, } -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct CopyFile { pub old_path: PathBuf, pub new_path: PathBuf, } -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub enum EofNewLine { OldMissing, @@ -92,11 +76,7 @@ pub enum EofNewLine { BothMissing, } -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct ModifiedFile { pub path: PathBuf, @@ -106,25 +86,21 @@ pub struct ModifiedFile { /// A set of changes belonging to one file. #[cfg_attr( - feature = "serialize", + feature = "serde", derive(Serialize), serde(tag = "type", rename_all = "camelCase") )] #[derive(Clone, Debug, PartialEq, Eq)] pub enum FileDiff { Binary, - #[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] + #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] Plain { hunks: Hunks, }, } /// Statistics describing a particular [`Diff`]. -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, Eq, PartialEq)] pub struct Stats { /// Get the total number of files changed in a diff. @@ -136,11 +112,7 @@ pub struct Stats { } /// A set of line changes. -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct Hunk { pub header: Line, @@ -148,7 +120,7 @@ pub struct Hunk { } /// A set of [`Hunk`]s. -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct Hunks(pub Vec); @@ -215,7 +187,7 @@ impl From for Line { } } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for Line { fn serialize(&self, serializer: S) -> Result where @@ -230,22 +202,22 @@ impl Serialize for Line { /// Single line delta. Two of these are need to represented a modified line: one /// addition and one deletion. Context is also represented with this type. #[cfg_attr( - feature = "serialize", + feature = "serde", derive(Serialize), serde(tag = "type", rename_all = "camelCase") )] #[derive(Clone, Debug, PartialEq, Eq)] pub enum LineDiff { /// Line added. - #[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] + #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] Addition { line: Line, line_num: u32 }, /// Line deleted. - #[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] + #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] Deletion { line: Line, line_num: u32 }, /// Line context. - #[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] + #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] Context { line: Line, line_num_old: u32, diff --git a/radicle-surf/src/git/commit.rs b/radicle-surf/src/git/commit.rs index 97ed8e7..272da9f 100644 --- a/radicle-surf/src/git/commit.rs +++ b/radicle-surf/src/git/commit.rs @@ -20,7 +20,7 @@ use std::{convert::TryFrom, str}; use git_ext::Oid; use thiserror::Error; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::{ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer}; #[derive(Debug, Error)] @@ -34,7 +34,7 @@ pub enum Error { } /// `Author` is the static information of a [`git2::Signature`]. -#[cfg_attr(feature = "serialize", derive(Deserialize, Serialize))] +#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))] #[derive(Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct Author { /// Name of the author. @@ -43,7 +43,7 @@ pub struct Author { pub email: String, /// Time the action was taken, e.g. time of commit. #[cfg_attr( - feature = "serialize", + feature = "serde", serde( serialize_with = "serialize_time", deserialize_with = "deserialize_time" @@ -52,7 +52,7 @@ pub struct Author { pub time: git2::Time, } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] fn deserialize_time<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, @@ -61,7 +61,7 @@ where Ok(git2::Time::new(seconds, 0)) } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] fn serialize_time(t: &git2::Time, serializer: S) -> Result where S: Serializer, @@ -100,7 +100,7 @@ impl<'repo> TryFrom> for Author { /// `Commit` is the static information of a [`git2::Commit`]. To get back the /// original `Commit` in the repository we can use the [`Oid`] to retrieve /// it. -#[cfg_attr(feature = "serialize", derive(Deserialize))] +#[cfg_attr(feature = "serde", derive(Deserialize))] #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct Commit { /// Object Id @@ -129,7 +129,7 @@ impl Commit { } } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for Commit { fn serialize(&self, serializer: S) -> Result where diff --git a/radicle-surf/src/git/stats.rs b/radicle-surf/src/git/stats.rs index 5f0ad79..c2ac38b 100644 --- a/radicle-surf/src/git/stats.rs +++ b/radicle-surf/src/git/stats.rs @@ -17,15 +17,11 @@ pub use radicle_git_ext::Oid; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::Serialize; /// Stats for a repository -#[cfg_attr( - feature = "serialize", - derive(Serialize), - serde(rename_all = "camelCase") -)] +#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] pub struct Stats { /// Number of commits pub commits: usize, diff --git a/radicle-surf/src/source/commit.rs b/radicle-surf/src/source/commit.rs index 109f285..3bb3ce6 100644 --- a/radicle-surf/src/source/commit.rs +++ b/radicle-surf/src/source/commit.rs @@ -20,7 +20,7 @@ use std::path::PathBuf; use git_ref_format::RefString; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::{ ser::{SerializeStruct as _, Serializer}, Serialize, @@ -35,7 +35,7 @@ use crate::{ use radicle_git_ext::Oid; /// Commit statistics. -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] #[derive(Clone)] pub struct Stats { /// Additions. @@ -45,7 +45,7 @@ pub struct Stats { } /// Representation of a changeset between two revs. -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] #[derive(Clone)] pub struct Commit { /// The commit header. @@ -114,7 +114,7 @@ impl From for Header { } } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for Header { fn serialize(&self, serializer: S) -> Result where @@ -132,7 +132,7 @@ impl Serialize for Header { } /// A selection of commit headers and their statistics. -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(Serialize))] pub struct Commits { /// The commit headers pub headers: Vec
, diff --git a/radicle-surf/src/source/object/blob.rs b/radicle-surf/src/source/object/blob.rs index 24b165f..9c89b4b 100644 --- a/radicle-surf/src/source/object/blob.rs +++ b/radicle-surf/src/source/object/blob.rs @@ -20,7 +20,7 @@ use std::{path::Path, str}; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::{ ser::{SerializeStruct as _, Serializer}, Serialize, @@ -97,7 +97,7 @@ impl Blob { } } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for Blob { fn serialize(&self, serializer: S) -> Result where @@ -130,7 +130,7 @@ pub enum BlobContent { Binary(Vec), } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for BlobContent { fn serialize(&self, serializer: S) -> Result where diff --git a/radicle-surf/src/source/object/tree.rs b/radicle-surf/src/source/object/tree.rs index 3c83670..c06c416 100644 --- a/radicle-surf/src/source/object/tree.rs +++ b/radicle-surf/src/source/object/tree.rs @@ -20,7 +20,7 @@ use std::path::Path; -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] use serde::{ ser::{SerializeStruct as _, Serializer}, Serialize, @@ -118,7 +118,7 @@ impl From for directory::Entry { } } -#[cfg(feature = "serialize")] +#[cfg(feature = "serde")] impl Serialize for TreeEntry { fn serialize(&self, serializer: S) -> Result where diff --git a/radicle-surf/src/source/person.rs b/radicle-surf/src/source/person.rs index e200715..ad7ceec 100644 --- a/radicle-surf/src/source/person.rs +++ b/radicle-surf/src/source/person.rs @@ -17,12 +17,9 @@ //! Represents a person in a repo. -#[cfg(feature = "serialize")] -use serde::Serialize; - /// Representation of a person (e.g. committer, author, signer) from a /// repository. Usually extracted from a signature. -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serde", derive(serde::Serialize))] #[derive(Clone, Debug)] pub struct Person { /// Name part of the commit signature. diff --git a/radicle-surf/t/Cargo.toml b/radicle-surf/t/Cargo.toml index efda92d..c9a737b 100644 --- a/radicle-surf/t/Cargo.toml +++ b/radicle-surf/t/Cargo.toml @@ -10,7 +10,6 @@ publish = false test = true [features] -serialize = [] test = [] [dev-dependencies] @@ -37,7 +36,7 @@ path = "../../radicle-git-ext" [dev-dependencies.radicle-surf] path = ".." -features = ["serialize"] +features = ["serde", "syntax"] [dev-dependencies.test-helpers] path = "../../test/test-helpers" diff --git a/radicle-surf/t/src/git.rs b/radicle-surf/t/src/git.rs index 513583a..1c989d1 100644 --- a/radicle-surf/t/src/git.rs +++ b/radicle-surf/t/src/git.rs @@ -5,12 +5,10 @@ const GIT_PLATINUM: &str = "../data/git-platinum"; -#[cfg(feature = "serialize")] #[cfg(test)] mod branch; #[cfg(test)] mod code_browsing; -#[cfg(feature = "serialize")] #[cfg(test)] mod commit; #[cfg(test)] diff --git a/radicle-surf/t/src/git/commit.rs b/radicle-surf/t/src/git/commit.rs index ef90cf5..5ad1bed 100644 --- a/radicle-surf/t/src/git/commit.rs +++ b/radicle-surf/t/src/git/commit.rs @@ -5,7 +5,6 @@ use radicle_git_ext::Oid; use radicle_surf::git::{Author, Commit}; use test_helpers::roundtrip; -#[cfg(feature = "serialize")] proptest! { #[test] fn prop_test_commits(commit in commits_strategy()) { diff --git a/radicle-surf/t/src/git/diff.rs b/radicle-surf/t/src/git/diff.rs index 1b89d5c..fa00741 100644 --- a/radicle-surf/t/src/git/diff.rs +++ b/radicle-surf/t/src/git/diff.rs @@ -122,7 +122,6 @@ fn test_branch_diff() -> Result<(), Error> { Ok(()) } -#[cfg(feature = "serialize")] #[test] fn test_diff_serde() { use radicle_surf::diff::{Hunks, MoveFile}; diff --git a/test/Cargo.toml b/test/Cargo.toml index 5e21e10..14761cb 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -33,7 +33,7 @@ features = ["test"] [dev-dependencies.radicle-surf-test] path = "../radicle-surf/t" -features = ["serialize", "test"] +features = ["test"] [dev-dependencies.git-storage-test] path = "../git-storage/t"