Félix Saparelli
e25aa50ec9
Rename lib to binstalk ( #361 )
2022-09-10 16:44:18 +10:00
Jiahao XU
a94d83f0d5
Fix tar
by temporarily using a fork ( #358 )
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-09-10 06:06:22 +00:00
Félix Saparelli
0c6687455f
Trim trailing slash from repo ( #360 )
2022-09-10 17:32:55 +12:00
Jiahao XU
32c3154abb
Replace dep jobserver
with jobslot
( #355 )
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-09-09 20:46:43 +12:00
Félix Saparelli
e24b2ce1e3
Disable zlib-ng for the default cargo-install build ( #354 )
...
but explicitly enable it in our own builds.
This is because using zlib-ng sometimes does not compile easily on Windows,
and using the pure miniz_oxide offers a better install story from source.
For our binary builds, we can provide the optimal performance, and still
do that for most users as they will update with cargo-binstall, getting our
build as a second pass.
2022-09-09 18:06:05 +12:00
Jiahao XU
f7ad78288b
Reuse reqwest client in crates_io_api::AsyncClient
( #349 )
2022-09-06 16:52:05 +12:00
github-actions[bot]
e7d2eb1aef
release: detect-targets v0.1.2 ( #347 )
...
(cargo-release) version 0.1.2
Co-authored-by: github-actions <github-actions@github.com>
2022-09-05 05:14:07 +00:00
Jiahao XU
02df445926
Fix documentation
field in detect-targets/Cargo.toml
( #346 )
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-09-05 17:00:36 +12:00
github-actions[bot]
9b405fc03f
release: detect-targets v0.1.1 ( #344 )
...
Co-authored-by: github-actions <github-actions@github.com>
2022-09-05 04:37:14 +00:00
Félix Saparelli
db82c6935f
Deprecate --secure, enforce HTTPS ( #343 )
...
Resolves #124
2022-09-05 14:18:14 +10:00
github-actions[bot]
eb93eafb9d
release: fs-lock v0.1.0 ( #339 )
...
Co-authored-by: github-actions <github-actions@github.com>
2022-09-04 16:04:52 +00:00
Félix Saparelli
a628cbf876
Rename flock to fs-lock ( #338 )
2022-09-04 15:28:22 +00:00
Félix Saparelli
3387a63895
Fix release PR template ( #336 )
2022-09-04 15:19:17 +00:00
Jiahao XU
89869db239
Fix doc of desired_targets
( #337 )
2022-09-04 15:11:28 +00:00
github-actions[bot]
79d4e9b015
release: normalize-path v0.1.0 ( #335 )
...
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-04 14:59:51 +00:00
github-actions[bot]
f439767b6f
release: detect-targets v0.1.0 ( #333 )
...
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-04 14:34:51 +00:00
github-actions[bot]
c3773a4a48
release: detect-wasi v1.0.0 ( #332 )
...
Co-authored-by: github-actions <github-actions@github.com>
2022-09-04 13:45:28 +00:00
Félix Saparelli
e21617cc9e
Adapt release workflow for workspace ( #331 )
...
Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-09-04 11:12:10 +00:00
Félix Saparelli
f5a682ccce
Stop using borrows of reqwest::Client ( #316 )
2022-09-04 11:00:33 +00:00
Félix Saparelli
1cf6076d62
Add phantom digest support to download ( #315 )
2022-09-04 22:47:18 +12:00
Félix Saparelli
0cb4c993b3
Explode out even more variants of default download URLs ( #329 )
2022-09-02 16:00:46 +12:00
Jiahao XU
b330a18d40
Change typeof Args::targets
to Option<Vec<String>>
( #327 )
...
* Change typeof `Args::targets` to `Option<Vec<String>>`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-31 16:48:15 +12:00
Félix Saparelli
480ea19462
Move internal details of download to be internal to download ( #314 )
2022-08-31 12:10:03 +12:00
Jiahao XU
f38c1e73c3
Ignore trust_dns
log output ( #323 )
...
* Ignore all log except `binstall` & `cargo_binstall` unless `level` is set to `Trace`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 11:39:12 +00:00
Jiahao XU
305cda3336
Optimize compilation time ( #320 )
...
* Print `rerun-if-changed=build.rs` in `build.rs`
* Optimize compile-time: Extract `bin/src/lib.rs`
so that `cargo-binstall (lib)` can be compiled in parallel to other
deps.
* Refactor: Extract new mod `bin/src/bin_utils.rs`
* Extract new fn `MainExit::new`
* Refactor: Extract new fn `run_tokio_main`
* Handle `Runtime::new` err gracefully in `run_tokio_main`
instead of `panic!`ing, return the error as `BinstallError`
* Avoid mixing `eprintln` and `error` in `MainExit::report`
* Set profile for `build-override`
to speedup building of `build.rs` and proc macros.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 23:27:39 +12:00
Jiahao XU
e39a02aa92
Test default pkg-url
for GitLab and BitBucket ( #322 )
...
* Test default `pkt-url` for GitLab and BitBucket
* Fail if `cargo-build` is called when testing GitLab/BitBucket
* Fix use of `remote_exists` in `GhCrateMeta::launch_baseline_find_tasks`
If `Method::HEAD` fails, try `Method::GET` since some servers reject
`Method::HEAD`, e.g. bbuseruploads.s3.amazonaws.com
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 10:45:55 +00:00
Jiahao XU
f973d32ff6
Use BTreeMap
in field PkgMeta::overrides
( #324 ) instead of HashMap
.
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 10:35:11 +00:00
Jiahao XU
7f9ad613a8
Optimize drivers::crates_io::Vfs
: Use BTreeMap
( #325 ) instead of HashMap
.
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 10:18:25 +00:00
Jiahao XU
16b16c482c
Optimize GhCrateMeta::find
: use FuturesUnordered
( #321 )
...
* Optimize `GhCrateMeta::find` using `FuturesUnordered`
* Optimize `MultiFetcher`: Impl `with_capacity` use it in `resolve_inner` to avoid over-reservation
* Enable feature "std" of dep futures-util
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-27 21:56:43 +12:00
Jiahao XU
4def4d08fd
Add new feature trust-dns
to lib & bin ( #318 )
...
* Add new feature `trust-dns` to lib & bin
* Enable `trust-dns` feature by default
Because the `getaddrinfo` is a poorly designed API.
* USe default feature set on windows CI
because wintls on the CI does not support TLS 1.3 and trust-dns only
support dns over https if rustls is used.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-25 12:01:22 +12:00
Jiahao XU
846e7ead91
Support other git hosting services ( #312 )
...
* Impl new mod `hosting` for detecting git hosting services
* Refactor: Make `guess_git_hosting_services` associated fn of `GitHostingService`
* Set default value of `PkgMeta::pkg_url` to `None`
* Impl new method `get_redirected_final_url`
* Use `get_redirected_final_url` in `GhCrateMeta::find` to make `guess_git_hosting_services` more accurate.
* Use redirected `repo` in `GhCrateMeta::launch_baseline_find_tasks`
* Refactor `<GhCrateMeta as Fetcher>::find`
* Mod `get_default_pkg_url_template` to ret `&[&str]`
* Add more default `pkg-url` templates
* Rm `pkg-url` in `bin/Cargo.toml`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-24 07:16:26 +00:00
Jiahao XU
6b5e8f6875
Auto detect pkg_fmt
( #310 )
...
* Refactor: Extract `GhCrateMeta::find_baseline`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Update `Cargo.lock`: Update dep `compact_str`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix use of `fetchers`: Set `meta.pkg_fmt` using `fetcher.pkg_fmt()`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Derive `strum_macors::{Display, EnumIter}` for `PkgFmt`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Set typeof field `PkgMeta::pkg_fmt` to be `Option<PkgFmt>`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Optimize `Fetcher::new` to take `&Arc<Data>` instead of `&Data`
To avoid unnecessary `Data::clone` call in `GhCrateMeta`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Optimize `GhCrateMeta::find_baseline`: Avoid unnecessary spawning
for `let Err(_) = url`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Optimize spawning in `GhCrateMeta::find_baseline`
Ret `Option<Url>` instead of `(Url, bool)`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add new method `target_meta` to trait `Fetcher`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Simplify `resolve_inner` using `Fetcher::target_meta`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Optimize loop in `resolve_inner`: Avoid cloning `PkgOverride`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Impl `PkgMeta::clone_without_overrides`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Optimize `resolve_inner` loop: Use `PkgMeta::clone_without_overrides`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify `Context::from_data` impl
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `launch_baseline_find_tasks`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify `<GhCrateMeta as Fetcher>::find`
Instead of launching tasks in an opaque manner in `Self::find_baseline`,
the new design returns an iterator which launches the tasks and thus
have a unified `.await` point for all these tasks.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add `warn!`ing to report failure of `Context::render_url`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-22 12:28:36 +00:00
dependabot[bot]
b5ea9a2293
Update compact_str requirement from 0.5.2 to 0.6.0 in /crates/lib ( #308 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-22 15:15:01 +12:00
Jiahao XU
62f9450d2d
Refactor: Extract new crate detect-targets
and improve code quality ( #307 )
...
* Refactor: Extract new crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract new mod `detect` for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `desired_targets` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::linux` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::macos` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Extract `detect::windows` in crate `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add new dep cfg-if v1.0.0 for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify mod declaration in `detect` using `cfg_if!`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Refactor: Simplify `detect_targets` using `cfg_if!`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add crate doc for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "macros" of tokio in `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "io-util" of dep tokio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Rm unused feature "io-util" & "macros" of dep tokio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Set stdin & stderr to null in `get_target_from_rustc`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve doc of `get_desired_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve `detect_targets_linux`: Run `ldd` with stdin set to null
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix potential panic in `windows::detect_alternative_targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* FIx fmt of `detect_targets_linux`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Do not re-export dep `detect-targets` in `crates/lib`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Fix typo in crate doc for `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Enable feature "macros" of tokio in dev mode
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Add example to crate doc of `detect-targets`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
* Improve API `get_desired_targets`: Take `Option<&str>`
instead of `&Option<String>`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-21 22:21:33 +10:00
Jiahao XU
1102284684
Fix clippy
warnings and add new workflow clippy ( #306 )
...
* Derive `Eq` for `PkgFmt`, `PkgFmtDecomposed` & `TarBasedFmt`
* Derive `Eq` for `PkgMeta`, `PkgOverride` & `BinMeta`
* Rm unnecessary reborrow in `install_from_source`
* Rm unnecessary `into()` in `args::parse`
* Fix `clippy` warning in `CratesToml::append_to_path`
* Fix clippy warning in `cratesio_url`
* Fix clippy warning in `detect_targets_linux`
* Add `clippy` and `rustfmt` to workflow `unit-test`
Because `clippy` would not check inactive code disabled by `cfg`, so we
have to also run `clippy` on multiple targets.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-21 02:40:50 +12:00
dependabot[bot]
4812456357
Bump futures-util from 0.3.21 to 0.3.23 ( #298 )
...
Bumps [futures-util](https://github.com/rust-lang/futures-rs ) from 0.3.21 to 0.3.23.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.21...0.3.23 )
---
updated-dependencies:
- dependency-name: futures-util
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 12:39:37 +00:00
dependabot[bot]
3e2d272bfd
Bump serde from 1.0.142 to 1.0.143 ( #297 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.142 to 1.0.143.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.142...v1.0.143 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 12:26:50 +00:00
dependabot[bot]
d9c7bdab55
Bump miette from 5.2.0 to 5.3.0 ( #300 )
...
Bumps [miette](https://github.com/zkat/miette ) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/zkat/miette/releases )
- [Changelog](https://github.com/zkat/miette/blob/main/CHANGELOG.md )
- [Commits](https://github.com/zkat/miette/compare/miette-derive-v5.2.0...miette-derive-v5.3.0 )
---
updated-dependencies:
- dependency-name: miette
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 12:16:48 +00:00
dependabot[bot]
af59a59085
Bump clap from 3.2.16 to 3.2.17 ( #299 )
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.16 to 3.2.17.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.17/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.16...v3.2.17 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 12:04:12 +00:00
Félix Saparelli
4b00f5f143
Split crates and clean up structure of codebase ( #294 )
...
Co-authored-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-08-20 11:24:12 +00:00