https://git.schokokeks.org/derivepassphrase.git/tree/91a07da403bba49ad5d98f36ca0dc6a8680483f8 Recent commits to derivepassphrase.git (91a07da403bba49ad5d98f36ca0dc6a8680483f8) 2026-08-30T20:05:37+02:00 tag:gitlist.org,2012:commit/91a07da403bba49ad5d98f36ca0dc6a8680483f8 Add the SSH agent socket provider API to the documentation 2026-08-30T20:05:37+02:00 Marco Ricci software@the13thletter.info <pre>...and fix some typos/omissions encountered during preview. &lt;/pre&gt; tag:gitlist.org,2012:commit/0917c48c7e120853ea0eb8ba7a903da1fd00fe66 Build a full example SSH agent socket provider, and integration test it 2026-08-30T18:14:44+02:00 Marco Ricci software@the13thletter.info <pre>There is a three-part example project for how to write an SSH agent socket provider; the project is a full-fledged Python package in its own right. (One of the three variants is also presented in the README.) There is also a single integration test in the SSH agent socket provider API package that verifies that this example project can be installed (into an isolated virtual environment), and that it correctly exposes the three SSH agent socket providers. Preparing this example package alone and getting the test to pass has already uncovered several misconfigurations and misspecifications in both the API package and the example package. We also set up a separate, reduced pytest configuration for the SSH agent socket provider API package, because otherwise pytest determines the wrong root directory, and the example project package files cannot be correctly installed. We explicitly mention that we currently do not measure coverage, because the test runs inside a temporary virtual environment (which coverage measurement would have to account for, both when measuring and when looking up configuration) and because there are currently no code branches in the API package, so the coverage information is uninteresting if we already know the example project was installable. &lt;/pre&gt; tag:gitlist.org,2012:commit/ffed19d11cd8428f4b51aa0fc7c1b86080c77794 Apply usability fixes to the SSH agent socket provider API 2026-08-30T17:33:11+02:00 Marco Ricci software@the13thletter.info <pre>The API definition actually requires the `typing-extensions` package, but we forgot to declare that in `pyproject.toml`. While it likely makes no typing difference, it is much better for runtime checks to have `SSHAgentSocketProvider` be a runtime-checkable protocol, instead of a string-valued type alias. Among other things, `isinstance(provider, SSHAgentSocketProvider)` fails if a string-valued type alias is used. &lt;/pre&gt; tag:gitlist.org,2012:commit/aca20aa6e000ca1c4028228558efa944c6372ef9 Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider` 2026-08-30T12:26:14+02:00 Marco Ricci software@the13thletter.info <pre>Change all references to the SSH agent socket and socket provider types to the `derivepassphrase-sshagentsocketprovider` package. Include `derivepassphrase-sshagentsocketprovider` in the dependencies. &lt;/pre&gt; tag:gitlist.org,2012:commit/f1051c8415f0499cb94fad695712cc88ca19467c Extract the SSH agent socket provider API to a separate PyPI package 2026-08-30T10:25:08+02:00 Marco Ricci software@the13thletter.info <pre>A new Python package `derivepassphrase-sshagentsocketprovider` contains the API definition and types necessary to write SSH agent socket providers, without depending on the rest of `derivepassphrase`. Because this is so intricately tied to `derivepassphrase`, the new package does not set up a separate repository, separate documentation or a separate wishlist. The tests directory is functionally empty, because there is nothing to test, from a unit test/code coverage perspective. The README merely contains a short usage example. &lt;/pre&gt; tag:gitlist.org,2012:commit/cdff4526c549d7c63e459349a8adc6cd3eca2b20 Fix project metadata errors 2026-08-29T23:04:14+02:00 Marco Ricci software@the13thletter.info <pre> - Correct trove classifiers and license specification in `pyproject.toml`. Remove outdated hatch configuration too. - Fix the copyright date in the license text. &lt;/pre&gt; tag:gitlist.org,2012:commit/74e590b1b72b7a6e2594f2d155f787919ada61a0 Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent 2026-08-29T20:24:09+02:00 Marco Ricci software@the13thletter.info <pre>`fakesshagent` is the name of the planned package into which our stubbed SSH agent will be extracted, and which `derivepassphrase` will depend on in the future. If we can load the stubbed SSH agent from that package, then deactivate our own stub agent, do not register it, and provide compatibility links for the rest of the test suite. We also mark it as conditionally not covered, using two new provisional coverage pragmas. &lt;/pre&gt; tag:gitlist.org,2012:commit/986509a3106caaec52888c75820b2406eee266c4 Restructure testing data and testing machinery tests for better coverage 2026-08-29T19:17:34+02:00 Marco Ricci software@the13thletter.info <pre>We restructure `tests.data.SUPPORTED_KEYS` and `tests.data.UNSUPPORTED_KEYS`, introducing a third category `tests.data.CONDITIONALLY_SUPPORTED_KEYS` that contains the DSA-class entries from the `UNSUPPORTED_KEYS` table, which are suitable for use with vault if the agent supports deterministic DSA signatures. We then test the stub SSH agent's sign operation against these conditionally supported keys as well, for the "with deterministic DSA" variant of the stub agent. This improves code coverage, because although such code paths were previously already exercised in other tests of the test suite, with this change, the `test_000_testing_machinery` module alone is sufficient to achieve full code coverage on the stub SSH agent, in all three variations. Since we plan to extract the stub SSH agent from derivepassphrase's test suite, the `test_000_testing_machinery` module alone contains all the necessary code to test the extracted stub SSH agent (and its test keys). &lt;/pre&gt; tag:gitlist.org,2012:commit/ac34e6c40a56671408768c19c0cd41eadde9bfc3 Fix typing and linting errors after tool upgrade 2026-08-29T18:45:38+02:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/5276e72ac685e9dac43372dee273f0f5d384738c Update hatch use to "hatch check", and ruff to >= 0.16.0 2026-08-29T18:35:09+02:00 Marco Ricci software@the13thletter.info <pre>As part of the ruff upgrade, the hatch configuration uses rule names now instead of rule codes. The code still uses the rule codes, because these are currently the only non-tool-specific notation available. &lt;/pre&gt;