https://git.schokokeks.org/derivepassphrase.git/tree/590397fc298ed11a6d6cc033beba7e188cc8e78bRecent commits to derivepassphrase.git (590397fc298ed11a6d6cc033beba7e188cc8e78b)2026-08-30T20:18:27+02:00tag:gitlist.org,2012:commit/590397fc298ed11a6d6cc033beba7e188cc8e78bMerge branch 'extract-fakesshagent-sshagentsocketprovider-subprojects'2026-08-30T20:18:27+02:00Marco Riccisoftware@the13thletter.info
<pre>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
</pre>
tag:gitlist.org,2012:commit/11972bb4b1d161d9dc68a02144785a9ea403eef5Release 1.0 of the SSH agent socket API2026-08-30T20:17:57+02:00Marco Riccisoftware@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/91a07da403bba49ad5d98f36ca0dc6a8680483f8Add the SSH agent socket provider API to the documentation2026-08-30T20:05:37+02:00Marco Riccisoftware@the13thletter.info
<pre>...and fix some typos/omissions encountered during preview.
</pre>
tag:gitlist.org,2012:commit/0917c48c7e120853ea0eb8ba7a903da1fd00fe66Build a full example SSH agent socket provider, and integration test it2026-08-30T18:14:44+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/ffed19d11cd8428f4b51aa0fc7c1b86080c77794Apply usability fixes to the SSH agent socket provider API2026-08-30T17:33:11+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/aca20aa6e000ca1c4028228558efa944c6372ef9Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider`2026-08-30T12:26:14+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/f1051c8415f0499cb94fad695712cc88ca19467cExtract the SSH agent socket provider API to a separate PyPI package2026-08-30T10:25:08+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/cdff4526c549d7c63e459349a8adc6cd3eca2b20Fix project metadata errors2026-08-29T23:04:14+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/00a343fa41fb7f5c79fe7764f7da3f8b36e7b9d2Merge branch 'economic-test-suite'2026-08-29T20:32:42+02:00Marco Riccisoftware@the13thletter.info
<pre>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
</pre>
tag:gitlist.org,2012:commit/74e590b1b72b7a6e2594f2d155f787919ada61a0Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent2026-08-29T20:24:09+02:00Marco Riccisoftware@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.
</pre>