diff --git a/avm/src/lib.rs b/avm/src/lib.rs index 9c1c61cb9c..bdc701ccbe 100644 --- a/avm/src/lib.rs +++ b/avm/src/lib.rs @@ -566,6 +566,7 @@ pub fn fetch_versions() -> Result, Error> { struct Release { #[serde(rename = "name", deserialize_with = "version_deserializer")] version: Version, + draft: bool, } fn version_deserializer<'de, D>(deserializer: D) -> Result @@ -577,13 +578,20 @@ pub fn fetch_versions() -> Result, Error> { } let response = reqwest::blocking::Client::new() - .get("https://api.github.com/repos/coral-xyz/anchor/tags") - .header(USER_AGENT, "avm https://github.com/coral-xyz/anchor") + .get("https://api.github.com/repos/solana-foundation/anchor/releases") + .header( + USER_AGENT, + "avm https://github.com/solana-foundation/anchor", + ) .send()?; if response.status().is_success() { let releases: Vec = response.json()?; - let versions = releases.into_iter().map(|r| r.version).collect(); + let versions = releases + .into_iter() + .filter(|r| !r.draft) + .map(|r| r.version) + .collect(); Ok(versions) } else { let reset_time_header = response @@ -607,8 +615,7 @@ pub fn list_versions() -> Result<()> { let mut installed_versions = read_installed_versions()?; let mut available_versions = fetch_versions()?; - // Reverse version list so latest versions are printed last - available_versions.reverse(); + available_versions.sort(); let print_versions = |versions: Vec, installed_versions: &mut Vec, show_latest: bool| {