diff --git a/scripts/src/init.sh b/scripts/src/init.sh index cf54690d985..25816bcfa32 100755 --- a/scripts/src/init.sh +++ b/scripts/src/init.sh @@ -25,6 +25,7 @@ wasm_init() { rustup update stable fi + rustup target add wasm32v1-none --toolchain stable rustup target add wasm32v1-none --toolchain nightly } diff --git a/utils/crates-io/src/handler.rs b/utils/crates-io/src/handler.rs index b8ed49b2593..1791707f0eb 100644 --- a/utils/crates-io/src/handler.rs +++ b/utils/crates-io/src/handler.rs @@ -38,8 +38,8 @@ pub fn crates_io_name(pkg: &str) -> &str { } /// Patch specified manifest by provided name. -pub fn patch(pkg: &Package, is_published: bool) -> Result { - let mut manifest = Manifest::new(pkg, is_published)?; +pub fn patch(pkg: &Package, is_published: bool, is_actualized: bool) -> Result { + let mut manifest = Manifest::new(pkg, is_published, is_actualized)?; let doc = &mut manifest.mutable_manifest; match manifest.name.as_str() { diff --git a/utils/crates-io/src/manifest.rs b/utils/crates-io/src/manifest.rs index c006fca02a1..d6257b6209c 100644 --- a/utils/crates-io/src/manifest.rs +++ b/utils/crates-io/src/manifest.rs @@ -53,6 +53,7 @@ impl Workspace { mutable_manifest, path, is_published: true, + is_actualized: true, }, lock_file: LockFile { content, @@ -190,12 +191,14 @@ pub struct Manifest { pub path: PathBuf, /// Whether the crate is published pub is_published: bool, + /// Whether the current version is published + pub is_actualized: bool, } impl Manifest { /// Complete the manifest of the specified crate from /// the workspace manifest - pub fn new(pkg: &Package, is_published: bool) -> Result { + pub fn new(pkg: &Package, is_published: bool, is_actualized: bool) -> Result { let original_manifest: DocumentMut = fs::read_to_string(&pkg.manifest_path)?.parse()?; let mut mutable_manifest = original_manifest.clone(); @@ -210,6 +213,7 @@ impl Manifest { mutable_manifest, path: pkg.manifest_path.clone().into(), is_published, + is_actualized, }) } diff --git a/utils/crates-io/src/publisher.rs b/utils/crates-io/src/publisher.rs index 463f7892344..0caf2822c27 100644 --- a/utils/crates-io/src/publisher.rs +++ b/utils/crates-io/src/publisher.rs @@ -105,6 +105,7 @@ impl Publisher { } let mut is_published = false; + let mut is_actualized = false; if verify { match crate::verify_owners(name).await? { @@ -116,10 +117,11 @@ impl Publisher { if verify && crate::verify(name, &version, self.simulator.as_ref()).await? { println!("Package {name}@{version} already published!"); - continue; + is_actualized = true; } - self.graph.push(handler::patch(pkg, is_published)?); + self.graph + .push(handler::patch(pkg, is_published, is_actualized)?); } workspace.complete(self.index.clone(), self.simulator.is_some())?; @@ -188,7 +190,7 @@ impl Publisher { path, is_published, .. - } in self.graph.iter() + } in self.graph.iter().filter(|m| !m.is_actualized) { println!("Publishing {path:?}"); let status = crate::publish(&path.to_string_lossy())?;