https://git.schokokeks.org/derivepassphrase.git/tree/eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e Recent commits to derivepassphrase.git (eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e) 2024-09-12T13:15:04+02:00 tag:gitlist.org,2012:commit/eecea3e9d87d0d6ef1f57b553c5d6bcaeb7df01e Add changelog entries for subcommand/config subsystem migration 2024-09-12T13:15:04+02:00 Marco Ricci m@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/4ea247a8c0739e114d44fae84f6baa09ad4ebb5c Rename the configuration file to be subsystem-specific 2024-09-11T22:13:56+02:00 Marco Ricci m@the13thletter.info <pre>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.) &lt;/pre&gt; tag:gitlist.org,2012:commit/2bb00f7a81dad1210b60fb9a6d905ca8d5193655 Fix minor typo, formatting and logic errors in tests 2024-09-11T21:06:13+02:00 Marco Ricci m@the13thletter.info <pre>Fix the test `test_230b_store_config_custom_error` to actually test a custom error. Also expand GitHub issue references with the full URL. &lt;/pre&gt; tag:gitlist.org,2012:commit/c83eb5bc68a5fec0db1b37024297ad8b3c4df7ea Modularize test helpers to not unnecessarily manipulate config files 2024-09-11T21:00:34+02:00 Marco Ricci m@the13thletter.info <pre>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. &lt;/pre&gt; tag:gitlist.org,2012:commit/61f4c67ce11a1dd77b59613e550822d64877c904 Reintegrate all functionality as subcommands 2024-09-11T12:20:16+02:00 Marco Ricci m@the13thletter.info <pre>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. &lt;/pre&gt; tag:gitlist.org,2012:commit/904187c0453771a0b3e3e36293908c43323f8dc6 Merge branch topic 'misc-cleanup' into master 2024-09-08T11:11:30+02:00 Marco Ricci m@the13thletter.info <pre>* 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. &lt;/pre&gt; tag:gitlist.org,2012:commit/e8f3ec854c425cc36565a40adbf00d22a2febeec Change the author e-mail address 2024-09-08T11:08:45+02:00 Marco Ricci m@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/f76e05eff8a52e7287461c56995b329bc09ffb79 Clean up testing machinery (types, helper functions) 2024-09-02T01:23:14+02:00 Marco Ricci m@the13thletter.info <pre>- 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`. &lt;/pre&gt; tag:gitlist.org,2012:commit/abadc0d0b8f8e910d31073a0dfcd8e82509daab6 Remove `click` handling of command-line "path" arguments 2024-09-01T18:08:20+02:00 Marco Ricci m@the13thletter.info <pre>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. &lt;/pre&gt; tag:gitlist.org,2012:commit/d081a2bc4dc00c67e84bdd90c239e5c814d84a8d Add man page for `derivepassphrase_export` 2024-09-01T16:46:57+02:00 Marco Ricci m@the13thletter.info <pre>The help text/docstring was missing a mention of which configuration formats are supported, which has now been added. &lt;/pre&gt;