diff --git a/.changeset/use_the_correct_tags_for_gomod_files_in_subdirectories.md b/.changeset/use_the_correct_tags_for_gomod_files_in_subdirectories.md new file mode 100644 index 00000000..ba46b7e6 --- /dev/null +++ b/.changeset/use_the_correct_tags_for_gomod_files_in_subdirectories.md @@ -0,0 +1,18 @@ +--- +default: patch +--- + +#### Use the correct tags for `go.mod` files in subdirectories + +PR #544 fixed issue #502 by @BatmanAoD. + +Previously, the version for a `go.mod` file was determined by the package tag, named `v{Version}` for single packages or `{PackageName}/v{Version}` for named packages. This worked when the `go.mod` file was in the root of the repository or a directory named `{PackageName}` (respectively), but not when it was in a different directory. Now, the version tag, both for determining the current version and creating a new release, will correctly be determined by the name of the directory the `go.mod` file is in (relative to the working directory). The existing package tagging strategy remains unchanged. + +For example, consider this `knope.toml` file: + +```toml +[package] +versioned_files = ["some_dir/go.mod"] +``` + +Previous to this release, creating the version `1.2.3` would only create a tag `v1.2.3`. Now, it will _additionally_ create the tag `some_dir/v1.2.3`. diff --git a/src/fs.rs b/src/fs.rs new file mode 100644 index 00000000..e4b71b12 --- /dev/null +++ b/src/fs.rs @@ -0,0 +1,42 @@ +//! Proxies to FS utils that _either_ actually write to files or print to stdout (for dry runs). + +use std::{ + fmt::Display, + io, + io::Write, + path::{Path, PathBuf}, +}; + +use log::trace; +use miette::Diagnostic; +use thiserror::Error; + +/// Writes to a file if this is not a dry run, or prints just the diff to stdout if it is. +pub(crate) fn write + Display>( + dry_run: &mut Option>, + diff: &str, + path: &Path, + contents: C, +) -> Result<(), Error> { + if let Some(stdout) = dry_run { + writeln!(stdout, "Would write {} to {}", diff, path.display()).map_err(Error::Stdout) + } else { + trace!("Writing {} to {}", contents, path.display()); + std::fs::write(path, contents).map_err(|source| Error::File { + path: path.into(), + source, + }) + } +} + +#[derive(Debug, Diagnostic, Error)] +pub(crate) enum Error { + #[error("Error writing to {path}: {source}")] + File { + path: PathBuf, + #[source] + source: io::Error, + }, + #[error("Error writing to stdout: {0}")] + Stdout(#[from] io::Error), +} diff --git a/src/lib.rs b/src/lib.rs index 6b42484b..5ff35fdf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -38,6 +38,7 @@ use crate::{ mod app_config; mod command; mod config; +mod fs; mod git; mod issues; mod prompt; diff --git a/src/releases/cargo.rs b/src/releases/cargo.rs index 3ffa15f4..2e22ae8c 100644 --- a/src/releases/cargo.rs +++ b/src/releases/cargo.rs @@ -1,25 +1,59 @@ +use std::path::{Path, PathBuf}; + +use miette::Diagnostic; use serde::Deserialize; +use thiserror::Error; use toml::Spanned; -pub(crate) fn get_version(content: &str) -> Result { - toml::from_str::(content).map(|cargo| cargo.package.version.into_inner()) +use crate::fs; + +pub(crate) fn get_version(content: &str, path: &Path) -> Result { + toml::from_str::(content) + .map(|cargo| cargo.package.version.into_inner()) + .map_err(|source| Error::Deserialize { + path: path.into(), + source, + }) } pub(crate) fn set_version( + dry_run: &mut Option>, mut cargo_toml: String, new_version: &str, -) -> Result { - let doc: Cargo = toml::from_str(&cargo_toml)?; + path: &Path, +) -> Result { + let doc: Cargo = toml::from_str(&cargo_toml).map_err(|source| Error::Deserialize { + path: path.into(), + source, + })?; // Account for quotes with +- 1 let start = doc.package.version.span().start + 1; let end = doc.package.version.span().end - 1; cargo_toml.replace_range(start..end, new_version); + fs::write(dry_run, new_version, path, &cargo_toml)?; Ok(cargo_toml) } +#[derive(Debug, Diagnostic, Error)] +pub(crate) enum Error { + #[error("Error deserializing {path}: {source}")] + #[diagnostic( + code(cargo::deserialize), + help("knope expects the Cargo.toml file to have a `package.version` property. Workspace support is coming soon!"), + url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") + )] + Deserialize { + path: PathBuf, + #[source] + source: toml::de::Error, + }, + #[error(transparent)] + Fs(#[from] fs::Error), +} + #[derive(Debug, Deserialize)] struct Cargo { package: Package, @@ -32,6 +66,8 @@ struct Package { #[cfg(test)] mod tests { + use std::path::Path; + use super::*; #[test] @@ -42,7 +78,10 @@ mod tests { version = "0.1.0-rc.0" "###; - assert_eq!(get_version(content).unwrap(), "0.1.0-rc.0".to_string()); + assert_eq!( + get_version(content, Path::new("")).unwrap(), + "0.1.0-rc.0".to_string() + ); } #[test] @@ -53,7 +92,14 @@ mod tests { version = "0.1.0-rc.0" "###; - let new = set_version(String::from(content), "1.2.3-rc.4").unwrap(); + let stdout = Box::>::default(); + let new = set_version( + &mut Some(stdout), + String::from(content), + "1.2.3-rc.4", + Path::new(""), + ) + .unwrap(); let expected = content.replace("0.1.0-rc.0", "1.2.3-rc.4"); assert_eq!(new, expected); diff --git a/src/releases/git.rs b/src/releases/git.rs index 82839118..6c6a7cad 100644 --- a/src/releases/git.rs +++ b/src/releases/git.rs @@ -17,30 +17,34 @@ pub(crate) fn tag_name(version: &Version, package_name: &Option) -> } pub(crate) fn release( - dry_run_stdout: Option<&mut Box>, + dry_run_stdout: &mut Option>, version: &Version, package_name: &Option, ) -> Result<(), StepError> { let tag = tag_name(version, package_name); - if let Some(stdout) = dry_run_stdout { - writeln!(stdout, "Would create Git tag {tag}")?; - return Ok(()); - } + create_tag(dry_run_stdout, tag)?; + + Ok(()) +} - let repo = open(current_dir()?).map_err(|_e| StepError::NotAGitRepo)?; +pub(crate) fn create_tag(dry_run: &mut Option>, name: String) -> Result<(), Error> { + if let Some(stdout) = dry_run { + return writeln!(stdout, "Would create Git tag {name}").map_err(Error::Stdout); + } + let repo = open(current_dir().map_err(Error::CurrentDirectory)?) + .map_err(|err| Error::OpenGitRepo(Box::new(err)))?; let head = repo.head_commit()?; repo.tag( - tag, + name, head.id, Kind::Commit, repo.committer() .transpose() - .map_err(|_| StepError::NoCommitter)?, + .map_err(|_| Error::NoCommitter)?, "", PreviousValue::Any, )?; - Ok(()) } @@ -90,4 +94,23 @@ pub(crate) enum Error { GitReferences(#[from] gix::reference::iter::Error), #[error("Could not get Git tags: {0}")] Tags(#[from] gix::reference::iter::init::Error), + #[error("Could not find head commit: {0}")] + HeadCommit(#[from] gix::reference::head_commit::Error), + #[error("Could not determine Git committer to commit changes")] + #[diagnostic( + code(git::no_committer), + help( + "We couldn't determine who to commit the changes as. Please set the `user.name` and \ + `user.email` Git config options." + ) + )] + NoCommitter, + #[error("Could not create a tag: {0}")] + #[diagnostic( + code(git::tag_failed), + help("A Git tag could not be created for the release.") + )] + CreateTagError(#[from] gix::tag::Error), + #[error("Failed to write to stdout")] + Stdout(#[source] std::io::Error), } diff --git a/src/releases/go.rs b/src/releases/go.rs index a0df52c1..839db0ac 100644 --- a/src/releases/go.rs +++ b/src/releases/go.rs @@ -1,7 +1,12 @@ +use std::path::Path; + use miette::Diagnostic; use thiserror::Error; -use crate::releases::semver::Version; +use crate::{ + fs, + releases::{git, semver::Version}, +}; #[derive(Debug, Diagnostic, Error)] pub(crate) enum Error { @@ -17,16 +22,34 @@ pub(crate) enum Error { help("The go.mod file contains an invalid module line.") )] MalformedModuleLine(String), + #[error(transparent)] + Git(#[from] git::Error), + #[error(transparent)] + Fs(#[from] fs::Error), } -pub(crate) fn set_version(go_mod: String, new_version: &Version) -> Result { +pub(crate) fn set_version( + dry_run: &mut Option>, + content: String, + new_version: &Version, + path: &Path, +) -> Result { + let parent_dir = path.parent().map(Path::to_string_lossy); + if let Some(parent_dir) = parent_dir { + if !parent_dir.is_empty() { + let tag = format!("{parent_dir}/v{new_version}"); + git::create_tag(dry_run, tag)?; + } + // If there's not a nested dir, the tag will equal the release tag, so creating it here would cause a conflict later. + } + let new_major = new_version.stable_component().major; if new_major == 0 || new_major == 1 { // These major versions aren't recorded in go.mod - return Ok(go_mod); + return Ok(content); } - let module_line = go_mod + let module_line = content .lines() .find(|line| line.starts_with("module ")) .ok_or(Error::MissingModuleLine)?; @@ -46,17 +69,23 @@ pub(crate) fn set_version(go_mod: String, new_version: &Version) -> Result Result { dry_run_stdout.as_mut(), )?; } else { - git::release(dry_run_stdout.as_mut(), &release.new_version, &package.name)?; + git::release(&mut dry_run_stdout, &release.new_version, &package.name)?; } } } diff --git a/src/releases/package_json.rs b/src/releases/package_json.rs index 2910c48e..b18925d0 100644 --- a/src/releases/package_json.rs +++ b/src/releases/package_json.rs @@ -1,20 +1,70 @@ +use std::path::{Path, PathBuf}; + +use miette::Diagnostic; use serde::Deserialize; use serde_json::{Map, Value}; +use thiserror::Error; + +use crate::fs; -pub(crate) fn get_version(content: &str) -> Result { - serde_json::from_str::(content).map(|package| package.version) +pub(crate) fn get_version(content: &str, path: &Path) -> Result { + serde_json::from_str::(content) + .map(|package| package.version) + .map_err(|source| Error::Deserialize { + path: path.into(), + source, + }) } pub(crate) fn set_version( + dry_run: &mut Option>, package_json: &str, new_version: &str, -) -> Result { - let mut json = serde_json::from_str::>(package_json)?; + path: &Path, +) -> Result { + let mut json = serde_json::from_str::>(package_json).map_err(|source| { + Error::Deserialize { + path: path.into(), + source, + } + })?; json.insert( "version".to_string(), Value::String(new_version.to_string()), ); - serde_json::to_string_pretty(&json) + let contents = serde_json::to_string_pretty(&json).map_err(|source| Error::Serialize { + path: path.into(), + source, + })?; + fs::write(dry_run, new_version, path, &contents)?; + Ok(contents) +} + +#[derive(Debug, Diagnostic, Error)] +pub(crate) enum Error { + #[error("Error deserializing {path}: {source}")] + #[diagnostic( + code(package_json::deserialize), + help("knope expects the package.json file to be an object with a top level `version` property"), + url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") + )] + Deserialize { + path: PathBuf, + #[source] + source: serde_json::Error, + }, + #[error(transparent)] + Fs(#[from] fs::Error), + #[error("Failed to serialize {path} with new version")] + #[diagnostic( + code(package_json::serialize), + help("This is likely a bug, please report it at https://github.com/knope-dev/knope") + )] + Serialize { + path: PathBuf, + #[source] + source: serde_json::Error, + }, } #[derive(Debug, Deserialize)] @@ -33,7 +83,10 @@ mod tests { "version": "0.1.0-rc.0" }"###; - assert_eq!(get_version(content).unwrap(), "0.1.0-rc.0".to_string()); + assert_eq!( + get_version(content, Path::new("")).unwrap(), + "0.1.0-rc.0".to_string() + ); } #[test] @@ -43,7 +96,8 @@ mod tests { "version": "0.1.0-rc.0" }"###; - let new = set_version(content, "1.2.3-rc.4").unwrap(); + let stdout = Box::>::default(); + let new = set_version(&mut Some(stdout), content, "1.2.3-rc.4", Path::new("")).unwrap(); let expected = r###"{ "name": "tester", @@ -61,7 +115,8 @@ mod tests { "dependencies": {} }"###; - let new = set_version(content, "1.2.3-rc.4").unwrap(); + let stdout = Box::>::default(); + let new = set_version(&mut Some(stdout), content, "1.2.3-rc.4", Path::new("")).unwrap(); let expected = r###"{ "name": "tester", diff --git a/src/releases/pyproject.rs b/src/releases/pyproject.rs index 7df54b37..4669169d 100644 --- a/src/releases/pyproject.rs +++ b/src/releases/pyproject.rs @@ -1,16 +1,18 @@ -use std::path::Path; +use std::path::{Path, PathBuf}; +use miette::Diagnostic; use serde::Deserialize; +use thiserror::Error; use toml::Spanned; -use crate::step::StepError; +use crate::fs; -/// Extrat the consistent version from a `pyproject.toml` file's content or return an error. +/// Extract the consistent version from a `pyproject.toml` file's content or return an error. /// /// `path` is used for error reporting. -pub(crate) fn get_version(content: &str, path: &Path) -> Result { +pub(crate) fn get_version(content: &str, path: &Path) -> Result { toml::from_str::(content) - .map_err(|_| StepError::InvalidPyProject(path.into())) + .map_err(|source| Error::Deserialization(path.into(), source)) .and_then(|pyproject| pyproject.version(path)) } @@ -18,13 +20,51 @@ pub(crate) fn get_version(content: &str, path: &Path) -> Result>, pyproject_toml: String, new_version: &str, path: &Path, -) -> Result { - toml::from_str(&pyproject_toml) - .map_err(|_| StepError::InvalidPyProject(path.into())) - .map(|pyproject: PyProject| pyproject.set_version(pyproject_toml, new_version)) +) -> Result { + let contents = toml::from_str(&pyproject_toml) + .map_err(|source| Error::Deserialization(path.into(), source)) + .map(|pyproject: PyProject| pyproject.set_version(pyproject_toml, new_version))?; + fs::write(dry_run, new_version, path, &contents)?; + Ok(contents) +} + +#[derive(Debug, Diagnostic, Error)] +pub(crate) enum Error { + #[error(transparent)] + Fs(#[from] fs::Error), + #[error("Could not deserialize {0} as a pyproject.toml: {1}")] + #[diagnostic( + code(pyproject::invalid), + help( + "knope expects the pyproject.toml file to have a `tool.poetry.version` or \ + `project.version` property. If you use a different location for your version, please \ + open an issue to add support." + ), + url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") + )] + Deserialization(PathBuf, #[source] toml::de::Error), + #[error("Found conflicting versions {project} and {poetry} in {path}")] + #[diagnostic( + code(pyproject::inconsistent), + help("Make sure [project.version] and [tool.poetry.version] are the same."), + url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") + )] + InconsistentVersions { + project: String, + poetry: String, + path: PathBuf, + }, + #[error("No versions were found in {0}")] + #[diagnostic( + code(pyproject::no_versions), + help("Make sure [project.version] or [tool.poetry.version] is set."), + url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") + )] + NoVersions(PathBuf), } #[derive(Debug, Deserialize)] @@ -36,7 +76,7 @@ struct PyProject { impl PyProject { /// Get the consistent version from `pyproject.toml` or error. /// `path` is used for better error messages. - fn version(self, path: &Path) -> Result { + fn version(self, path: &Path) -> Result { let (poetry_version, project_version) = self.into_versions(); match (poetry_version, project_version) { @@ -44,15 +84,16 @@ impl PyProject { if poetry_version == project_version { Ok(poetry_version.into_inner()) } else { - Err(StepError::InconsistentVersions( - poetry_version.into_inner(), - project_version.into_inner(), - )) + Err(Error::InconsistentVersions { + poetry: poetry_version.into_inner(), + project: project_version.into_inner(), + path: path.into(), + }) } } (Some(poetry_version), None) => Ok(poetry_version.into_inner()), (None, Some(project_version)) => Ok(project_version.into_inner()), - (None, None) => Err(StepError::InvalidPyProject(path.into())), + (None, None) => Err(Error::NoVersions(path.into())), } } @@ -156,9 +197,11 @@ mod tests { "###; match get_version(content, PathBuf::new().as_path()) { - Err(StepError::InconsistentVersions(first, second)) => { - assert_eq!(first, "1.0.0".to_string()); - assert_eq!(second, "2.3.4".to_string()); + Err(Error::InconsistentVersions { + poetry, project, .. + }) => { + assert_eq!(poetry, "1.0.0".to_string()); + assert_eq!(project, "2.3.4".to_string()); } other => panic!("Unexpected result {other:?}"), } @@ -176,7 +219,14 @@ mod tests { version = "0.1.0-rc.0" "###; - let new = set_version(String::from(content), "1.2.3-rc.4", &PathBuf::new()).unwrap(); + let stdout = Box::>::default(); + let new = set_version( + &mut Some(stdout), + String::from(content), + "1.2.3-rc.4", + &PathBuf::new(), + ) + .unwrap(); let expected = r###" [tool.poetry] diff --git a/src/releases/semver/mod.rs b/src/releases/semver/mod.rs index d76aa478..1c44dc75 100644 --- a/src/releases/semver/mod.rs +++ b/src/releases/semver/mod.rs @@ -134,11 +134,7 @@ impl Package { let version_from_files = self .versioned_files .iter() - .map(|versioned_file| { - versioned_file - .get_version(self.name.as_deref()) - .map_err(StepError::from) - }) + .map(|versioned_file| versioned_file.get_version().map_err(StepError::from)) .map(|result| result.and_then(|version_string| Version::from_str(&version_string))) .reduce(|accumulator, version| match (version, accumulator) { (Ok(version), Ok(accumulator)) => { @@ -174,15 +170,7 @@ impl Package { dry_run: &mut Option>, ) -> Result { for versioned_file in &mut self.versioned_files { - if let Some(stdio) = dry_run.as_deref_mut() { - writeln!( - stdio, - "Would bump {} to {version}", - versioned_file.path.display() - )?; - } else { - versioned_file.set_version(version)?; - } + versioned_file.set_version(dry_run, version)?; } Ok(self) } diff --git a/src/releases/versioned_file.rs b/src/releases/versioned_file.rs index 791900a2..a2754a64 100644 --- a/src/releases/versioned_file.rs +++ b/src/releases/versioned_file.rs @@ -1,16 +1,16 @@ use std::{ ffi::OsStr, - fs::{read_to_string, write}, + fs::read_to_string, + io::Write, path::{Path, PathBuf}, }; use itertools::Itertools; -use log::trace; use miette::Diagnostic; use thiserror::Error; use crate::releases::{ - cargo, get_current_versions_from_tag, go, package_json, pyproject, semver::Version, + cargo, get_current_versions_from_tag, git, go, package_json, pyproject, semver::Version, }; #[derive(Clone, Debug, Eq, PartialEq)] @@ -58,51 +58,33 @@ pub(crate) enum Error { url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") )] VersionedFileFormat(PathBuf), - #[error("The file {0} was an incorrect format")] - #[diagnostic( - code(step::invalid_cargo_toml), - help("knope expects the Cargo.toml file to have a `package.version` property. Workspace support is coming soon!"), - url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") - )] - InvalidCargoToml(PathBuf), - #[error("The file {0} was an incorrect format")] - #[diagnostic( - code(step::invalid_package_json), - help("knope expects the package.json file to be an object with a top level `version` property"), - url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") - )] - InvalidPackageJson(PathBuf), - #[error("The file {0} was an incorrect format")] - #[diagnostic( - code(step::invalid_pyproject), - help( - "knope expects the pyproject.toml file to have a `tool.poetry.version` or \ - `project.version` property. If you use a different location for your version, please \ - open an issue to add support." - ), - url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") - )] - InvalidPyProject(PathBuf), #[error(transparent)] - Git(#[from] crate::releases::git::Error), + Git(#[from] git::Error), + #[error(transparent)] + Go(#[from] go::Error), + #[error(transparent)] + Cargo(#[from] cargo::Error), + #[error(transparent)] + PyProject(#[from] pyproject::Error), #[error(transparent)] - Go(#[from] crate::releases::go::Error), + PackageJson(#[from] package_json::Error), } type Result = std::result::Result; impl VersionedFile { - pub(crate) fn get_version(&self, package_name: Option<&str>) -> Result { - self.format - .get_version(&self.content, package_name, &self.path) + pub(crate) fn get_version(&self) -> Result { + self.format.get_version(&self.content, &self.path) } - pub(crate) fn set_version(&mut self, version_str: &Version) -> Result<()> { - self.content = self - .format - .set_version(self.content.clone(), version_str, &self.path)?; - trace!("Writing {} to {}", self.content, self.path.display()); - write(&self.path, &self.content).map_err(|e| Error::Io(self.path.clone(), e))?; + pub(crate) fn set_version( + &mut self, + dry_run: &mut Option>, + version_str: &Version, + ) -> Result<()> { + self.content = + self.format + .set_version(dry_run, self.content.clone(), version_str, &self.path)?; Ok(()) } } @@ -134,28 +116,26 @@ impl TryFrom<&PathBuf> for PackageFormat { impl PackageFormat { /// Get the version from `content` for package named `name` (if any name). /// `path` is used for error reporting. - pub(crate) fn get_version( - self, - content: &str, - name: Option<&str>, - path: &Path, - ) -> Result { + pub(crate) fn get_version(self, content: &str, path: &Path) -> Result { match self { - PackageFormat::Cargo => { - cargo::get_version(content).map_err(|_| Error::InvalidCargoToml(path.into())) + PackageFormat::Cargo => cargo::get_version(content, path).map_err(Error::Cargo), + PackageFormat::Poetry => { + pyproject::get_version(content, path).map_err(Error::PyProject) + } + PackageFormat::JavaScript => { + package_json::get_version(content, path).map_err(Error::PackageJson) + } + PackageFormat::Go => { + let prefix = path.parent().map(Path::to_string_lossy); + get_current_versions_from_tag(prefix.as_deref()) + .map(|current_versions| { + current_versions + .into_latest() + .unwrap_or_default() + .to_string() + }) + .map_err(Error::from) } - PackageFormat::Poetry => pyproject::get_version(content, path) - .map_err(|_| Error::InvalidPyProject(path.into())), - PackageFormat::JavaScript => package_json::get_version(content) - .map_err(|_| Error::InvalidPackageJson(path.into())), - PackageFormat::Go => get_current_versions_from_tag(name) - .map(|current_versions| { - current_versions - .into_latest() - .unwrap_or_default() - .to_string() - }) - .map_err(Error::from), } } @@ -164,22 +144,27 @@ impl PackageFormat { /// `path` is only used for error reporting. pub(crate) fn set_version( self, + dry_run: &mut Option>, content: String, new_version: &Version, path: &Path, ) -> Result { match self { - PackageFormat::Cargo => cargo::set_version(content, &new_version.to_string()) - .map_err(|_| Error::InvalidCargoToml(path.into())), + PackageFormat::Cargo => { + cargo::set_version(dry_run, content, &new_version.to_string(), path) + .map_err(Error::from) + } PackageFormat::Poetry => { - pyproject::set_version(content, &new_version.to_string(), path) - .map_err(|_| Error::InvalidPyProject(path.into())) + pyproject::set_version(dry_run, content, &new_version.to_string(), path) + .map_err(Error::from) } PackageFormat::JavaScript => { - package_json::set_version(&content, &new_version.to_string()) - .map_err(|_| Error::InvalidPackageJson(path.into())) + package_json::set_version(dry_run, &content, &new_version.to_string(), path) + .map_err(Error::PackageJson) + } + PackageFormat::Go => { + go::set_version(dry_run, content, new_version, path).map_err(Error::from) } - PackageFormat::Go => go::set_version(content, new_version).map_err(Error::from), } } } diff --git a/src/step.rs b/src/step.rs index 68eb953c..fb1d8c64 100644 --- a/src/step.rs +++ b/src/step.rs @@ -4,7 +4,6 @@ use gix::{ objs::decode, reference::{head_commit, peel}, revision::walk, - tag, traverse::commit::ancestors, }; use inquire::InquireError; @@ -193,17 +192,6 @@ pub(super) enum StepError { url("https://knope-dev.github.io/knope/config/step/BumpVersion.html") )] InconsistentVersions(String, String), - #[error("The file {0} was an incorrect format")] - #[diagnostic( - code(step::invalid_pyproject), - help( - "knope expects the pyproject.toml file to have a `tool.poetry.version` or \ - `project.version` property. If you use a different location for your version, please \ - open an issue to add support." - ), - url("https://knope-dev.github.io/knope/config/packages.html#supported-formats-for-versioning") - )] - InvalidPyProject(PathBuf), #[error(transparent)] Go(#[from] releases::go::Error), #[error(transparent)] @@ -260,15 +248,6 @@ pub(super) enum StepError { url("https://knope-dev.github.io/knope/config/step/SwitchBranches.html") )] UncommittedChanges, - #[error("Could not determine Git committer to commit changes")] - #[diagnostic( - code(step::no_committer), - help( - "We couldn't determine who to commit the changes as. Please set the `user.name` and \ - `user.email` Git config options." - ) - )] - NoCommitter, #[error("Could not complete checkout")] #[diagnostic( code(step::incomplete_checkout), @@ -291,12 +270,6 @@ pub(super) enum StepError { help("This step requires HEAD to point to a commit—it was not.") )] HeadCommitError(#[from] head_commit::Error), - #[error("Could not create a tag")] - #[diagnostic( - code(step::create_tag_error), - help("A Git tag could not be created for the release.") - )] - CreateTagError, #[error("Something went wrong with Git")] #[diagnostic( code(step::unknown_git_error), @@ -389,12 +362,6 @@ pub(super) enum StepError { GeneratedTOML(#[from] toml::ser::Error), } -impl From for StepError { - fn from(_: tag::Error) -> Self { - Self::CreateTagError - } -} - impl StepError { pub fn no_defined_packages_with_help() -> Self { match suggested_package_toml() { diff --git a/tests/bump_version/bump-major_1.2.3_2.0.0_dry_run_output.txt b/tests/bump_version/bump-major_1.2.3_2.0.0_dry_run_output.txt index 05d5e7d2..4ad04503 100644 --- a/tests/bump_version/bump-major_1.2.3_2.0.0_dry_run_output.txt +++ b/tests/bump_version/bump-major_1.2.3_2.0.0_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml diff --git a/tests/bump_version/bump-minor_1.2.3_1.3.0_dry_run_output.txt b/tests/bump_version/bump-minor_1.2.3_1.3.0_dry_run_output.txt index d73a7fcd..1d14da50 100644 --- a/tests/bump_version/bump-minor_1.2.3_1.3.0_dry_run_output.txt +++ b/tests/bump_version/bump-minor_1.2.3_1.3.0_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.3.0 +Would write 1.3.0 to Cargo.toml diff --git a/tests/bump_version/bump-patch_1.2.3_1.2.4_dry_run_output.txt b/tests/bump_version/bump-patch_1.2.3_1.2.4_dry_run_output.txt index 0c3729c2..eb380d7e 100644 --- a/tests/bump_version/bump-patch_1.2.3_1.2.4_dry_run_output.txt +++ b/tests/bump_version/bump-patch_1.2.3_1.2.4_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.2.4 +Would write 1.2.4 to Cargo.toml diff --git a/tests/bump_version/bump-pre_1.2.3-rc.0_1.2.4-rc.0_dry_run_output.txt b/tests/bump_version/bump-pre_1.2.3-rc.0_1.2.4-rc.0_dry_run_output.txt index bdcfa94a..9f0a64e5 100644 --- a/tests/bump_version/bump-pre_1.2.3-rc.0_1.2.4-rc.0_dry_run_output.txt +++ b/tests/bump_version/bump-pre_1.2.3-rc.0_1.2.4-rc.0_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.2.4-rc.0 +Would write 1.2.4-rc.0 to Cargo.toml diff --git a/tests/bump_version/bump-pre_1.2.3_1.2.4-rc.0_dry_run_output.txt b/tests/bump_version/bump-pre_1.2.3_1.2.4-rc.0_dry_run_output.txt index bdcfa94a..9f0a64e5 100644 --- a/tests/bump_version/bump-pre_1.2.3_1.2.4-rc.0_dry_run_output.txt +++ b/tests/bump_version/bump-pre_1.2.3_1.2.4-rc.0_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.2.4-rc.0 +Would write 1.2.4-rc.0 to Cargo.toml diff --git a/tests/bump_version/bump-pre_1.2.4-rc.0_1.2.4-rc.1_dry_run_output.txt b/tests/bump_version/bump-pre_1.2.4-rc.0_1.2.4-rc.1_dry_run_output.txt index 81b599fe..5515c451 100644 --- a/tests/bump_version/bump-pre_1.2.4-rc.0_1.2.4-rc.1_dry_run_output.txt +++ b/tests/bump_version/bump-pre_1.2.4-rc.0_1.2.4-rc.1_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.2.4-rc.1 +Would write 1.2.4-rc.1 to Cargo.toml diff --git a/tests/bump_version/bump-release_1.2.4-rc.0_1.2.4_dry_run_output.txt b/tests/bump_version/bump-release_1.2.4-rc.0_1.2.4_dry_run_output.txt index 0c3729c2..eb380d7e 100644 --- a/tests/bump_version/bump-release_1.2.4-rc.0_1.2.4_dry_run_output.txt +++ b/tests/bump_version/bump-release_1.2.4-rc.0_1.2.4_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.2.4 +Would write 1.2.4 to Cargo.toml diff --git a/tests/bump_version/multiple_packages/bump-major/dry_run_output.txt b/tests/bump_version/multiple_packages/bump-major/dry_run_output.txt index 91ab3ecb..e0433ca0 100644 --- a/tests/bump_version/multiple_packages/bump-major/dry_run_output.txt +++ b/tests/bump_version/multiple_packages/bump-major/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.2.0 -Would bump package.json to 7.0.0 -Would bump pyproject.toml to 4.0.0 +Would write 0.2.0 to Cargo.toml +Would write 7.0.0 to package.json +Would write 4.0.0 to pyproject.toml diff --git a/tests/bump_version/multiple_packages/bump-minor/dry_run_output.txt b/tests/bump_version/multiple_packages/bump-minor/dry_run_output.txt index 589abbfe..d07bbc3b 100644 --- a/tests/bump_version/multiple_packages/bump-minor/dry_run_output.txt +++ b/tests/bump_version/multiple_packages/bump-minor/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.1.3 -Would bump package.json to 6.8.0 -Would bump pyproject.toml to 3.5.0 +Would write 0.1.3 to Cargo.toml +Would write 6.8.0 to package.json +Would write 3.5.0 to pyproject.toml diff --git a/tests/bump_version/multiple_packages/bump-patch/dry_run_output.txt b/tests/bump_version/multiple_packages/bump-patch/dry_run_output.txt index 27d2181e..7e94767d 100644 --- a/tests/bump_version/multiple_packages/bump-patch/dry_run_output.txt +++ b/tests/bump_version/multiple_packages/bump-patch/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.1.3 -Would bump package.json to 6.7.9 -Would bump pyproject.toml to 3.4.6 +Would write 0.1.3 to Cargo.toml +Would write 6.7.9 to package.json +Would write 3.4.6 to pyproject.toml diff --git a/tests/bump_version/multiple_packages/bump-pre/dry_run_output.txt b/tests/bump_version/multiple_packages/bump-pre/dry_run_output.txt index 55d73274..80e0777d 100644 --- a/tests/bump_version/multiple_packages/bump-pre/dry_run_output.txt +++ b/tests/bump_version/multiple_packages/bump-pre/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.1.3-rc.0 -Would bump package.json to 6.7.9-rc.0 -Would bump pyproject.toml to 3.4.6-rc.0 +Would write 0.1.3-rc.0 to Cargo.toml +Would write 6.7.9-rc.0 to package.json +Would write 3.4.6-rc.0 to pyproject.toml diff --git a/tests/bump_version/multiple_packages/override/dry_run_output.txt b/tests/bump_version/multiple_packages/override/dry_run_output.txt index eccdae5e..3d630266 100644 --- a/tests/bump_version/multiple_packages/override/dry_run_output.txt +++ b/tests/bump_version/multiple_packages/override/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 1.0.0 -Would bump package.json to 7.0.0 -Would bump pyproject.toml to 4.3.2 +Would write 1.0.0 to Cargo.toml +Would write 7.0.0 to package.json +Would write 4.3.2 to pyproject.toml diff --git a/tests/bump_version/multiple_packages_pre/bump-pre/dry_run_output.txt b/tests/bump_version/multiple_packages_pre/bump-pre/dry_run_output.txt index 069c6087..55bfb543 100644 --- a/tests/bump_version/multiple_packages_pre/bump-pre/dry_run_output.txt +++ b/tests/bump_version/multiple_packages_pre/bump-pre/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.1.3-rc.1 -Would bump package.json to 6.7.9-rc.1 -Would bump pyproject.toml to 3.4.6-rc.1 +Would write 0.1.3-rc.1 to Cargo.toml +Would write 6.7.9-rc.1 to package.json +Would write 3.4.6-rc.1 to pyproject.toml diff --git a/tests/bump_version/multiple_packages_pre/bump-release/dry_run_output.txt b/tests/bump_version/multiple_packages_pre/bump-release/dry_run_output.txt index 27d2181e..7e94767d 100644 --- a/tests/bump_version/multiple_packages_pre/bump-release/dry_run_output.txt +++ b/tests/bump_version/multiple_packages_pre/bump-release/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 0.1.3 -Would bump package.json to 6.7.9 -Would bump pyproject.toml to 3.4.6 +Would write 0.1.3 to Cargo.toml +Would write 6.7.9 to package.json +Would write 3.4.6 to pyproject.toml diff --git a/tests/bump_version/override_dry_run_output.txt b/tests/bump_version/override_dry_run_output.txt index dbe07202..8f803a99 100644 --- a/tests/bump_version/override_dry_run_output.txt +++ b/tests/bump_version/override_dry_run_output.txt @@ -1 +1 @@ -Would bump Cargo.toml to 1.0.0 +Would write 1.0.0 to Cargo.toml diff --git a/tests/git_release.rs b/tests/git_release.rs index 198a2de3..86a51ee7 100644 --- a/tests/git_release.rs +++ b/tests/git_release.rs @@ -57,8 +57,8 @@ fn git_release() { source_path.join("Expected_Cargo.toml"), read_to_string(temp_path.join("Cargo.toml")).unwrap(), ); - let tag = describe(temp_path, None); - assert_eq!(tag, "v1.1.0"); + let tags = get_tags(temp_path); + assert_eq!(tags, vec!["v1.1.0"]); } /// Verify that Release will operate on all defined packages independently @@ -119,6 +119,5 @@ fn multiple_packages() { read_to_string(temp_path.join(file)).unwrap(), ); } - assert_eq!(describe(temp_path, Some("first/*")), "first/v2.0.0"); - assert_eq!(describe(temp_path, Some("second/*")), "second/v0.5.0"); + assert_eq!(get_tags(temp_path), vec!["first/v2.0.0", "second/v0.5.0"]); } diff --git a/tests/git_release/dry_run_output.txt b/tests/git_release/dry_run_output.txt index 399464bc..c58c47fc 100644 --- a/tests/git_release/dry_run_output.txt +++ b/tests/git_release/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.1.0 ([DATE]) diff --git a/tests/git_release/multiple_packages/dry_run_output.txt b/tests/git_release/multiple_packages/dry_run_output.txt index 9e876c2d..0000ddb0 100644 --- a/tests/git_release/multiple_packages/dry_run_output.txt +++ b/tests/git_release/multiple_packages/dry_run_output.txt @@ -1,5 +1,5 @@ -Would bump Cargo.toml to 2.0.0 -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml +Would write 2.0.0 to pyproject.toml Would add the following to FIRST_CHANGELOG.md: ## 2.0.0 ([DATE]) @@ -11,7 +11,7 @@ Would add files to git: Cargo.toml pyproject.toml FIRST_CHANGELOG.md -Would bump package.json to 0.5.0 +Would write 0.5.0 to package.json Would add the following to SECOND_CHANGELOG.md: ## 0.5.0 ([DATE]) diff --git a/tests/github_release/dry_run_output.txt b/tests/github_release/dry_run_output.txt index 76ed9fcb..fe63ce4b 100644 --- a/tests/github_release/dry_run_output.txt +++ b/tests/github_release/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.1.0 ([DATE]) diff --git a/tests/github_release/multiple_packages/dry_run_output.txt b/tests/github_release/multiple_packages/dry_run_output.txt index 717e99b6..3c1be4b4 100644 --- a/tests/github_release/multiple_packages/dry_run_output.txt +++ b/tests/github_release/multiple_packages/dry_run_output.txt @@ -1,5 +1,5 @@ -Would bump Cargo.toml to 2.0.0 -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml +Would write 2.0.0 to pyproject.toml Would add the following to FIRST_CHANGELOG.md: ## 2.0.0 ([DATE]) @@ -11,7 +11,7 @@ Would add files to git: Cargo.toml pyproject.toml FIRST_CHANGELOG.md -Would bump package.json to 0.5.0 +Would write 0.5.0 to package.json Would add the following to SECOND_CHANGELOG.md: ## 0.5.0 ([DATE]) diff --git a/tests/helpers/git.rs b/tests/helpers/git.rs index 07b424bb..e4adfd28 100644 --- a/tests/helpers/git.rs +++ b/tests/helpers/git.rs @@ -142,13 +142,10 @@ pub fn merge_branch(path: &Path, name: &str) { debug!("{}", String::from_utf8_lossy(&output.stdout)); } -/// Get the current tag, panicking if there is no tag. -pub fn describe(path: &Path, pattern: Option<&str>) -> String { +/// Get the current tags describing HEAD +pub fn get_tags(path: &Path) -> Vec { let mut cmd = Command::new("git"); - cmd.arg("describe").arg("--tags"); - if let Some(pattern) = pattern { - cmd.arg("--match").arg(pattern); - } + cmd.arg("tag").arg("--contains").arg("HEAD"); let output = cmd.current_dir(path).output().unwrap(); assert!( @@ -156,7 +153,12 @@ pub fn describe(path: &Path, pattern: Option<&str>) -> String { "{}", String::from_utf8_lossy(&output.stderr) ); - String::from_utf8_lossy(&output.stdout).trim().to_string() + String::from_utf8_lossy(&output.stdout) + .trim() + .lines() + .map(String::from) + .sorted() + .collect_vec() } /// Add all files to git diff --git a/tests/no_config/github/stdout.txt b/tests/no_config/github/stdout.txt index be38cbd0..4ac8d912 100644 --- a/tests/no_config/github/stdout.txt +++ b/tests/no_config/github/stdout.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add files to git: Cargo.toml Would run git commit -m "chore: prepare release 2.0.0" && git push diff --git a/tests/no_config/no_remote/stdout.txt b/tests/no_config/no_remote/stdout.txt index cf189d4c..3e5f2507 100644 --- a/tests/no_config/no_remote/stdout.txt +++ b/tests/no_config/no_remote/stdout.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add files to git: Cargo.toml Would run git commit -m "chore: prepare release 2.0.0" diff --git a/tests/no_config/packages/Cargo_stdout.txt b/tests/no_config/packages/Cargo_stdout.txt index 3df69d02..2d8bfb01 100644 --- a/tests/no_config/packages/Cargo_stdout.txt +++ b/tests/no_config/packages/Cargo_stdout.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/no_config/packages/go_stdout.txt b/tests/no_config/packages/go_stdout.txt index 64d9f09a..f016faa3 100644 --- a/tests/no_config/packages/go_stdout.txt +++ b/tests/no_config/packages/go_stdout.txt @@ -1,4 +1,4 @@ -Would bump go.mod to 2.0.0 +Would write 2.0.0 to go.mod Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/no_config/packages/multiple_stdout.txt b/tests/no_config/packages/multiple_stdout.txt index a869ed98..ecd9f3d0 100644 --- a/tests/no_config/packages/multiple_stdout.txt +++ b/tests/no_config/packages/multiple_stdout.txt @@ -1,6 +1,6 @@ -Would bump Cargo.toml to 2.0.0 -Would bump package.json to 2.0.0 -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml +Would write 2.0.0 to package.json +Would write 2.0.0 to pyproject.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/no_config/packages/package_stdout.txt b/tests/no_config/packages/package_stdout.txt index a619e582..d9fc81f3 100644 --- a/tests/no_config/packages/package_stdout.txt +++ b/tests/no_config/packages/package_stdout.txt @@ -1,4 +1,4 @@ -Would bump package.json to 2.0.0 +Would write 2.0.0 to package.json Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/no_config/packages/pyproject_stdout.txt b/tests/no_config/packages/pyproject_stdout.txt index aeabe532..f2480ba5 100644 --- a/tests/no_config/packages/pyproject_stdout.txt +++ b/tests/no_config/packages/pyproject_stdout.txt @@ -1,4 +1,4 @@ -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to pyproject.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release.rs b/tests/prepare_release.rs index bcd12ff5..ef9cc62e 100644 --- a/tests/prepare_release.rs +++ b/tests/prepare_release.rs @@ -891,9 +891,8 @@ fn no_versioned_files() { ); // The release step should have created a tag with the right new version. - let expected_tag = "v1.1.0"; - let actual_tag = describe(temp_path, None); - assert_eq!(expected_tag, actual_tag); + let actual_tags = get_tags(temp_path); + assert_eq!(vec!["v1.1.0"], actual_tags); } /// If `PrepareRelease` is run with no `prerelease_label`, it should skip any prerelease tags @@ -988,8 +987,8 @@ fn go_modules() { source_path.join("EXPECTED_1.1_go.mod"), read_to_string(temp_path.join("go.mod")).unwrap(), ); - let tag = describe(temp_path, None); - assert_eq!("v1.1.0", tag); + let tags = get_tags(temp_path); + assert_eq!(tags, vec!["v1.1.0"]); // Arrange 2—version goes to 2.0 commit(temp_path, "feat!: Breaking change"); @@ -1019,8 +1018,89 @@ fn go_modules() { source_path.join("EXPECTED_2.0_go.mod"), read_to_string(temp_path.join("go.mod")).unwrap(), ); - let tag = describe(temp_path, None); - assert_eq!("v2.0.0", tag); + let tags = get_tags(temp_path); + assert_eq!(vec!["v2.0.0"], tags); +} + +/// In addition to the >2.x rules above, there is also a tagging pattern that must be kept-to +#[test] +fn go_modules_in_subdirectory() { + // Arrange. + let temp_dir = tempfile::tempdir().unwrap(); + let temp_path = temp_dir.path(); + let source_path = Path::new("tests/prepare_release/go_modules_in_subdirectory"); + + init(temp_path); + commit(temp_path, "feat: Existing feature"); + // This is the version of the Go package, but there is no project-wide tag, so _both_ commits should be included. + tag(temp_path, "sub_dir/v1.0.0"); + commit(temp_path, "feat: New feature"); + + for file in ["knope.toml", "CHANGELOG.md"] { + copy(source_path.join(file), temp_path.join(file)).unwrap(); + } + let sub_dir = temp_path.join("sub_dir"); + create_dir(&sub_dir).unwrap(); + copy(source_path.join("go.mod"), sub_dir.join("go.mod")).unwrap(); + + // Act 1—version stays at 1.x + let dry_run_assert = Command::new(cargo_bin!("knope")) + .arg("release") + .arg("--dry-run") + .current_dir(temp_dir.path()) + .assert(); + let actual_assert = Command::new(cargo_bin!("knope")) + .arg("release") + .current_dir(temp_dir.path()) + .assert(); + + // Assert 1—version stays at 1.x + dry_run_assert + .success() + .with_assert(assert()) + .stdout_matches_path(source_path.join("1.1_dry_run_output.txt")); + actual_assert.success().stdout_eq(""); + assert().matches_path( + source_path.join("EXPECTED_1.1_CHANGELOG.md"), + read_to_string(temp_path.join("CHANGELOG.md")).unwrap(), + ); + assert().matches_path( + source_path.join("EXPECTED_1.1_go.mod"), + read_to_string(sub_dir.join("go.mod")).unwrap(), + ); + let tags = get_tags(temp_path); + assert_eq!(vec!["sub_dir/v1.1.0", "v1.1.0"], tags); + + // Arrange 2—version goes to 2.0 + commit(temp_path, "feat!: Breaking change"); + + // Act 2—version goes to 2.0 + let dry_run_assert = Command::new(cargo_bin!("knope")) + .arg("release") + .arg("--dry-run") + .current_dir(temp_dir.path()) + .assert(); + let actual_assert = Command::new(cargo_bin!("knope")) + .arg("release") + .current_dir(temp_dir.path()) + .assert(); + + // Assert 2—version goes to 2.0 + dry_run_assert + .success() + .with_assert(assert()) + .stdout_matches_path(source_path.join("2.0_dry_run_output.txt")); + actual_assert.success().stdout_eq(""); + assert().matches_path( + source_path.join("EXPECTED_2.0_CHANGELOG.md"), + read_to_string(temp_path.join("CHANGELOG.md")).unwrap(), + ); + assert().matches_path( + source_path.join("EXPECTED_2.0_go.mod"), + read_to_string(sub_dir.join("go.mod")).unwrap(), + ); + let tags = get_tags(temp_path); + assert_eq!(tags, vec!["sub_dir/v2.0.0", "v2.0.0"]); } /// Verify that PrepareRelease will operate on all defined packages independently diff --git a/tests/prepare_release/changelog_selection/dry_run_output_CHANGELOG.md.txt b/tests/prepare_release/changelog_selection/dry_run_output_CHANGELOG.md.txt index 9c5ba3a8..8f40102c 100644 --- a/tests/prepare_release/changelog_selection/dry_run_output_CHANGELOG.md.txt +++ b/tests/prepare_release/changelog_selection/dry_run_output_CHANGELOG.md.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.1.0 ([DATE]) diff --git a/tests/prepare_release/changelog_selection/dry_run_output_CHANGES.md.txt b/tests/prepare_release/changelog_selection/dry_run_output_CHANGES.md.txt index 1ad2b93b..c995a560 100644 --- a/tests/prepare_release/changelog_selection/dry_run_output_CHANGES.md.txt +++ b/tests/prepare_release/changelog_selection/dry_run_output_CHANGES.md.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to CHANGES.md: ## 1.1.0 ([DATE]) diff --git a/tests/prepare_release/changelog_selection/dry_run_output_None.txt b/tests/prepare_release/changelog_selection/dry_run_output_None.txt index 6a2860e6..9812cd40 100644 --- a/tests/prepare_release/changelog_selection/dry_run_output_None.txt +++ b/tests/prepare_release/changelog_selection/dry_run_output_None.txt @@ -1,3 +1,3 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add files to git: Cargo.toml diff --git a/tests/prepare_release/changesets/dry_run_output.txt b/tests/prepare_release/changesets/dry_run_output.txt index f10e1005..face50aa 100644 --- a/tests/prepare_release/changesets/dry_run_output.txt +++ b/tests/prepare_release/changesets/dry_run_output.txt @@ -1,6 +1,6 @@ Would delete: .changeset/breaking_change.md -Would bump Cargo.toml to 2.0.0 -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml +Would write 2.0.0 to pyproject.toml Would add the following to FIRST_CHANGELOG.md: ## 2.0.0 ([DATE]) @@ -19,7 +19,7 @@ Would add files to git: pyproject.toml FIRST_CHANGELOG.md .changeset/breaking_change.md -Would bump package.json to 0.4.7 +Would write 0.4.7 to package.json Would add the following to SECOND_CHANGELOG.md: ## 0.4.7 ([DATE]) diff --git a/tests/prepare_release/enable_prerelease/dry_run_output.txt b/tests/prepare_release/enable_prerelease/dry_run_output.txt index 1d8d16c1..d28ab3d0 100644 --- a/tests/prepare_release/enable_prerelease/dry_run_output.txt +++ b/tests/prepare_release/enable_prerelease/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0-rc.1 +Would write 2.0.0-rc.1 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0-rc.1 ([DATE]) diff --git a/tests/prepare_release/extra_changelog_sections/dry_run_output.txt b/tests/prepare_release/extra_changelog_sections/dry_run_output.txt index f8099b7b..e28f2353 100644 --- a/tests/prepare_release/extra_changelog_sections/dry_run_output.txt +++ b/tests/prepare_release/extra_changelog_sections/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.0.1 +Would write 1.0.1 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 1.0.1 ([DATE]) @@ -19,7 +19,7 @@ Would add the following to FIRST_CHANGELOG.md: Would add files to git: Cargo.toml FIRST_CHANGELOG.md -Would bump pyproject.toml to 0.1.1 +Would write 0.1.1 to pyproject.toml Would add the following to SECOND_CHANGELOG.md: ## 0.1.1 ([DATE]) diff --git a/tests/prepare_release/go_modules/1.1_dry_run_output.txt b/tests/prepare_release/go_modules/1.1_dry_run_output.txt index cfffbcce..ea502c83 100644 --- a/tests/prepare_release/go_modules/1.1_dry_run_output.txt +++ b/tests/prepare_release/go_modules/1.1_dry_run_output.txt @@ -1,4 +1,3 @@ -Would bump go.mod to 1.1.0 Would add the following to CHANGELOG.md: ## 1.1.0 ([DATE]) diff --git a/tests/prepare_release/go_modules/2.0_dry_run_output.txt b/tests/prepare_release/go_modules/2.0_dry_run_output.txt index 9d18f783..f9de9ad4 100644 --- a/tests/prepare_release/go_modules/2.0_dry_run_output.txt +++ b/tests/prepare_release/go_modules/2.0_dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump go.mod to 2.0.0 +Would write 2.0.0 to go.mod Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/go_modules/sub_dir/go.mod b/tests/prepare_release/go_modules/sub_dir/go.mod new file mode 100644 index 00000000..af6d9764 --- /dev/null +++ b/tests/prepare_release/go_modules/sub_dir/go.mod @@ -0,0 +1,12 @@ +module github.com/knope-dev/knope + +go 1.19 + +require ( +example.com/othermodule v1.2.3 +example.com/thismodule v1.2.3 +example.com/thatmodule v1.2.3 +) + +replace example.com/thatmodule => ../thatmodule +exclude example.com/thismodule v1.3.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/1.1_dry_run_output.txt b/tests/prepare_release/go_modules_in_subdirectory/1.1_dry_run_output.txt new file mode 100644 index 00000000..e5c591ae --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/1.1_dry_run_output.txt @@ -0,0 +1,14 @@ +Would create Git tag sub_dir/v1.1.0 +Would add the following to CHANGELOG.md: +## 1.1.0 ([DATE]) + +### Features + +#### Existing feature + +#### New feature + +Would add files to git: + sub_dir/go.mod + CHANGELOG.md +Would create Git tag v1.1.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/2.0_dry_run_output.txt b/tests/prepare_release/go_modules_in_subdirectory/2.0_dry_run_output.txt new file mode 100644 index 00000000..97cff851 --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/2.0_dry_run_output.txt @@ -0,0 +1,13 @@ +Would create Git tag sub_dir/v2.0.0 +Would write 2.0.0 to sub_dir/go.mod +Would add the following to CHANGELOG.md: +## 2.0.0 ([DATE]) + +### Breaking Changes + +#### Breaking change + +Would add files to git: + sub_dir/go.mod + CHANGELOG.md +Would create Git tag v2.0.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/CHANGELOG.md b/tests/prepare_release/go_modules_in_subdirectory/CHANGELOG.md new file mode 100644 index 00000000..fc90e62d --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/CHANGELOG.md @@ -0,0 +1,5 @@ +## 1.0.0 + +### Features + +- Existing feature diff --git a/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_CHANGELOG.md b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_CHANGELOG.md new file mode 100644 index 00000000..34185be4 --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_CHANGELOG.md @@ -0,0 +1,13 @@ +## 1.1.0 ([DATE]) + +### Features + +#### Existing feature + +#### New feature + +## 1.0.0 + +### Features + +- Existing feature diff --git a/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_go.mod b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_go.mod new file mode 100644 index 00000000..af6d9764 --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_1.1_go.mod @@ -0,0 +1,12 @@ +module github.com/knope-dev/knope + +go 1.19 + +require ( +example.com/othermodule v1.2.3 +example.com/thismodule v1.2.3 +example.com/thatmodule v1.2.3 +) + +replace example.com/thatmodule => ../thatmodule +exclude example.com/thismodule v1.3.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_CHANGELOG.md b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_CHANGELOG.md new file mode 100644 index 00000000..94479532 --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_CHANGELOG.md @@ -0,0 +1,19 @@ +## 2.0.0 ([DATE]) + +### Breaking Changes + +#### Breaking change + +## 1.1.0 ([DATE]) + +### Features + +#### Existing feature + +#### New feature + +## 1.0.0 + +### Features + +- Existing feature diff --git a/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_go.mod b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_go.mod new file mode 100644 index 00000000..12fb26bd --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/EXPECTED_2.0_go.mod @@ -0,0 +1,12 @@ +module github.com/knope-dev/knope/v2 + +go 1.19 + +require ( +example.com/othermodule v1.2.3 +example.com/thismodule v1.2.3 +example.com/thatmodule v1.2.3 +) + +replace example.com/thatmodule => ../thatmodule +exclude example.com/thismodule v1.3.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/go.mod b/tests/prepare_release/go_modules_in_subdirectory/go.mod new file mode 100644 index 00000000..af6d9764 --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/go.mod @@ -0,0 +1,12 @@ +module github.com/knope-dev/knope + +go 1.19 + +require ( +example.com/othermodule v1.2.3 +example.com/thismodule v1.2.3 +example.com/thatmodule v1.2.3 +) + +replace example.com/thatmodule => ../thatmodule +exclude example.com/thismodule v1.3.0 diff --git a/tests/prepare_release/go_modules_in_subdirectory/knope.toml b/tests/prepare_release/go_modules_in_subdirectory/knope.toml new file mode 100644 index 00000000..c592164d --- /dev/null +++ b/tests/prepare_release/go_modules_in_subdirectory/knope.toml @@ -0,0 +1,12 @@ +[package] +versioned_files = ["sub_dir/go.mod"] +changelog = "CHANGELOG.md" + +[[workflows]] +name = "release" + +[[workflows.steps]] +type = "PrepareRelease" + +[[workflows.steps]] +type = "Release" diff --git a/tests/prepare_release/hande_pre_versions_that_are_too_new/dry_run_output.txt b/tests/prepare_release/hande_pre_versions_that_are_too_new/dry_run_output.txt index 665ca152..b0db759f 100644 --- a/tests/prepare_release/hande_pre_versions_that_are_too_new/dry_run_output.txt +++ b/tests/prepare_release/hande_pre_versions_that_are_too_new/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.3.0-rc.1 +Would write 1.3.0-rc.1 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.3.0-rc.1 ([DATE]) diff --git a/tests/prepare_release/merge_commits/dry_run_output.txt b/tests/prepare_release/merge_commits/dry_run_output.txt index bdec7821..8608852f 100644 --- a/tests/prepare_release/merge_commits/dry_run_output.txt +++ b/tests/prepare_release/merge_commits/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.3.0 +Would write 1.3.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.3.0 ([DATE]) diff --git a/tests/prepare_release/multiple_packages/dry_run_output.txt b/tests/prepare_release/multiple_packages/dry_run_output.txt index 0c96890d..867035cf 100644 --- a/tests/prepare_release/multiple_packages/dry_run_output.txt +++ b/tests/prepare_release/multiple_packages/dry_run_output.txt @@ -1,5 +1,5 @@ -Would bump Cargo.toml to 2.0.0 -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml +Would write 2.0.0 to pyproject.toml Would add the following to FIRST_CHANGELOG.md: ## 2.0.0 ([DATE]) @@ -11,7 +11,7 @@ Would add files to git: Cargo.toml pyproject.toml FIRST_CHANGELOG.md -Would bump package.json to 0.5.0 +Would write 0.5.0 to package.json Would add the following to SECOND_CHANGELOG.md: ## 0.5.0 ([DATE]) diff --git a/tests/prepare_release/override_prerelease_label/dry_run_output.txt b/tests/prepare_release/override_prerelease_label/dry_run_output.txt index 4a95d786..3dafbec7 100644 --- a/tests/prepare_release/override_prerelease_label/dry_run_output.txt +++ b/tests/prepare_release/override_prerelease_label/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0-alpha.1 +Would write 2.0.0-alpha.1 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0-alpha.1 ([DATE]) diff --git a/tests/prepare_release/override_version/dry_run_output.txt b/tests/prepare_release/override_version/dry_run_output.txt index 68532cba..2b7a9987 100644 --- a/tests/prepare_release/override_version/dry_run_output.txt +++ b/tests/prepare_release/override_version/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.0.0 +Would write 1.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.0.0 ([DATE]) diff --git a/tests/prepare_release/override_version_multiple_packages/dry_run_output.txt b/tests/prepare_release/override_version_multiple_packages/dry_run_output.txt index c151985e..68d7da1b 100644 --- a/tests/prepare_release/override_version_multiple_packages/dry_run_output.txt +++ b/tests/prepare_release/override_version_multiple_packages/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.0.0 +Would write 1.0.0 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 1.0.0 ([DATE]) @@ -9,7 +9,7 @@ Would add the following to FIRST_CHANGELOG.md: Would add files to git: Cargo.toml FIRST_CHANGELOG.md -Would bump package.json to 4.5.6 +Would write 4.5.6 to package.json Would add the following to SECOND_CHANGELOG.md: ## 4.5.6 ([DATE]) @@ -20,7 +20,7 @@ Would add the following to SECOND_CHANGELOG.md: Would add files to git: package.json SECOND_CHANGELOG.md -Would bump pyproject.toml to 4.5.6 +Would write 4.5.6 to pyproject.toml Would add the following to THIRD_CHANGELOG.md: ## 4.5.6 ([DATE]) diff --git a/tests/prepare_release/package_selection/Cargo.toml_knope.toml_INVALID_output.txt b/tests/prepare_release/package_selection/Cargo.toml_knope.toml_INVALID_output.txt index 7a661b8a..ce3bfe3b 100644 --- a/tests/prepare_release/package_selection/Cargo.toml_knope.toml_INVALID_output.txt +++ b/tests/prepare_release/package_selection/Cargo.toml_knope.toml_INVALID_output.txt @@ -1,4 +1,15 @@ Error: × Problem with workflow release -Error: × The file Cargo.toml was an incorrect format +Error: × Error deserializing Cargo.toml: TOML parse error at line 1, column 1 + │ | + │ 1 | + │ | ^ + │ missing field `package` + │ + ╰─▶ TOML parse error at line 1, column 1 + | + 1 | + | ^ + missing field `package` + diff --git a/tests/prepare_release/package_selection/Cargo.toml_knope.toml_dry_run_output.txt b/tests/prepare_release/package_selection/Cargo.toml_knope.toml_dry_run_output.txt index 89456088..0eaaaaf3 100644 --- a/tests/prepare_release/package_selection/Cargo.toml_knope.toml_dry_run_output.txt +++ b/tests/prepare_release/package_selection/Cargo.toml_knope.toml_dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/package_selection/dry_run_output.txt b/tests/prepare_release/package_selection/dry_run_output.txt index 89456088..0eaaaaf3 100644 --- a/tests/prepare_release/package_selection/dry_run_output.txt +++ b/tests/prepare_release/package_selection/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/package_selection/go.mod_knope.toml_dry_run_output.txt b/tests/prepare_release/package_selection/go.mod_knope.toml_dry_run_output.txt index 28692a39..bcb7bab5 100644 --- a/tests/prepare_release/package_selection/go.mod_knope.toml_dry_run_output.txt +++ b/tests/prepare_release/package_selection/go.mod_knope.toml_dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump go.mod to 2.0.0 +Would write 2.0.0 to go.mod Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_INVALID_output.txt b/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_INVALID_output.txt index 4c6e99e3..02cfaa2a 100644 --- a/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_INVALID_output.txt +++ b/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_INVALID_output.txt @@ -1,4 +1,4 @@ Error: × Problem with workflow release -Error: × The file pyproject.toml was an incorrect format +Error: × No versions were found in pyproject.toml diff --git a/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_dry_run_output.txt b/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_dry_run_output.txt index 10ac9a33..d74c132e 100644 --- a/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_dry_run_output.txt +++ b/tests/prepare_release/package_selection/multiple_files_in_package_knope.toml_dry_run_output.txt @@ -1,5 +1,5 @@ -Would bump pyproject.toml to 2.0.0 -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to pyproject.toml +Would write 2.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/package_selection/package.json_knope.toml_INVALID_output.txt b/tests/prepare_release/package_selection/package.json_knope.toml_INVALID_output.txt index 0d2d7ba4..7de29fa9 100644 --- a/tests/prepare_release/package_selection/package.json_knope.toml_INVALID_output.txt +++ b/tests/prepare_release/package_selection/package.json_knope.toml_INVALID_output.txt @@ -1,4 +1,6 @@ Error: × Problem with workflow release -Error: × The file package.json was an incorrect format +Error: × Error deserializing package.json: EOF while parsing a value at line 1 + │ column 0 + ╰─▶ EOF while parsing a value at line 1 column 0 diff --git a/tests/prepare_release/package_selection/package.json_knope.toml_dry_run_output.txt b/tests/prepare_release/package_selection/package.json_knope.toml_dry_run_output.txt index 68b450dd..5eb08b6a 100644 --- a/tests/prepare_release/package_selection/package.json_knope.toml_dry_run_output.txt +++ b/tests/prepare_release/package_selection/package.json_knope.toml_dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump package.json to 2.0.0 +Would write 2.0.0 to package.json Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/package_selection/pyproject.toml_knope.toml_INVALID_output.txt b/tests/prepare_release/package_selection/pyproject.toml_knope.toml_INVALID_output.txt index 4c6e99e3..02cfaa2a 100644 --- a/tests/prepare_release/package_selection/pyproject.toml_knope.toml_INVALID_output.txt +++ b/tests/prepare_release/package_selection/pyproject.toml_knope.toml_INVALID_output.txt @@ -1,4 +1,4 @@ Error: × Problem with workflow release -Error: × The file pyproject.toml was an incorrect format +Error: × No versions were found in pyproject.toml diff --git a/tests/prepare_release/package_selection/pyproject.toml_knope.toml_dry_run_output.txt b/tests/prepare_release/package_selection/pyproject.toml_knope.toml_dry_run_output.txt index fe479efd..7a618a33 100644 --- a/tests/prepare_release/package_selection/pyproject.toml_knope.toml_dry_run_output.txt +++ b/tests/prepare_release/package_selection/pyproject.toml_knope.toml_dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to pyproject.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/prerelease_after_release/dry_run_output.txt b/tests/prepare_release/prerelease_after_release/dry_run_output.txt index 1d8d16c1..d28ab3d0 100644 --- a/tests/prepare_release/prerelease_after_release/dry_run_output.txt +++ b/tests/prepare_release/prerelease_after_release/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0-rc.1 +Would write 2.0.0-rc.1 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0-rc.1 ([DATE]) diff --git a/tests/prepare_release/pyproject_toml/dry_run_output.txt b/tests/prepare_release/pyproject_toml/dry_run_output.txt index b929ceec..d5be05bd 100644 --- a/tests/prepare_release/pyproject_toml/dry_run_output.txt +++ b/tests/prepare_release/pyproject_toml/dry_run_output.txt @@ -1,3 +1,3 @@ -Would bump pyproject.toml to 2.0.0 +Would write 2.0.0 to pyproject.toml Would add files to git: pyproject.toml diff --git a/tests/prepare_release/release_after_prerelease/dry_run_output.txt b/tests/prepare_release/release_after_prerelease/dry_run_output.txt index 0b4edca7..f0ebba00 100644 --- a/tests/prepare_release/release_after_prerelease/dry_run_output.txt +++ b/tests/prepare_release/release_after_prerelease/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add the following to CHANGELOG.md: ## 2.0.0 ([DATE]) diff --git a/tests/prepare_release/scopes/no_scopes/dry_run_output.txt b/tests/prepare_release/scopes/no_scopes/dry_run_output.txt index ebc7f1b3..7d59dbf9 100644 --- a/tests/prepare_release/scopes/no_scopes/dry_run_output.txt +++ b/tests/prepare_release/scopes/no_scopes/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 2.0.0 +Would write 2.0.0 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 2.0.0 ([DATE]) @@ -13,7 +13,7 @@ Would add the following to FIRST_CHANGELOG.md: Would add files to git: Cargo.toml FIRST_CHANGELOG.md -Would bump pyproject.toml to 0.2.0 +Would write 0.2.0 to pyproject.toml Would add the following to SECOND_CHANGELOG.md: ## 0.2.0 ([DATE]) diff --git a/tests/prepare_release/scopes/shared_commits/dry_run_output.txt b/tests/prepare_release/scopes/shared_commits/dry_run_output.txt index e746b50d..62a50326 100644 --- a/tests/prepare_release/scopes/shared_commits/dry_run_output.txt +++ b/tests/prepare_release/scopes/shared_commits/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 1.1.0 ([DATE]) @@ -13,7 +13,7 @@ Would add the following to FIRST_CHANGELOG.md: Would add files to git: Cargo.toml FIRST_CHANGELOG.md -Would bump pyproject.toml to 0.2.0 +Would write 0.2.0 to pyproject.toml Would add the following to SECOND_CHANGELOG.md: ## 0.2.0 ([DATE]) diff --git a/tests/prepare_release/scopes/skip_unchanged_packages/dry_run_output.txt b/tests/prepare_release/scopes/skip_unchanged_packages/dry_run_output.txt index 77c450d0..80f297ac 100644 --- a/tests/prepare_release/scopes/skip_unchanged_packages/dry_run_output.txt +++ b/tests/prepare_release/scopes/skip_unchanged_packages/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.0.1 +Would write 1.0.1 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 1.0.1 ([DATE]) diff --git a/tests/prepare_release/scopes/unscoped_commits/dry_run_output.txt b/tests/prepare_release/scopes/unscoped_commits/dry_run_output.txt index a1cae3e7..6da8031f 100644 --- a/tests/prepare_release/scopes/unscoped_commits/dry_run_output.txt +++ b/tests/prepare_release/scopes/unscoped_commits/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0 +Would write 1.1.0 to Cargo.toml Would add the following to FIRST_CHANGELOG.md: ## 1.1.0 ([DATE]) @@ -13,7 +13,7 @@ Would add the following to FIRST_CHANGELOG.md: Would add files to git: Cargo.toml FIRST_CHANGELOG.md -Would bump pyproject.toml to 0.2.0 +Would write 0.2.0 to pyproject.toml Would add the following to SECOND_CHANGELOG.md: ## 0.2.0 ([DATE]) diff --git a/tests/prepare_release/second_prerelease/dry_run_output.txt b/tests/prepare_release/second_prerelease/dry_run_output.txt index d0e6219e..bf4e218d 100644 --- a/tests/prepare_release/second_prerelease/dry_run_output.txt +++ b/tests/prepare_release/second_prerelease/dry_run_output.txt @@ -1,4 +1,4 @@ -Would bump Cargo.toml to 1.1.0-rc.2 +Would write 1.1.0-rc.2 to Cargo.toml Would add the following to CHANGELOG.md: ## 1.1.0-rc.2 ([DATE])