https://git.schokokeks.org/derivepassphrase.git/tree/e109f3ac7c5c09b89816405e3ebc9dd195685024Recent commits to derivepassphrase.git (e109f3ac7c5c09b89816405e3ebc9dd195685024)2024-09-01T10:22:13+02:00tag: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/54ea8d4777b561872a1005acc87ddc98002b688cUndo single-child hatch environment inheritance2024-08-24T14:45:41+02:00Marco Riccim@the13thletter.info
<pre>The "types" and "hatch-static-analysis" hatch environments, which were
supposed to both inherit from a common base environment, behave somewhat
differently: the former needs dependent packages installed (so
`extra-dependencies = [..., "pytest", ...]`, `skip-install = false` and
perhaps even `features = [...]`), while the latter doesn't
(`skip-install = true`, `extra-dependencies` and `features` are empty).
Of course, neither tool needs the other installed either. As such,
there is very little content left for an actual common base environment.
So, fold all settings from the base environment into the "types"
environment, and remove the base environment and the inheritance.
</pre>
tag:gitlist.org,2012:commit/85e34a89c821ee87ab6a9986e21e8001f732c52fSpecify project dependencies more clearly and explicitly2024-08-17T01:09:23+02:00Marco Riccim@the13thletter.info
<pre>Use proper syntax for dependency version specification (spaces, and
compatible release operator). If sensible, add a comment as to why we
have this dependency, and why at that version. Furthermore, for hatch
environments, make use of environment inheritance, and move the
dependencies to the correct environments instead of collecting them all
in the "dev" extra.
</pre>
tag:gitlist.org,2012:commit/00d96a60b5550f588d29f6eaaee3fc9c21e75094Sort sections in pyproject.toml2024-08-17T00:52:02+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/e662c2e71c50e57f465fdeb8efb403ed77147e8cMerge topic branch 'issue4-improve-common-error-messages' into master2024-08-16T17:12:56+02:00Marco Riccim@the13thletter.info
<pre>* t/issue4-improve-common-error-messages:
Add Changelog entry for error message/handling revision
Add missing tests for reworked error message handling
Fix error message capitalization
Fix error bubbling in outdated test
Add a specific error class and codes for SSH agent failures
Document and handle other errors passed through to the command-line interface
Use better error message handling in the command-line interface
GitHub: Closes #4.
</pre>
tag:gitlist.org,2012:commit/0cec4ae52c864d9f772897fef0e069761d6adf1dAdd Changelog entry for error message/handling revision2024-08-16T17:12:38+02:00Marco Riccim@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/a128400376d1f51845e8e75b32281a870fb354a7Add missing tests for reworked error message handling2024-08-16T16:31:24+02:00Marco Riccim@the13thletter.info
<pre>Add missing tests for the revised error messages/classes and error
handling code due to a1763e8b5dedbf123856a79ddb0e8395cddd6f88 and
5c6045e10ca9c8b56432711dec5efb98b5892d55.
</pre>
tag:gitlist.org,2012:commit/c9e62dd6c58a3b4c627dd5d6dda0b4c4d4ec1330Fix error message capitalization2024-08-16T16:21:45+02:00Marco Riccim@the13thletter.info
<pre>We still use error messages with non-sentence case at multiple places,
particularly messages like "no valid SSH key selected".
</pre>
tag:gitlist.org,2012:commit/f08cd0300661ac562d049604ee81214ced8aad91Fix error bubbling in outdated test2024-08-16T16:19:56+02:00Marco Riccim@the13thletter.info
<pre>In
`tests.test_derivepassphrase_cli:test_230a_config_directory_not_a_file`,
we assumed that a `FileExistsError` while storing the configuration file
would bubble all the way up to the test harness. This isn't the case
anymore, because of a1763e8b5dedbf123856a79ddb0e8395cddd6f88 and
5c6045e10ca9c8b56432711dec5efb98b5892d55... but we actually forgot to
update the call to use the new wrapper from
5c6045e10ca9c8b56432711dec5efb98b5892d55.
</pre>
tag:gitlist.org,2012:commit/4eb85f64c8f18a55eb83c3909322a78b11ba6c87Add a specific error class and codes for SSH agent failures2024-08-16T13:27:20+02:00Marco Riccim@the13thletter.info
<pre>Add the generic `SSH_AGENT_FAILURE` and `SSH_AGENT_SUCCESS` status codes
(as `_types.SSH_AGENT.FAILURE` and `_types.SSH_AGENT.SUCCESS`,
respectively), and add an `SSHAgentFailedError` class to signal error
returns from the SSH agent. The error class may emit a specific or
a generic error message, depending on the status code and error message
passed.
Rewrite the tests to use actual failure status codes, instead of random
magic numbers. Rewrite it further to deal with the `_types.SSH_AGENT`
enum instead of numeric codes. This also makes the tests more readable.
</pre>