diff --git a/release/Cargo.toml b/release/Cargo.toml index 3e4094eed..452e39ca6 100644 --- a/release/Cargo.toml +++ b/release/Cargo.toml @@ -19,8 +19,8 @@ simple_logger = "5.0.0" temp-file = "0.1.9" flate2 = "1.1.1" -#[patch.crates-io] -#cargo-semver-checks = { path = "../../cargo-semver-checks" } +[patch.crates-io] +cargo-semver-checks = { git = "https://github.com/lulf/cargo-semver-checks.git", rev="385f274edcbb6bf5156e30a94315852b27a527e6" } [package.metadata.embassy] skip = true diff --git a/release/src/cargo.rs b/release/src/cargo.rs index 826a3a8b2..498dfeb97 100644 --- a/release/src/cargo.rs +++ b/release/src/cargo.rs @@ -4,30 +4,16 @@ use std::ffi::OsStr; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; -use anyhow::{bail, Context as _, Result}; -use clap::ValueEnum as _; +use anyhow::{bail, Result}; use serde::{Deserialize, Serialize}; -use toml_edit::{DocumentMut, Formatted, Item, Value}; -use crate::{windows_safe_path, Crate}; - -#[derive(Clone, Debug, PartialEq)] -pub enum CargoAction { - Build(PathBuf), - Run, -} +use crate::windows_safe_path; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct Artifact { pub executable: PathBuf, } -/// Execute cargo with the given arguments and from the specified directory. -pub fn run(args: &[String], cwd: &Path) -> Result<()> { - run_with_env::<[(&str, &str); 0], _, _>(args, cwd, [], false)?; - Ok(()) -} - /// Execute cargo with the given arguments and from the specified directory. pub fn run_with_env(args: &[String], cwd: &Path, envs: I, capture: bool) -> Result where @@ -166,25 +152,6 @@ impl CargoArgsBuilder { self } - #[must_use] - pub fn args(mut self, args: &[S]) -> Self - where - S: Clone + Into, - { - for arg in args { - self.args.push(arg.clone().into()); - } - self - } - - pub fn add_arg(&mut self, arg: S) -> &mut Self - where - S: Into, - { - self.args.push(arg.into()); - self - } - #[must_use] pub fn build(&self) -> Vec { let mut args = vec![]; diff --git a/release/src/main.rs b/release/src/main.rs index f1949dd37..cd3e094f1 100644 --- a/release/src/main.rs +++ b/release/src/main.rs @@ -5,7 +5,6 @@ use std::process::Command as ProcessCommand; use anyhow::{anyhow, bail, Result}; use clap::{Parser, Subcommand}; -use log::info; use petgraph::graph::{Graph, NodeIndex}; use petgraph::visit::Bfs; use petgraph::{Directed, Direction}; diff --git a/release/src/semver_check.rs b/release/src/semver_check.rs index a70c56376..9a4edd09a 100644 --- a/release/src/semver_check.rs +++ b/release/src/semver_check.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use cargo_semver_checks::{Check, GlobalConfig, ReleaseType, Rustdoc}; +use cargo_semver_checks::{Check, GlobalConfig, LintConfig, LintLevel, ReleaseType, RequiredSemverUpdate, Rustdoc}; use crate::cargo::CargoArgsBuilder; use crate::types::{BuildConfig, Crate}; @@ -8,12 +8,9 @@ use crate::types::{BuildConfig, Crate}; /// Return the minimum required bump for the next release. /// Even if nothing changed this will be [ReleaseType::Patch] pub fn minimum_update(krate: &Crate) -> Result { - println!("Crate = {:?}", krate); - let config = krate.configs.first().unwrap(); // TODO let package_name = krate.name.clone(); - let package_path = krate.path.clone(); let current_path = build_doc_json(krate, config)?; let baseline = Rustdoc::from_registry_latest_crate_version(); @@ -30,8 +27,12 @@ pub fn minimum_update(krate: &Crate) -> Result { } let mut cfg = GlobalConfig::new(); cfg.set_log_level(Some(log::Level::Trace)); + + let mut lint_cfg = LintConfig::new(); + // Disable this lint because we provide the rustdoc json only, so it can't do feature comparison. + lint_cfg.set("feature_missing", LintLevel::Allow, RequiredSemverUpdate::Minor, 0); + cfg.set_lint_config(lint_cfg); let result = semver_check.check_release(&mut cfg)?; - log::info!("Result {:?}", result); let mut min_required_update = ReleaseType::Patch; for (_, report) in result.crate_reports() { diff --git a/release/src/types.rs b/release/src/types.rs index 4d9d440d8..be0a883f1 100644 --- a/release/src/types.rs +++ b/release/src/types.rs @@ -1,4 +1,4 @@ -use std::collections::{BTreeMap, HashMap}; +use std::collections::BTreeMap; use std::path::PathBuf; use serde::Deserialize; @@ -29,6 +29,7 @@ pub struct Metadata { pub embassy: MetadataEmbassy, } +#[allow(dead_code)] #[derive(Debug, Deserialize, Default)] pub struct MetadataEmbassy { #[serde(default)]