Marco Ricci commited on 2025-06-17 22:27:50
Zeige 3 geänderte Dateien mit 44 Einfügungen und 25 Löschungen.
The entry names are very verbose, and cannot be shortened to a number. So use a generic symbol instead: a bug for bugs, a giftbox for wishes. Also add a legend, and slightly adjust the vertical positioning of these icons.
| ... | ... |
@@ -36,6 +36,13 @@ |
| 36 | 36 |
or <b>minor</b>, these are accompanied by corresponding entries |
| 37 | 37 |
of the respective types above. |
| 38 | 38 |
|
| 39 |
+!!! abstract inline end "Legend: symbols" |
|
| 40 |
+ |
|
| 41 |
+ <ul style="list-style-type: none;"> |
|
| 42 |
+ <li>:material-bug: --- a related bug entry from the wishlist page |
|
| 43 |
+ <li>:material-gift: --- a related wishlist entry from the wishlist page |
|
| 44 |
+ </ul> |
|
| 45 |
+ |
|
| 39 | 46 |
<aside markdown><small> |
| 40 | 47 |
(All entries are from the perspective of a user of the program or the API. |
| 41 | 48 |
As an exception, entries partaining to developers of `derivepassphrase` are |
| ... | ... |
@@ -61,7 +68,7 @@ specifically marked as such.) |
| 61 | 68 |
requested or rejected reliably across different terminal programs, we |
| 62 | 69 |
will rather emit only uncolored, unstyled, lowest-common-denominator |
| 63 | 70 |
device-independent output. |
| 64 |
- ([`conventional-configurable-text-styling`][WISH_CONVENTIONAL_CONFIGURABLE_TEXT_STYLING]) |
|
| 71 |
+ →[:material-gift:][WISH_CONVENTIONAL_CONFIGURABLE_TEXT_STYLING] |
|
| 65 | 72 |
|
| 66 | 73 |
### Added {#added-in-v0.5}
|
| 67 | 74 |
|
| ... | ... |
@@ -95,14 +102,14 @@ specifically marked as such.) |
| 95 | 102 |
- For [`derivepassphrase vault`][CLI_VAULT], support printing the service |
| 96 | 103 |
notes before the passphrase, as an alternative, instead of always |
| 97 | 104 |
printing them *after* the passphrase. |
| 98 |
- ([`print-service-notes-above`][WISH_PRINT_SERVICE_NOTES_ABOVE]) |
|
| 105 |
+ →[:material-gift:][WISH_PRINT_SERVICE_NOTES_ABOVE] |
|
| 99 | 106 |
|
| 100 | 107 |
- In the `--version` option of [`derivepassphrase`][CLI] and each |
| 101 | 108 |
subcommand, additionally report build and environment information, such |
| 102 | 109 |
as supported subcommands, derivation schemes, foreign configuration |
| 103 | 110 |
formats and active [PEP 508 extras](https://peps.python.org/pep-0508/). |
| 104 | 111 |
(Each subcommand only reports the items relevant to that subcommand.) |
| 105 |
- ([`report-build-flags-and-features`][WISH_REPORT_BUILD_FLAGS_AND_FEATURES]) |
|
| 112 |
+ →[:material-gift:][WISH_REPORT_BUILD_FLAGS_AND_FEATURES] |
|
| 106 | 113 |
|
| 107 | 114 |
- For developers: Rewrite the tests concerning [`derivepassphrase |
| 108 | 115 |
vault`][CLI_VAULT] and `--notes` usage into [hypothesis][]-based tests |
| ... | ... |
@@ -194,7 +201,7 @@ specifically marked as such.) |
| 194 | 201 |
better built-in query functionality for the effective configuration is |
| 195 | 202 |
available, because users should not be rewarded for meddling around in |
| 196 | 203 |
data files. |
| 197 |
- ([`pretty-print-json`][WISH_PRETTY_PRINT_JSON]) |
|
| 204 |
+ →[:material-gift:][WISH_PRETTY_PRINT_JSON] |
|
| 198 | 205 |
|
| 199 | 206 |
### Fixed {#fixed-in-v0.5}
|
| 200 | 207 |
|
| ... | ... |
@@ -206,16 +213,16 @@ specifically marked as such.) |
| 206 | 213 |
- For [`derivepassphrase vault`][CLI_VAULT], when exporting a vault |
| 207 | 214 |
configuration, export a pretty-printed configuration, to ease debugging |
| 208 | 215 |
and introspection. |
| 209 |
- ([`pretty-print-json`][WISH_PRETTY_PRINT_JSON]) |
|
| 216 |
+ →[:material-gift:][WISH_PRETTY_PRINT_JSON] |
|
| 210 | 217 |
|
| 211 | 218 |
- For [`derivepassphrase vault`][CLI_VAULT], also print the service notes |
| 212 | 219 |
(if any) when deriving a service passphrase, just like <i>vault</i>(1) |
| 213 | 220 |
does. |
| 214 |
- ([`print-service-notes`][BUG_PRINT_SERVICE_NOTES]) |
|
| 221 |
+ →[:material-bug:][BUG_PRINT_SERVICE_NOTES] |
|
| 215 | 222 |
|
| 216 | 223 |
- Lock our internals and their configuration against concurrent |
| 217 | 224 |
modifications. |
| 218 |
- ([`concurrency-audit`][BUG_CONCURRENCY_AUDIT]) |
|
| 225 |
+ →[:material-bug:][BUG_CONCURRENCY_AUDIT] |
|
| 219 | 226 |
|
| 220 | 227 |
- Test against PyPy 3.11. |
| 221 | 228 |
|
| ... | ... |
@@ -245,7 +252,7 @@ specifically marked as such.) |
| 245 | 252 |
the locking system as a whole, when given functioning locking |
| 246 | 253 |
primitives, correctly serializes access to the facilities it is supposed |
| 247 | 254 |
to guard. |
| 248 |
- ([`concurrency-testing-in-test-suite`][BUG_CONCURRENCY_TESTING_IN_TEST_SUITE]) |
|
| 255 |
+ →[:material-bug:][BUG_CONCURRENCY_TESTING_IN_TEST_SUITE] |
|
| 249 | 256 |
|
| 250 | 257 |
## 0.4.0 (2025-01-07) {#v0.4.0}
|
| 251 | 258 |
|
| ... | ... |
@@ -372,13 +379,13 @@ specifically marked as such.) |
| 372 | 379 |
- Add SSH agent spawning support to the test suite. |
| 373 | 380 |
Use this support to test the agent functionality on all known major SSH |
| 374 | 381 |
agent implementations automatically. |
| 375 |
- ([`test-suite-isolated-ssh-agent`][WISH_TEST_SUITE_ISOLATED_SSH_AGENT]) |
|
| 382 |
+ →[:material-gift:][WISH_TEST_SUITE_ISOLATED_SSH_AGENT] |
|
| 376 | 383 |
- Add [hypothesis][]-based tests to the test suite. |
| 377 | 384 |
- Update README to add explanations for virtual environments and package |
| 378 | 385 |
extras. |
| 379 | 386 |
- Update README to demonstrate configuration storing and SSH agent use. |
| 380 | 387 |
Include comments on Windows support for SSH agents. |
| 381 |
- ([`windows-ssh-agent-support`][BUG_WINDOWS_SSH_AGENT_SUPPORT]) |
|
| 388 |
+ →[:material-bug:][BUG_WINDOWS_SSH_AGENT_SUPPORT] |
|
| 382 | 389 |
- Use cross-references in the documentation of function signatures. |
| 383 | 390 |
- Add proper support for Buffer types in the SSH agent client. |
| 384 | 391 |
Any Python object supporting the buffer protocol can be used as input to |
| ... | ... |
@@ -414,8 +421,8 @@ specifically marked as such.) |
| 414 | 421 |
the SSH agent because Python does not support UNIX domain sockets on |
| 415 | 422 |
this system. |
| 416 | 423 |
In particular, this is the current situation on Windows. |
| 417 |
- ([`fail-gracefully-without-af-unix`][BUG_FAIL_GRACEFULLY_WITHOUT_AF_UNIX], |
|
| 418 |
- [`windows-ssh-agent-support`][BUG_WINDOWS_SSH_AGENT_SUPPORT]) |
|
| 424 |
+ →[:material-bug:][BUG_FAIL_GRACEFULLY_WITHOUT_AF_UNIX] |
|
| 425 |
+ [:material-bug:][BUG_WINDOWS_SSH_AGENT_SUPPORT] |
|
| 419 | 426 |
|
| 420 | 427 |
This adds another failure case to the `SSHAgentClient` constructor, and |
| 421 | 428 |
therefore constitutes a **breaking API change**. |
| ... | ... |
@@ -430,7 +437,7 @@ specifically marked as such.) |
| 430 | 437 |
accept falsy values everywhere `vault` does, with a warning. |
| 431 | 438 |
Depending on the setting, they are equivalent to zero, the empty string, |
| 432 | 439 |
or "not set". |
| 433 |
- ([`falsy-vault-config-values`][BUG_FALSY_VAULT_CONFIG_VALUES]) |
|
| 440 |
+ →[:material-bug:][BUG_FALSY_VAULT_CONFIG_VALUES] |
|
| 434 | 441 |
|
| 435 | 442 |
This is a command-line only change, and only affects importing. |
| 436 | 443 |
The API provides a new function to normalize falsy settings, but still |
| ... | ... |
@@ -446,7 +453,7 @@ specifically marked as such.) |
| 446 | 453 |
The import procedure is thus more akin to a section-wise import of |
| 447 | 454 |
the configurations, instead of a "full" import, and the resulting |
| 448 | 455 |
configuration generally is a merge of both inputs. |
| 449 |
- ([`amend-vault-config`][BUG_AMEND_VAULT_CONFIG]) |
|
| 456 |
+ →[:material-bug:][BUG_AMEND_VAULT_CONFIG] |
|
| 450 | 457 |
|
| 451 | 458 |
- The following operations or configuration settings now raise |
| 452 | 459 |
warnings: |
| ... | ... |
@@ -474,7 +481,7 @@ specifically marked as such.) |
| 474 | 481 |
|
| 475 | 482 |
This feature requires the `cryptography` Python module, but is available |
| 476 | 483 |
even if `vault` is not installed. |
| 477 |
- ([`export-vault-formats`][WISH_EXPORT_VAULT_FORMATS]) |
|
| 484 |
+ →[:material-gift:][WISH_EXPORT_VAULT_FORMATS] |
|
| 478 | 485 |
|
| 479 | 486 |
### Fixed {#fixed-in-v0.2.0}
|
| 480 | 487 |
|
| ... | ... |
@@ -489,20 +496,20 @@ specifically marked as such.) |
| 489 | 496 |
Further moved `derivepassphrase.Vault` and |
| 490 | 497 |
`derivepassphrase.AmbiguousByteRepresentation` into a new submodule |
| 491 | 498 |
`vault`, and renamed submodule `ssh_agent_client` to `ssh_agent`. |
| 492 |
- ([`single-toplevel-module`][BUG_SINGLE_TOPLEVEL_MODULE]) |
|
| 499 |
+ →[:material-bug:][BUG_SINGLE_TOPLEVEL_MODULE] |
|
| 493 | 500 |
- Changed internal error handling and error messages, to better work in |
| 494 | 501 |
the context of a command-line tool. |
| 495 |
- ([`better-error-messages`][BUG_BETTER_ERROR_MESSAGES]) |
|
| 502 |
+ →[:material-bug:][BUG_BETTER_ERROR_MESSAGES] |
|
| 496 | 503 |
- Combine and consolidate `derivepassphrase.types` and |
| 497 | 504 |
`derivepassphrase.ssh_agent.types` into a new submodule |
| 498 | 505 |
`derivepassphrase._types`. |
| 499 | 506 |
Despite the name, the module is public. |
| 500 |
- ([`no-stdlib-module-names`][BUG_NO_STDLIB_MODULE_NAMES]) |
|
| 507 |
+ →[:material-bug:][BUG_NO_STDLIB_MODULE_NAMES] |
|
| 501 | 508 |
- Warn the user when entering (directly, or via configuration |
| 502 | 509 |
editing/importing) a passphrase that is not in the configured Unicode |
| 503 | 510 |
normalization form. |
| 504 | 511 |
(But don't otherwise reject any textual master passphrases.) |
| 505 |
- ([`allow-all-unicode-passphrases`][BUG_ALLOW_ALL_UNICODE_PASSPHRASES]) |
|
| 512 |
+ →[:material-bug:][BUG_ALLOW_ALL_UNICODE_PASSPHRASES] |
|
| 506 | 513 |
- Move all existing functionality into a subcommand, in anticipation of |
| 507 | 514 |
other passphrase derivation schemes, with different settings. |
| 508 | 515 |
Automatically forward calls without a subcommand to the "vault" |
| ... | ... |
@@ -512,12 +519,12 @@ specifically marked as such.) |
| 512 | 519 |
instead of globally. |
| 513 | 520 |
Automatically fall back to, and migrate, the old global settings file if |
| 514 | 521 |
no subsystem-specific configuration was found. |
| 515 |
- ([`other-derivation-schemes`][WISH_OTHER_DERIVATION_SCHEMES], |
|
| 516 |
- [`scheme-specific-cli-and-config`][WISH_SCHEME_SPECIFIC_CLI_AND_CONFIG]) |
|
| 522 |
+ →[:material-gift:][WISH_OTHER_DERIVATION_SCHEMES] |
|
| 523 |
+ [:material-gift:][WISH_SCHEME_SPECIFIC_CLI_AND_CONFIG] |
|
| 517 | 524 |
|
| 518 | 525 |
- Make `derivepassphrase_export` a subcommand: [`derivepassphrase |
| 519 | 526 |
export`][CLI_EXPORT]. |
| 520 |
- ([`exporter-script-as-subcommand`][WISH_EXPORTER_SCRIPT_AS_SUBCOMMAND]) |
|
| 527 |
+ →[:material-gift:][WISH_EXPORTER_SCRIPT_AS_SUBCOMMAND] |
|
| 521 | 528 |
|
| 522 | 529 |
### Deprecated {#deprecated-in-v0.2.0}
|
| 523 | 530 |
|
| ... | ... |
@@ -531,14 +538,14 @@ specifically marked as such.) |
| 531 | 538 |
|
| 532 | 539 |
- Do not crash upon selecting a key on the command-line if there already |
| 533 | 540 |
is a key stored in the configuration. |
| 534 |
- ([`one-time-key-override-fails`][BUG_ONE_TIME_KEY_OVERRIDE_FAILS]) |
|
| 541 |
+ →[:material-bug:][BUG_ONE_TIME_KEY_OVERRIDE_FAILS] |
|
| 535 | 542 |
- Create the configuration directory upon saving, if it does not yet |
| 536 | 543 |
exist. |
| 537 |
- ([`configuration-directory-must-exist`][BUG_CONFIGURATION_DIRECTORY_MUST_EXIST]) |
|
| 544 |
+ →[:material-bug:][BUG_CONFIGURATION_DIRECTORY_MUST_EXIST] |
|
| 538 | 545 |
- Isolate the tests properly and consistently from the user's |
| 539 | 546 |
configuration, so that user configuration problems do not cause |
| 540 | 547 |
unrelated test failures. |
| 541 |
- ([`test-filesystem-isolation`][BUG_TEST_FILESYSTEM_ISOLATION]) |
|
| 548 |
+ →[:material-bug:][BUG_TEST_FILESYSTEM_ISOLATION] |
|
| 542 | 549 |
- Add an alternate MkDocs configuration for building the documentation in |
| 543 | 550 |
offline mode. |
| 544 | 551 |
- Fix typing issues according to `mypy`'s strict mode. |
| ... | ... |
@@ -32,3 +32,12 @@ a.fixed {
|
| 32 | 32 |
font-style: normal; |
| 33 | 33 |
text-decoration: line-through; |
| 34 | 34 |
} |
| 35 |
+ |
|
| 36 |
+.md-typeset div.admonition.abstract .emojione, |
|
| 37 |
+.md-typeset div.admonition.abstract .gemoji, |
|
| 38 |
+.md-typeset div.admonition.abstract .twemoji, |
|
| 39 |
+.md-typeset a[href^="wishlist/"] .emojione, |
|
| 40 |
+.md-typeset a[href^="wishlist/"] .gemoji, |
|
| 41 |
+.md-typeset a[href^="wishlist/"] .twemoji {
|
|
| 42 |
+ vertical-align: middle; |
|
| 43 |
+} |
| ... | ... |
@@ -143,6 +143,9 @@ markdown_extensions: |
| 143 | 143 |
permalink: true |
| 144 | 144 |
- pymdownx.caret |
| 145 | 145 |
- pymdownx.details |
| 146 |
+ - pymdownx.emoji: |
|
| 147 |
+ emoji_index: !!python/name:material.extensions.emoji.twemoji |
|
| 148 |
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg |
|
| 146 | 149 |
- pymdownx.snippets: |
| 147 | 150 |
base_path: |
| 148 | 151 |
- 'docs' |
| 149 | 152 |