https://git.schokokeks.org/derivepassphrase.git/tree/ac34e6c40a56671408768c19c0cd41eadde9bfc3Recent commits to derivepassphrase.git (ac34e6c40a56671408768c19c0cd41eadde9bfc3)2026-08-29T18:45:38+02:00tag:gitlist.org,2012:commit/ac34e6c40a56671408768c19c0cd41eadde9bfc3Fix typing and linting errors after tool upgrade2026-08-29T18:45:38+02:00Marco Riccisoftware@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/5276e72ac685e9dac43372dee273f0f5d384738cUpdate hatch use to "hatch check", and ruff to >= 0.16.02026-08-29T18:35:09+02:00Marco Riccisoftware@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.
</pre>
tag:gitlist.org,2012:commit/677616ff0f82e91293ae0a14dafa10dbffebceabFix minor mistakes in old changelog entries2026-08-29T18:03:13+02:00Marco Riccisoftware@the13thletter.info
<pre> - The `"correctness"/"regression" split` phrase does not break
properly in the browser when used with quotes. The browser appears
to have trouble finding the word boundaries in this case.
- The entry for the introduction of SSH agent socket providers
mentions that an Annoying OS-specific provider is yet to be written,
even though two entries further down, that same socket provider is
being introduced.
</pre>
tag:gitlist.org,2012:commit/94ad2e5b3e6a2a82fc136d8f5c101126cee90aa2Document recent test suite changes in the changelog2026-08-29T18:01:11+02:00Marco Riccisoftware@the13thletter.info
<pre> - Mention the "import unavailable" simulation, and the resulting
reduction in test configurations.
- Mention that Python 3.15 is now supported (and tested).
</pre>
tag:gitlist.org,2012:commit/27d47606610d2a44be4ebb3c7e6721aac35c25ceUpdate compatibility info for Python 3.152026-08-29T17:32:01+02:00Marco Riccisoftware@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/25d4b90f83405a030224b2f52cb0951c76e75ef6Repair the --version output test for derivepassphrase export vault2026-08-23T17:23:09+02:00Marco Riccisoftware@the13thletter.info
<pre>The test was no longer triggering the fallback behavior for when the
"export" extra/the "cryptography" library was not available. Partially,
this was because we now need to parametrize this test for both cases,
but forgot to do so. Partially, this was *also* because querying the
installed version of "cryptography" needs to be separately mocked,
beyond just blocking the import.
</pre>
tag:gitlist.org,2012:commit/caddac1d8b253aa4cb561016904bc26dfb3cc3c2Officially support and test on Python 3.152026-08-23T14:58:43+02:00Marco Riccisoftware@the13thletter.info
<pre>Currently at release candidate 1.
</pre>
tag:gitlist.org,2012:commit/9897a0ee0a6a8093813ec4b797811c9058fa4c8cFix hypothesis dependency on PyPy 3.9 and PyPy 3.102026-08-23T12:56:29+02:00Marco Riccisoftware@the13thletter.info
<pre>Because `hypothesis` requires a Rust toolchain for building 6.156 and
higher, and because this is not installable on PyPy 3.10 and lower, pin
`hypothesis` to 6.155.* and lower on PyPy 3.9 and 3.10.
This was already broken for quite some time, but cropped up again after
redoing the virtualenvs in commit
4fbfed4a4de887bd35f295863ea7548989024bf7.
</pre>
tag:gitlist.org,2012:commit/4fbfed4a4de887bd35f295863ea7548989024bf7Always test the "no cryptography support" scenario, shrinking the test matrix2026-08-23T12:44:07+02:00Marco Riccisoftware@the13thletter.info
<pre>Even when the `cryptography` library is available, we test the fallback
behavior of `derivepassphrase export vault` by inhibiting the loading of
`cryptography`. As a result, we no longer need a separate testing
environment for the "no cryptography support" case, and can therefore
halve the number of configurations in our testing matrix. We also no
longer need some associated configuration and helper objects.
In hindsight, I cannot believe I never tried to do a web search on how
to inhibit loading of a module in Python, and rather assumed that just
because pytest does not prominently offer a dedicated top-level function
or a dedicated `monkeypatch` method, that this is not supported. But
seeing the underlying documentation for `importlib.import_module` and
the documentation of how `sys.modules[...] = None` affects the module
resolution, it becomes immediately obvious that this can be handled with
monkeypatching, and does not need a separate virtualenv.
</pre>
tag:gitlist.org,2012:commit/88fbfda029bfec81cf8190c000b1e539017c008cSet the Python path correctly during pytest invocation, round two2026-08-23T12:24:05+02:00Marco Riccisoftware@the13thletter.info
<pre>In commit 0bf24eb16ec698d7759657cb810385ec7388f74c, we added the current
directory explicitly to pytest's `pythonpath` configuration to avoid
failing tests. Further analysis revealed that the culprit was the
multiprocessing module with the `spawn` method, which needs to re-import
the module it is called from (and other helper code from the
`tests.data` and `tests.machinery` submodules), but is not compatible
with some ways of modifying Python's module search path before module
loading.
According to my search results, the common way of dealing with this
problem is instead to add the `tests` path to `pythonpath`, instead of
the parent directory. Furthermore, it is unnecessary to explicitly add
the `src` directory to `pythonpath`, as the virtualenv in which the
tests run already has `derivepassphrase` installed. So we can reduce
the `pythonpath` to only `tests`, and add an appropriate comment as to
why this entry specifically is needed.
We also add comments to the entries in `testpaths`, because it may not
be immediately obvious that the `src` entry is needed for the doctests.
</pre>