libcrypto3 is required because openssh-10.0_p1-r8 needs a newer
version of libcrypto3 (3.5.3-r1 as of this writing).
However, the pre-installed one on the image is 3.3.2-r4,
and the one the registry is 3.5.1-r0
Hence an `apk upgrade` is required.
We should remove this someday when upstream fixes it.
Also, I've tried `alpine:edge`,
but edge hasn't yet upgrade the pre-installed libssl3 nor the registry
To repro:
```console
/ # apk info openssh
openssh-10.0_p1-r8 description:
Port of OpenBSD's free SSH release
openssh-10.0_p1-r8 webpage:
https://www.openssh.com/portable.html
openssh-10.0_p1-r8 installed size:
330 KiB
/ # apk info -R openssh
openssh-10.0_p1-r8 depends on:
openssh-client
openssh-sftp-server
openssh-server
so:libc.musl-x86_64.so.1
so:libcrypto.so.3
/ # apk info libcrypto3
libcrypto3-3.5.1-r0 description:
Crypto library from openssl
libcrypto3-3.5.1-r0 webpage:
https://www.openssl.org/
libcrypto3-3.5.1-r0 installed size:
5091 KiB
libcrypto3-3.5.3-r0 description:
Crypto library from openssl
libcrypto3-3.5.3-r0 webpage:
https://www.openssl.org/
libcrypto3-3.5.3-r0 installed size:
5091 KiB
/ # strings /usr/lib/libcrypto.so.3 | grep -i "OpenSSL"
...
OpenSSL 3.5.1 1 Jul 2025
...
```
Read a real target spec JSON so we no longer need to hardcode
a target spec JSON here.
Cargo itself should not care about the spec schema.
Let's stop bothering compiler contributors.
RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2
in 1.90.0. In Cargo we usually run test against tier-1 platforms, so
x86_64-apple-darwin should be removed.
Also, that target platform is often the slowest one in CI,
we are happy to remove it to save us a couple of minutes.
https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html
The `clippy::perf` lint group is fairly useful for catching bad
practices that might hurt performance marginally.
This PR fixes most of them except `clippy::large_enum_variant`,
which doesn't feel right at this moment and need more researches.
Anyway, overall this PR should be good.
This was mostly done by clippy via `clippy::doc_markdown`.
I then reviewed it to fix words that shouldn't have it or where `--fix`
put the backtick in the wrong location.
I'm unsure how we should be replacing these use cases, so I'm exploring
keeping them but making them use snapbox under the hood.
Part of the intent of snapbox is that it provides you the building
blocks to make what you need.
Encodes the version information into Cargo's fingerprint dep-info files,
so that when the format encoding changes in the future,
Cargo understands a dep-info file was outdated and doesn't bother parsing it.
Since there was no version info encoded in the old format (call it v0),
to be compatible with older cargoes,
this PR works around it with a horrible hack.
It is explained in the doc comment of `EncodedDepInfo`.