https://git.schokokeks.org/derivepassphrase.git/tree/4ea247a8c0739e114d44fae84f6baa09ad4ebb5cRecent commits to derivepassphrase.git (4ea247a8c0739e114d44fae84f6baa09ad4ebb5c)2024-09-11T22:13:56+02:00tag:gitlist.org,2012:commit/4ea247a8c0739e114d44fae84f6baa09ad4ebb5cRename the configuration file to be subsystem-specific2024-09-11T22:13:56+02:00Marco Riccim@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.)
</pre>
tag:gitlist.org,2012:commit/2bb00f7a81dad1210b60fb9a6d905ca8d5193655Fix minor typo, formatting and logic errors in tests2024-09-11T21:06:13+02:00Marco Riccim@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.
</pre>
tag:gitlist.org,2012:commit/c83eb5bc68a5fec0db1b37024297ad8b3c4df7eaModularize test helpers to not unnecessarily manipulate config files2024-09-11T21:00:34+02:00Marco Riccim@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.
</pre>
tag:gitlist.org,2012:commit/61f4c67ce11a1dd77b59613e550822d64877c904Reintegrate all functionality as subcommands2024-09-11T12:20:16+02:00Marco Riccim@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.
</pre>
tag:gitlist.org,2012:commit/904187c0453771a0b3e3e36293908c43323f8dc6Merge branch topic 'misc-cleanup' into master2024-09-08T11:11:30+02:00Marco Riccim@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.
</pre>
tag:gitlist.org,2012:commit/e8f3ec854c425cc36565a40adbf00d22a2febeecChange the author e-mail address2024-09-08T11:08:45+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/f76e05eff8a52e7287461c56995b329bc09ffb79Clean up testing machinery (types, helper functions)2024-09-02T01:23:14+02:00Marco Riccim@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`.
</pre>
tag:gitlist.org,2012:commit/abadc0d0b8f8e910d31073a0dfcd8e82509daab6Remove `click` handling of command-line "path" arguments2024-09-01T18:08:20+02:00Marco Riccim@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.
</pre>
tag:gitlist.org,2012:commit/d081a2bc4dc00c67e84bdd90c239e5c814d84a8dAdd man page for `derivepassphrase_export`2024-09-01T16:46:57+02:00Marco Riccim@the13thletter.info
<pre>The help text/docstring was missing a mention of which configuration
formats are supported, which has now been added.
</pre>
tag:gitlist.org,2012:commit/32d3a91a0576b369553422da5c368236cd793a8aStreamline documentation file structure and linking2024-09-01T16:27:34+02:00Marco Riccim@the13thletter.info
<pre>Use the "index page" functionality and the unpruned navigation list from
MkDocs/Material, and use the module autorefs on the documentation overview
page.
</pre>