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 |