Pygame-ce

Latest version: v2.5.2

Safety actively analyzes 682361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

2.5.2

โ˜€๏ธ๐ŸŽƒ๐Ÿ‘ป๐Ÿ•ธ๏ธ๐Ÿ•ท๏ธ๐Ÿง›๐ŸงŸโ€โ™‚๏ธ๐Ÿง™โ€โ™€๏ธ๐Ÿง™โ€โ™‚๏ธ๐Ÿ•ฏ๏ธ๐Ÿชฆ๐Ÿฌ๐Ÿญ๐Ÿซโ˜ ๏ธโšฐ๏ธ๐Ÿ”ฎ๐Ÿงน๐ŸŒ•๐Ÿˆโ€โฌ›๐Ÿฆ‡๐ŸŒŒ
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
โ˜€๏ธ๐ŸŽƒ๐Ÿ‘ป๐Ÿ•ธ๏ธ๐Ÿ•ท๏ธ๐Ÿง›๐ŸงŸโ€โ™‚๏ธ๐Ÿง™โ€โ™€๏ธ๐Ÿง™โ€โ™‚๏ธ๐Ÿ•ฏ๏ธ๐Ÿชฆ๐Ÿฌ๐Ÿญ๐Ÿซโ˜ ๏ธโšฐ๏ธ๐Ÿ”ฎ๐Ÿงน๐ŸŒ•๐Ÿˆโ€โฌ›๐Ÿฆ‡๐ŸŒŒ

We're pumped to drop another pygame-ce release, thanks to the awesome efforts of 30+ contributors in this release! In the last couple of months, we've together made 286 commits, updated 281 files, and merged 85 pull requests.

Now, let's dive into what's new!

New and improved API

* [`pygame.Window`](https://pyga.me/docs/ref/window.html) has left experimental status and now been declared public API (contributed by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3170). damusss further enhanced the API by adding the `Window.flash` method and `Window.focused` property in https://github.com/pygame-community/pygame-ce/pull/3054 and https://github.com/pygame-community/pygame-ce/pull/3079 respectively.

* damusss added a new module, [`pygame.typing`](https://pyga.me/docs/ref/typing.html), in https://github.com/pygame-community/pygame-ce/pull/3002 that exports commonly used type aliases for use in type hinting.
- New contributor aatle made many nice changes and cleanups to get this module ready for the release in https://github.com/pygame-community/pygame-ce/pull/3080, https://github.com/pygame-community/pygame-ce/pull/3086, and https://github.com/pygame-community/pygame-ce/pull/3139
- Starbuck5 and ankith26 also put in some work to get this module ready for the release in https://github.com/pygame-community/pygame-ce/pull/3102 and https://github.com/pygame-community/pygame-ce/pull/3150 respectively.

* The experimental `pygame.geometry` module saw more API porting from its development repository in this release. A big thanks to all `geometry` project contributors: novialriptide, Emc2356, itzpr3d4t0r, ScriptLineStudios, avaxar, Matiiss, newpaxonian, maqa41, blankRiot96, gresm
- New contributor MrRedstone058 added additional `Circle` attributes in https://github.com/pygame-community/pygame-ce/pull/3127
- itzpr3d4t0r added the `Circle.intersect` method and the base for the `Line` class in https://github.com/pygame-community/pygame-ce/pull/3071 and https://github.com/pygame-community/pygame-ce/pull/3131 respectively.
- damusss added the `Circle.collidelist(all)` method in https://github.com/pygame-community/pygame-ce/pull/2880

* ScriptLineStudios added the `transform.solid_overlay` function in https://github.com/pygame-community/pygame-ce/pull/2304 making it easier to create a single color version of an alpha possessing surface.

* damusss added the `desktop` argument to `mouse.get_pos` and `mouse.get_pressed` in https://github.com/pygame-community/pygame-ce/pull/3105 so you can get the position of the mouse outside of the pygame window, where this is supported by the OS.

* damusss added the `pygame.Sound` alias to denote `pygame.mixer.Sound` in https://github.com/pygame-community/pygame-ce/pull/3063. That should save a few precious characters of typing.


Bugfixes

* Starbuck5 fixed an OpenGL issue in `Window` init in https://github.com/pygame-community/pygame-ce/pull/3059

* oddbookworm fixed a break when the OS resizes the window in `set_mode` in https://github.com/pygame-community/pygame-ce/pull/2992

* bilhox fixed segfault with antialiased draw functions with a depth different than 32bits in https://github.com/pygame-community/pygame-ce/pull/3008

* pmp-p did some fixes for improved wasm support in https://github.com/pygame-community/pygame-ce/pull/3137 and https://github.com/pygame-community/pygame-ce/pull/3163

* MyreMylar fixed midi timer reset when quit in https://github.com/pygame-community/pygame-ce/pull/3018

* mzivic7
- Fixed aalines overlap issue in https://github.com/pygame-community/pygame-ce/pull/2912
* Fixed missing pixels in `aalines` when using integer coordinates in https://github.com/pygame-community/pygame-ce/pull/3144

* ankith26
- Fixed `(F)Rect.scale_by(_ip)` handling of the `scale_by` parameter in https://github.com/pygame-community/pygame-ce/pull/3078
- Updated `FRect` repr to handle larger values in https://github.com/pygame-community/pygame-ce/pull/3077
- Fixed pygame-ce editable install on windows in https://github.com/pygame-community/pygame-ce/pull/3117

General Enhancements

* oddbookworm improved `Vector{2,3}.__delattr__` messaging when deleting `x, y, {z}` and removed `Vector4` zombies in https://github.com/pygame-community/pygame-ce/pull/3069, and ankith26 applied some more related updates in https://github.com/pygame-community/pygame-ce/pull/3087
* bilhox made it so that too many arguments to `Color.from_{colorspace}` style methods now raise errors in https://github.com/pygame-community/pygame-ce/pull/3125
* damusss added handling for all color types in `transform.threshold` in https://github.com/pygame-community/pygame-ce/pull/3156

Performance Enhancements

* Starbuck5 updated more places in `rect` code to use `PyObject_Vectorcall` in https://github.com/pygame-community/pygame-ce/pull/3048. The affected methods therefore see 15-22% improvements in speed.

* itzpr3d4t0r
- Optimized `Rect.clipline()` in https://github.com/pygame-community/pygame-ce/pull/3067. The performance is up by upto 50% in some of our test cases.
- Optimized tuple creation for `Rect` getters in https://github.com/pygame-community/pygame-ce/pull/3072

Docs and Type Hints

* New contributor MrValdez added example on how `Window` behaves with `WINDOWCLOSE` and `QUIT` events in https://github.com/pygame-community/pygame-ce/pull/3115

* New contributor datapythonista clarified how `Rect` and positions relate in the intro tutorial in https://github.com/pygame-community/pygame-ce/pull/3111

* New contributor hisa10 added a Japanese README in https://github.com/pygame-community/pygame-ce/pull/3114

* oddbookworm fixed a couple of versionadded tags that should have been versionaddedold in `display` docs in https://github.com/pygame-community/pygame-ce/pull/3046

* itzpr3d4t0r improved `geometry` docs in https://github.com/pygame-community/pygame-ce/pull/3043

* Starbuck5 fixed `transform.average_color` docs and stubs to match implementation in https://github.com/pygame-community/pygame-ce/pull/3076

* yunline updated the dependency section of zh-cn README in https://github.com/pygame-community/pygame-ce/pull/3119

* zoldalma999 fix stubcheck typing error on windows in https://github.com/pygame-community/pygame-ce/pull/3147

* bilhox
- Made it so that some experimental API is not hidden in the docs anymore in https://github.com/pygame-community/pygame-ce/pull/3068
- Polished and reviewed french readme + note of when it was last reviewed in https://github.com/pygame-community/pygame-ce/pull/3142

* damusss
- Enhanced `pygame.mouse.get_pressed` docs in https://github.com/pygame-community/pygame-ce/pull/3084
- Made `copy` methods explicit for linting in https://github.com/pygame-community/pygame-ce/pull/3129
- Added Italian README in https://github.com/pygame-community/pygame-ce/pull/3120
- Improved color notation in the docs in https://github.com/pygame-community/pygame-ce/pull/3165

Examples and Unit Tests

* New contributor avpai-dinosaur fixed `test_inflate_ip__larger` unit test in https://github.com/pygame-community/pygame-ce/pull/3098

* damusss added 9-patch to examples in https://github.com/pygame-community/pygame-ce/pull/2985

Code Quality and General Maintenance

* New contributor raspofabs migrated `pkgdata` code to importlib to resolve warning about `pkg_resources` in https://github.com/pygame-community/pygame-ce/pull/3061

* zoldalma999 ported the controller module to C in https://github.com/pygame-community/pygame-ce/pull/2056

* oddbookworm added code coverage CI in https://github.com/pygame-community/pygame-ce/pull/2990

* ankith26
- Switched code to use `PyObject_CallOneArg` where applicable in https://github.com/pygame-community/pygame-ce/pull/3023
- Drop MSYS2 clang32 from our CI in https://github.com/pygame-community/pygame-ce/pull/3116
- Fix whitespace and eof formatting with pre-commit in https://github.com/pygame-community/pygame-ce/pull/3104
- Fix a compiler warning in debug mode in https://github.com/pygame-community/pygame-ce/pull/3124
- Made sure our CI and build dependency versions are all up to date in https://github.com/pygame-community/pygame-ce/pull/3123, https://github.com/pygame-community/pygame-ce/pull/3100 and https://github.com/pygame-community/pygame-ce/pull/3118

* ankith26 and Starbuck5 continued on the work to get pygame-ce compiling with the latest SDL3 prerelease in https://github.com/pygame-community/pygame-ce/pull/3141, https://github.com/pygame-community/pygame-ce/pull/2975, https://github.com/pygame-community/pygame-ce/pull/3145, https://github.com/pygame-community/pygame-ce/pull/2933, https://github.com/pygame-community/pygame-ce/pull/3146, and https://github.com/pygame-community/pygame-ce/pull/3160

* oddbookworm and Starbuck5 kept our SDL dependency updated in https://github.com/pygame-community/pygame-ce/pull/3094 and https://github.com/pygame-community/pygame-ce/pull/3168 respectively

* ankith26 and Starbuck5 kept the dev release process running in https://github.com/pygame-community/pygame-ce/pull/3042 and https://github.com/pygame-community/pygame-ce/pull/3173 respectively

* dependabot kept our CI dependencies updated in https://github.com/pygame-community/pygame-ce/pull/3065, https://github.com/pygame-community/pygame-ce/pull/3095, https://github.com/pygame-community/pygame-ce/pull/3051, https://github.com/pygame-community/pygame-ce/pull/3050, https://github.com/pygame-community/pygame-ce/pull/3081, https://github.com/pygame-community/pygame-ce/pull/3103, https://github.com/pygame-community/pygame-ce/pull/3112, https://github.com/pygame-community/pygame-ce/pull/3135, https://github.com/pygame-community/pygame-ce/pull/3136, https://github.com/pygame-community/pygame-ce/pull/3151, https://github.com/pygame-community/pygame-ce/pull/3153, and https://github.com/pygame-community/pygame-ce/pull/3161

New Contributors

* aatle made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3080
* raspofabs made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3061
* avpai-dinosaur made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3098
* hisa10 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3114
* MrValdez made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3115
* MrRedstone058 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3127
* datapythonista made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3111

Thanks all

A huge thank you to everyone who's been part of this journey! This goes beyond code contributors; we are grateful to the whole community - issue reporters, PR reviewers, tutorial creators, folks helping out on different platforms, developers of supporting libraries, and most importantly, all our users (yes, that also includes you, who is reading this!).

If you notice any mistakes in these notes, please let us know so we can fix them up.

Take care, and happy pygaming!

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.5.1...2.5.2

2.5.2.dev2

Pre release version of 2.5.2 for testing, we appreciate everyone who tests out our dev releases!

Release highlights
- Promoted [pygame.Window](https://pyga.me/docs/ref/window.html) to public API. Allows use of multiple windows at once, new window operations.
- Various rect optimizations
- Dependency updates: SDL and lower level C libraries
- New module [pygame.typing](https://pyga.me/docs/ref/typing.html)
- Fixed segfault in antialiased draw functions with non 32 bit surfaces

What's Changed
* 2.5.2.dev1 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3042
* Fixed a couple of versionadded tags that should have been versionaddedold in `display` docs by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/3046
* Bump docker/build-push-action from 6.5.0 to 6.6.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3051
* Bump actions/attest-build-provenance from 1.4.0 to 1.4.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3050
* Improved geometry docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/3043
* Fix imposter opengl by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3059
* Add `Window.flash(operation)` by damusss in https://github.com/pygame-community/pygame-ce/pull/3054
* Add pygame.typing module by damusss in https://github.com/pygame-community/pygame-ce/pull/3002
* Use PyObject_Vectorcall in rect by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3048
* Version-getters SDL2/SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2975
* Coverage CI created, hopefully it works first time lol by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2990
* Bump docker/build-push-action from 6.6.1 to 6.7.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3065
* Optimized `Rect.clipline()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/3067
* Optimized tuple creation for Rect getters by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/3072
* Update `FRect` repr to handle larger values by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3077
* Bump actions/attest-build-provenance from 1.4.1 to 1.4.2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3081
* Fix average_color docs and stubs to match implementation by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3076
* Fix and improve `pygame.typing` module by aatle in https://github.com/pygame-community/pygame-ce/pull/3080
* Add `Window.focused` by damusss in https://github.com/pygame-community/pygame-ce/pull/3079
* Add alias `pygame.Sound` by damusss in https://github.com/pygame-community/pygame-ce/pull/3063
* Port the controller module to C. by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2056
* Fix break when the OS resizes our window in `set_mode` by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2992
* Make experimental API not hidden in the docs anymore by bilhox in https://github.com/pygame-community/pygame-ce/pull/3068
* `Vector{2,3}.__delattr__` messaging fixed when deleting `x, y, {z}` and removed `Vector4` zombies by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/3069
* Use PyObject_CallOneArg where applicable by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3023
* migrate importlib to resolve warning about pkg_resources by raspofabs in https://github.com/pygame-community/pygame-ce/pull/3061
* Make `pygame.typing.PathLike` internal/private by aatle in https://github.com/pygame-community/pygame-ce/pull/3086
* Updated SDL version to 2.30.7 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/3094
* Fix test_inflate_ip__larger. by avpai-dinosaur in https://github.com/pygame-community/pygame-ce/pull/3098
* Bump actions/attest-build-provenance from 1.4.2 to 1.4.3 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3095
* Add `Circle.intersect()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/3071
* Remove RGBATuple by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3102
* Fix component bounds checking by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3087
* Bump build dependencies by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3100
* Enhance `pygame.mouse.get_pressed` docs by damusss in https://github.com/pygame-community/pygame-ce/pull/3084
* Bump pypa/cibuildwheel from 2.20.0 to 2.21.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3103
* Bump pypa/cibuildwheel from 2.21.0 to 2.21.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3112
* Drop MSYS2 clang32 from our CI by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3116
* Fix whitespace and eof formatting with pre-commit by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3104
* Fix segfault with antialiased draw functions with a depth different than 32bits by bilhox in https://github.com/pygame-community/pygame-ce/pull/3008
* Add japanese readme by hisa10 in https://github.com/pygame-community/pygame-ce/pull/3114
* Update the dependency section of zh-cn README by yunline in https://github.com/pygame-community/pygame-ce/pull/3119
* Add `desktop` argument to `mouse.get_pos` and `mouse.get_pressed` by damusss in https://github.com/pygame-community/pygame-ce/pull/3105
* added example on how Window behaves with WINDOWCLOSE and QUIT events by MrValdez in https://github.com/pygame-community/pygame-ce/pull/3115
* Fix editable install on windows by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3117
* Add `Circle.collidelist/collidelistall()` by damusss in https://github.com/pygame-community/pygame-ce/pull/2880
* Fix midi timer reset when quit by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/3018
* Make `copy` methods explicit for linting by damusss in https://github.com/pygame-community/pygame-ce/pull/3129
* Fix a compiler warning in debug mode by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3124
* Set error when too many numbers of argument in ``pygame.Color.from_colorspace`` by bilhox in https://github.com/pygame-community/pygame-ce/pull/3125
* Bump actions/checkout from 4.1.7 to 4.2.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3135
* Bump docker/build-push-action from 6.7.0 to 6.8.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3136
* Added additional circle attributes by MrRedstone058 in https://github.com/pygame-community/pygame-ce/pull/3127
* Bump ubuntu to 24.04 on CI, fix cppcheck by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3123
* Clarify how Rect and positions relate in the intro tutorial by datapythonista in https://github.com/pygame-community/pygame-ce/pull/3111
* Fix aalines overlap by mzivic7 in https://github.com/pygame-community/pygame-ce/pull/2912
* wasm: controller is not multiphase init + workaround for wasm 313t by pmp-p in https://github.com/pygame-community/pygame-ce/pull/3137
* Rename `pygame.typing.Coordinate` to `Point`, fix related grammar by aatle in https://github.com/pygame-community/pygame-ce/pull/3139
* Fix `(F)Rect.scale_by(_ip)` handling of the `scale_by` parameter by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3078
* Add 9-patch to examples by damusss in https://github.com/pygame-community/pygame-ce/pull/2985
* transform.solid_overlay by ScriptLineStudios in https://github.com/pygame-community/pygame-ce/pull/2304
* Add draw.aaline width argument by mzivic7 in https://github.com/pygame-community/pygame-ce/pull/3140
* New up-to-date review of french readme + note of when it was last reviewed by bilhox in https://github.com/pygame-community/pygame-ce/pull/3142
* Missing pixels in `aalines` when using integer coordinates by mzivic7 in https://github.com/pygame-community/pygame-ce/pull/3144
* Add meson flag for compiling with SDL3 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3141
* SDL3: compile rect, bufferproxy, math, newbuffer, geometry by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3145
* Fixes for rwobject (now iostream) SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2933
* SDL3 support for pygame.system by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3146
* Fix stubcheck error on windows, mark typealiases as such in typing by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/3147
* Bump docker/build-push-action from 6.8.0 to 6.9.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3151
* Bump actions/cache from 4.0.2 to 4.1.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3153
* Add Italian README by damusss in https://github.com/pygame-community/pygame-ce/pull/3120
* Bump pypa/cibuildwheel from 2.21.1 to 2.21.3 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3161
* Adjust pg_MappedColorFromObj API for SDL3-porting by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3160
* Fix handling all color types in `pygame.transform.threshold` by damusss in https://github.com/pygame-community/pygame-ce/pull/3156
* Improve color notation in the docs by damusss in https://github.com/pygame-community/pygame-ce/pull/3165
* SDL 2.30.8 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3168
* Add basic pygame.typing unit test, remove problematic TypeAlias usage by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3150
* Added `geometry.Line` base by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/3131
* wasm: better wasm fencing by pmp-p in https://github.com/pygame-community/pygame-ce/pull/3163
* Publicize window docs by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3170
* mac/manylinux deps updates 2024 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3118

New Contributors
* aatle made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3080
* raspofabs made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3061
* avpai-dinosaur made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3098
* hisa10 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3114
* MrValdez made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3115
* MrRedstone058 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3127
* datapythonista made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3111

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.5.1...2.5.2.dev2

2.5.1

โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰

We are pleased to do yet another release of pygame-ce, and this has been possible due to the efforts of over 20 code contributors. Together, we have made 193 commits across 139 files via 80 pull requests in the last 2 months since the previous release!

Now, onto the highlights!

Highlights

* Added Python 3.13 (just standard 3.13, no free threading yet) and PyPy for apple silicon support.

* We have a new logo!

<img src="https://raw.githubusercontent.com/pygame-community/pygame-ce/2.5.1/docs/reST/_static/pygame_ce_logo.svg" alt="pygame-ce logo" width="40%"/>

* We haven't run out of optimization ideas yet :sweat_smile:, we've managed to cram a few more in this release.

New API

* There is now a default destination position `(0, 0)` for `Surface.blit`, thanks to damusss in https://github.com/pygame-community/pygame-ce/pull/2936.
* itzpr3d4t0r added a new function `Surface.premul_alpha_ip` to premultiply alpha faster by operating in place instead of needing to allocate a new Surface. Matiiss also helped with documentation. See https://github.com/pygame-community/pygame-ce/pull/2899, https://github.com/pygame-community/pygame-ce/pull/2972, and https://github.com/pygame-community/pygame-ce/pull/2980.

Bugfixes

* Matiiss fixed passing `parent_window=None` to `display.message_box` in https://github.com/pygame-community/pygame-ce/pull/2723.
* itzpr3d4t0r fixed an issue `transform.hsl` not working on certain pixel formats in https://github.com/pygame-community/pygame-ce/pull/2948.
* oddbookworm fixed a `Surface.fill` where rects with negative positions would slide to `(0, 0)` and then fill, instead of only filling part of the `Rect`. See https://github.com/pygame-community/pygame-ce/pull/2939 for details.
* ankith26 fixed using `SCALED` after not using `SCALED` in `display` in https://github.com/pygame-community/pygame-ce/pull/2925.
* damusss fixed using OpenGL with a resizable `pygame.Window`, see https://github.com/pygame-community/pygame-ce/pull/2915.

General Enhancements

* MyreMylar added a SIMD printout (SSE2, AVX2 & NEON) to `pygame.print_debug_info()` in https://github.com/pygame-community/pygame-ce/pull/2897. This will help us debug any SIMD-backend specific bugs submitted by users.
* damusss added support for `radius = 0` circles to the experimental `geometry` module, see https://github.com/pygame-community/pygame-ce/pull/2913.
* zoldalma999 added new `"ABGR"` format support to `image.frombytes` and `image.tobytes` in https://github.com/pygame-community/pygame-ce/pull/2951.
* zoldalma999 made the experimental `Window` class subclassable in https://github.com/pygame-community/pygame-ce/pull/2950.
* ankith26 added support for iterables in `display.update`, see https://github.com/pygame-community/pygame-ce/pull/2987.
* Starbuck5 and ankith26 added Python 3.13 support in https://github.com/pygame-community/pygame-ce/pull/2994 and https://github.com/pygame-community/pygame-ce/pull/3030.

Performance Enhancements

* itzpr3d4t0r continued his quest to optimize all the things, merging improvements to `PixelArray.make_surface`, `transform.scale2x`, `Surface.fblits` (a fix for a performance regression), `mask.from_surface` and `(F)Rect` methods. See https://github.com/pygame-community/pygame-ce/pull/2953, https://github.com/pygame-community/pygame-ce/pull/2859, https://github.com/pygame-community/pygame-ce/pull/2978, https://github.com/pygame-community/pygame-ce/pull/2895, and https://github.com/pygame-community/pygame-ce/pull/2908 for more details.
* mzivic7 got a 5-6% boost out of `draw.aacircle` (new in pygame-ce 2.5.0) in https://github.com/pygame-community/pygame-ce/pull/3012.
* Starbuck5 boosted the performance of some `draw` operations on 24-bit surfaces, with a 20% improvement on single-pixel line drawing, see https://github.com/pygame-community/pygame-ce/pull/3021.

Deprecations and Removals

No new deprecations this release, but-
* ankith26 added deprecation warnings to some already-deprecated API (`freetype.was_init`, `scrap.lost`) in https://github.com/pygame-community/pygame-ce/pull/3001.

Docs and Type Hints

* Mega-JC created a new logo and added it to the docs (in collaboration with kadir014 on the design), in https://github.com/pygame-community/pygame-ce/pull/2965. This is great for us to express our own identity as a project.
* REX2626, whangho, Mic-lab, and damusss made grammar and wording improvements to docs content. See https://github.com/pygame-community/pygame-ce/pull/2907, https://github.com/pygame-community/pygame-ce/pull/2919, https://github.com/pygame-community/pygame-ce/pull/2911, https://github.com/pygame-community/pygame-ce/pull/3004, and https://github.com/pygame-community/pygame-ce/pull/2901.
* damusss made it so deprecated functions are marked with the deprecated decorator in https://github.com/pygame-community/pygame-ce/pull/2984. This allows editors to show users that a function is deprecated very neatly. They also made some smaller enhancements to the type stubs in https://github.com/pygame-community/pygame-ce/pull/2918 and https://github.com/pygame-community/pygame-ce/pull/2926.
* ankith26 modernized the stubs to use python-3.8-isms in https://github.com/pygame-community/pygame-ce/pull/2995
* MrF1ow added a Contribution Section to README to help out new contributors in https://github.com/pygame-community/pygame-ce/pull/2910.
* MyreMylar added license identifier to README in https://github.com/pygame-community/pygame-ce/pull/2890.
* oddbookworm changed dark theme slightly to make code more readable in some cases in https://github.com/pygame-community/pygame-ce/pull/2960.

Examples and Unit Tests

* bilhox made some general example changes and enhancements in https://github.com/pygame-community/pygame-ce/pull/2581.
* ankith26 and MyreMylar enhanced our unit tests and ensured sure they keep passing in https://github.com/pygame-community/pygame-ce/pull/3031, https://github.com/pygame-community/pygame-ce/pull/3017, https://github.com/pygame-community/pygame-ce/pull/2934, https://github.com/pygame-community/pygame-ce/pull/2885, and https://github.com/pygame-community/pygame-ce/pull/2966.

Code Quality and General Maintenance

* Notenlish got rid of unneeded `docscomments.js` usage in docs in https://github.com/pygame-community/pygame-ce/pull/2959.
* ankith26 added support for macOS arm64 PyPy in our releases in https://github.com/pygame-community/pygame-ce/pull/2945. He also improved our buildconfig/CI by making it more robust and secure in https://github.com/pygame-community/pygame-ce/pull/2971, https://github.com/pygame-community/pygame-ce/pull/2977, https://github.com/pygame-community/pygame-ce/pull/3015, https://github.com/pygame-community/pygame-ce/pull/2941, and https://github.com/pygame-community/pygame-ce/pull/3040.
* Starbuck5 helped keep our codebase modern and tidy in https://github.com/pygame-community/pygame-ce/pull/2922, https://github.com/pygame-community/pygame-ce/pull/2940, https://github.com/pygame-community/pygame-ce/pull/2928, https://github.com/pygame-community/pygame-ce/pull/3014, https://github.com/pygame-community/pygame-ce/pull/2973, https://github.com/pygame-community/pygame-ce/pull/2974, and https://github.com/pygame-community/pygame-ce/pull/3020.
* oddbookworm made some ease-of-use changes to doc generation in https://github.com/pygame-community/pygame-ce/pull/2942 and https://github.com/pygame-community/pygame-ce/pull/2989.
* zoldalma999 updated the codebase to use the `SDL_TTF_VERSION_ATLEAST` macro in https://github.com/pygame-community/pygame-ce/pull/3003.
* ankith26 and zoldalma999 made some changes to better support development "editable" builds in https://github.com/pygame-community/pygame-ce/pull/2996 and https://github.com/pygame-community/pygame-ce/pull/2952.
* Matiiss and oddbookworm ensured our SDL dependency is kept updated in https://github.com/pygame-community/pygame-ce/pull/2949, https://github.com/pygame-community/pygame-ce/pull/2969, and https://github.com/pygame-community/pygame-ce/pull/3034.
* dependabot kept all our CI dependencies updated in https://github.com/pygame-community/pygame-ce/pull/2906, https://github.com/pygame-community/pygame-ce/pull/2932, https://github.com/pygame-community/pygame-ce/pull/2931, https://github.com/pygame-community/pygame-ce/pull/2930, https://github.com/pygame-community/pygame-ce/pull/2955, https://github.com/pygame-community/pygame-ce/pull/2963, https://github.com/pygame-community/pygame-ce/pull/2964, https://github.com/pygame-community/pygame-ce/pull/2983, https://github.com/pygame-community/pygame-ce/pull/2982, https://github.com/pygame-community/pygame-ce/pull/3013, https://github.com/pygame-community/pygame-ce/pull/3025, and https://github.com/pygame-community/pygame-ce/pull/3024.
* Starbuck5 and ankith26 worked on making intermediate dev releases possible in https://github.com/pygame-community/pygame-ce/pull/2905, https://github.com/pygame-community/pygame-ce/pull/3038, and https://github.com/pygame-community/pygame-ce/pull/3039.

New Contributors

* REX2626 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2907.
* MrF1ow made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2910.
* whangho made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2919.
* Mic-lab made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3004.

Thanks all

A heartfelt thank you to everyone involved! This includes not just code contributors, but also the wider community - issue reporters, PR reviewers, tutorial creators, helpers on various media platforms, developers of supporting libraries, and most importantly - all our users (including you, the reader of these notes)!

If you spot any errors in these notes, please let us know so we can correct them.

Take care and happy pygaming!

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.5.0...2.5.1

2.5.1.dev2

A pre-release before the final release, please help us by testing this!

Release highlights

This is mostly a bug-fixes-and-enhancements release, but we do have a few cool new stuff to showcase!

- We now support and distribute wheels for CPython 3.13 and PyPy for apple silicon.
- The experimental `Window` class is now subclass-able.
- Added new method `Surface.premul_alpha_ip`
- The `dst` argument of `Surface.blit` now has a default value: `(0, 0)`. This means you can skip this argument if you are blitting a surface at the origin (top-left) of the window.

What's Changed
* 2.5.0.dev5 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2904
* Start 2.5.1 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2905
* Bump docker/login-action from 3.1.0 to 3.2.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2906
* Update docs of `Surface.get_(f)rect()` and `(F)Rect.move_to()` by damusss in https://github.com/pygame-community/pygame-ce/pull/2901
* Fixed missing comma in README by REX2626 in https://github.com/pygame-community/pygame-ce/pull/2907
* Add SSE2, AVX2 & NEON support to `pygame.print_debug_info()` by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2897
* Use github download links to get SDL dependencies by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2916
* Update transform.get/set_smoothscale_backend typehint from str to Literal by damusss in https://github.com/pygame-community/pygame-ce/pull/2918
* Contribution Section Added to README.rst by MrF1ow in https://github.com/pygame-community/pygame-ce/pull/2910
* Update punctuation in some docs by whangho in https://github.com/pygame-community/pygame-ce/pull/2919
* More SDL3 compat: Surface things by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2922
* Very small typehint fix for pygame.Mask by damusss in https://github.com/pygame-community/pygame-ce/pull/2926
* Remove SDL v1.2.10 checks in display.c by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2928
* pygame.Surface docs improvements by REX2626 in https://github.com/pygame-community/pygame-ce/pull/2911
* Bump docker/build-push-action from 5.3.0 to 5.4.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2932
* Fix failing tests based on numpy v2 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2934
* Bump actions/checkout from 4.1.6 to 4.1.7 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2931
* Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2930
* EventState SDL3 compat by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2940
* Try re-enabling tests disabled since SDL 2.0.18 by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2885
* Fix passing `parent_window=None` to `message_box` by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2723
* Improve security of releases by adding hash checks by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2941
* Updated SDL to 2.30.4 by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2949
* Fix transform.hsl() to work on any Surface by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2948
* Bump docker/build-push-action from 5.4.0 to 6.1.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2955
* Allow degenerate circles (radius = 0) by damusss in https://github.com/pygame-community/pygame-ce/pull/2913
* Improve `PixelArray.make_surface()` performance by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2953
* Fix `Surface.fill` with rects with negative positions that overlap the surface by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2939
* Add ABGR format to frombytes and tobytes by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2951
* Make window subclassable by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2950
* Optimized `transform.scale2x()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2859
* Use static inline instead of inline by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2952
* Add default dest (0, 0) to Surface.blit by damusss in https://github.com/pygame-community/pygame-ce/pull/2936
* Docs generation is now `python -m buildconfig docs` and `python -m buildconfig docs full_generation` by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2942
* Bump docker/build-push-action from 6.1.0 to 6.2.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2963
* Bump robinraju/release-downloader from 1.10 to 1.11 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2964
* Add `Surface.premul_alpha_ip()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2899
* SDL 2.30.5 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2969
* Make pyproject license consistent with `setup.py` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2971
* Fix `premul_alpha_ip` doc indentation issue by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2972
* Add new official logos for pygame - Community Edition by Mega-JC in https://github.com/pygame-community/pygame-ce/pull/2965
* Fix homepage and release notes link in pypi urls by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2977
* Use PyObject_CallMethod in resource loaders by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2974
* Get rid of docscomments.js from docs by Notenlish in https://github.com/pygame-community/pygame-ce/pull/2959
* Remove obsolete surflock functions by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2973
* Bump docker/build-push-action from 6.2.0 to 6.3.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2983
* Ensure `.premul_alpha_ip()` works with zero sized Surfaces by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2980
* Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2982
* Restore inlining for `.fblits()` internal functionality by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2978
* Optimized `mask.from_surface()` when converting an alpha surface. by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2895
* Fix scaled-after-non-scaled usage by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2925
* Optimized all `Rect/FRect` methods via `pgRect_FromObject` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2908
* General example changes by bilhox in https://github.com/pygame-community/pygame-ce/pull/2581
* python -m buildconfig now works again... by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2989
* Use python 3.8 isms in the type stubs by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2995
* Add license identifier to readme by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2890
* Polish stubs with deprecated decorator by damusss in https://github.com/pygame-community/pygame-ce/pull/2984
* Make deprecated API raise deprecation warnings by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3001
* Use `SDL_TTF_VERSION_ATLEAST` by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/3003
* Make blend flag docs more accurate by Mic-lab in https://github.com/pygame-community/pygame-ce/pull/3004
* Fix editable install test fixtures logic by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2996
* Support iterable in `display.update` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2987
* 3.13 source support (removes deprecated functions) by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2994
* Centralize CI config and make it more uniform (Adds macOS arm64 pypy CI) by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2945
* Optimize draw.aacircle and fix typo by mzivic7 in https://github.com/pygame-community/pygame-ce/pull/3012
* Pin all build dependencies by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3015
* Bump docker/build-push-action from 6.3.0 to 6.4.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3013
* Skip flaky window tests on pypy by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3017
* Adjust tobytes premul formula by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2966
* Update OpenGL Viewport when Window resizes by damusss in https://github.com/pygame-community/pygame-ce/pull/2915
* Use PyObject_CallNoArgs where applicable by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3020
* Changed dark theme slightly to make code more readable in some cases by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2960
* Remove unnecessary pixeloffset member of subsurface data by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3014
* draw.c: better strategy for 24bpp writes by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/3021
* Bump docker/login-action from 3.2.0 to 3.3.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3025
* Bump docker/build-push-action from 6.4.1 to 6.5.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/3024
* Update SDL to 2.30.6 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/3034
* Skip yet another flaky pypy test by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3031
* Add python 3.13 wheel support by ankith26 in https://github.com/pygame-community/pygame-ce/pull/3030

New Contributors
* REX2626 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2907
* MrF1ow made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2910
* whangho made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2919
* Mic-lab made their first contribution in https://github.com/pygame-community/pygame-ce/pull/3004

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.5.0.dev4...2.5.1.dev2

2.5.0

โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰

This release, coming in just four months after the previous one, has been possible due to patches submitted by over 30 contributors, who have collectively made over 132 pull requests with 464 commits that touch 413 files! Impressive!

Now, onto the highlights!

Highlights

API updates

damusss
- added `mouse.get_just_[pressed|released]` in https://github.com/pygame-community/pygame-ce/pull/2836
- added `display.[get|set]_window_position` in https://github.com/pygame-community/pygame-ce/pull/2816
- `(F)Rect` can be initialized with no arguments in https://github.com/pygame-community/pygame-ce/pull/2655

whydoubt added the `pitch` argument for `image.tobytes` in https://github.com/pygame-community/pygame-ce/pull/2602

XFajk added `Color.from_normalized` constructor and `Color.normalized` property in https://github.com/pygame-community/pygame-ce/pull/2693

mzivic7 added `draw.aacircle` in https://github.com/pygame-community/pygame-ce/pull/2800

itzpr3d4t0r added `transform.hsl` in https://github.com/pygame-community/pygame-ce/pull/2398

ScriptLineStudios implemented a few convenience properties to `Surface` class: `Surface.width`, `Surface.height` and `Surface.size` in https://github.com/pygame-community/pygame-ce/pull/2813

bilhox added `math.invlerp` and `math.remap` in https://github.com/pygame-community/pygame-ce/pull/2654

ankith26 added `mixer.get_driver` in https://github.com/pygame-community/pygame-ce/pull/2741

SIMD Performance enhancements

Starbuck5 improved performance of SSE2 `no_surf_alpha_opaque_dst` blitter in https://github.com/pygame-community/pygame-ce/pull/2601 and https://github.com/pygame-community/pygame-ce/pull/2896. As a result of this PR, some kinds of blit operations should get a nice speed up (upto about 2.5x speedup on the testcases we used) on some hardware.

itzpr3d4t0r
- Partially refactor SSE2 blitters with macros in https://github.com/pygame-community/pygame-ce/pull/2656.
- Implemented AVX2 variant of `Surface.premul_alpha` in https://github.com/pygame-community/pygame-ce/pull/2615

MyreMylar added SIMD versions `transform.invert` in https://github.com/pygame-community/pygame-ce/pull/2534. This gives a significant performance boost, and in the example we tested, we have observed a 12x-13x speedup!

More `pygame.geometry` goodies

The recently introduced experimental `pygame.geometry` submodule has gotten more features and polish in this release in the PRs: https://github.com/pygame-community/pygame-ce/pull/2561, https://github.com/pygame-community/pygame-ce/pull/2660, https://github.com/pygame-community/pygame-ce/pull/2634, https://github.com/pygame-community/pygame-ce/pull/2662, https://github.com/pygame-community/pygame-ce/pull/2661, https://github.com/pygame-community/pygame-ce/pull/2709, https://github.com/pygame-community/pygame-ce/pull/2791, https://github.com/pygame-community/pygame-ce/pull/2732, https://github.com/pygame-community/pygame-ce/pull/2731

A big thanks to everyone who contributed to pygame-geometry so far: Emc2356, itzpr3d4t0r, novialriptide, ScriptLineStudios, avaxar, gresm, Matiiss, newpaxonian, maqa41, and blankRiot96

As with all experimental submodules, do remember that things in here are subject to change, and there are a lot more things to be added! See the docs for the current progress.

Other general highlights

oddbookworm added `opengl` support to the experimental `pygame.Window` interface in https://github.com/pygame-community/pygame-ce/pull/2659

ankith26 added Wayland and PipeWire support in the linux wheels distributed by us in https://github.com/pygame-community/pygame-ce/pull/1997 and https://github.com/pygame-community/pygame-ce/pull/2733

ankith26 rewrote the build machinery in the `meson` buildsystem, while deprecating the old build machinery in the PRs https://github.com/pygame-community/pygame-ce/pull/2557, https://github.com/pygame-community/pygame-ce/pull/2803, https://github.com/pygame-community/pygame-ce/pull/2853, https://github.com/pygame-community/pygame-ce/pull/2856, https://github.com/pygame-community/pygame-ce/pull/2875, https://github.com/pygame-community/pygame-ce/pull/2854, https://github.com/pygame-community/pygame-ce/pull/2831, https://github.com/pygame-community/pygame-ce/pull/2779. As part of these changes, a few improvements are:
- On 32-bit ARMv7 systems (which includes many Raspberry Pi), NEON (SIMD) optimizations are now enabled by default. Therefore users of this should see a significant performance boost in many operations that can support SIMD.
- Enhanced support for Windows MinGW/MSYS2 systems.
- Reduced wheel size.

Deprecations and Removals

Starbuck5 removed the `pygame.threads` submodule in https://github.com/pygame-community/pygame-ce/pull/2762

oddbookworm re-added and properly deprecated the `blend` argument of `draw.aaline` in https://github.com/pygame-community/pygame-ce/pull/2743


Performance Enhancements

*In addition to those mentioned above that are SIMD-related*

itzpr3d4t0r
- Optimized `(F)Rect.unionall(_ip)` in https://github.com/pygame-community/pygame-ce/pull/2784
- Optimized `(F)Rect.collideXX` family of methods in https://github.com/pygame-community/pygame-ce/pull/2786
- Replaced use of internal C-API functions with more efficient alternatives in https://github.com/pygame-community/pygame-ce/pull/2819

Bug fixes

oddbookworm added shim to fix broken `midi` module compilation in https://github.com/pygame-community/pygame-ce/pull/2863

ankith26
- fixed some init related issues in the experimental `window` API in https://github.com/pygame-community/pygame-ce/pull/2860
- fixed segmentation fault during invalid `PixelArray` usage in https://github.com/pygame-community/pygame-ce/pull/2742


General Enhancements

Kn4ughty made error messages for using `font` align clearer in https://github.com/pygame-community/pygame-ce/pull/2777

pmp-p ensured we keep supporting pygame on the web in
- wasm: unify pygame-web/pyodide/static Freetype init in https://github.com/pygame-community/pygame-ce/pull/2748
- fixed some `METH_NOARGS` arg missing in https://github.com/pygame-community/pygame-ce/pull/2888

damusss
- made `transform` blur on a surface with either width or height equal to 0 not raise `ValueError` in https://github.com/pygame-community/pygame-ce/pull/2852
- Cleanup codebase, docs and examples with American spelling in https://github.com/pygame-community/pygame-ce/pull/2827

Starbuck5 added a `briefcase` template to pygame-ce in https://github.com/pygame-community/pygame-ce/pull/2862

RainRat fixed typos across the repository in https://github.com/pygame-community/pygame-ce/pull/2847

robertpfeiffer relax `Surface.convert` conditions in https://github.com/pygame-community/pygame-ce/pull/2839, now it is no longer a requirement to have called `display.set_mode` when this method has been invoked with a

oddbookworm removed the xwayland warning and ensured that debug info now contains whether x11 is running or xwayland in https://github.com/pygame-community/pygame-ce/pull/2823

Examples and Unit tests

snowfruit added an example for retro scaling in https://github.com/pygame-community/pygame-ce/pull/2785

Matiiss removed undefined variable in `aliens.py` in https://github.com/pygame-community/pygame-ce/pull/2769

Starbuck5 fixed `ftfont_test` being run directly in https://github.com/pygame-community/pygame-ce/pull/2763

MyreMylar
- Add a delta of 2 ms to test_music_pause__unpause() in https://github.com/pygame-community/pygame-ce/pull/2898

ankith26
- Force window surface update after set_size, hopefully proper fix for that pesky frequent pypy test fail in https://github.com/pygame-community/pygame-ce/pull/2865
- Minor changes to support pytest in https://github.com/pygame-community/pygame-ce/pull/2675


Docs, Tutorials and typestubs

lispspb
- fixed documentation mix up in attributes of object returned by `get_power_state` in https://github.com/pygame-community/pygame-ce/pull/2734
- added clarifications about ranges in `mixer` docs in https://github.com/pygame-community/pygame-ce/pull/2738

kritserv fixed an issue in `pygame.display.get_caption` docs in https://github.com/pygame-community/pygame-ce/pull/2765

yohanmoon added instructions for resolving setuptools issue in the docs readme in https://github.com/pygame-community/pygame-ce/pull/2868

Matiiss added more `/` (positional-only notation) to docs and stubs in https://github.com/pygame-community/pygame-ce/pull/2691

oddbookworm fixed indentation of surface attributes in https://github.com/pygame-community/pygame-ce/pull/2900

ankith26 did some minor docs/stubs improvements in `invlerp`/`remap` in https://github.com/pygame-community/pygame-ce/pull/2902

Starbuck5 added warning about 7.1 stereo on `set_source_location` in https://github.com/pygame-community/pygame-ce/pull/2881

MyreMylar
- removed duplicate images in tutorials in https://github.com/pygame-community/pygame-ce/pull/2871
- including `print_debug_info()` in issue template in https://github.com/pygame-community/pygame-ce/pull/2879
- adjusted symbol color in light theme in https://github.com/pygame-community/pygame-ce/pull/2891

Code quality and robustness

cclauss
- Minor optimizations by using comprehensions in https://github.com/pygame-community/pygame-ce/pull/2771
- PEP572 Use Python's assignment expression in https://github.com/pygame-community/pygame-ce/pull/2782
- Remove lint logic from `setup.py` in https://github.com/pygame-community/pygame-ce/pull/2796
- `setup.py`: Properly add `_sdl2_data_files` to `data_files` in https://github.com/pygame-community/pygame-ce/pull/2770

Lumiobyte fix a comment typo in `rect_impl.h` in https://github.com/pygame-community/pygame-ce/pull/2658

Matiiss reduced redundancy in `surface.fblits` code and handled generator exception in https://github.com/pygame-community/pygame-ce/pull/2679

oddbookworm applied formatting updates using newest version of clang-format in https://github.com/pygame-community/pygame-ce/pull/2744

itzpr3d4t0r
- removed shuffle masks in AVX fillers in https://github.com/pygame-community/pygame-ce/pull/2642
- simplified SIMD fill algorithms in https://github.com/pygame-community/pygame-ce/pull/2793

Starbuck5
- Unify freetype init codepaths in https://github.com/pygame-community/pygame-ce/pull/2801
- (Freetype) use calloc where possible in https://github.com/pygame-community/pygame-ce/pull/2802
- Cleanup `rwobject.c` file object methods in https://github.com/pygame-community/pygame-ce/pull/2717
- gitignore meson temp folder in https://github.com/pygame-community/pygame-ce/pull/2805
- Use `HasColorKey` before `GetColorKey` in https://github.com/pygame-community/pygame-ce/pull/2835 and https://github.com/pygame-community/pygame-ce/pull/2844

ankith26
- Remove docs non-public module stubs in https://github.com/pygame-community/pygame-ce/pull/2794
- Fix pylint undefined usage error in sysfont in https://github.com/pygame-community/pygame-ce/pull/2858
- Add explicit check and error for system cursor in https://github.com/pygame-community/pygame-ce/pull/2843
- Track version only in pyproject.toml in https://github.com/pygame-community/pygame-ce/pull/2820
- Remove all `.editorconfig` duplicates, re-add in project root with updates in https://github.com/pygame-community/pygame-ce/pull/2788

Dependencies, DevOps and CI

cclauss helped us improve our DevOps and CI
- `python3 setup.py lint` is deprecated: Let's lint with `pre-commit` in https://github.com/pygame-community/pygame-ce/pull/2772
- `build-on-msys2.yml`: Upgrade GitHub `actions/checkoutv4` in https://github.com/pygame-community/pygame-ce/pull/2812
- Format Python code with ruff format instead of black in https://github.com/pygame-community/pygame-ce/pull/2824

Starbuck5 continued working on changes that make our code ready for SDL3
- `transform.scale`: softstretch SDL2/SDL3 compat in https://github.com/pygame-community/pygame-ce/pull/2707
- SDL2/SDL3 mutex support in https://github.com/pygame-community/pygame-ce/pull/2712
- Simple SDL3 patches for `freetype`, `surface` and `mouse` in https://github.com/pygame-community/pygame-ce/pull/2838
- Use macros for `[Bytes|Bits]PerPixel` compat in SDL3 in https://github.com/pygame-community/pygame-ce/pull/2804

ankith26
- bumped gh actions mac runners (gets us native M1 builds) in https://github.com/pygame-community/pygame-ce/pull/2494
- kept the CI running by fixing a few dependency update related issues in https://github.com/pygame-community/pygame-ce/pull/2774, https://github.com/pygame-community/pygame-ce/pull/2778 and https://github.com/pygame-community/pygame-ce/pull/2916
- fixed `python -m docs` dev time convenience command in https://github.com/pygame-community/pygame-ce/pull/2889

MyreMylar altered our CODEOWNERS file to switch required PR review team in https://github.com/pygame-community/pygame-ce/pull/2873

Matiiss, oddbookworm, and Starbuck5 kept our `SDL` dependency updated in https://github.com/pygame-community/pygame-ce/pull/2689, https://github.com/pygame-community/pygame-ce/pull/2690, https://github.com/pygame-community/pygame-ce/pull/2705, https://github.com/pygame-community/pygame-ce/pull/2761, https://github.com/pygame-community/pygame-ce/pull/2806, https://github.com/pygame-community/pygame-ce/pull/2837

dependabot kept all our CI dependencies updated in https://github.com/pygame-community/pygame-ce/pull/2814, https://github.com/pygame-community/pygame-ce/pull/2809, https://github.com/pygame-community/pygame-ce/pull/2767, https://github.com/pygame-community/pygame-ce/pull/2755, https://github.com/pygame-community/pygame-ce/pull/2756, https://github.com/pygame-community/pygame-ce/pull/2754, https://github.com/pygame-community/pygame-ce/pull/2747, https://github.com/pygame-community/pygame-ce/pull/2746, https://github.com/pygame-community/pygame-ce/pull/2736, https://github.com/pygame-community/pygame-ce/pull/2730, https://github.com/pygame-community/pygame-ce/pull/2683, https://github.com/pygame-community/pygame-ce/pull/2628, https://github.com/pygame-community/pygame-ce/pull/2874, https://github.com/pygame-community/pygame-ce/pull/2861, https://github.com/pygame-community/pygame-ce/pull/2851, https://github.com/pygame-community/pygame-ce/pull/2833

Starbuck5 and ankith26 kept them releases coming in at https://github.com/pygame-community/pygame-ce/pull/2631, https://github.com/pygame-community/pygame-ce/pull/2817, https://github.com/pygame-community/pygame-ce/pull/2818, https://github.com/pygame-community/pygame-ce/pull/2903, https://github.com/pygame-community/pygame-ce/pull/2904, https://github.com/pygame-community/pygame-ce/pull/2921

New Contributors

This release we have had 11 new contributors, special thanks to everyone getting started!

* Lumiobyte made their first contribution in 2658
* XFajk made their first contribution in 2693
* whydoubt made their first contribution in 2602
* lispspb made their first contribution in 2734
* kritserv made their first contribution in 2765
* cclauss made their first contribution in 2770
* Kn4ughty made their first contribution in 2777
* snowfruit made their first contribution in 2785
* RainRat made their first contribution in 2847
* yohanmoon made their first contribution in 2868
* mzivic7 made their first contribution in 2800

In addition, we're also inviting 2 new members to the contributor team: damusss and gresm! Members of the team have more permissions and more responsibilities, as regular reviewers: https://github.com/pygame-community/pygame-ce/wiki/Becoming-a-Reviewer#becoming-a-regular-reviewer

Thanks all

A sincere thank you to everyone involved! This involves not only the PR makers but also to the broader community which includes issue reporters, PR reviewers, tutorial creators, admins/mods/helpers across various online platforms, individuals developing helper libraries, and most importantly, all our users โ€“ including you, the reader of these notes!

Apologies in advance if we've made an error in these notes, and please get in touch with us to get a correction made.

Until next time, take care, and enjoy pygaming!

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.4.1...2.5.0

2.5.0.dev4

This is a pre-release for 2.5.0.

Highlights

- New functions for surfaces: `draw.aacircle()` and `transform.hsl`. Surfaces also have new attributes `Surface.width`, `Surface.height` and `Surface.size`.
- New window positioning API for pygame.display. `pygame.display.get/set_window_position()`
- New math functions `math.invlerp` and `math.remap`
- OpenGL support for the experimental Window class
- See the highlights of 2.5.0.dev2 as well: https://github.com/pygame-community/pygame-ce/releases/tag/2.5.0.dev2

What's Changed
* 2.5.0.dev2 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2817
* Bump to 2.5.0.dev3 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2818
* Bump actions/checkout from 4.1.2 to 4.1.3 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2814
* Minor optimizations by using comprehensions by cclauss in https://github.com/pygame-community/pygame-ce/pull/2771
* Remove use of Py_BuildValue("(ii)") by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2819
* Cleanup codebase, docs and examples with American spelling by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2827
* Unify freetype init codepaths by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2801
* xwayland warning removed; documented; and debug info now contains whether x11 is running or xwayland by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2823
* Remove lint logic from setup.py by cclauss in https://github.com/pygame-community/pygame-ce/pull/2796
* Track version only in pyproject.toml by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2820
* Bump actions/checkout from 4.1.3 to 4.1.4 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2833
* Try sleeping in window autoresize test by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2832
* Use HasColorKey instead of GetColorKey in pgSurface_Blit by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2835
* Updated SDL to 2.30.3 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2837
* Simple SDL3 patches for freetype, surface, mouse by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2838
* Format Python code with ruff format instead of black by cclauss in https://github.com/pygame-community/pygame-ce/pull/2824
* Bump gh actions mac runners (gets us native M1 builds) by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2494
* Add explicit check and error for system cursor by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2843
* Always call HasColorKey before GetColorKey by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2844
* Remove cython gen files, generate in meson build by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2831
* Optimized ( Rect/Frect ) unionall()/unionall_ip() by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2784
* PixelArray raise error assigning sequence to pixel by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2742
* Bump actions/checkout from 4.1.4 to 4.1.5 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2851
* fix typos by RainRat in https://github.com/pygame-community/pygame-ce/pull/2847
* Fix pylint undefined usage error in sysfont by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2858
* Add pygame.mouse.get_just_pressed/released() by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2836
* Bump actions/checkout from 4.1.5 to 4.1.6 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2861
* Using blur on a surface with either width or height equal to 0 won't raise a ValueError by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2852
* Simplified SIMD fill algorithms by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2793
* Bundle only the required pygame icon files by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2854
* add instruction for `ModuleNotFoundError: No Module named setuptools` by yohanmoon in https://github.com/pygame-community/pygame-ce/pull/2868
* Deprecate `setup.py stubcheck`, suggest and use replacement `buildconfig/stubs/stubcheck.py` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2856
* Run display autoinit on window API, fixes by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2860
* Force window surface update after set_size, hopefully proper fix for that pesky frequent pypy test fail by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2865
* Surface properties by ScriptLineStudios in https://github.com/pygame-community/pygame-ce/pull/2813
* relax convert conditions by robertpfeiffer in https://github.com/pygame-community/pygame-ce/pull/2839
* Added shim to fix portmidi break by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2863
* Alter CODEOWNERS file to switch required PR review team by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2873
* Deprecate `setup.py docs`, make docs in meson build by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2853
* Remove duplicate images in tutorials by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2871
* Add Circle `contains()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2791
* Bump pypa/cibuildwheel from 2.17.0 to 2.18.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2874
* Minor changes to support pytest by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2675
* Window(opengl=True) will now create an OpenGL context by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2659
* Add pygame.display.get/set_window_position() by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2816
* draw.aacircle() by mzivic7 in https://github.com/pygame-community/pygame-ce/pull/2800
* Update mixer docs by lispspb in https://github.com/pygame-community/pygame-ce/pull/2738
* Add a briefcase template to pygame-ce by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2862
* including `print_debug_info()` in issue template by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2879
* Add warning about 7.1 stereo on set_source_location by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2881
* fix some METH_NOARGS arg missing by pmp-p in https://github.com/pygame-community/pygame-ce/pull/2888
* Fix `python -m docs` dev time convenience command by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2889
* Add `transform.hsl()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2398
* Adjust symbol color in light theme by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2891
* Deprecate `setup.py sdist`, suggest and use replacement pypa/build based command by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2875
* Add missing check in SSE2 alpha blitter by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2896
* Add a delta of 2 ms to test_music_pause__unpause() by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2898
* ``invlerp`` and ``remap`` implementation by bilhox in https://github.com/pygame-community/pygame-ce/pull/2654
* fixed indentation of surface attributes by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2900
* Minor docs/stubs improvements in `invlerp`/`remap` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2902

New Contributors
* RainRat made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2847
* yohanmoon made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2868
* mzivic7 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2800

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.5.0.dev2...2.5.0.dev4

Page 1 of 4

ยฉ 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.