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: CHANGELOG.rst
+42-38
Original file line number
Diff line number
Diff line change
@@ -1,48 +1,50 @@
1
1
=========
2
2
Changelog
3
3
=========
4
-
.. Pymunk 7.0.0 (2025-04-16?)
5
-
6
-
**Many improvements release**
7
-
8
-
This is a big cleanup release with several breaking changes. If you upgrade from an older version, make sure to pay attention, especially the Space.bodies, Space.shapes and shape.constraints updates can break silently!
9
-
10
-
Extra thanks for Github user aetle for a number of suggestions and feedback for this pymunk release
4
+
Pymunk 7.0.0 (2025-04-10)
5
+
-------------------------
11
6
12
-
Changes:
7
+
**Many improvements, with some breaking changes!**
13
8
14
-
Breaking changes
9
+
This is a big cleanup release with several breaking changes. If you upgrade from an older version, make sure to pay attention, especially the Space.bodies, Space.shapes and shape.constraints updates can break silently!
15
10
16
-
- Changed Space.shapes, Space.bodies and Space.constraints to return a KeysView of instead of a list of the items. Note that this means the returned collection is no longer a copy. To get the old behavior, do list(space.shapes) etc.
17
-
- At least one of the two bodies attached to constraint/joint must be dynamic.
18
-
- Vec2d now supports bool to test if zero. (bool(Vec2d(2,3) == True) Note this is a breaking change.
19
-
- Added Vec2d.length_squared, and depreacted Vec2d.get_length_sqrd()
20
-
- Added Vec2d.get_distance_squared(), and deprecated Vec2d.get_dist_sqrd()
21
-
- A dynamic body must have non-zero mass when calling Space.step (either from Body.mass, or by setting mass or density on a Shape attached to the Body). Its not valid to set mass to 0 on a dynamic body attached to a space.
22
-
- Deprecated matplotlib_util. If you think this is a useful module and you use it, please create an issue on the Pymunk issue track
23
-
- Dropped support for Python 3.8
24
-
- Changed body.constraints to return a KeysView of the Constraints attached to the body. Note that its still weak references to the Constraints.
25
-
- Reversed the dependency between bodies and shapes. Now the Body owns the connection, and the Shape only keeps a weak ref to the Body. That means that if you remove a Body, then any shapes not referenced anywhere else will also be removed.
26
-
- Changed body.shapes to return a KeysView instead of a set of the shapes.
27
-
- Changed Shape.segment_query to return None in case the query did not hit the shape.
28
-
- Changed ContactPointSet.points to be a tuple and not list to make it clear its length is fixed.
29
-
- Added default do_nothing and always_collide callback functions to the CollisionHandler, so that its clear how to reset and align with other callbacks. If in old code you did handler.begin = None, you should now instead to handler.begin = CollisionHandler.always_collide etc.
11
+
Extra thanks for Github user aetle for a number of suggestions and feedback for this Pymunk release!
30
12
31
-
New non-breaking features
32
-
- Switched from using Chipmunk to the new Munk2D fork of Chipmunk (see https://github.com/viblo/Munk2D for details).
33
-
- Added Arbiter.bodies shorthand to get the shapes' bodies in the Arbiter
34
-
- New method ShapeFilter.rejects_collision() that checks if the filter would reject a collision with another filter.
35
-
- New method Vec2d.polar_tuple that return the vector as polar coordinates
36
-
- Build and publish wheels for Linux ARM and Pypy 3.11
37
-
- Changed type of PointQueryInfo.shape, SegmentQueryInfo.shape and ShapeQueryInfo.shape to not be Optional, they will always have a shape.
38
13
39
-
Other improvements
40
-
- Optimized Vec2d.angle and Vec2d.angle_degrees. Note that the optimized versions treat 0 length vectors with x and/or y equal to -0 slightly differently.
41
-
- Fixed issue with accessing Body.space after space is deleted and GCed.
42
-
- Improved documentation in many places (Vec2d, Poly, Shape and more)
43
-
- Internal cleanup of code
14
+
Changes:
44
15
45
-
Extra thanks for aetle for a number of suggestions for improvements in this pymunk release
16
+
Breaking changes
17
+
18
+
- Changed Space.shapes, Space.bodies and Space.constraints to return a KeysView of instead of a list of the items. Note that this means the returned collection is no longer a copy. To get the old behavior, you can convert to list manually, like list(space.shapes).
19
+
- At least one of the two bodies attached to constraint/joint must be dynamic.
20
+
- Vec2d now supports bool to test if zero. (bool(Vec2d(2,3) == True) Note this is a breaking change.
21
+
- Added Vec2d.length_squared, and depreacted Vec2d.get_length_sqrd()
22
+
- Added Vec2d.get_distance_squared(), and deprecated Vec2d.get_dist_sqrd()
23
+
- A dynamic body must have non-zero mass when calling Space.step (either from Body.mass, or by setting mass or density on a Shape attached to the Body). Its not valid to set mass to 0 on a dynamic body attached to a space.
24
+
- Deprecated matplotlib_util. If you think this is a useful module and you use it, please create an issue on the Pymunk issue track
25
+
- Dropped support for Python 3.8
26
+
- Changed body.constraints to return a KeysView of the Constraints attached to the body. Note that its still weak references to the Constraints.
27
+
- Reversed the dependency between bodies and shapes. Now the Body owns the connection, and the Shape only keeps a weak ref to the Body. That means that if you remove a Body, then any shapes not referenced anywhere else will also be removed.
28
+
- Changed body.shapes to return a KeysView instead of a set of the shapes.
29
+
- Changed Shape.segment_query to return None in case the query did not hit the shape.
30
+
- Changed ContactPointSet.points to be a tuple and not list to make it clear its length is fixed.
31
+
- Added default do_nothing and always_collide callback functions to the CollisionHandler, so that its clear how to reset and align with other callbacks. If in old code you did handler.begin = None, you should now instead to handler.begin = CollisionHandler.always_collide etc.
32
+
33
+
New non-breaking features
34
+
- Switched from using Chipmunk to the new Munk2D fork of Chipmunk (see https://github.com/viblo/Munk2D for details).
35
+
- Added Arbiter.bodies shorthand to get the shapes' bodies in the Arbiter
36
+
- New method ShapeFilter.rejects_collision() that checks if the filter would reject a collision with another filter.
37
+
- New method Vec2d.polar_tuple that return the vector as polar coordinates
38
+
- Build and publish wheels for Linux ARM and Pypy 3.11
39
+
- Changed type of PointQueryInfo.shape, SegmentQueryInfo.shape and ShapeQueryInfo.shape to not be Optional, they will always have a shape.
40
+
41
+
Other improvements
42
+
- Optimized Vec2d.angle and Vec2d.angle_degrees. Note that the optimized versions treat 0 length vectors with x and/or y equal to -0 slightly differently.
43
+
- Fixed issue with accessing Body.space after space is deleted and GCed.
44
+
- Improved documentation in many places (Vec2d, Poly, Shape and more)
45
+
- Internal cleanup of code
46
+
47
+
Extra thanks for aetle for a number of suggestions for improvements in this pymunk release
46
48
47
49
48
50
Pymunk 6.11.1 (2025-02-09)
@@ -54,6 +56,7 @@ This is a patch update to Pymunk that removes debug logging. This should an
54
56
issue with GC on Python 3.13.
55
57
56
58
Changes:
59
+
57
60
- Remove debug logging
58
61
59
62
@@ -68,8 +71,9 @@ does not work anymore. The release also adds back pre-built wheels for Pypy
68
71
with a workaround until Pypy make a new release.
69
72
70
73
Changes:
71
-
- Support Pyglet 2.1.x (this means Pyglet 2.0.x wont work)
72
-
- Readded Pypy pre-built wheels
74
+
75
+
- Support Pyglet 2.1.x (this means Pyglet 2.0.x wont work)
0 commit comments