diff --git a/qa/zcash/updatecheck.py b/qa/zcash/updatecheck.py index 4d929eda7..f02e1341f 100755 --- a/qa/zcash/updatecheck.py +++ b/qa/zcash/updatecheck.py @@ -100,62 +100,6 @@ def get_dependency_list(): DependsVersionGetter("utfcpp")) ] - # Rust crates (filename portion: depends/packages/crate_.mk). - crates = [ - "addchain", "aes", "aesni", "aes_soft", "ansi_term", - "arrayvec", "arrayref", "autocfg", - "base64", "bellman", "bigint", "bit_vec", "blake2b_simd", "blake2s_simd", - "block_buffer", "block_cipher", "block_modes", "block_padding", - "bls12_381", "byteorder", - "cfg_if", "chrono", "constant_time_eq", "cpuid_bool", - "crossbeam_channel", "crossbeam_deque", "crossbeam_epoch", - "crossbeam_utils", "crossbeam_queue", "crossbeam", - "crunchy", "crypto_api", "crypto_api_chachapoly", "curve25519_dalek", - "directories", "dirs_sys", "digest", - "ed25519_zebra", "equihash", - "ff", "ff_derive", "fpe", "futures_cpupool", "futures", - "generic_array", "getrandom", "group", - "hermit_abi", "hex", "jubjub", "log", - "lazy_static", "libc", "matchers", "maybe_uninit", "memoffset", - "num_bigint", "num_cpus", "num_integer", "num_traits", - "ppv_lite86", "proc_macro2", "quote", - "opaque_debug", "pairing", "rand", "typenum", - "rand_chacha", "rand_core", "rand_hc", "rand_xorshift", - "redox_syscall", "redox_users", - "regex", "regex_automata", "regex_syntax", "rust_argon2", - "scopeguard", "serde", - "serde_derive", "sha2", "sharded_slab", "subtle", "syn", "thiserror", - "thiserror_impl", "thread_local", "time", "tracing", "tracing_appender", - "tracing_attributes", "tracing_core", "tracing_subscriber", - "unicode_xid", "version_check", "wasi", - "winapi_i686_pc_windows_gnu", "winapi", - "winapi_x86_64_pc_windows_gnu", "zcash_history", "zcash_primitives", - "zcash_proofs", "zeroize" - ] - - # Sometimes we need multiple versions of a crate, in which case there can't - # be a direct mapping between the filename portion and the crate name. - crate_name_exceptions = { - } - - for crate in crates: - if crate in crate_name_exceptions.keys(): - crate_name = crate_name_exceptions[crate] - else: - crate_name = crate - - # Rust dependency checks are temporarily disabled: - # https://github.com/zcash/zcash/issues/4726 - # No-op statement to keep pyflakes happy: - crate_name = crate_name - - # dependencies.append( - # Dependency("crate_" + crate, - # RustCrateReleaseLister(crate_name), - # DependsVersionGetter("crate_" + crate) - # ) - # ) - return dependencies class Version(list): @@ -238,47 +182,6 @@ class GithubTagReleaseLister: json = r.json() return list(map(lambda t: t["ref"].split("/")[-1], json)) -class RustCrateReleaseLister: - def __init__(self, crate): - self.crate = crate - - def known_releases(self): - url = "https://crates.io/api/v1/crates/" + safe(self.crate) + "/versions" - r = requests.get(url) - if r.status_code != 200: - raise RuntimeError("Request to crates.io versions API failed.") - json = r.json() - version_numbers = list(map(lambda t: t["num"], json["versions"])) - - release_versions = [] - for num in version_numbers: - match = re.match("^(\d+)\.(\d+)\.(\d+)$", num) - if match: - release_versions.append(Version(match.groups())) - - if len(release_versions) == 0: - raise RuntimeError("Failed to list release versions from crates.io.") - - return release_versions - -class LibGmpReleaseLister: - def known_releases(self): - url = "https://gmplib.org/download/gmp/" - r = requests.get(url) - if r.status_code != 200: - raise RuntimeError("Request to libgmp download directory failed.") - page = r.text - - # We use a set because the search will result in duplicates. - release_versions = set() - for match in re.findall("gmp-(\d+)\.(\d+)\.(\d+)\.tar.bz2", page): - release_versions.add(Version(match)) - - if Version((6, 1, 2)) not in release_versions: - raise RuntimeError("Missing expected version from libgmp download directory.") - - return list(release_versions) - class BerkeleyDbReleaseLister: def known_releases(self): url = "https://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html" @@ -465,10 +368,20 @@ def main(): sys.exit(0) if status == 0: - print("Ready to release. All dependencies are up-to-date or postponed.") + print("All non-Rust dependencies are up-to-date or postponed.") elif status == 1: print("Release is BLOCKED. There are new dependency updates that have not been postponed.") + print(""" +You should also check the Rust dependencies using cargo: + + cargo install cargo-outdated cargo-audit + cargo outdated + cargo audit +""") + if status == 0: + print("After checking those, you'll be ready for release! :-)") + sys.exit(status) main()