xtask: Release ruma-macros with ruma-common

This commit is contained in:
Kévin Commaille 2022-03-10 18:45:26 +01:00 committed by GitHub
parent bdcf07be87
commit 23b8941361
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,22 +57,20 @@ impl ReleaseTask {
/// Run the task to effectively create a release.
pub(crate) fn run(&mut self) -> Result<()> {
if self.package.name == "ruma-macros" {
return Err(
"The ruma-macros crate is always released together with the ruma-common crate.\n\
To release both, simply run\n\
\n\
cargo xtask release ruma-common"
.into(),
);
}
let title = &self.title();
let prerelease = !self.version.pre.is_empty();
let publish_only = self.package.name == "ruma-identifiers-validation";
if let Some(name) = self.package.name.strip_suffix("-macros") {
return Err(format!(
"Macro crates are always released together with their parent crate.\n\
To release both {main_cr} and {macro_cr}, simply run\n\
\n\
cargo xtask release {main_cr}",
main_cr = name,
macro_cr = self.package.name,
)
.into());
}
println!(
"Starting {} for {}…",
match prerelease {
@ -105,11 +103,15 @@ impl ReleaseTask {
return Ok(());
}
let mut macros = self.macros();
let mut macros = if self.package.name == "ruma-common" {
self.metadata.packages.iter().find(|p| p.name == "ruma-macros").map(ToOwned::to_owned)
} else {
None
};
let create_commit = if self.package.version != self.version {
if let Some(m) = macros.as_mut() {
println!("Found macros crate {}.", m.name);
println!("Updating version of ruma-macros crate…");
m.update_version(&self.version)?;
m.update_dependants(&self.metadata)?;
@ -193,15 +195,6 @@ impl ReleaseTask {
Ok(())
}
/// Get the associated `-macros` crate of the current crate, if any.
fn macros(&self) -> Option<Package> {
self.metadata
.packages
.clone()
.into_iter()
.find(|p| p.name == format!("{}-macros", self.package.name))
}
/// Get the title of this release.
fn title(&self) -> String {
format!("{} {}", self.package.name, self.version)