-
Notifications
You must be signed in to change notification settings - Fork 393
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Document the existing deprecation policy
We recently renamed `jj util mangen` to `jj install-manpages` without a deprecation warning, as it was missed in the initial PR. Waleed then fixed it in a follow-up, which led to a longer discussion in the Discord which revealed that not everyone was aware of it and _what_ requires a warning based deprecation. This initially categorizes the policy into user-visible UX changes and small impact renames, like for a small usergroup like packagers and third-party dependencies. If we have more hickups with users, this can be expanded.
- Loading branch information
1 parent
4ac970f
commit b6f3c3b
Showing
3 changed files
with
32 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Deprecation Policy | ||
|
||
## User-facing commands and their arguments | ||
|
||
Whenever you rename a command or make a previously optional argument required, | ||
we require that you preserve the old command invocations keeps on working for 6 | ||
months (so 6 releases, since we release monthly) with a deprecation message. | ||
The message should inform the user that the previous workflow is deprecated | ||
and to be removed in the future. | ||
|
||
## Packaging commands and niche commands | ||
|
||
For commands with a niche user audience or something we assume is rarely used | ||
(we sadly have no data), we take the liberity to remove the old behavior within | ||
two releases. This means that you can change the old command to immediately | ||
error. | ||
|
||
## Third-Party dependencies | ||
|
||
For third-party dependencies which previously were used for a core functionality | ||
like `libgit2` was before the `[git.subprocess]` option was added, we're free | ||
to remove most codepaths and move it to a `cargo` feature which we support | ||
up to 6 releases, this is to ease transition for package managers. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters