xtask: Release ruma-macros with ruma-common
This commit is contained in:
parent
bdcf07be87
commit
23b8941361
@ -57,22 +57,20 @@ impl ReleaseTask {
|
|||||||
|
|
||||||
/// Run the task to effectively create a release.
|
/// Run the task to effectively create a release.
|
||||||
pub(crate) fn run(&mut self) -> Result<()> {
|
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 title = &self.title();
|
||||||
let prerelease = !self.version.pre.is_empty();
|
let prerelease = !self.version.pre.is_empty();
|
||||||
let publish_only = self.package.name == "ruma-identifiers-validation";
|
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!(
|
println!(
|
||||||
"Starting {} for {}…",
|
"Starting {} for {}…",
|
||||||
match prerelease {
|
match prerelease {
|
||||||
@ -105,11 +103,15 @@ impl ReleaseTask {
|
|||||||
return Ok(());
|
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 {
|
let create_commit = if self.package.version != self.version {
|
||||||
if let Some(m) = macros.as_mut() {
|
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_version(&self.version)?;
|
||||||
m.update_dependants(&self.metadata)?;
|
m.update_dependants(&self.metadata)?;
|
||||||
@ -193,15 +195,6 @@ impl ReleaseTask {
|
|||||||
Ok(())
|
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.
|
/// Get the title of this release.
|
||||||
fn title(&self) -> String {
|
fn title(&self) -> String {
|
||||||
format!("{} {}", self.package.name, self.version)
|
format!("{} {}", self.package.name, self.version)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user