aboutsummaryrefslogtreecommitdiff
path: root/release/src/semver_check.rs
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/semver_check.rs')
-rw-r--r--release/src/semver_check.rs25
1 files changed, 12 insertions, 13 deletions
diff --git a/release/src/semver_check.rs b/release/src/semver_check.rs
index e20bc8574..a70c56376 100644
--- a/release/src/semver_check.rs
+++ b/release/src/semver_check.rs
@@ -1,21 +1,20 @@
1use std::fs; 1use std::path::PathBuf;
2use std::io::Write;
3use std::path::{Path, PathBuf};
4 2
5use cargo_semver_checks::{Check, GlobalConfig, ReleaseType, Rustdoc}; 3use cargo_semver_checks::{Check, GlobalConfig, ReleaseType, Rustdoc};
6 4
7use crate::cargo::CargoArgsBuilder; 5use crate::cargo::CargoArgsBuilder;
8use crate::types::Crate; 6use crate::types::{BuildConfig, Crate};
9use crate::windows_safe_path;
10 7
11/// Return the minimum required bump for the next release. 8/// Return the minimum required bump for the next release.
12/// Even if nothing changed this will be [ReleaseType::Patch] 9/// Even if nothing changed this will be [ReleaseType::Patch]
13pub fn minimum_update(krate: &Crate) -> Result<ReleaseType, anyhow::Error> { 10pub fn minimum_update(krate: &Crate) -> Result<ReleaseType, anyhow::Error> {
14 println!("Crate = {:?}", krate); 11 println!("Crate = {:?}", krate);
15 12
13 let config = krate.configs.first().unwrap(); // TODO
14
16 let package_name = krate.name.clone(); 15 let package_name = krate.name.clone();
17 let package_path = krate.path.clone(); 16 let package_path = krate.path.clone();
18 let current_path = build_doc_json(krate)?; 17 let current_path = build_doc_json(krate, config)?;
19 18
20 let baseline = Rustdoc::from_registry_latest_crate_version(); 19 let baseline = Rustdoc::from_registry_latest_crate_version();
21 let doc = Rustdoc::from_path(&current_path); 20 let doc = Rustdoc::from_path(&current_path);
@@ -23,10 +22,10 @@ pub fn minimum_update(krate: &Crate) -> Result<ReleaseType, anyhow::Error> {
23 semver_check.with_default_features(); 22 semver_check.with_default_features();
24 semver_check.set_baseline(baseline); 23 semver_check.set_baseline(baseline);
25 semver_check.set_packages(vec![package_name]); 24 semver_check.set_packages(vec![package_name]);
26 let extra_current_features = krate.config.features.clone(); 25 let extra_current_features = config.features.clone();
27 let extra_baseline_features = krate.config.features.clone(); 26 let extra_baseline_features = config.features.clone();
28 semver_check.set_extra_features(extra_current_features, extra_baseline_features); 27 semver_check.set_extra_features(extra_current_features, extra_baseline_features);
29 if let Some(target) = &krate.config.target { 28 if let Some(target) = &config.target {
30 semver_check.set_build_target(target.clone()); 29 semver_check.set_build_target(target.clone());
31 } 30 }
32 let mut cfg = GlobalConfig::new(); 31 let mut cfg = GlobalConfig::new();
@@ -48,7 +47,7 @@ pub fn minimum_update(krate: &Crate) -> Result<ReleaseType, anyhow::Error> {
48 Ok(min_required_update) 47 Ok(min_required_update)
49} 48}
50 49
51pub(crate) fn build_doc_json(krate: &Crate) -> Result<PathBuf, anyhow::Error> { 50pub(crate) fn build_doc_json(krate: &Crate, config: &BuildConfig) -> Result<PathBuf, anyhow::Error> {
52 let target_dir = std::env::var("CARGO_TARGET_DIR"); 51 let target_dir = std::env::var("CARGO_TARGET_DIR");
53 52
54 let target_path = if let Ok(target) = target_dir { 53 let target_path = if let Ok(target) = target_dir {
@@ -58,7 +57,7 @@ pub(crate) fn build_doc_json(krate: &Crate) -> Result<PathBuf, anyhow::Error> {
58 }; 57 };
59 58
60 let current_path = target_path; 59 let current_path = target_path;
61 let current_path = if let Some(target) = &krate.config.target { 60 let current_path = if let Some(target) = &config.target {
62 current_path.join(target.clone()) 61 current_path.join(target.clone())
63 } else { 62 } else {
64 current_path 63 current_path
@@ -68,7 +67,7 @@ pub(crate) fn build_doc_json(krate: &Crate) -> Result<PathBuf, anyhow::Error> {
68 .join(format!("{}.json", krate.name.to_string().replace("-", "_"))); 67 .join(format!("{}.json", krate.name.to_string().replace("-", "_")));
69 68
70 std::fs::remove_file(&current_path).ok(); 69 std::fs::remove_file(&current_path).ok();
71 let features = krate.config.features.clone(); 70 let features = config.features.clone();
72 71
73 log::info!("Building doc json for {} with features: {:?}", krate.name, features); 72 log::info!("Building doc json for {} with features: {:?}", krate.name, features);
74 73
@@ -83,7 +82,7 @@ pub(crate) fn build_doc_json(krate: &Crate) -> Result<PathBuf, anyhow::Error> {
83 .toolchain("nightly-2025-06-29") 82 .toolchain("nightly-2025-06-29")
84 .subcommand("rustdoc") 83 .subcommand("rustdoc")
85 .features(&features); 84 .features(&features);
86 let cargo_builder = if let Some(target) = &krate.config.target { 85 let cargo_builder = if let Some(target) = &config.target {
87 cargo_builder.target(target.clone()) 86 cargo_builder.target(target.clone())
88 } else { 87 } else {
89 cargo_builder 88 cargo_builder