Add deprecation policy to the zcashd book.

This commit is contained in:
Kris Nuttycombe 2022-04-28 12:58:49 -06:00
parent 4ea9de5ff6
commit 81b15f3eb7
2 changed files with 29 additions and 0 deletions

View File

@ -6,6 +6,7 @@
- [Developer Documentation](dev.md) - [Developer Documentation](dev.md)
- [Rust in `zcashd`](dev/rust.md) - [Rust in `zcashd`](dev/rust.md)
- [Regtest tips and hints](dev/regtest.md) - [Regtest tips and hints](dev/regtest.md)
- [Deprecation Policy](dev/deprecation.md)
- [Design](design.md) - [Design](design.md)
- [Chain state](design/chain-state.md) - [Chain state](design/chain-state.md)
- ["Coins" view](design/coins-view.md) - ["Coins" view](design/coins-view.md)

View File

@ -0,0 +1,28 @@
Deprecation Policy
==================
From time to time, features of zcashd and its associated wallet and RPC API are deprecated
to allow eventual removal of functionality that has been superseded by more recent
improvements. Deprecation follows a process whereby deprecate features can be explicitly
turned on or off using the `-allowdeprecated=<feature>` CLI argument.
Zcashd internally supports two sets of deprecated feature flags in `src/deprecation.h`:
- `DEFAULT_ALLOW_DEPRECATED` contains the set of features that remain available for
use without having to be specifically enabled using `-allowdeprecated`.
- `DEFAULT_DENY_DEPRECATED` contains the set of features that are not enabled by
default, and must be explicitly enabled using `-allowdeprecated`.
Deprecation occurs as a 3-step process:
- When a feature is initially deprecated in a release, the fact of its deprecation is
announced in the release notes, any functionality that supersedes the deprecated feature
(if any) is documented in the release notes, and the string `DEPRECATED` is added to
user-facing API documentation and CLI help text. Internally, the deprecated feature
added to `DEFAULT_ALLOW_DEPRECATED`. The feature remains available to end-users
without additional action on their part.
- After 3 minor-version releases, or 1 major-version release, the deprecated feature
is removed from `DEFAULT_ALLOW_DEPRECATED` and added to `DEFAULT_DENY_DEPRECATED`.
After this point, the user must explicitly enable the feature using an
`-allowdeprecated` zcash.conf or CLI parameter in order for the feature to remain
available to them.
- After at least 2 major-version releases, the deprecated feature may be removed entirely.