Recent commits to derivepassphrase.git (590397fc298ed11a6d6cc033beba7e188cc8e78b) https://git.schokokeks.org/derivepassphrase.git/tree/590397fc298ed11a6d6cc033beba7e188cc8e78b Recent commits feed provided by GitList. Merge branch 'extract-fakesshagent-sshagentsocketprovider-subprojects' This work-in-progress topic branch extracts the stubbed SSH agent from the test suite into a separate Python package. While currently specific to the test suite, packaging it as a separate package will allow it to evolve into a more featureful SSH agent in its own right, perhaps even outside of Python-only usage. At the moment, only the SSH agent socket provider API has been extracted, which is a necessary first step to eliminate reverse dependencies of the stubbed SSH agent on `derivepassphrase`. Both `derivepassphrase` and the future stubbed SSH agent package can then depend on the API, instead of depending directly on each other. The API package contains three example socket providers, and an integration test asserting that these three examples actually correctly register. The `derivepassphrase` test suite currently also attempts to load the stubbed SSH agent from the `fakesshagent` package (the intended name for the extracted stubbed SSH agent package), and if successful, then it deactivates its own versions in the test suite, aliasing the `fakesshagent` versions for compatibility. * extract-fakesshagent-sshagentsocketprovider-subprojects: Release 1.0 of the SSH agent socket API Add the SSH agent socket provider API to the documentation Build a full example SSH agent socket provider, and integration test it Apply usability fixes to the SSH agent socket provider API Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider` Extract the SSH agent socket provider API to a separate PyPI package Fix project metadata errors Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent Restructure testing data and testing machinery tests for better coverage https://git.schokokeks.org/derivepassphrase.git/commit/590397fc298ed11a6d6cc033beba7e188cc8e78b software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 20:18:27 +0200 590397fc298ed11a6d6cc033beba7e188cc8e78b Release 1.0 of the SSH agent socket API https://git.schokokeks.org/derivepassphrase.git/commit/11972bb4b1d161d9dc68a02144785a9ea403eef5 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 20:17:57 +0200 11972bb4b1d161d9dc68a02144785a9ea403eef5 Add the SSH agent socket provider API to the documentation ...and fix some typos/omissions encountered during preview. https://git.schokokeks.org/derivepassphrase.git/commit/91a07da403bba49ad5d98f36ca0dc6a8680483f8 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 20:05:37 +0200 91a07da403bba49ad5d98f36ca0dc6a8680483f8 Build a full example SSH agent socket provider, and integration test it 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. https://git.schokokeks.org/derivepassphrase.git/commit/0917c48c7e120853ea0eb8ba7a903da1fd00fe66 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 18:14:44 +0200 0917c48c7e120853ea0eb8ba7a903da1fd00fe66 Apply usability fixes to the SSH agent socket provider API 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. https://git.schokokeks.org/derivepassphrase.git/commit/ffed19d11cd8428f4b51aa0fc7c1b86080c77794 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 17:33:11 +0200 ffed19d11cd8428f4b51aa0fc7c1b86080c77794 Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider` Change all references to the SSH agent socket and socket provider types to the `derivepassphrase-sshagentsocketprovider` package. Include `derivepassphrase-sshagentsocketprovider` in the dependencies. https://git.schokokeks.org/derivepassphrase.git/commit/aca20aa6e000ca1c4028228558efa944c6372ef9 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 12:26:14 +0200 aca20aa6e000ca1c4028228558efa944c6372ef9 Extract the SSH agent socket provider API to a separate PyPI package 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. https://git.schokokeks.org/derivepassphrase.git/commit/f1051c8415f0499cb94fad695712cc88ca19467c software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 10:25:08 +0200 f1051c8415f0499cb94fad695712cc88ca19467c Fix project metadata errors - Correct trove classifiers and license specification in `pyproject.toml`. Remove outdated hatch configuration too. - Fix the copyright date in the license text. https://git.schokokeks.org/derivepassphrase.git/commit/cdff4526c549d7c63e459349a8adc6cd3eca2b20 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 23:04:14 +0200 cdff4526c549d7c63e459349a8adc6cd3eca2b20 Merge branch 'economic-test-suite' This pull request fixes further issues with the documentation, the project metadata and the project tooling, discovered while working on further improving the economics of the test suite. * economic-test-suite: Fix typing and linting errors after tool upgrade Update hatch use to "hatch check", and ruff to >= 0.16.0 Fix minor mistakes in old changelog entries Document recent test suite changes in the changelog Update compatibility info for Python 3.15 https://git.schokokeks.org/derivepassphrase.git/commit/00a343fa41fb7f5c79fe7764f7da3f8b36e7b9d2 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 20:32:42 +0200 00a343fa41fb7f5c79fe7764f7da3f8b36e7b9d2 Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent `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. https://git.schokokeks.org/derivepassphrase.git/commit/74e590b1b72b7a6e2594f2d155f787919ada61a0 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 20:24:09 +0200 74e590b1b72b7a6e2594f2d155f787919ada61a0