Policy for removing named.conf options
BIND 9 has many configuration options. Some have lost value over the years.
We plan to remove some of these little-used options. Maintaining unnecessary options increases the number of corner cases and thus the complexity of development, testing and validation. It can also confuse new users. We have established an orderly, staged process that gives existing users ample time to react and adapt to obsoleted options.
This policy describes our planned procedure for removing named.conf options. This policy was updated September 9, 2021 to reflect the change in release model adopted earlier in 2021, which removed the distinction between Stable and ESV releases.
We certainly don't want to remove any options that are still in widespread use. Before making the decision to go ahead with removing an option, we plan to post a notice on the bind-users mailing list to solicit feedback. Depending on the level of concern from the list, we may move ahead or decide to defer deprecating the option.
A configuration option that is a candidate for removal will be deprecated first. During this phase the option will still work, but we will be communicating to users that the option is going to be removed soon. A user that has deprecated options configured will see warnings in their logs and needs to take action to get rid of those log messages. The named-checkconf utility will also report that there are options included that are deprecated.
Configuration options that are deprecated will be identified in the Release Note for the release they are deprecated in. A list of deprecated options will also be included in the Knowledgebase article describing Significant features by Release.
A user that has a removed option configured will be unable to start
named because the configuration option is no longer supported. Configuration options that are removed from BIND 9 will be noted in the Release Note for the first version they are removed from.
An option that is deprecated in one release will be removed from the code base in a successor stable/ESV release. For example, an option that has been marked as deprecated in 9.16 would be removed in the 9.17 development release (that will become the next stable/ESV branch, 9.18).
A configuration option can be marked as deprecated in a stable/ESV release before the successor stable/ESV release is published. For example, an option that is going to be removed in 9.18 can be marked as deprecated in any 9.16 release preceding the release of BIND 9.18.0.
3. Removing related code
The code that relates to a configuration option that is to be removed will in general be deleted at the same time as the configuration option is removed. The BIND 9 team may decide to remove the related code at an earlier stage if it is considered harmful to keep. In that case the option will become obsolete rather than deprecated.