Recent commits to derivepassphrase.git (da6c33a82ed2fbc47fc30d549dbee06663a1c428) https://git.schokokeks.org/derivepassphrase.git/tree/da6c33a82ed2fbc47fc30d549dbee06663a1c428 Recent commits feed provided by GitList. Fix missing context in CANNOT_UNDERSTAND_AGENT translatable string https://git.schokokeks.org/derivepassphrase.git/commit/da6c33a82ed2fbc47fc30d549dbee06663a1c428 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 19:52:31 +0100 da6c33a82ed2fbc47fc30d549dbee06663a1c428 Fix phrasing of "Cannot update %s settings" message The "Cannot update the global/service settings without actual settings" messages contained "global" and "service" as (English) format string parameters, and the actual translatable string contained no indication what this placeholder actually meant. This is of course a horrible way to request a translation for those two messages. We now include translatable strings for each of the two possible values of the metavar ("global settings" and "service-specific settings"), and proper translation advice for the metavar value and the original translatable strings. The manpages have been updated as well, to reflect the slight change in phrasing of the message. https://git.schokokeks.org/derivepassphrase.git/commit/1b29904d789be7742119bfa06ce11aa5b7ffb6f9 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 19:46:51 +0100 1b29904d789be7742119bfa06ce11aa5b7ffb6f9 Move manpages into separate directory to avoid name clashes This doesn't occur with offline documentation builds with `.html` extensions, but *does* occur if using directories and `index.html` files. Sigh. https://git.schokokeks.org/derivepassphrase.git/commit/05a21ba2ec995ffe82c74ef7c0137792646bce0e software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 15:50:41 +0100 05a21ba2ec995ffe82c74ef7c0137792646bce0e Release 0.4.0 https://git.schokokeks.org/derivepassphrase.git/commit/3f51a70db23503a3b23243d7b7c8a59a529da038 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 15:43:35 +0100 3f51a70db23503a3b23243d7b7c8a59a529da038 Merge topic branch '2025-and-zlib-license' into master Note that this includes a change in the license for `derivepassphrase`. * t/2025-and-zlib-license: Add changelog entry, and FAQ for "altered versions" marking Update copyright notices to 2025, and license to zlib/libpng https://git.schokokeks.org/derivepassphrase.git/commit/bc5c69ba7b7181bbe656c4bb874f5bfa84233a2b software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 15:36:12 +0100 bc5c69ba7b7181bbe656c4bb874f5bfa84233a2b Add changelog entry, and FAQ for "altered versions" marking https://git.schokokeks.org/derivepassphrase.git/commit/7796b3987c0772c5c857a3f3e683d3e9d49d4c77 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 15:35:45 +0100 7796b3987c0772c5c857a3f3e683d3e9d49d4c77 Update copyright notices to 2025, and license to zlib/libpng The MIT license was originally suggested by the package manager, for compatibility with the broader ecosystem. This surely makes sense for software libraries, and for projects in general if you don't have a strong stance on free/libre open source software licensing (beyond copyleft vs. non-copyleft). For `derivepassphrase`, I respectfully disagree; my priorities in development and maintenance lie primarily with ensuring quality software, and not having bugs attributed to me that I did not cause. The zlib/libpng license fulfills this need much better than the MIT license, and has similar license compatibility with other FLOSS licenses. Thus the license change. https://git.schokokeks.org/derivepassphrase.git/commit/8b97a77413294c159b92b5cbc12b0074a154b88b software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 15:01:51 +0100 8b97a77413294c159b92b5cbc12b0074a154b88b Merge topic branch 'shell-completion' into master * t/shell-completion: Consolidate shell completion, add tests and fix Zsh output https://git.schokokeks.org/derivepassphrase.git/commit/7dfd4d76178c721b0fece0bc2eeb0cff85ae90cb software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 12:53:27 +0100 7dfd4d76178c721b0fece0bc2eeb0cff85ae90cb Consolidate shell completion, add tests and fix Zsh output We move the shell completion code in `derivepassphrase/cli.py` to a new section and retire the specific handling of `VAULT_PATH` for the two path completion functions. Having actually tried this out interactively in Bash, it does not work that well if we complete filenames, partial filenames, and fixed strings in the same completion function: you would have to set conflicting completion options for this function. It *also* does not work at all with `click`'s stock Bash completion script, which would then discard either the fixed strings and partial filenames or the complete filenames, depending on the order they are emitted in by our shell completion code. So abandon the completion handling of `VAULT_PATH` in favor of standard filename completion, for paths. Every supported shell has further limitations on which inputs it can properly deserialize: Bash strips NUL characters from command substitutions, and Fish (v3) breaks in most situations involving newlines. Furthermore, the stock shell completion scripts add their own additional limitations: all shells use newline-terminated messages, so embedded newlines in the completion item (type, value, help text) cause (generally silent) parsing failures; and the Zsh completion functions in particular parse completions as "name:description" pairs, and thus need colons in the name to be escaped. We fix the colon handling of the Zsh completion script by providing a fixed serialization handler for Zsh. We avoid all of the other aforementioned issues by not returning any service names containing ASCII control characters as completion items. We also warn the user upon importing or configuring such a service that its service name will not be available for shell completion. Finally, we document this new warning in the manpage and the completion behavior in the changelog, and add tests for (the Python side of) the completion machinery, dependent on the current serialization format. References: [fish-shell#10874](https://github.com/fish-shell/fish-shell/issues/10874), [fish-shell#9693](https://github.com/fish-shell/fish-shell/issues/9693), [fish-shell#751](https://github.com/fish-shell/fish-shell/issues/751), [fish-shell#10651](https://github.com/fish-shell/fish-shell/issues/10651), [fish-shell#9847](https://github.com/fish-shell/fish-shell/issues/9847), [click#2703](https://github.com/pallets/click/issues/2703). https://git.schokokeks.org/derivepassphrase.git/commit/bba4bd075ab5e1d6a6a76d90b129ad0d58425b96 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 12:10:27 +0100 bba4bd075ab5e1d6a6a76d90b129ad0d58425b96 Merge topic branch 'usage-fixes' into master * t/usage-fixes: Consolidate and slightly simplify some warning message emittances Add tests for help and version options, and color forcing Fix check of empty service name for `derivepassphrase vault` https://git.schokokeks.org/derivepassphrase.git/commit/672943aac976f3272c72a1d5e5608b1e3c4fd183 software@the13thletter.info (Marco Ricci) Tue, 07 Jan 2025 11:13:37 +0100 672943aac976f3272c72a1d5e5608b1e3c4fd183