# Changelog All notable changes to the ansible-bind9-role will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Version support policy documentation in `docs/VERSION_SUPPORT.md` - Branching strategy for supporting multiple BIND9 versions - Grammar comparison tooling (`scripts/compare_bind_versions.py`) - Grammar fetcher for upstream BIND9 sources (`scripts/fetch_bind_grammar.py`) - Automated version difference tracking - Operating system support matrix - BIND9 Version Differences documentation (`docs/BIND_VERSION_DIFFERENCES.md`) covering: - 44 breaking changes between BIND9 9.18.44 and 9.20.18 - 35 new options in BIND9 9.20 - 22 modified options requiring configuration updates - 3 newly deprecated options ### Changed - Established formal release management process - Defined backporting policy for security, bugs, and features - Clarified version compatibility in CONFIGURATION_GRAMMAR.md ### Planned - BIND9 9.20+ support in separate `9.20` branch - Multi-platform molecule test matrix - Automated BIND9 version detection in tasks - Version-specific template conditional logic - Enhanced CI/CD pipeline with version matrix testing ## [1.0.0] - TBD ### Initial Release - Full support for BIND9 9.18.x (LTS) - Configuration grammar based on BIND9 9.18.44 - Comprehensive template system for all BIND9 statement types: - `acl` - `controls` - `dlz` - `dnssec-policy` - `dyndb` - `http` - `key` - `logging` - `options` - `parental-agents` - `primaries` (masters) - `server` - `statistics-channels` - `tls` - `trust-anchors` - `view` - `zone` (all types: primary, secondary, forward, hint, stub, static-stub, mirror, redirect, in-view, delegation-only) - Support for Debian 11, 12, 13 - Support for Ubuntu 20.04, 22.04, 24.04 - Molecule testing framework - Configuration validation with `named-checkconf` - Automatic configuration backup and rollback on errors - Detailed configuration grammar documentation - GPL-3.0-or-later license --- ## Version History (Pre-Changelog) Prior to this changelog, the role was developed without formal version tracking. This changelog starts with the establishment of the version support policy. --- ## Versioning Schema - **MAJOR**: Incompatible changes to role variables or behavior - **MINOR**: New features in a backwards compatible manner - **PATCH**: Backwards compatible bug fixes ### Branch-Specific Versioning - `main` branch: `vX.Y.Z` (BIND9 9.18 LTS) - `9.20` branch: `v9.20.X[-suffix]` (BIND9 9.20+) - Suffixes: `-alpha`, `-beta`, `-rc` for pre-releases ## Release Types ### Security Releases Critical security fixes are released as patch versions and backported to all supported branches. ### Feature Releases New features are added in minor version increments. Breaking changes require major version increments. ### Bug Fix Releases Bug fixes are released as patch versions when they accumulate or for critical issues. ## Upgrade Notes ### From Pre-Versioned to v1.0.0 The first official release establishes baseline compatibility. Users of pre-release versions should: 1. Review all role variables for any changes 2. Test in non-production environment 3. Review generated configuration with `named-checkconf` 4. Check `docs/VERSION_SUPPORT.md` for supported platforms ### Future Upgrades Check individual version sections above for specific upgrade notes and breaking changes. ## Contributing See `docs/VERSION_SUPPORT.md` for contribution guidelines and release processes. ## Links - [Version Support Policy](docs/VERSION_SUPPORT.md) - [Configuration Grammar](CONFIGURATION_GRAMMAR.md) - [Issue Tracker](https://git.valid.dk/daniel/ansible-bind9-role/issues) - [Repository](https://git.valid.dk/daniel/ansible-bind9-role)