Marco Ricci commited on 2024-10-15 13:46:21
Zeige 14 geänderte Dateien mit 100 Einfügungen und 119 Löschungen.
| ... | ... |
@@ -1,14 +0,0 @@ |
| 1 |
-### Added |
|
| 2 |
- |
|
| 3 |
- - Update README to add explanations for virtual environments and package |
|
| 4 |
- extras. |
|
| 5 |
- - Update README to demonstrate configuration storing and SSH agent use. |
|
| 6 |
- Include comments on Windows support for SSH agents. |
|
| 7 |
- - Use cross-references in the documentation of function signatures. |
|
| 8 |
- |
|
| 9 |
-### Changed |
|
| 10 |
- |
|
| 11 |
- - Change links to point to public project repositories, if possible. For |
|
| 12 |
- legal reasons. |
|
| 13 |
- - Use the same filename/URL convention for API reference as the Python |
|
| 14 |
- standard library does. |
| ... | ... |
@@ -1,13 +0,0 @@ |
| 1 |
-### Changed |
|
| 2 |
- |
|
| 3 |
- - Rewrite functionality for checking for valid vault(1) configurations: |
|
| 4 |
- include an actual validation function which throws errors upon |
|
| 5 |
- encountering format violations, and which allows specifying which types |
|
| 6 |
- of extensions (unknown settings, `derivepassphrase`-only settings) to |
|
| 7 |
- tolerate during validation. |
|
| 8 |
- |
|
| 9 |
- This is a **breaking API change** because the function return annotation |
|
| 10 |
- changed, from [`typing.TypeGuard`][] to [`typing_extensions.TypeIs`][]. |
|
| 11 |
- These were the originally intended semantics, but when |
|
| 12 |
- `derivepassphrase` was first designed, the Python type system did not |
|
| 13 |
- support this kind of partial type narrowing. |
| ... | ... |
@@ -1,15 +0,0 @@ |
| 1 |
-### Added |
|
| 2 |
- |
|
| 3 |
- - Add proper support for Buffer types in the SSH agent client. Any |
|
| 4 |
- Python object supporting the buffer protocol can be used as input to |
|
| 5 |
- a function of the client, and any output from the client is returned |
|
| 6 |
- as bytes objects. Because of the zero-copy semantics of the |
|
| 7 |
- underlying data/memory block, this should stay relatively time- and |
|
| 8 |
- space-efficient. |
|
| 9 |
- |
|
| 10 |
-### Fixed |
|
| 11 |
- |
|
| 12 |
- - Fixed the textual description of the return value for |
|
| 13 |
- [`SSHAgentClient.request`] |
|
| 14 |
- [derivepassphrase.ssh_agent.SSHAgentClient.request], which didn't |
|
| 15 |
- match the declared type annotation. |
| ... | ... |
@@ -1,9 +0,0 @@ |
| 1 |
-### Changed |
|
| 2 |
- |
|
| 3 |
- - Fail earlier, and more gracefully/specifically, when we cannot talk to |
|
| 4 |
- the SSH agent because Python does not support UNIX domain sockets on |
|
| 5 |
- this system. In particular, this is the current situation on Windows. |
|
| 6 |
- |
|
| 7 |
- This adds another failure case to the `SSHAgentClient` constructor, and |
|
| 8 |
- therefore constitutes a breaking API change. |
|
| 9 |
- |
| ... | ... |
@@ -1,19 +0,0 @@ |
| 1 |
-### Changed |
|
| 2 |
- |
|
| 3 |
- - In `derivepassphrase vault`, accept `key` and `phrase` entries just like |
|
| 4 |
- vault(1) does: `key` always overrides `phrase` in the configuration, no |
|
| 5 |
- matter the level. |
|
| 6 |
- |
|
| 7 |
- This is a command-line only change. |
|
| 8 |
- |
|
| 9 |
- - In `derivepassphrase vault`, when importing settings, accept falsy values |
|
| 10 |
- everywhere `vault` does, with a warning. Depending on the setting, they |
|
| 11 |
- are equivalent to zero, the empty string, or "not set". ([#17]) |
|
| 12 |
- |
|
| 13 |
- This is a command-line only change, and only affects importing. The API |
|
| 14 |
- provides a new function to normalize falsy settings, but still otherwise |
|
| 15 |
- requires settings to be of the correct type. Storing a malformed |
|
| 16 |
- configuration with such falsy values will still generate errors when |
|
| 17 |
- `derivepassphrase vault` loads the settings from disk. |
|
| 18 |
- |
|
| 19 |
-[#17]: https://github.com/the-13th-letter/derivepassphrase/issues/17 |
| ... | ... |
@@ -1,11 +0,0 @@ |
| 1 |
-### Changed |
|
| 2 |
- |
|
| 3 |
- - In `derivepassphrase vault`, when importing configurations, |
|
| 4 |
- correctly merge them with the existing one, same as vault(1): keep |
|
| 5 |
- all named services and their settings (and the global settings if |
|
| 6 |
- applicable) that are not mentioned in the imported configuration. |
|
| 7 |
- The import procedure is thus more akin to a section-wise import of |
|
| 8 |
- the configurations, instead of a "full" import, and the resulting |
|
| 9 |
- configuration generally is a merge of both inputs. ([#16]) |
|
| 10 |
- |
|
| 11 |
-[#16]: https://github.com/the-13th-letter/derivepassphrase/issues/16 |
| ... | ... |
@@ -1,11 +0,0 @@ |
| 1 |
-### Changed |
|
| 2 |
- |
|
| 3 |
- - The following operations or configuration settings now raise warnings: |
|
| 4 |
- |
|
| 5 |
- * in imported configurations: using falsy values of the wrong type |
|
| 6 |
- * in imported configurations: using falsy values with no practical |
|
| 7 |
- effect |
|
| 8 |
- * setting a passphrase in the configuration if a key is already set |
|
| 9 |
- * using an empty service name on the command-line or in an imported |
|
| 10 |
- configuration |
|
| 11 |
- |
| ... | ... |
@@ -30,6 +30,105 @@ effectively constitute a new <q>major</q> release.) |
| 30 | 30 |
|
| 31 | 31 |
<!-- scriv changelog start --> |
| 32 | 32 |
|
| 33 |
+## 0.3.0 (2024-10-15) |
|
| 34 |
+ |
|
| 35 |
+### Added |
|
| 36 |
+ |
|
| 37 |
+ - Convert changelog management from towncrier to [scriv][]. |
|
| 38 |
+ - Add SSH agent spawning support to the test suite. Use this support to |
|
| 39 |
+ test the agent functionality on all known major SSH agent |
|
| 40 |
+ implementations automatically. ([#12]) |
|
| 41 |
+ - Add [hypothesis][]-based tests to the test suite. |
|
| 42 |
+ - Update README to add explanations for virtual environments and package |
|
| 43 |
+ extras. |
|
| 44 |
+ - Update README to demonstrate configuration storing and SSH agent use. |
|
| 45 |
+ Include comments on Windows support for SSH agents. |
|
| 46 |
+ - Use cross-references in the documentation of function signatures. |
|
| 47 |
+ - Add proper support for Buffer types in the SSH agent client. Any |
|
| 48 |
+ Python object supporting the buffer protocol can be used as input to |
|
| 49 |
+ a function of the client, and any output from the client is returned |
|
| 50 |
+ as bytes objects. Because of the zero-copy semantics of the |
|
| 51 |
+ underlying data/memory block, this should stay relatively time- and |
|
| 52 |
+ space-efficient. |
|
| 53 |
+ - Add [hypothesis][]-based tests for serialization to and |
|
| 54 |
+ deserialization from the SSH agent wire format. |
|
| 55 |
+ - Support Python 3.9 and 3.13. |
|
| 56 |
+ |
|
| 57 |
+[#12]: https://github.com/the-13th-letter/derivepassphrase/issues/12 |
|
| 58 |
+[hypothesis]: https://pypi.org/project/hypothesis/ |
|
| 59 |
+[scriv]: https://pypi.org/project/scriv |
|
| 60 |
+ |
|
| 61 |
+### Changed |
|
| 62 |
+ |
|
| 63 |
+ - Change links to point to public project repositories, if possible. For |
|
| 64 |
+ legal reasons. |
|
| 65 |
+ |
|
| 66 |
+ - Use the same filename/URL convention for API reference as the Python |
|
| 67 |
+ standard library does. |
|
| 68 |
+ |
|
| 69 |
+ - Rewrite functionality for checking for valid vault(1) configurations: |
|
| 70 |
+ include an actual validation function which throws errors upon |
|
| 71 |
+ encountering format violations, and which allows specifying which types |
|
| 72 |
+ of extensions (unknown settings, `derivepassphrase`-only settings) to |
|
| 73 |
+ tolerate during validation. |
|
| 74 |
+ |
|
| 75 |
+ This is a **breaking API change** because the function return annotation |
|
| 76 |
+ changed, from [`typing.TypeGuard`][] to [`typing_extensions.TypeIs`][]. |
|
| 77 |
+ These were the originally intended semantics, but when |
|
| 78 |
+ `derivepassphrase` was first designed, the Python type system did not |
|
| 79 |
+ support this kind of partial type narrowing. |
|
| 80 |
+ |
|
| 81 |
+ - Fail earlier, and more gracefully/specifically, when we cannot talk to |
|
| 82 |
+ the SSH agent because Python does not support UNIX domain sockets on |
|
| 83 |
+ this system. In particular, this is the current situation on Windows. |
|
| 84 |
+ |
|
| 85 |
+ This adds another failure case to the `SSHAgentClient` constructor, and |
|
| 86 |
+ therefore constitutes a **breaking API change**. |
|
| 87 |
+ |
|
| 88 |
+ - In `derivepassphrase vault`, accept `key` and `phrase` entries just like |
|
| 89 |
+ vault(1) does: `key` always overrides `phrase` in the configuration, no |
|
| 90 |
+ matter the level. |
|
| 91 |
+ |
|
| 92 |
+ This is a command-line only change. |
|
| 93 |
+ |
|
| 94 |
+ - In `derivepassphrase vault`, when importing settings, accept falsy values |
|
| 95 |
+ everywhere `vault` does, with a warning. Depending on the setting, they |
|
| 96 |
+ are equivalent to zero, the empty string, or "not set". ([#17]) |
|
| 97 |
+ |
|
| 98 |
+ This is a command-line only change, and only affects importing. The API |
|
| 99 |
+ provides a new function to normalize falsy settings, but still otherwise |
|
| 100 |
+ requires settings to be of the correct type. Storing a malformed |
|
| 101 |
+ configuration with such falsy values will still generate errors when |
|
| 102 |
+ `derivepassphrase vault` loads the settings from disk. |
|
| 103 |
+ |
|
| 104 |
+ - In `derivepassphrase vault`, when importing configurations, |
|
| 105 |
+ correctly merge them with the existing one, same as vault(1): keep |
|
| 106 |
+ all named services and their settings (and the global settings if |
|
| 107 |
+ applicable) that are not mentioned in the imported configuration. |
|
| 108 |
+ The import procedure is thus more akin to a section-wise import of |
|
| 109 |
+ the configurations, instead of a "full" import, and the resulting |
|
| 110 |
+ configuration generally is a merge of both inputs. ([#16]) |
|
| 111 |
+ |
|
| 112 |
+ - The following operations or configuration settings now raise |
|
| 113 |
+ warnings: |
|
| 114 |
+ |
|
| 115 |
+ * in imported configurations: using falsy values of the wrong type |
|
| 116 |
+ * in imported configurations: using falsy values with no practical |
|
| 117 |
+ effect |
|
| 118 |
+ * setting a passphrase in the configuration if a key is already |
|
| 119 |
+ set |
|
| 120 |
+ * using an empty service name on the command-line or in an |
|
| 121 |
+ imported configuration |
|
| 122 |
+ |
|
| 123 |
+[#16]: https://github.com/the-13th-letter/derivepassphrase/issues/16 |
|
| 124 |
+[#17]: https://github.com/the-13th-letter/derivepassphrase/issues/17 |
|
| 125 |
+ |
|
| 126 |
+### Fixed |
|
| 127 |
+ |
|
| 128 |
+ - Fixed the textual description of the return value for |
|
| 129 |
+ [`SSHAgentClient.request`][derivepassphrase.ssh_agent.SSHAgentClient.request], |
|
| 130 |
+ which didn't match the declared type annotation. |
|
| 131 |
+ |
|
| 33 | 132 |
## 0.2.0 (2024-09-12) |
| 34 | 133 |
|
| 35 | 134 |
### Added |