Recent commits to derivepassphrase.git (f08cd0300661ac562d049604ee81214ced8aad91) https://git.schokokeks.org/derivepassphrase.git/tree/f08cd0300661ac562d049604ee81214ced8aad91 Recent commits feed provided by GitList. Fix error bubbling in outdated test 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. https://git.schokokeks.org/derivepassphrase.git/commit/f08cd0300661ac562d049604ee81214ced8aad91 m@the13thletter.info (Marco Ricci) Fri, 16 Aug 2024 16:19:56 +0200 f08cd0300661ac562d049604ee81214ced8aad91 Add a specific error class and codes for SSH agent failures 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. https://git.schokokeks.org/derivepassphrase.git/commit/4eb85f64c8f18a55eb83c3909322a78b11ba6c87 m@the13thletter.info (Marco Ricci) Fri, 16 Aug 2024 13:27:20 +0200 4eb85f64c8f18a55eb83c3909322a78b11ba6c87 Document and handle other errors passed through to the command-line interface These errors have already been passed through, but they were neither documented nor explicitly handled in the command-line interface with an appropriate error message. https://git.schokokeks.org/derivepassphrase.git/commit/5c6045e10ca9c8b56432711dec5efb98b5892d55 m@the13thletter.info (Marco Ricci) Fri, 16 Aug 2024 12:48:10 +0200 5c6045e10ca9c8b56432711dec5efb98b5892d55 Use better error message handling in the command-line interface Instead of blindly relying on `click.Context.fail`, which causes a usage message to be printed, implement our own error-exit function. Furthermore, since writing the configuration file is prone to similar problems as reading it, include a wrapper for writing the configuration file as well, which ensures errors are properly reported. Due to the rewrite, some error messages changed slightly in phrasing and/or in capitalization. https://git.schokokeks.org/derivepassphrase.git/commit/a1763e8b5dedbf123856a79ddb0e8395cddd6f88 m@the13thletter.info (Marco Ricci) Fri, 16 Aug 2024 12:38:08 +0200 a1763e8b5dedbf123856a79ddb0e8395cddd6f88 Merge topic branch 'restructure-package' into master * t/restructure-package: Prune empty subpackages `sequin` and `ssh_agent` Update documentation to use new module names Annotate settings and selections in pyproject.toml Consolidate `types` submodules into combined `_types` submodule Move `sequin` and `ssh_agent_client` submodules below `derivepassphrase` GitHub: Closes #3, closes #7. https://git.schokokeks.org/derivepassphrase.git/commit/c4a57f311710768cb18df717a73fd48a8a3077fe m@the13thletter.info (Marco Ricci) Sat, 03 Aug 2024 21:53:16 +0200 c4a57f311710768cb18df717a73fd48a8a3077fe Prune empty subpackages `sequin` and `ssh_agent` Turn them back into normal submodules of `derivepassphrase`, instead of subpackages. https://git.schokokeks.org/derivepassphrase.git/commit/47bb89d239a12296502a28079ff71b17a3b7079c m@the13thletter.info (Marco Ricci) Sat, 03 Aug 2024 21:49:33 +0200 47bb89d239a12296502a28079ff71b17a3b7079c Update documentation to use new module names Let the documentation reflect the moving and splitting of modules in 26973402aac5d216a66ae3fc8f2d7bcb0fd7ea89. The filenames are still mostly the same, to keep links alive where possible. Because the module list is now more tree-like than list-like, yet still very small as a whole, abandon the table format in favor of a hierarchy of (Markdown/HTML) lists. https://git.schokokeks.org/derivepassphrase.git/commit/4f6950f50ec0762fa2f9f378739379b71f23ac11 m@the13thletter.info (Marco Ricci) Sat, 03 Aug 2024 21:48:58 +0200 4f6950f50ec0762fa2f9f378739379b71f23ac11 Annotate settings and selections in pyproject.toml Annotate all extra dependencies or configuration choices that I may otherwise forget the reasoning for in the long run. https://git.schokokeks.org/derivepassphrase.git/commit/4c743695b4dd6e60507cbc47001664b9bd31a59e m@the13thletter.info (Marco Ricci) Sun, 28 Jul 2024 22:44:39 +0200 4c743695b4dd6e60507cbc47001664b9bd31a59e Consolidate `types` submodules into combined `_types` submodule Merge the submodules `types` and `ssh_agent.types` into a new submodule `_types`. This naming avoids a clash with the standard library, which in turn causes bizarre import errors when other code tries to import and then introspect the parent modules. Due to the new and shorter naming, some module or package imports have been rephrased, which causes deceivingly large-looking formatting changes. https://git.schokokeks.org/derivepassphrase.git/commit/8c9ca812be07a78de272aad82c08251cbaae5164 m@the13thletter.info (Marco Ricci) Sun, 28 Jul 2024 22:26:40 +0200 8c9ca812be07a78de272aad82c08251cbaae5164 Move `sequin` and `ssh_agent_client` submodules below `derivepassphrase` These modules were already strongly coupled to `derivepassphrase`, and prone to namespace collisions (particularly `ssh_agent_client`). Furthermore, maintaining the author and version information in three top-level modules is error-prone. A direct inclusion of `sequin` and `ssh_agent_client` revealed a circular import, so the bulk of `derivepassphrase` was delegated to a new submodule `derivepassphrase.vault`. This also yields a cleaner import graph. Also, because the shorter name makes more sense in this context, rename `derivepassphrase.ssh_agent_client` to `derivepassphrase.ssh_agent`. The two `types` submodules are not yet consolidated. https://git.schokokeks.org/derivepassphrase.git/commit/26973402aac5d216a66ae3fc8f2d7bcb0fd7ea89 m@the13thletter.info (Marco Ricci) Sun, 28 Jul 2024 21:32:08 +0200 26973402aac5d216a66ae3fc8f2d7bcb0fd7ea89