diff --git a/MAINTAINING.md b/MAINTAINING.md index 0ef710479..286b137bf 100644 --- a/MAINTAINING.md +++ b/MAINTAINING.md @@ -37,6 +37,11 @@ You might need to swiftly pause the [Website Deploy] workflow to prevent publish > Make sure `scarb-metadata` crate is [released and published](#scarb-metadata-release-procedure) to [crates.io]. > Only [StarkNet Crates.io Admins] can do this. +> [!IMPORTANT] +> If you add or remove a binary target compiled with the release (i.e. create or remove a crate in `extensions` directory), +> make sure to work with the Homebrew team to upgrade their +> [Scarb installation formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/s/scarb.rb#L26). + ### Write release notes Upon completion, the [Release] workflow should draft a release on GitHub. diff --git a/xtask/src/list_binaries.rs b/xtask/src/list_binaries.rs index 246d845b1..d0a249827 100644 --- a/xtask/src/list_binaries.rs +++ b/xtask/src/list_binaries.rs @@ -13,6 +13,15 @@ pub fn main(_: Args) -> Result<()> { Ok(()) } +/// List all the binaries that should be compiled with Scarb release. +/// +/// This includes both the Scarb itself, and all the extensions defined in creates +/// in the `extensions` directory. +/// +/// Note that some external dependencies might still define this list statically in their build scripts. +/// One example would be the Homebrew installation formula for scarb. +/// See: `` +/// Such dependencies need to be updated manually each time the list of binaries changes. pub fn list_binaries() -> Result> { let mut bins = vec!["scarb".to_string()]; for entry in fs::read_dir("extensions")? {