Recent commits to derivepassphrase.git (eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e) https://git.schokokeks.org/derivepassphrase.git/tree/eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e Recent commits feed provided by GitList. Add changelog entries for subcommand/config subsystem migration https://git.schokokeks.org/derivepassphrase.git/commit/eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e m@the13thletter.info (Marco Ricci) Thu, 12 Sep 2024 13:15:04 +0200 eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e Rename the configuration file to be subsystem-specific In preparation for multiple passphrase derivation schemes with separate settings, use multiple configuration files for each part of the application ("subsystem"). The only currently established subsystem is "vault", using `vault.json`, and the existing configuration effectively corresponds to a "settings" subsystem. Until v1.0 is released, fall back to `settings.json` if `vault.json` does not exist. (But include a deprecation warning, and attempt to migrate to the new filename automatically.) https://git.schokokeks.org/derivepassphrase.git/commit/4ea247a8c0739e114d44fae84f6baa09ad4ebb5c m@the13thletter.info (Marco Ricci) Wed, 11 Sep 2024 22:13:56 +0200 4ea247a8c0739e114d44fae84f6baa09ad4ebb5c Fix minor typo, formatting and logic errors in tests Fix the test `test_230b_store_config_custom_error` to actually test a custom error. Also expand GitHub issue references with the full URL. https://git.schokokeks.org/derivepassphrase.git/commit/2bb00f7a81dad1210b60fb9a6d905ca8d5193655 m@the13thletter.info (Marco Ricci) Wed, 11 Sep 2024 21:06:13 +0200 2bb00f7a81dad1210b60fb9a6d905ca8d5193655 Modularize test helpers to not unnecessarily manipulate config files Rename the `isolated_config` to `isolated_vault_config`, which sets the `derivepassphrase vault` configuration files, and avoid config file manipulation in "vanilla" `isolated_config`. Update tests to use `isolated_config` where feasible. https://git.schokokeks.org/derivepassphrase.git/commit/c83eb5bc68a5fec0db1b37024297ad8b3c4df7ea m@the13thletter.info (Marco Ricci) Wed, 11 Sep 2024 21:00:34 +0200 c83eb5bc68a5fec0db1b37024297ad8b3c4df7ea Reintegrate all functionality as subcommands Move the existing main functionality into a `derivepassphrase vault` subcommand, and the existing exporter functionality into a `derivepassphrase export vault` subcommand, in preparation of supporting other schemes besides vault. Install proxy command-line interfaces that emit deprecation warnings and forward the call to the subcommands. (Some explanation and warning texts were relocated appropriately.) The exporter is no longer a separate command, but rather a subcommand `export`. The `derivepassphrase.exporter.cli` module has been folded into the `derivepassphrase.cli` module. Documentation and tests have been updated to match. The documentation in particular now strictly uses the one-line synopsis from the command's docstring. https://git.schokokeks.org/derivepassphrase.git/commit/61f4c67ce11a1dd77b59613e550822d64877c904 m@the13thletter.info (Marco Ricci) Wed, 11 Sep 2024 12:20:16 +0200 61f4c67ce11a1dd77b59613e550822d64877c904 Merge branch topic 'misc-cleanup' into master * t/misc-cleanup: Change the author e-mail address Clean up testing machinery (types, helper functions) Remove `click` handling of command-line "path" arguments Add man page for `derivepassphrase_export` Streamline documentation file structure and linking Add exporter modules to the documentation Add vault_native exporter function and module docstrings Rename `vault_v03_and_below` submodule to `vault_native` Support text string services names in Vault internal API Fix the docstring of the vault native v0.2 exporter class Rename `derivepassphrase.vault` test file to match naming convention Apply new ruff ruleset to code base. https://git.schokokeks.org/derivepassphrase.git/commit/904187c0453771a0b3e3e36293908c43323f8dc6 m@the13thletter.info (Marco Ricci) Sun, 08 Sep 2024 11:11:30 +0200 904187c0453771a0b3e3e36293908c43323f8dc6 Change the author e-mail address https://git.schokokeks.org/derivepassphrase.git/commit/e8f3ec854c425cc36565a40adbf00d22a2febeec m@the13thletter.info (Marco Ricci) Sun, 08 Sep 2024 11:08:45 +0200 e8f3ec854c425cc36565a40adbf00d22a2febeec Clean up testing machinery (types, helper functions) - Submit all input to, and read all output from, `click`-based command-line interfaces via the textual streams. This includes the `.stdout`/`.output` and `.stderr` properties of a test runner result, and the input to the command-line call. - Write a new `typing.NamedTuple`-based interface for collecting the test runner result in a readable fashion, because the `click.testing.Result` `repr` output is really unhelpful. This also allows to define a higher-level API to check whether a `click` application ran successfully, with certain expected output, or whether it ran unsuccessfully, with certain expected error output. - Annotate all pytest `monkeypatch` fixtures as `pytest.MonkeyPatch`. https://git.schokokeks.org/derivepassphrase.git/commit/f76e05eff8a52e7287461c56995b329bc09ffb79 m@the13thletter.info (Marco Ricci) Mon, 02 Sep 2024 01:23:14 +0200 f76e05eff8a52e7287461c56995b329bc09ffb79 Remove `click` handling of command-line "path" arguments Stop using the `click` facilities to run checks on command-line arguments or option values that are to be treated as paths; treat them like normal strings instead. `click`'s path checking functionality misdiagnoses its own failure cases, is racy, and does not document its own raciness. Instead, use `click`'s `open_file` function to handle the standard streams (an actual useful feature), and use bog-standard operating system calls for everything else. As an added bonus, this makes writing unit tests much easier, because we no longer have to work around `click`'s functionality and can use simpler counterexamples/failure cases. This change was originally prompted by a silently failing test, which did not test the expected error message because it was subject to translation, so `click` could silently sidestep the whole code under test. We now test for the operating system-provided error message directly, via standard operating system facilities that are integrated into the translation/locale system. https://git.schokokeks.org/derivepassphrase.git/commit/abadc0d0b8f8e910d31073a0dfcd8e82509daab6 m@the13thletter.info (Marco Ricci) Sun, 01 Sep 2024 18:08:20 +0200 abadc0d0b8f8e910d31073a0dfcd8e82509daab6 Add man page for `derivepassphrase_export` The help text/docstring was missing a mention of which configuration formats are supported, which has now been added. https://git.schokokeks.org/derivepassphrase.git/commit/d081a2bc4dc00c67e84bdd90c239e5c814d84a8d m@the13thletter.info (Marco Ricci) Sun, 01 Sep 2024 16:46:57 +0200 d081a2bc4dc00c67e84bdd90c239e5c814d84a8d