Skip to content

Commit

Permalink
Prepare 0.24 release with branding change to Hickory DNS (#2054)
Browse files Browse the repository at this point in the history
* update all READMEs with notices about the name change

* update changelog for 0.24

* bump crate versions to 0.24

* update version notice information

* update readmes to back reference trust-dns

* rename all crates to hickory counterparts

* replace all Trust-DNS references in code and comments with Hickory DNS

* rename all Trust-DNS references to Hickory DNS in non-code

* rename all trust-dns-resolver references to hickory-resolver

* rename all trust-dns-client references to hickory-client

* rename all trust-dns-proto references to hickory-proto

* rename all trust-dns-server references to hickory-server

* rename all trust-dns-compatibility references to hickory-compatability

* rename all trust-dns-integration references to hickory-integration

* rename all trust-dns-util references to hickory-util

* Update MIT licenses to reference Hickory DNS

* update all trust-dns references to hickory-dns

* update all bluejekyll github references to hickorydns org

* Update name in Changelog

* make sure hickory-dns logs during tests

* add changelogs for recent main additions

* fix references to trust-dns and hickory in architecture

* update a few trust-dns references in READMEs

* fixup some dangling trust_dns references

* replace fka with formerly in change log

* replace all hickoydns org references to hickory-dns

* replace all http links with https

* update logos

* update hickorydns to hickory-dns for all other org references

* fix Notices of Trust-DNS to Hickory in each Readme
  • Loading branch information
bluejekyll committed Oct 14, 2023
1 parent dac1009 commit 408d0ba
Show file tree
Hide file tree
Showing 369 changed files with 2,247 additions and 1,911 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Expand Up @@ -67,7 +67,7 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
#files: target/llvm-cov-target/trust-dns-coverage.json
#files: target/llvm-cov-target/hickory-dns-coverage.json

## Work through all of the variations of the different features, only on linux to save concurrent resources
exhaustive-features-matrix:
Expand Down
29 changes: 15 additions & 14 deletions ARCHITECTURE.md
@@ -1,34 +1,35 @@
# Architecture of Trust-DNS
# Architecture of Hickory DNS

The Trust-DNS libraries are built from the ground up to be asynchronous. This project grew from first using non-blocking IO interfaces (before Futures 0.1 or async/await had landed in Rust). There are some artifacts of this history sporadically left around the project. Please feel free to submit PRs that clean up areas that still have hand-written Futures based state-machines. Additionally, much of the project was written by @bluejekyll while he learned the Rust language–this means that there may be patterns or missing common implementations in places where he didn't know better. Feel free to clean that up if you feel open to submitting a PR.
The Hickory DNS libraries are built from the ground up to be asynchronous. This project grew from first using non-blocking IO interfaces (before Futures 0.1 or async/await had landed in Rust). There are some artifacts of this history sporadically left around the project. Please feel free to submit PRs that clean up areas that still have hand-written Futures based state-machines. Additionally, much of the project was written by @bluejekyll while he learned the Rust language–this means that there may be patterns or missing common implementations in places where he didn't know better. Feel free to clean that up if you feel open to submitting a PR.

## Layout

Most of the project is in the form of crates. The crates are all individually published to crates.io.

The project has these high-level crates (to be used as dependencies in other projects):

- **[trust-dns-resolver](crates/resolver)** - implements a stub-resolver with support for CNAME chasing and other things, abstract over runtimes (Tokio supported by default)
- **[async-std-resolver](crates/async-std-resolver)** - an abstraction of trust-dns-resolver using the async-std runtime
- **[trust-dns-client](crates/client)** - a bare-bones client crate, most useful for dynamic DNS updates
- **[trust-dns-server](crates/server)** - implements support for hosted Authorities of various types
- **tokio-resolver** - (under consideration, currently Tokio support is directly in trust-dns-resolver)
- **[hickory-resolver](crates/resolver)** - implements a stub-resolver with support for CNAME chasing and other things, abstract over runtimes (Tokio supported by default)
- **[async-std-resolver](crates/async-std-resolver)** - an abstraction of hickory-resolver using the async-std runtime
- **[hickory-client](crates/client)** - a bare-bones client crate, most useful for dynamic DNS updates
- **[hickory-server](crates/server)** - implements support for hosted Authorities of various types
- **tokio-resolver** - (under consideration, currently Tokio support is directly in hickory-resolver)

Low-level crates supporting the above high-level crates:

- **[trust-dns-proto](crates/proto)** - the lowest level crate, implements the basics of DNS
- **[hickory-proto](crates/proto)** - the lowest level crate, implements the basics of DNS

Binaries:

- **[trust-dns](bin/)** - server binary, `trust-dns`, for hosting authorities, zones, and/or setting up a forwarder
- **[trust-dns-util](util/)** - helpful utilities, e.g. `resolve` for a CLI resolver, as well as some DNSSEC utilities
- **[hickory-dns](bin/)** - server binary, `hickory-dns`, for hosting authorities, zones, and/or setting up a forwarder
- **[hickory-util](util/)** - helpful utilities, e.g. `resolve` for a CLI resolver, as well as some DNSSEC utilities

Old and Outdated crates:

- **[trust-dns-rustls](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/rustls)** - removed in favor of feature in trust-dns-prot0, crate efs in [v0.21.0](https://github.com/bluejekyll/trust-dns/tree/v0.21.0)
- **[trust-dns-openssl](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/openssl)** - removed in favor of feature in trust-dns-prot0, crate efs in [v0.21.0](https://github.com/bluejekyll/trust-dns/tree/v0.21.0)
- **[trust-dns-native-tls](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/native-tls)** - removed in favor of feature in trust-dns-prot0, crate efs in [v0.21.0](https://github.com/bluejekyll/trust-dns/tree/v0.21.0)
- **[trust-dns-https](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/https)** - removed in favor of feature in trust-dns-prot0, crate efs in [v0.21.0](https://github.com/bluejekyll/trust-dns/tree/v0.21.0)
- **[trust-dns-*](https://github.com/bluejekyll/trust-dns/tree/v0.23.1/)** - removed in favor of features in hickory-proto, crate in [v0.24.0](https://github.com/hickory-dns/hickory-dns/tree/v0.24.0)
- **[trust-dns-rustls](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/rustls)** - removed in favor of features in hickory-proto, crate in [v0.21.0](https://github.com/hickory-dns/hickory-dns/tree/v0.21.0)
- **[trust-dns-openssl](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/openssl)** - removed in favor of features in hickory-proto, crate in [v0.21.0](https://github.com/hickory-dns/trust-dns/tree/v0.21.0)
- **[trust-dns-native-tls](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/native-tls)** - removed in favor of features in hickory-proto, crate in [v0.21.0](https://github.com/hickory-dns/trust-dns/tree/v0.21.0)
- **[trust-dns-https](https://github.com/bluejekyll/trust-dns/tree/v0.21.0/crates/https)** - removed in favor of features in hickory-proto, crate in [v0.21.0](https://github.com/hickory-dns/trust-dns/tree/v0.21.0)

## TBD

Expand Down
39 changes: 37 additions & 2 deletions CHANGELOG.md
@@ -1,11 +1,46 @@
# Change Log: Trust-DNS
# Change Log: Hickory DNS (formerly, Trust-DNS)

All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/).

All notes should be prepended with the location of the change, e.g. `(proto)` or `(resolver)`.

## 0.23.1
## 0.24.0

**NOTICE** This project has been rebranded to Hickory DNS and has been moved to the https://github.com/hickory-dns/hickory-dns organization and repo, from 0.24.0 onward.

### Changed

- (proto) Make DnsHandle::send &self instead of &mut self #2018 by ibigbug
- (all) Update dependencies (avoid vulnerability), optional TOML, remove unused dependencies #2028 by djc
- (server) Privatize the Lexer API #2040 by djc
- (server) Use consistent error type for read_system_conf() #2047 by djc
- (server) Optimized shutdown_gracefully() #2041 by caobug

### Added

- (server) add register with rustls server config #2004 by yaotthaha
- (all) Add webpki-roots and native-certs crate features #2005 by daxpedda
- (bin) add run-example target to justfile to simply start trust-dns for manual testing #2020 by bluejekyll
- (all) DoH3 support #1987 by daxpedda

### Fixed

- (bin) Add root certificates to the binary crate #2059 by daxpedda
- (proto) proto/rr: do not deserialize ClientSubnets with invalid prefixes #2057 by 00xc
- (resolver) Fix the resolver version warning in the workspace #2013 by bluejekyll
- (proto) Forward serde-config feature to the proto crate #2019 by cetanu
- (server) Prevent task reaping from blocking #2023 by lpraneis
- (proto) Dont panic on nsec without dnssec #2025 by bluejekyll
- (server) Spawn H2 Data frame processing into a separate task #2033 by yaroslavros
- (proto) DoQ default configuration #2036 by daxpedda
- (resolver) caching bug when CNAME leads to negative response #2053 by Clendenin

### Removed

- (resolver) Remove Copy from ResolverOpts #2029 by daxpedda

## 0.23.1, NOTE: Before this point the project was formerly known as Trust-DNS

### Changed

Expand Down
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
@@ -1,4 +1,4 @@
# Contributing to Trust-DNS
# Contributing to Hickory DNS

Before contributing, please consider the terms of the licenses (Apache License 2.0 or MIT). We chose these licenses for two reasons:

Expand All @@ -9,7 +9,7 @@ After ensuring the license options are compatible with the aims of the contribut

## Understanding the design

Please read the [Architecture](ARCHITECTURE.md) to understand the general design and layout of the Trust-DNS projects.
Please read the [Architecture](ARCHITECTURE.md) to understand the general design and layout of the Hickory DNS projects.

## Submitting PRs

Expand All @@ -23,7 +23,7 @@ All PRs *must* be passing all tests. Ideally any PR submitted should have more t

## Releases

Trust-DNS tries to follow semver versioning semantics. Major versions will not break APIs in a current major revision. If changes are being made to the current `main` branch, double check the current status of the Major release. Until `1.x.x`, all `0.x.x` minor releases are treated as major releases with breaking changes allowed. Releases are performed on an ad-hoc/on-demand basis.
Hickory DNS tries to follow semver versioning semantics. Major versions will not break APIs in a current major revision. If changes are being made to the current `main` branch, double check the current status of the Major release. Until `1.x.x`, all `0.x.x` minor releases are treated as major releases with breaking changes allowed. Releases are performed on an ad-hoc/on-demand basis.

*Maintainers*: If changes are needed to previous releases, then there should exist a `release/x.x`. If this does not exist, then go to the previous most recent tag (release) and create a new branch at that tag `release/x.x`, for example the branch `release/0.19`:

Expand All @@ -43,10 +43,10 @@ Releases are somewhat automated. The github action, `publish`, watches for any t
1. Create a new branch like `git checkout -b prepare-0.20.1`
1. Update all Cargo.toml files to the new version, `version = 0.20.1`
1. Update dependencies, `cargo update`
1. Update all inter-dependent crates, i.e. trust-dns-resolver to use `trust-dns-proto = 0.20.1`
1. Update all inter-dependent crates, i.e. hickory-resolver to use `hickory-proto = 0.20.1`
1. Update [CHANGELOG.md](CHANGELOG.md) to include all PR's (of consequence) since the previous release
1. Push to Github, create a PR and merge in `main` or the target release branch.
1. Go to [Releases](https://github.com/bluejekyll/trust-dns/releases) and `Draft a new release`
1. Go to [Releases](https://github.com/hickory-dns/hickory-dns/releases) and `Draft a new release`
1. Give it a `Tag Version` of `vX.x.x`, e.g. `v0.20.1`, *make sure this is tagging the correct branch, e.g. `main` or `release/0.19`*
1. Give it a `Release Title` of something key to the release
1. Copy and pase the part of the CHANGELOG.md for this release into `Describe this release`
Expand Down Expand Up @@ -78,4 +78,4 @@ Yes! There is no formal process, and generally it's a goal to open up to anyone

## Thank you!

Seriously, thank you for contributing to this project. Trust-DNS would not be where it is today without the support of contributors like you.
Seriously, thank you for contributing to this project. Hickory DNS would not be where it is today without the support of contributors like you.

0 comments on commit 408d0ba

Please sign in to comment.