cargo-bins / cargo-binstall

Binary installation for rust projects
GNU General Public License v3.0
1.57k stars 54 forks source link

`{name}-{platform}` url template not tried for `atuin` installation #1806

Closed binarybana closed 3 months ago

binarybana commented 3 months ago

Using latest cargo-binstall==1.7.3 release, I was trying to install atuin through:

cargo-binstall -y -v atuin

But found it was falling back to installation from source despite the packages being available in atuin's Github releases.

As you can see in the logs below, it correctly is trying to download from https://github.com/atuinsh/atuin/releases/download/v18.3.0/ but then tries two patterns of atuin-v18.3.0-{platform}.tar.gz before giving up. But doesn't try atuin-{platform}.tar.gz which atuin changed to in the 18.3.0 release (previously putting the version string in there).

What's weird about this is { name }-{ target }{ archive-suffix } ("versionless") is listed in the supported cargo-binstall url templates, and there is no binstall metadata info in atuin's Cargo.toml, so I don't know why it's not checking those here. But I did notice they switched to cargo-dist==0.16 for their 18.3 release, so it could be related to that?

Debug logs:

ollm:/home/ollm/ollm> cargo-binstall atuin -y -v
DEBUG using (/home/ollm/.cargo) as cargo home
DEBUG Using install path: /home/ollm/.cargo/bin
DEBUG get_target_from_rustc()=None
DEBUG guess_host_triple::guess_host_triple()=Some("x86_64-unknown-linux-gnu")
 INFO resolve: Resolving package: 'atuin'
DEBUG Running `/usr/lib64/x86_64-linux-gnu/ld-linux-x86-64.so.2 --version`: err=Os { code: 2, kind: NotFound, message: "No such file or directory" }
DEBUG Running `/lib/ld-linux-x86-64.so.2 --version`: err=Os { code: 2, kind: NotFound, message: "No such file or directory" }
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}: Downloading from: 'https://index.crates.io/config.json'
DEBUG Running `/lib64/x86_64-linux-gnu/ld-linux-x86-64.so.2 --version`: err=Os { code: 2, kind: NotFound, message: "No such file or directory" }
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:do_send_request{request=Request { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("index.crates.io")), port: None, path: "/config.json", query: None, fragment: None }, headers: {} } url=https://index.crates.io/config.json}:new_resolver: Using system DNS resolver configuration
DEBUG `/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 --version`: status=exit status: 0, stdout='ld.so (Ubuntu GLIBC 2.35-0ubuntu3.8) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
', stderr=''
DEBUG `/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 --version`: status=exit status: 0, stdout='ld.so (Ubuntu GLIBC 2.35-0ubuntu3.8) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
', stderr=''
DEBUG `/lib64/ld-linux-x86-64.so.2 --version`: status=exit status: 0, stdout='ld.so (Ubuntu GLIBC 2.35-0ubuntu3.8) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
', stderr=''
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}: Downloading from: 'https://index.crates.io/at/ui/atuin'
DEBUG Failed to retrieve token from `gh auth token` err=Custom { kind: Other, error: "process exited with `exit status: 1`" }
DEBUG Failed to read git credential file
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}: Fetching crate from: https://static.crates.io/crates/atuin/18.3.0/download and extracting Cargo.toml from it
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}:and_visit_tar{fmt=Tgz}: Downloading from: 'https://static.crates.io/crates/atuin/18.3.0/download'
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}:and_visit_tar{fmt=Tgz}: Downloading and extracting then in-memory processing
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}:and_visit_tar{fmt=Tgz}: Extracting from Tgz archive to process it in memory
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}:and_visit_tar{fmt=Tgz}: Download, extraction and in-memory procession OK
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}: Loading manifest directly from extracted file
DEBUG resolve:fetch_crate_matched{crate_name="atuin" registry_url=https://index.crates.io/ version_req=*}:parse_manifest{crate_name="atuin" version="18.3.0" cksum="f8376fc649d6223b15564eb325887d8a502970cab99801830d904e506a38db4b" crate_url=https://static.crates.io/crates/atuin/18.3.0/download}: Manifest: Manifest { package: Some(Package { name: "atuin", version: Set("18.3.0"), edition: Set(E2021), rust_version: Some(Set("1.77")), build: None, workspace: None, authors: Set(["Ellie Huxtable <ellie@elliehuxtable.com>"]), links: None, description: Some(Set("atuin - magical shell history")), homepage: Some(Set("https://atuin.sh")), documentation: None, readme: Set(Path("./README.md")), keywords: Set([]), categories: Set([]), exclude: Set([]), include: Set([]), license: Some(Set("MIT")), license_file: None, repository: Some(Set("https://github.com/atuinsh/atuin")), default_run: None, autobins: true, autoexamples: true, autotests: true, autobenches: true, publish: Set(Flag(true)), resolver: None, metadata: Some(Meta { binstall: Some(PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }) }) }), workspace: None, dependencies: {"async-trait": Detailed(DependencyDetail { version: Some("0.1.58"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "atuin-client": Detailed(DependencyDetail { version: Some("18.3.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: true, default_features: false, package: None, unstable: {} }), "atuin-common": Detailed(DependencyDetail { version: Some("18.3.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "atuin-daemon": Detailed(DependencyDetail { version: Some("0.2.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "atuin-dotfiles": Detailed(DependencyDetail { version: Some("0.3.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "atuin-history": Detailed(DependencyDetail { version: Some("0.2.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "atuin-server": Detailed(DependencyDetail { version: Some("18.3.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: true, default_features: true, package: None, unstable: {} }), "atuin-server-postgres": Detailed(DependencyDetail { version: Some("18.3.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: true, default_features: true, package: None, unstable: {} }), "base64": Detailed(DependencyDetail { version: Some("0.22"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "clap": Detailed(DependencyDetail { version: Some("4.5.4"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["derive"], optional: false, default_features: true, package: None, unstable: {} }), "clap_complete": Detailed(DependencyDetail { version: Some("4.5.1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "clap_complete_nushell": Detailed(DependencyDetail { version: Some("4.5.2"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "colored": Detailed(DependencyDetail { version: Some("2.0.4"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "crossterm": Detailed(DependencyDetail { version: Some("0.27"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["use-dev-tty"], optional: false, default_features: true, package: None, unstable: {} }), "directories": Detailed(DependencyDetail { version: Some("5.0.1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "env_logger": Detailed(DependencyDetail { version: Some("0.11.2"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "eyre": Detailed(DependencyDetail { version: Some("0.6"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "fs-err": Detailed(DependencyDetail { version: Some("2.9"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "futures-util": Detailed(DependencyDetail { version: Some("0.3"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "fuzzy-matcher": Detailed(DependencyDetail { version: Some("0.3.7"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "indicatif": Detailed(DependencyDetail { version: Some("0.17.5"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "interim": Detailed(DependencyDetail { version: Some("0.1.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["time"], optional: false, default_features: true, package: None, unstable: {} }), "itertools": Detailed(DependencyDetail { version: Some("0.12.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "log": Detailed(DependencyDetail { version: Some("0.4"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "ratatui": Detailed(DependencyDetail { version: Some("0.26"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "regex": Detailed(DependencyDetail { version: Some("1.10.4"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "rpassword": Detailed(DependencyDetail { version: Some("7.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "runtime-format": Detailed(DependencyDetail { version: Some("0.1.3"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "rustix": Detailed(DependencyDetail { version: Some("0.38.34"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["process", "fs"], optional: false, default_features: true, package: None, unstable: {} }), "semver": Detailed(DependencyDetail { version: Some("1.0.20"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "serde": Detailed(DependencyDetail { version: Some("1.0.202"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["derive"], optional: false, default_features: true, package: None, unstable: {} }), "serde_json": Detailed(DependencyDetail { version: Some("1.0.116"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "sysinfo": Detailed(DependencyDetail { version: Some("0.30.7"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "time": Detailed(DependencyDetail { version: Some("0.3.36"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["serde-human-readable", "macros", "local-offset"], optional: false, default_features: true, package: None, unstable: {} }), "tiny-bip39": Detailed(DependencyDetail { version: Some("1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "tokio": Detailed(DependencyDetail { version: Some("1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["full"], optional: false, default_features: true, package: None, unstable: {} }), "tracing": Detailed(DependencyDetail { version: Some("0.1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "tracing-subscriber": Detailed(DependencyDetail { version: Some("0.3"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["ansi", "fmt", "registry", "env-filter"], optional: false, default_features: true, package: None, unstable: {} }), "unicode-segmentation": Detailed(DependencyDetail { version: Some("1.11.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "unicode-width": Detailed(DependencyDetail { version: Some("0.1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} }), "uuid": Detailed(DependencyDetail { version: Some("1.8"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: ["v4", "v7", "serde"], optional: false, default_features: true, package: None, unstable: {} }), "whoami": Detailed(DependencyDetail { version: Some("1.5.1"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} })}, dev_dependencies: {"tracing-tree": Detailed(DependencyDetail { version: Some("0.3"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: false, default_features: true, package: None, unstable: {} })}, build_dependencies: {}, target: {"cfg(any(target_os = \"windows\", target_os = \"macos\", target_os = \"linux\"))": Target { dependencies: {"cli-clipboard": Detailed(DependencyDetail { version: Some("0.4.0"), registry: None, registry_index: None, path: None, inherited: false, git: None, branch: None, tag: None, rev: None, features: [], optional: true, default_features: true, package: None, unstable: {} })}, dev_dependencies: {}, build_dependencies: {} }}, features: {"check-update": ["atuin-client/check-update"], "client": ["atuin-client"], "clipboard": ["cli-clipboard"], "daemon": ["atuin-client/daemon"], "default": ["client", "sync", "server", "clipboard", "check-update", "daemon"], "server": ["atuin-server", "atuin-server-postgres"], "sync": ["atuin-client/sync"]}, replace: {}, patch: {}, lib: None, profile: Profiles { release: None, dev: None, test: None, bench: None, doc: None, custom: {} }, badges: Badges { appveyor: None, circle_ci: None, gitlab: None, travis_ci: None, codecov: None, coveralls: None, is_it_maintained_issue_resolution: None, is_it_maintained_open_issues: None, maintenance: Maintenance { status: None } }, bin: [], bench: [], test: [], example: [], lints: None }
DEBUG resolve: Building metadata for target: x86_64-unknown-linux-gnu
DEBUG resolve: Found metadata: PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }
DEBUG resolve: Building metadata for target: x86_64-unknown-linux-musl
DEBUG resolve: Found metadata: PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }
DEBUG resolve: Building metadata for target: x86_64-unknown-linux-gnu
DEBUG resolve: Found metadata: PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }
DEBUG resolve: Building metadata for target: x86_64-unknown-linux-musl
DEBUG resolve: Found metadata: PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }
DEBUG resolve: Building metadata for target: x86_64-unknown-linux-gnu
DEBUG resolve: Found metadata: PkgMeta { pkg_url: Some("{ repo }/releases/download/v{ version }/{ name }-v{ version  }-{ target }.tar.gz"), pkg_fmt: Some(Tgz), bin_dir: Some("{ name }-v{ version }-{ target }/{ bin }{ binary-ext }"), signing: None, overrides: {} }
DEBUG get_repo_info{self=Data { name: "atuin", version: "18.3.0", repo: Some("https://github.com/atuinsh/atuin"), repo_info: OnceCell { value: None } }}: Resolved repo_info = RepoInfo {
    repo: Url {
        scheme: "https",
        cannot_be_a_base: false,
        username: "",
        password: None,
        host: Some(
            Domain(
                "github.com",
            ),
        ),
        port: None,
        path: "/atuinsh/atuin",
        query: None,
        fragment: None,
    },
    repository_host: GitHub,
    subcrate: None,
    is_private: false,
}
DEBUG render url template template=Template { items: [Key("repo"), Text("/releases/download/v"), Key("version"), Text("/"), Key("name"), Text("-v"), Key("version"), Text("-"), Key("target"), Text(".tar.gz")], default: None } context=Context { name: "atuin", repo: Some("https://github.com/atuinsh/atuin"), target: "x86_64-unknown-linux-gnu", version: "18.3.0", archive_format: None, binary_ext: "", subcrate: None, url: None, .. }
DEBUG Checking for package at: 'https://github.com/atuinsh/atuin/releases/download/v18.3.0/atuin-v18.3.0-x86_64-unknown-linux-gnu.tar.gz'
DEBUG Using GitHub API to check for existence of artifact, which will also cache the API response
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "atuinsh", repo: "atuin" }, tag: "v18.3.0" } artifact_name="atuin-v18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: Getting restful API: https://api.github.com/repos/atuinsh/atuin/releases/tags/v18.3.0
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "atuinsh", repo: "atuin" }, tag: "v18.3.0" } artifact_name="atuin-v18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: Downloading from: 'https://api.github.com/repos/atuinsh/atuin/releases/tags/v18.3.0'
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "atuinsh", repo: "atuin" }, tag: "v18.3.0" } artifact_name="atuin-v18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: return=Ok(None)
DEBUG render url template template=Template { items: [Key("repo"), Text("/releases/download/v"), Key("version"), Text("/"), Key("name"), Text("-v"), Key("version"), Text("-"), Key("target"), Text(".tar.gz")], default: None } context=Context { name: "atuin", repo: Some("https://github.com/atuinsh/atuin"), target: "x86_64-unknown-linux-musl", version: "18.3.0", archive_format: None, binary_ext: "", subcrate: None, url: None, .. }
DEBUG Checking for package at: 'https://github.com/atuinsh/atuin/releases/download/v18.3.0/atuin-v18.3.0-x86_64-unknown-linux-musl.tar.gz'
DEBUG Using GitHub API to check for existence of artifact, which will also cache the API response
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "atuinsh", repo: "atuin" }, tag: "v18.3.0" } artifact_name="atuin-v18.3.0-x86_64-unknown-linux-musl.tar.gz"}: return=Ok(None)
DEBUG Downloading from: 'https://raw.githubusercontent.com/cargo-bins/cargo-quickinstall/main/supported-targets'
DEBUG Sending installation report to quickinstall (https://warehouse-clerk-tmp.vercel.app/api/crate/atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz)
DEBUG Downloading from: 'https://warehouse-clerk-tmp.vercel.app/api/crate/atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz'
DEBUG Checking for package at: 'https://github.com/cargo-bins/cargo-quickinstall/releases/download/atuin-18.3.0/atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz'
DEBUG Using GitHub API to check for existence of artifact, which will also cache the API response
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "cargo-bins", repo: "cargo-quickinstall" }, tag: "atuin-18.3.0" } artifact_name="atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: Getting restful API: https://api.github.com/repos/cargo-bins/cargo-quickinstall/releases/tags/atuin-18.3.0
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "cargo-bins", repo: "cargo-quickinstall" }, tag: "atuin-18.3.0" } artifact_name="atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: Downloading from: 'https://api.github.com/repos/cargo-bins/cargo-quickinstall/releases/tags/atuin-18.3.0'
DEBUG Downloading signature url=https://github.com/cargo-bins/cargo-quickinstall/releases/download/atuin-18.3.0/atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz.sig
DEBUG into_bytes: Downloading from: 'https://github.com/cargo-bins/cargo-quickinstall/releases/download/atuin-18.3.0/atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz.sig'
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "cargo-bins", repo: "cargo-quickinstall" }, tag: "atuin-18.3.0" } artifact_name="atuin-18.3.0-x86_64-unknown-linux-gnu.tar.gz"}: return=Ok(None)
DEBUG Sending installation report to quickinstall (https://warehouse-clerk-tmp.vercel.app/api/crate/atuin-18.3.0-x86_64-unknown-linux-musl.tar.gz)
DEBUG Checking for package at: 'https://github.com/cargo-bins/cargo-quickinstall/releases/download/atuin-18.3.0/atuin-18.3.0-x86_64-unknown-linux-musl.tar.gz'
DEBUG Downloading from: 'https://warehouse-clerk-tmp.vercel.app/api/crate/atuin-18.3.0-x86_64-unknown-linux-musl.tar.gz'
DEBUG Using GitHub API to check for existence of artifact, which will also cache the API response
DEBUG has_release_artifact{release=GhRelease { repo: GhRepo { owner: "cargo-bins", repo: "cargo-quickinstall" }, tag: "atuin-18.3.0" } artifact_name="atuin-18.3.0-x86_64-unknown-linux-musl.tar.gz"}: return=Ok(None)
 WARN The package atuin v18.3.0 will be installed from source (with cargo)
DEBUG Running `cargo install atuin --version 18.3.0`
DEBUG run time: 513.043953ms
ERROR Fatal error:
  × For crate atuin: I/O Error: No such file or directory (os error 2)
  ╰─▶ I/O Error: No such file or directory (os error 2)

(Failure here because I didn't have cargo/rust installed on this machine)

NobodyXu commented 3 months ago

https://github.com/atuinsh/atuin/compare/v18.3.0...main#diff-f8f8021a12d0e7457d70bc45c5be23b4e4a200ef007f39e9535ac55554389754

It's because autin overrides that behavior by providing pkg-url

It's fixed in 18.4.0

binarybana commented 3 months ago

Ah! I looked for pkg-url in the root workspace Cargo.toml but forgot to search in sub-crates. Thanks!