https://git.schokokeks.org/derivepassphrase.git/tree/ef40e2a2624047f1b02e87716f17d8569dc94bfbRecent commits to derivepassphrase.git (ef40e2a2624047f1b02e87716f17d8569dc94bfb)2024-09-01T11:17:19+02:00tag:gitlist.org,2012:commit/ef40e2a2624047f1b02e87716f17d8569dc94bfbMerge topic branch 'clean-up-and-update-tool-configuration' into master2024-09-01T11:17:19+02:00Marco Riccim@the13thletter.info
<pre>* t/clean-up-and-update-tool-configuration:
Upgrade ruff to 0.6, and redo configuration and rule selection
Undo single-child hatch environment inheritance
Specify project dependencies more clearly and explicitly
Sort sections in pyproject.toml
</pre>
tag:gitlist.org,2012:commit/aacd09bdcbdb01df7cb819396727d2427636b144Merge topic branch 'issue9-allow-all-unicode-passphrases' into master2024-09-01T11:08:47+02:00Marco Riccim@the13thletter.info
<pre>* t/issue9-allow-all-unicode-passphrases:
Allow all textual strings, but warn on unnormalized ones
GitHub: Closes #9.
</pre>
tag:gitlist.org,2012:commit/b4d8439fa4207b665ad8ea2217f21f807f603734Merge topic branch 'issue1-vault-config-exporter' into master2024-09-01T11:06:43+02:00Marco Riccim@the13thletter.info
<pre>* t/issue1-vault-config-exporter:
Fix formatting and linting issues in exporter tests
Add Changelog entry for the vault exporter
Rename vault v0.2/v0.3 classes, and fix API weirdnesses and test coverage
Add more tests of the storeroom format exporter's internals
Test exporter data loading functionality more robustly
Move exporter command-line interface into a separate module
Add preliminary tests for the exporter
Add command-line interface to the exporter
Move vault key and path detection logic into the exporter module
Add prototype for "vault v0.2/v0.3"-type data export
Support exports from outside the current directory
Add dependency on cryptography for the exporter
Add an actual storeroom exporter, not just a reader
Add docstrings and better variable names on storeroom exporter
Add example for "storeroom"-type data export
Add prototype for "storeroom"-type data export
GitHub: Closes #1.
</pre>
tag:gitlist.org,2012:commit/fb6913b190365893f3d5e83225a496c9061c6e54Fix formatting and linting issues in exporter tests2024-09-01T11:05:14+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/e109f3ac7c5c09b89816405e3ebc9dd195685024Upgrade ruff to 0.6, and redo configuration and rule selection2024-09-01T10:22:13+02:00Marco Riccim@the13thletter.info
<pre>hatch currently still defaults to ruff 0.4.5, which includes some
now-deprecated rules and lacks some others. Furthermore, hatch's
default configuration for ruff is very opinionated and not explained
anywhere. Upgrading the ruleset to 0.6 still incurs the overhead of
having to look at every single new ruff rule, determining whether it
fits the hatch configuration, and allowing it. This is a similar amount
of effort to enabling all of ruffs rules and deciding, based on the
flagged violations, whether a rule or rule category is worth keeping.
This has now been implemented: almost all rules are now selected, and
the exceptions are documented in the project settings. (ruff actually
includes documentation on linting rules that tend to get violated if
ruff is also used for reformatting.) hatch is configured to use ruff
0.6 and this user configuration, ignoring its own default ruff
configuration. Some further ruff settings are necessary, e.g. adapting
the default copyright text template to match hatch's copyright text
template, as is one new mypy setting (the "ignore-without-code" error).
Note: the new ruleset has not actually been applied to the codebase yet,
because the effect would be spread out across the codebase, and we
expect multiple topic branches to be merged soon.
</pre>
tag:gitlist.org,2012:commit/94068756e896574a397b4717388b02ed661a22a9Allow all textual strings, but warn on unnormalized ones2024-09-01T00:32:49+02:00Marco Riccim@the13thletter.info
<pre>Remove the "check if Unicode string has unambiguous byte encoding"
misfeature, which is based on an incorrect understanding of Unicode
normalization forms. Also remove the `AmbiguousByteRepresentationError`
class. Now we allow all textual strings as master passphrases.
When storing a (master) passphrase to the configuration or when
interactively generating a passphrase, we emit a warning if we detect
that the master passphrase is not normalized (with the configured
normalization form, stored in `.global.unicode_normalization_form`).
</pre>
tag:gitlist.org,2012:commit/5022fff219bf1bc30988d3070e564ad058f0d5c4Add Changelog entry for the vault exporter2024-08-31T22:09:41+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/0169d5fbbb766fef119548e8b07cd0e2bcd43ac6Rename vault v0.2/v0.3 classes, and fix API weirdnesses and test coverage2024-08-31T21:26:49+02:00Marco Riccim@the13thletter.info
<pre>The `Reader` classes are now named `VaultNativeConfigParser`, because
`Reader` is a very non-descript name. The interface is now somewhat more
pythonic, and uses fewer internal branches. Further tests of the
internals have been added, so the module has 100% test coverage.
</pre>
tag:gitlist.org,2012:commit/349f20ebdbc4c3bd4e4fc9e8454dc10b5d081396Add more tests of the storeroom format exporter's internals2024-08-31T21:24:29+02:00Marco Riccim@the13thletter.info
<pre>Further tests are necessary to achieve 100% coverage, but these concern
the detection of format errors, so the test files are rather hard to
generate.
</pre>
tag:gitlist.org,2012:commit/fa6125de4455fb187db8888e510400e9e9820b3bTest exporter data loading functionality more robustly2024-08-31T21:04:32+02:00Marco Riccim@the13thletter.info
<pre>Move the `_load_data` function, which deals with determining the correct
vault storage format (with automatic rollover) into the top level, where
the function can be tested in isolation, and stubbed out if necessary.
Also, use the environments with disabled cryptography support to test
for correct failure behavior of the exporter. Use
`importlib.util.find_spec` instead of an `import` statement to check for
importability of a module, which does not require handling of
`ModuleNotFoundError` if restricted to top-level modules/packages.
</pre>