v1.5.0

qdm12/dnsv1.5.0Apr 2, 2021by qdm12

AI Summary

A major maintenance release upgrading to Go 1.16 and refactoring the codebase to prepare for future DNS over TLS/HTTP support, alongside CI and development environment improvements.

Key Highlights

  • Upgraded to Go 1.16 and refactored main.go using signal.NotifyContext
  • Split packages to prepare for DoT and DoH implementation
  • Simplified CI GitHub Actions and Dockerfile
  • Upgraded qdm12/golibs and all direct dependencies

New Features

  • Preparation for DoT and DoH implementation in Go

Full Release Notes

## Bug fixes

- Fix settings formatting in logs of program

## Documentation

- Update readme

## Maintenance

- Upgrade qdm12/golibs and all direct dependencies
- Upgrade to Go 1.16
- Refactor main.go using `signal.NotifyContext`
- CI Github Actions and Dockerfile simplifications
    - Run tests in CI to pass coverage
    - Run lint and test on build architecture only
    - Bump golangci-lint to 1.37.1
    - Cross compile Go binary using native Go compiler
    - Only the final image is run on emulated Docker CPU architecture
- Prepare for DoT and DoH implementation in Go
    - Split apart blacklisting and OS related functions from `pkg/unbound` package to `pkg/blacklist` and `pkg/nameserver`
    - Move `WaitForUnbound` from `pkg/unbound` to `pkg/check` as `WaitForDNS`

## Dev setup

- Fix Go extension name in dev container
- Change bind mounts in dev container
    - `~/.ssh` as read and write (causing issue on Windows otherwise)
    - Bind mount shell history `~/.zsh_history`