-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove build.rs file #543
Remove build.rs file #543
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm generally in favour of this. But I don't know if should bump our MSRV without bumping our minor version. Similar discussions are going in the libc crate: rust-lang/libs-team#72 and the time crate: time-rs/time#535.
What ever we decide on this, we should try a pick a consistent strategy with the other crates.
Once it's figured out, we can then decide what to do with this PR. No hurry. ;) |
|
We could do a release with a bump to 1.60 and be prepared to yank it if people complain... Not an ideal solution, but maybe we're making a bigger deal of the MSRV bump than needed. |
In this case, I think we've got something really tangible to offer people for the bump too; one less dependency running arbitrary code at build-time. In our release notes we can mention why we couldn't do this in a minor bump, because the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @GuillaumeGomez!
This looks good to me. If @Thomasdezeeuw is also happy I say we should get it merged and look at putting a release together 🙂
Thanks everyone! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://github.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://github.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://github.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://github.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://github.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://github.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://github.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://github.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://github.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://github.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://github.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://github.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://github.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://github.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://github.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://github.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://github.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://github.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://github.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://github.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://github.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://github.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://github.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://github.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ziyadedher/evm-bench). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://github.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://github.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://github.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://github.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://github.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://github.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://github.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://github.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://github.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://github.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://github.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://github.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://github.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://github.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://github.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://github.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://github.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://github.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://github.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://github.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://github.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://github.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://github.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://github.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/SilenLoc/TypeFast). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://github.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://github.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://github.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://github.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://github.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://github.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://github.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://github.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://github.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://github.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://github.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://github.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://github.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://github.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://github.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://github.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://github.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://github.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://github.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://github.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://github.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://github.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://github.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://github.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/knope-dev/knope). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://github.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://github.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://github.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://github.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://github.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://github.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://github.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://github.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://github.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://github.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://github.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://github.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://github.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://github.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://github.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://github.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://github.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://github.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://github.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://github.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://github.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://github.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://github.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://github.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://github.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://github.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://github.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/knope-dev/knope). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
The `log` crate decided to break support for rustc 1.48 (Debian bullseye) the day the next release of Debian comes out, obviously before anyone has had a chance to upgrade to the new Debian bookworm (at rust-lang/log#543). Thus, we have to manually pin it back to the previous release. Sadly, the `log` crate is a transitive dependency of `tokio` until 0.20, which requires rustc 1.49. Luckily at least we won't have to deal with this again, as `log` won't be a dependency of ours anymore soon.
The `log` crate decided to break support for rustc 1.48 (Debian bullseye) the day the next release of Debian comes out, obviously before anyone has had a chance to upgrade to the new Debian bookworm (at rust-lang/log#543). Thus, we have to manually pin it back to the previous release. Sadly, the `log` crate is a transitive dependency of `tokio` until 0.20, which requires rustc 1.49. Luckily at least we won't have to deal with this again, as `log` won't be a dependency of ours anymore soon.
* Avoid potential panicking in `args::parse` by using `Vec::get` instead of indexing * Refactor: Simplify `opts::{resolve, install}` API Many parameters can be shared and put into `opts::Options` intead and that would also avoid a few `Arc<Path>`. * Optimize `get_install_path`: Avoid cloning `install_path` * Optimize `LazyJobserverClient`: Un`Arc` & remove `Clone` impl to avoid additional boxing * Optimize `find_version`: Avoid cloning `semver::Version` * Optimize `GhCrateMeta::launch_baseline_find_tasks` return `impl Iterator<Item = impl Future<Output = ...>>` instead of `impl Iterator<Item = AutoAbortJoinHandle<...>>` to avoid unnecessary spawning. Each task spawned has to be boxed and then polled by tokio runtime. They might also be moved. While they increase parallelism, spawning these futures does not justify the costs because: - Each `Future` only calls `remote_exists` - Each `remote_exists` call send requests to the same domain, which is likely to share the same http2 connection. Since the conn is shared anyway, spawning does not speedup anything but merely add communication overhead. - Plus the tokio runtime spawning cost * Optimize `install_crates`: Destruct `Args` before any `.await` point to reduce size of the future * Refactor `logging`: Replace param `arg` with `log_level` & `json_output` to avoid dep on `Args` * Add dep strum & strum_macros to crates/bin * Derive `strum_macros::EnumCount` for `Strategy` * Optimize strategies parsing in `install_crates` * Fix panic in `install_crates` when `Compile` is not the last strategy specified * Optimize: Take `Vec<Self>` instead of slice in `CrateName::dedup` * Refactor: Extract new fn `compute_resolvers` * Refactor: Extract new fn `compute_paths_and_load_manifests` * Refactor: Extract new fn `filter_out_installed_crates` * Reorder `install_crates`: Only run target detection if args are valid and there are some crates to be installed. * Optimize `filter_out_installed_crates`: Avoid allocation by returning an `Iterator` * Fix user_agent of `remote::Client`: Let user specify it * Refactor: Replace `UIThread` with `ui::confirm` which is much simpler. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
The `log` crate decided to break support for rustc 1.48 (Debian bullseye) the day the next release of Debian comes out, obviously before anyone has had a chance to upgrade to the new Debian bookworm (at rust-lang/log#543). Thus, we have to manually pin it back to the previous release. Sadly, the `log` crate is a transitive dependency of `tokio` until 0.20, which requires rustc 1.49. Luckily at least we won't have to deal with this again, as `log` won't be a dependency of ours anymore soon.
Fixes #489.
This is another take on #490. Since Rust 1.60,
cfg(target_has_atomic = "...")
is stable so we can now use it. However, it'll change the MSRV to 1.60 as well.I used
target_has_atomic = "ptr"
(and nottarget_has_atomic = "8"
for example) because that's what is used in thestd
forAtomicUsize
. You can see it in the macro declaring theAtomicUsize
here.cc @nnethercote (since you're the one who suggested this change)
EDIT: Just saw that this solution was mentioned by @KodrAus in the linked issue.