Skip to content

Commit c2bc5d5

Browse files
authored
Merge pull request #1 from embassy-rs/iteration-order
fix: release should iterate over dependents not dependencies
2 parents d015fd5 + 6f73216 commit c2bc5d5

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

src/bump.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ pub fn bump(ctx: &mut Context, name: &CrateId, new_version: &str) -> Result<(),
1111
c.version = new_version.to_string();
1212

1313
update_crate(c, new_version)?;
14-
for dep in &ctx.reverse_deps[name] {
15-
println!("Updating {name}-{old_version} -> {new_version} for {dep}");
16-
update_deps(&ctx.crates[dep], name, new_version)?;
14+
if let Some(reverse_deps) = ctx.reverse_deps.get(name) {
15+
for dep in reverse_deps {
16+
println!("Updating {name}-{old_version} -> {new_version} for {dep}");
17+
update_deps(&ctx.crates[dep], name, new_version)?;
18+
}
1719
}
1820

1921
let c = ctx.crates.get(name).unwrap();

src/cmd/prepare_release.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ pub fn run(ctx: &mut Context, args: Args) -> Result<()> {
3636
let mut to_bump = std::collections::HashMap::new();
3737
for crate_name in crate_names {
3838
if !to_bump.contains_key(crate_name) {
39-
let deps = ctx.recursive_dependencies(std::iter::once(crate_name.as_str()));
39+
let deps = ctx.recursive_dependents(std::iter::once(crate_name.as_str()));
4040
for dep_crate_name in deps {
4141
let c = ctx.crates.get(&dep_crate_name).unwrap();
4242
if c.publish && !to_bump.contains_key(&dep_crate_name) {
@@ -63,7 +63,7 @@ pub fn run(ctx: &mut Context, args: Args) -> Result<()> {
6363
for name in keys {
6464
let (rtype, _) = to_bump[&name];
6565
if rtype == ReleaseType::Minor {
66-
let deps = ctx.recursive_dependencies(std::iter::once(name.as_str()));
66+
let deps = ctx.recursive_dependents(std::iter::once(name.as_str()));
6767
for dep_crate_name in deps {
6868
if let Some((ReleaseType::Patch, newver)) = to_bump.get(&dep_crate_name) {
6969
let v = semver::Version::parse(newver)?;
@@ -94,7 +94,7 @@ pub fn run(ctx: &mut Context, args: Args) -> Result<()> {
9494
println!();
9595
let mut processed = HashSet::new();
9696
for crate_name in crate_names {
97-
let deps = ctx.recursive_dependencies(std::iter::once(crate_name.as_str()));
97+
let deps = ctx.recursive_dependents(std::iter::once(crate_name.as_str()));
9898
for dep_crate_name in deps {
9999
let c = ctx.crates.get(&dep_crate_name).unwrap();
100100
if c.publish && !processed.contains(&dep_crate_name) {
@@ -107,7 +107,7 @@ pub fn run(ctx: &mut Context, args: Args) -> Result<()> {
107107
println!();
108108
println!("# Run these commands to publish the crate and dependents:");
109109
for crate_name in crate_names {
110-
let deps = ctx.recursive_dependencies(std::iter::once(crate_name.as_str()));
110+
let deps = ctx.recursive_dependents(std::iter::once(crate_name.as_str()));
111111
for dep_crate_name in deps {
112112
if !processed.contains(&dep_crate_name) {
113113
processed.insert(dep_crate_name.clone());

0 commit comments

Comments
 (0)