You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/release_notes.rst
+67-64Lines changed: 67 additions & 64 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,27 +3,50 @@ Release Notes
3
3
4
4
.. towncrier release notes start
5
5
6
+
py-libp2p v0.2.6 (2025-05-12)
7
+
-----------------------------
8
+
9
+
Improved Documentation
10
+
~~~~~~~~~~~~~~~~~~~~~~
11
+
12
+
- Expand the Introduction section in the documentation with a detailed overview of Py-libp2p. (`#560 <https://github.com/libp2p/py-libp2p/issues/560>`__)
13
+
14
+
15
+
Features
16
+
~~~~~~~~
17
+
18
+
- Added identify-push protocol implementation and examples to demonstrate how peers can proactively push their identity information to other peers when it changes. (`#552 <https://github.com/libp2p/py-libp2p/issues/552>`__)
- Bumps dependency to ``protobuf>=6.30.1``. (`#576 <https://github.com/libp2p/py-libp2p/issues/576>`__)
26
+
- Removes old interop tests, creates placeholders for new ones, and turns on interop testing in CI. (`#588 <https://github.com/libp2p/py-libp2p/issues/588>`__)
27
+
28
+
6
29
py-libp2p v0.2.5 (2025-04-14)
7
30
-----------------------------
8
31
9
32
Bugfixes
10
33
~~~~~~~~
11
34
12
-
- Fixed flaky test_simple_last_seen_cache by adding a retry loop for reliable expiry detection across platforms. (`#558 <https://github.com/ethereum/py-libp2p/issues/558>`__)
35
+
- Fixed flaky test_simple_last_seen_cache by adding a retry loop for reliable expiry detection across platforms. (`#558 <https://github.com/libp2p/py-libp2p/issues/558>`__)
13
36
14
37
15
38
Improved Documentation
16
39
~~~~~~~~~~~~~~~~~~~~~~
17
40
18
-
- Added install and getting started documentation. (`#559 <https://github.com/ethereum/py-libp2p/issues/559>`__)
41
+
- Added install and getting started documentation. (`#559 <https://github.com/libp2p/py-libp2p/issues/559>`__)
19
42
20
43
21
44
Features
22
45
~~~~~~~~
23
46
24
-
- Added a ``pub-sub`` example having ``gossipsub`` as the router to demonstrate how to use the pub-sub module in py-libp2p. (`#515 <https://github.com/ethereum/py-libp2p/issues/515>`__)
25
-
- Added documentation on how to add examples to the libp2p package. (`#550 <https://github.com/ethereum/py-libp2p/issues/550>`__)
26
-
- Added Windows-specific development setup instructions to `docs/contributing.rst`. (`#559 <https://github.com/ethereum/py-libp2p/issues/559>`__)
47
+
- Added a ``pub-sub`` example having ``gossipsub`` as the router to demonstrate how to use the pub-sub module in py-libp2p. (`#515 <https://github.com/libp2p/py-libp2p/issues/515>`__)
48
+
- Added documentation on how to add examples to the libp2p package. (`#550 <https://github.com/libp2p/py-libp2p/issues/550>`__)
49
+
- Added Windows-specific development setup instructions to `docs/contributing.rst`. (`#559 <https://github.com/libp2p/py-libp2p/issues/559>`__)
27
50
28
51
29
52
py-libp2p v0.2.4 (2025-03-27)
@@ -32,7 +55,7 @@ py-libp2p v0.2.4 (2025-03-27)
32
55
Bugfixes
33
56
~~~~~~~~
34
57
35
-
- Added Windows compatibility by using coincurve instead of fastecdsa on Windows platforms (`#507 <https://github.com/ethereum/py-libp2p/issues/507>`__)
58
+
- Added Windows compatibility by using coincurve instead of fastecdsa on Windows platforms (`#507 <https://github.com/libp2p/py-libp2p/issues/507>`__)
36
59
37
60
38
61
py-libp2p v0.2.3 (2025-03-27)
@@ -41,36 +64,36 @@ py-libp2p v0.2.3 (2025-03-27)
41
64
Bugfixes
42
65
~~~~~~~~
43
66
44
-
- Fixed import path in the examples to use updated `net_stream` module path, resolving ModuleNotFoundError when running the examples. (`#513 <https://github.com/ethereum/py-libp2p/issues/513>`__)
67
+
- Fixed import path in the examples to use updated `net_stream` module path, resolving ModuleNotFoundError when running the examples. (`#513 <https://github.com/libp2p/py-libp2p/issues/513>`__)
45
68
46
69
47
70
Improved Documentation
48
71
~~~~~~~~~~~~~~~~~~~~~~
49
72
50
-
- Updates ``Feature Breakdown`` in ``README`` to more closely match the list of standard modules. (`#498 <https://github.com/ethereum/py-libp2p/issues/498>`__)
51
-
- Adds detailed Sphinx-style docstrings to ``abc.py``. (`#535 <https://github.com/ethereum/py-libp2p/issues/535>`__)
73
+
- Updates ``Feature Breakdown`` in ``README`` to more closely match the list of standard modules. (`#498 <https://github.com/libp2p/py-libp2p/issues/498>`__)
74
+
- Adds detailed Sphinx-style docstrings to ``abc.py``. (`#535 <https://github.com/libp2p/py-libp2p/issues/535>`__)
52
75
53
76
54
77
Features
55
78
~~~~~~~~
56
79
57
-
- Improved the implementation of the identify protocol and enhanced test coverage to ensure proper functionality and network layer address delegation. (`#358 <https://github.com/ethereum/py-libp2p/issues/358>`__)
58
-
- Adds the ability to check connection status of a peer in the peerstore. (`#420 <https://github.com/ethereum/py-libp2p/issues/420>`__)
59
-
- implemented ``timed_cache`` module which will allow to implement ``seen_ttl`` configurable param for pubsub and protocols extending it. (`#518 <https://github.com/ethereum/py-libp2p/issues/518>`__)
80
+
- Improved the implementation of the identify protocol and enhanced test coverage to ensure proper functionality and network layer address delegation. (`#358 <https://github.com/libp2p/py-libp2p/issues/358>`__)
81
+
- Adds the ability to check connection status of a peer in the peerstore. (`#420 <https://github.com/libp2p/py-libp2p/issues/420>`__)
82
+
- implemented ``timed_cache`` module which will allow to implement ``seen_ttl`` configurable param for pubsub and protocols extending it. (`#518 <https://github.com/libp2p/py-libp2p/issues/518>`__)
60
83
- Added a maximum RSA key size limit of 4096 bits to prevent resource exhaustion attacks.Consolidated validation logic to use a single error message source and
- Added automated testing of ``demo`` applications as part of CI to prevent demos from breaking silently. Tests are located in `tests/core/examples/test_examples.py`. (`#524 <https://github.com/ethereum/py-libp2p/issues/524>`__)
63
-
- Added an example implementation of the identify protocol to demonstrate its usage and help users understand how to properly integrate it into their libp2p applications. (`#536 <https://github.com/ethereum/py-libp2p/issues/536>`__)
- Added automated testing of ``demo`` applications as part of CI to prevent demos from breaking silently. Tests are located in `tests/core/examples/test_examples.py`. (`#524 <https://github.com/libp2p/py-libp2p/issues/524>`__)
86
+
- Added an example implementation of the identify protocol to demonstrate its usage and help users understand how to properly integrate it into their libp2p applications. (`#536 <https://github.com/libp2p/py-libp2p/issues/536>`__)
64
87
65
88
66
89
Internal Changes - for py-libp2p Contributors
67
90
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68
91
69
-
- moved all interfaces to ``libp2p.abc`` along with all libp2p custom types to ``libp2p.custom_types``. (`#228 <https://github.com/ethereum/py-libp2p/issues/228>`__)
70
-
- moved ``libp2p/tools/factories`` to ``tests``. (`#503 <https://github.com/ethereum/py-libp2p/issues/503>`__)
71
-
- Fixes broken CI lint run, bumps ``pre-commit-hooks`` version to ``5.0.0`` and ``mdformat`` to ``0.7.22``. (`#522 <https://github.com/ethereum/py-libp2p/issues/522>`__)
72
-
- Rebuilds protobufs with ``protoc v30.1``. (`#542 <https://github.com/ethereum/py-libp2p/issues/542>`__)
73
-
- Moves ``pubsub`` testing tools from ``libp2p.tools`` and ``factories`` from ``tests`` to ``tests.utils``. (`#543 <https://github.com/ethereum/py-libp2p/issues/543>`__)
92
+
- moved all interfaces to ``libp2p.abc`` along with all libp2p custom types to ``libp2p.custom_types``. (`#228 <https://github.com/libp2p/py-libp2p/issues/228>`__)
93
+
- moved ``libp2p/tools/factories`` to ``tests``. (`#503 <https://github.com/libp2p/py-libp2p/issues/503>`__)
94
+
- Fixes broken CI lint run, bumps ``pre-commit-hooks`` version to ``5.0.0`` and ``mdformat`` to ``0.7.22``. (`#522 <https://github.com/libp2p/py-libp2p/issues/522>`__)
95
+
- Rebuilds protobufs with ``protoc v30.1``. (`#542 <https://github.com/libp2p/py-libp2p/issues/542>`__)
96
+
- Moves ``pubsub`` testing tools from ``libp2p.tools`` and ``factories`` from ``tests`` to ``tests.utils``. (`#543 <https://github.com/libp2p/py-libp2p/issues/543>`__)
- - This fix issue #492 adding a missing break statement that lowers GIL usage from 99% to 0%-2%. (`#492 <https://github.com/ethereum/py-libp2p/issues/492>`__)
105
+
- - This fix issue #492 adding a missing break statement that lowers GIL usage from 99% to 0%-2%. (`#492 <https://github.com/libp2p/py-libp2p/issues/492>`__)
83
106
84
107
85
108
Features
86
109
~~~~~~~~
87
110
88
-
- Create entry points for demos to be run directly from installed package (`#490 <https://github.com/ethereum/py-libp2p/issues/490>`__)
89
-
- Merge template, adding python 3.13 to CI checks. (`#496 <https://github.com/ethereum/py-libp2p/issues/496>`__)
111
+
- Create entry points for demos to be run directly from installed package (`#490 <https://github.com/libp2p/py-libp2p/issues/490>`__)
112
+
- Merge template, adding python 3.13 to CI checks. (`#496 <https://github.com/libp2p/py-libp2p/issues/496>`__)
90
113
91
114
92
115
Internal Changes - for py-libp2p Contributors
93
116
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94
117
95
-
- Drop CI runs for python 3.8, run ``pyupgrade`` to bring code up to python 3.9. (`#497 <https://github.com/ethereum/py-libp2p/issues/497>`__)
96
-
- Rename ``typing.py`` to ``custom_types.py`` for clarity. (`#500 <https://github.com/ethereum/py-libp2p/issues/500>`__)
118
+
- Drop CI runs for python 3.8, run ``pyupgrade`` to bring code up to python 3.9. (`#497 <https://github.com/libp2p/py-libp2p/issues/497>`__)
119
+
- Rename ``typing.py`` to ``custom_types.py`` for clarity. (`#500 <https://github.com/libp2p/py-libp2p/issues/500>`__)
- Added missing check to reject messages claiming to be from ourselves but not locally published in pubsub's ``push_msg`` function (`#413 <https://github.com/ethereum/py-libp2p/issues/413>`__)
106
-
- Added missing check in ``add_addrs`` function for duplicate addresses in ``peerdata`` (`#485 <https://github.com/ethereum/py-libp2p/issues/485>`__)
128
+
- Added missing check to reject messages claiming to be from ourselves but not locally published in pubsub's ``push_msg`` function (`#413 <https://github.com/libp2p/py-libp2p/issues/413>`__)
129
+
- Added missing check in ``add_addrs`` function for duplicate addresses in ``peerdata`` (`#485 <https://github.com/libp2p/py-libp2p/issues/485>`__)
107
130
108
131
109
132
Improved Documentation
110
133
~~~~~~~~~~~~~~~~~~~~~~
111
134
112
-
- added missing details of params in ``IPubsubRouter`` (`#486 <https://github.com/ethereum/py-libp2p/issues/486>`__)
135
+
- added missing details of params in ``IPubsubRouter`` (`#486 <https://github.com/libp2p/py-libp2p/issues/486>`__)
113
136
114
137
115
138
Features
116
139
~~~~~~~~
117
140
118
-
- Added ``PingService`` class in ``host/ping.py`` which can be used to initiate ping requests to peers and added tests for the same (`#344 <https://github.com/ethereum/py-libp2p/issues/344>`__)
119
-
- Added ``get_connected_peers`` method in class ``IHost`` which can be used to get a list of peer ids of currently connected peers (`#419 <https://github.com/ethereum/py-libp2p/issues/419>`__)
141
+
- Added ``PingService`` class in ``host/ping.py`` which can be used to initiate ping requests to peers and added tests for the same (`#344 <https://github.com/libp2p/py-libp2p/issues/344>`__)
142
+
- Added ``get_connected_peers`` method in class ``IHost`` which can be used to get a list of peer ids of currently connected peers (`#419 <https://github.com/libp2p/py-libp2p/issues/419>`__)
120
143
121
144
122
145
Internal Changes - for py-libp2p Contributors
123
146
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124
147
125
-
- Update ``sphinx_rtd_theme`` options and drop pdf build of docs (`#481 <https://github.com/ethereum/py-libp2p/issues/481>`__)
126
-
- Update ``trio`` package version dependency (`#482 <https://github.com/ethereum/py-libp2p/issues/482>`__)
148
+
- Update ``sphinx_rtd_theme`` options and drop pdf build of docs (`#481 <https://github.com/libp2p/py-libp2p/issues/481>`__)
149
+
- Update ``trio`` package version dependency (`#482 <https://github.com/libp2p/py-libp2p/issues/482>`__)
- Drop support for ``python<3.8`` (`#447 <https://github.com/ethereum/py-libp2p/issues/447>`__)
136
-
- Drop dep for unmaintained ``async-service`` and copy relevant functions into a local tool of the same name (`#467 <https://github.com/ethereum/py-libp2p/issues/467>`__)
158
+
- Drop support for ``python<3.8`` (`#447 <https://github.com/libp2p/py-libp2p/issues/447>`__)
159
+
- Drop dep for unmaintained ``async-service`` and copy relevant functions into a local tool of the same name (`#467 <https://github.com/libp2p/py-libp2p/issues/467>`__)
137
160
138
161
139
162
Improved Documentation
140
163
~~~~~~~~~~~~~~~~~~~~~~
141
164
142
-
- Move contributing and history info from README to docs (`#454 <https://github.com/ethereum/py-libp2p/issues/454>`__)
143
-
- Display example usage and full code in docs (`#466 <https://github.com/ethereum/py-libp2p/issues/466>`__)
165
+
- Move contributing and history info from README to docs (`#454 <https://github.com/libp2p/py-libp2p/issues/454>`__)
166
+
- Display example usage and full code in docs (`#466 <https://github.com/libp2p/py-libp2p/issues/466>`__)
144
167
145
168
146
169
Features
147
170
~~~~~~~~
148
171
149
-
- Add basic support for ``python3.8, 3.9, 3.10, 3.11, 3.12`` (`#447 <https://github.com/ethereum/py-libp2p/issues/447>`__)
172
+
- Add basic support for ``python3.8, 3.9, 3.10, 3.11, 3.12`` (`#447 <https://github.com/libp2p/py-libp2p/issues/447>`__)
150
173
151
174
152
175
Internal Changes - for py-libp2p Contributors
153
176
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
154
177
155
-
- Merge updates from ethereum python project template, including using ``pre-commit`` for linting, change name of ``master`` branch to ``main``, lots of linting changes (`#447 <https://github.com/ethereum/py-libp2p/issues/447>`__)
156
-
- Fix docs CI, drop ``bumpversion`` for ``bump-my-version``, reorg tests (`#454 <https://github.com/ethereum/py-libp2p/issues/454>`__)
157
-
- Turn ``mypy`` checks on and remove ``async_generator`` dependency (`#464 <https://github.com/ethereum/py-libp2p/issues/464>`__)
158
-
- Convert ``KeyType`` enum to use ``protobuf.KeyType`` options rather than ints, rebuild protobufs to include ``ECC_P256`` (`#465 <https://github.com/ethereum/py-libp2p/issues/465>`__)
159
-
- Bump to ``mypy==1.10.0``, run ``pre-commit`` local hook instead of ``mirrors-mypy`` (`#472 <https://github.com/ethereum/py-libp2p/issues/472>`__)
160
-
- Bump ``protobufs`` dep to ``>=5.27.2`` and rebuild protobuf definition with ``protoc==27.2`` (`#473 <https://github.com/ethereum/py-libp2p/issues/473>`__)
178
+
- Merge updates from ethereum python project template, including using ``pre-commit`` for linting, change name of ``master`` branch to ``main``, lots of linting changes (`#447 <https://github.com/libp2p/py-libp2p/issues/447>`__)
179
+
- Fix docs CI, drop ``bumpversion`` for ``bump-my-version``, reorg tests (`#454 <https://github.com/libp2p/py-libp2p/issues/454>`__)
180
+
- Turn ``mypy`` checks on and remove ``async_generator`` dependency (`#464 <https://github.com/libp2p/py-libp2p/issues/464>`__)
181
+
- Convert ``KeyType`` enum to use ``protobuf.KeyType`` options rather than ints, rebuild protobufs to include ``ECC_P256`` (`#465 <https://github.com/libp2p/py-libp2p/issues/465>`__)
182
+
- Bump to ``mypy==1.10.0``, run ``pre-commit`` local hook instead of ``mirrors-mypy`` (`#472 <https://github.com/libp2p/py-libp2p/issues/472>`__)
183
+
- Bump ``protobufs`` dep to ``>=5.27.2`` and rebuild protobuf definition with ``protoc==27.2`` (`#473 <https://github.com/libp2p/py-libp2p/issues/473>`__)
161
184
162
185
163
186
Removals
164
187
~~~~~~~~
165
188
166
-
- Drop ``async-exit-stack`` dep, as of py37 can import ``AsyncExitStack`` from contextlib, also open ``pynacl`` dep to bottom pin only (`#468 <https://github.com/ethereum/py-libp2p/issues/468>`__)
189
+
- Drop ``async-exit-stack`` dep, as of py37 can import ``AsyncExitStack`` from contextlib, also open ``pynacl`` dep to bottom pin only (`#468 <https://github.com/libp2p/py-libp2p/issues/468>`__)
167
190
168
191
169
192
libp2p v0.1.5 (2020-03-25)
@@ -256,23 +279,3 @@ v0.1.2
256
279
--------------
257
280
258
281
Welcome to the great beyond, where changes were not tracked by release...
259
-
260
-
py-libp2p v0.2.6 (2025-05-01)
261
-
-----------------------------
262
-
263
-
Features
264
-
~~~~~~~~
265
-
266
-
- Transitioned from `async_service` to `anyio_service`, leveraging AnyIO's robust async primitives for improved task management and exception handling. This change enhances compatibility with modern async patterns and improves overall service reliability. (`#600 <https://github.com/ethereum/py-libp2p/issues/600>`__)
267
-
268
-
- Updated the service implementation to handle `ExceptionGroup` correctly, ensuring proper exception propagation and alignment with Python 3.11+ semantics. (`#601 <https://github.com/ethereum/py-libp2p/issues/601>`__)
269
-
270
-
Improved Documentation
271
-
~~~~~~~~~~~~~~~~~~~~~~
272
-
273
-
- Updated the documentation to reflect the transition to AnyIO, including changes to module names and descriptions. (`#602 <https://github.com/ethereum/py-libp2p/issues/602>`__)
274
-
275
-
Internal Changes - for py-libp2p Contributors
276
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
277
-
278
-
- Refactored internal service management logic to align with AnyIO's task group semantics, improving maintainability and reducing technical debt. (`#603 <https://github.com/ethereum/py-libp2p/issues/603>`__)
0 commit comments