https://git.schokokeks.org/derivepassphrase.git/tree/bb88253ddbdc2db185778934c3c0b3bbc91b4555 Recent commits to derivepassphrase.git (bb88253ddbdc2db185778934c3c0b3bbc91b4555) 2025-01-31T15:20:21+01:00 tag:gitlist.org,2012:commit/bb88253ddbdc2db185778934c3c0b3bbc91b4555 Add static analysis and testing dependencies to "dev" extra 2025-01-31T15:20:21+01:00 Marco Ricci software@the13thletter.info <pre>This also enables the static analysis environment to directly use the "dev" extra instead of re-declaring all dependencies. (Sadly, the testing environment needs manual re-declaration, because `cryptography` is a transitive dependency of `hatch`, but the test suite needs to test the "no cryptography support" scenario too.) &lt;/pre&gt; tag:gitlist.org,2012:commit/b6d98c77f7f78abacb69b4aa3acd896008a848d6 Remove type annotations from enum value definitions 2025-01-31T15:18:20+01:00 Marco Ricci software@the13thletter.info <pre>Apparently type checkers have always internally assigned new Literal types to those enum names, and are now also instructed to flag explicit type annotations as errors. For Griffe/mkdocstrings-python, this means we'll need to fill the attribute table manually. *sigh* &lt;/pre&gt; tag:gitlist.org,2012:commit/e974c931a62fc5e8adc9b08b30f80085668a2f9d Fix formatting nitpicks from ruff 2025-01-31T15:03:58+01:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/ef4c911e26342d47bb672e580d5922dcd436ba9f Document general changes to the test suite since 0.4.0 2025-01-31T15:00:24+01:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/966cc7d3d7fbc5fef406629f304f9d018b22eb57 Document change in testing setup 2025-01-31T14:54:53+01:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/7e9e0e24feaedfe8465a080e2bfee991bbbb6a40 Adjust hypothesis deadlines globally and redo the profiles and slowdown factors 2025-01-31T14:43:03+01:00 Marco Ricci software@the13thletter.info <pre>Previously, we would define a "worst-case" hypothesis profile for use under instrumentation (coverage measurement), and decorate every hypothesis test which we experienced to have deadline problems with this decorator. This step was manual, and very error-prone when generating new hypothesis tests. Conceptually, it also indicated that adjusted deadlines applied for some tests, but not for others, even though the deadline adjustment is actually a side-effect of global instrumentation. We therefore now adopt a global solution, where the pytest configuration file detects which coverage instrumentation (if any) is running, and adjusts the default hypothesis settings appropriately. The decorator is removed. In the course of this, we re-evaluated the profiles and the slowdown factors, instead of assuming the worst-case instrumentation. hypothesis also defines a "ci" profile for use in continuous integration, together with some commentary on how this profile is expected to be used. We cede this profile name to hypothesis (and remove it from our testing matrix in hatch), and define our own "intense" profile for high-volume hypothesis testing based on the "ci" profile, to be invoked manually as a "pre-release" (or perhaps "nightly") run. Finally, because the test suite now is rather slow in sequential use, we add `--dist=worksteal` to the test options to better distribute load during parallel testing. We choose this over other more "balanced" strategies because our single-test runtimes wildly fluctuate thanks to hypothesis, so work stealing appears to be the most reliable distribution heuristic for us. &lt;/pre&gt; tag:gitlist.org,2012:commit/af0cd7e9e4b0c823bf1385d6942ef7ba44f53649 Merge topic branch 'split-cli-module' into master 2025-01-29T22:30:02+01:00 Marco Ricci software@the13thletter.info <pre>* t/split-cli-module: Document the trimming of the `cli` module in the changelog Split off cli_helpers and cli_machinery internal modules Move CLI messages module into a new `_internals` subpackage &lt;/pre&gt; tag:gitlist.org,2012:commit/aa0968564bd32aff89877e91cea4da237998aeae Document the trimming of the `cli` module in the changelog 2025-01-29T22:29:01+01:00 Marco Ricci software@the13thletter.info <pre>&lt;/pre&gt; tag:gitlist.org,2012:commit/623f749ed8245822f7b00520bd4096d008673685 Split off cli_helpers and cli_machinery internal modules 2025-01-29T22:23:26+01:00 Marco Ricci software@the13thletter.info <pre>Split off the `logging` and `click` support code (the "machinery") and the command-specific helper functions (the "helpers") into separate modules under `derivepassphrase._internals`. Change all functions, classes and attributes within those new modules to be public with respect to the module, since the module itself is already non-public. Also document all previously undocumented classes and functions: `cli_helpers.ORIGIN`, `cli_helpers.check_for_misleading_passphrase`, `cli_helpers.key_to_phrase` and `cli_helpers.print_config_as_sh_script`. Add a better default value (`cli_helpers.default_error_callback`) for the `error_callback` parameter of `cli_helpers.key_to_phrase`, and document that too. Finally, since the shell completion parts are now split across two modules, add an explicit TODO to the `cli_machinery.ZshComplete` class to add context. &lt;/pre&gt; tag:gitlist.org,2012:commit/733aeec69f03e5b8cfa025ee381dce10902f821c Move CLI messages module into a new `_internals` subpackage 2025-01-29T20:34:40+01:00 Marco Ricci software@the13thletter.info <pre>Also adjust the headings in the development build of the documentation to clearly mark internal documentation as internal. (The absolute imports within the CLI messages module make the move itself relatively painless: only the callers need to be adjusted to the new path.) &lt;/pre&gt;