mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #604] Please consider committing and publishing Cargo.lock #542
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#542
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @polyzen on GitHub (Nov 5, 2018).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/604
Is your feature request related to a problem? Please describe.
Reproducible builds.
error: the lock file needs to be updated but --locked was passed to prevent this@bluejekyll commented on GitHub (Nov 6, 2018):
Originally we did include this, but it was removed in #458
There was discussion about this, but it might have happened outside the repo, possibly in users.rust-lang.org. Is this related to trying to build
named? I've been wondering if we need to splitnamedout of thetrust-dns-servercrate, although, given that this is all in a single project that might cause issues.In what context is
--lockedbeing passed?@polyzen commented on GitHub (Nov 6, 2018):
Yes, I understand (now) the FAQ states not to commit
Cargo.lockfor libraries, but seems that's controversial.Also it appears you would need to use an "unstable" feature.
Yes.
Working towards reproducible builds for Arch Linux. BTW, is my package inappropriately named since it ships only
named?@bluejekyll commented on GitHub (Nov 6, 2018):
I think this is work discussing how to best package this. I'm really quite unfamiliar with proper packaging in system distributions. I think naming the package
trust-dns-serveris fine, but my choice ofnamedmight become controversial, and we may want to change that.I'm open to making changes to the structure of the crates and repo to support these distributions, although to be honest, I've planned to continue suggesting people just install directly from cargo. It looks like maybe that's exactly what your arch-linux install does, so that's probably fine. One comment I have, is there are a lot of compile time features that are defaulted to off, and some are experimental at the moment. Specifically, DNSSSEC is defaulted to off, yet it's in the description you have on the arch distribution, I'm not sure how we'd handle making it possible to enable those features.
I have done very little research in this area, so my answers here won't be great, and more likely I'll just keep asking questions ;)
@bluejekyll commented on GitHub (Nov 6, 2018):
I remember getting a lot of feedback on this, but of course I can't find it now. It was a lot harder to maintain the dependencies under this model, and created downstream issues for (library) users, as I remember it.
@polyzen commented on GitHub (Nov 6, 2018):
If
namedwere to be split out into its own crate, the lock file could then be published for that binary crate. There is code (IIUC) to prevent lock files being published otherwise. The lock files would then also be available for the libraries' developers.Will fix that.
No worries here, as we're meant to ship packages as vanilla as possible.
@bluejekyll commented on GitHub (Nov 7, 2018):
Do you mean in
cargo publish?Sorry, by library I think you're referring to the general trust-dns software, not specifically the trust-dns-server library, right?
I think the concern I have right now is that with the current project construction, the lock file would be stored in the root, effecting all the crates, and not just the binary. So we'd need to exclude it from the published artifacts to crates.io for the other crates (something we probably need to slim down anyway). That would be a path forward.
@polyzen commented on GitHub (Nov 7, 2018):
https://github.com/rust-lang/cargo/blob/0.31.0/src/cargo/sources/path.rs#L346-L349
Yes, and thank you for the consideration!
@bluejekyll commented on GitHub (Nov 7, 2018):
Ah, so published crates never included the lock file, or at least not for the last few years.
But that raises a different question, if it's not published with the crate on crates.io, it won't be available for your installation (from crates.io) in arch, will it? Or am I missing something.
@polyzen commented on GitHub (Nov 7, 2018):
Mentioned it in passing ^
@bluejekyll commented on GitHub (Nov 7, 2018):
I see. That connects all the dots for me, thanks.
I think the best path forward will be to put the binaries into separate crates. Does this block your path forward? or is this an optimization/stabilization for the arch installation script?
@polyzen commented on GitHub (Nov 7, 2018):
Great. :) This would be an optimization/stabilization, yes. Reproducible builds are still an ongoing process at Arch:
https://tests.reproducible-builds.org/archlinux/archlinux.html
@polyzen commented on GitHub (Jan 19, 2019):
Note: Publishing the lockfile with the server crate is not done yet. Will file an issue or PR once
publish-lockfileis stabilized.@bluejekyll commented on GitHub (Jan 19, 2019):
Oh. Silly me. I didn’t confirm. We can add it to the crate manually in Cargo.toml, no?
@polyzen commented on GitHub (Jan 19, 2019):
I don't know, but I have a feeling https://github.com/rust-lang/cargo/blob/0.32.0/src/cargo/sources/path.rs#L347-L350 would make it not possible.
See also https://github.com/sharkdp/diskus/pull/17.
@polyzen commented on GitHub (Jun 3, 2019):