Pygame-ce

Latest version: v2.4.1

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

Scan your dependencies

Page 1 of 3

2.5.0.dev2

This is an early pre-release for 2.5.0, we expect to also do a `dev4` before the full release.

Highlights

- More performance optimizations: Faster blitters in some cases, faster `Surface.premul_alpha`, faster `transform.invert`, faster "multi-collide" `Rect` methods (like `Rect.collidelist`).
- Incremental progress in `pygame.geometry`, more methods added to classes.
- Wayland and PipeWire support on linux wheels we distribute.
- Switched to the Meson build system (keeps us modern). As part of this we expect SIMD support by default on 32-bit ARM systems (like some Raspberry Pi).

Other API updates
- Added `from_normalized()` method to `Color`.
- `pitch` argument implemented in `image.tobytes()`.
- `Rect()` and `FRect()` now support initialization with no arguments.

What's Changed
* Start 2.5.0 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2631
* Bump docker/metadata-action from 5.3.0 to 5.4.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2628
* Call `PyObject_GetBuffer` directly, fix pypy fail by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2639
* Add Circle `move()`/`move_ip()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2561
* Improve performance of SSE2 no_surf_alpha_opaque_dst blitter by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2601
* Fix comment typo in rect_impl.h by Lumiobyte in https://github.com/pygame-community/pygame-ce/pull/2658
* Fix `Circle` move docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2660
* Remove shuffle masks in AVX fillers by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2642
* Matiiss update sdl ttf by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2687
* Fix error reporting sdl 2.29.2+ by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2689
* Bump actions/cache from 3.3.3 to 4.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2683
* Added more `/` (positional-only notation) by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2691
* Reduced redundancy in `surface.fblits` code and handled generator exception by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2679
* Rect() and FRect() initialization with no arguments by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2655
* added from_normalized() and get and set normalized methods for pygame.Color by XFajk in https://github.com/pygame-community/pygame-ce/pull/2693
* Partially refactor SSE2 blitters with macros by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2656
* SDL 2.30.0 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2705
* SDL 2.29.3 pre-release by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2690
* Implement pitch argument for image.tobytes() by whydoubt in https://github.com/pygame-community/pygame-ce/pull/2602
* transform.scale: softstretch SDL2/SDL3 compat by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2707
* Add missing geometry versionadded tags by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2709
* SDL2/SDL3 mutex support by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2712
* Add Circle `as_rect()`/ `as_frect()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2634
* Add Circle `rotate()` / `rotate_ip()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2662
* Add Circle `collideswith()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2661
* Bump CircleCI-Public/trigger-circleci-pipeline-action from 1.1.0 to 1.2.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2730
* Deleted a space in geometry docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2732
* Update system.rst by lispspb in https://github.com/pygame-community/pygame-ce/pull/2734
* Cleanup rwobject.c file object methods by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2717
* Add wayland and kmsdrm support to manylinux wheels by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1997
* Bump actions/cache from 4.0.0 to 4.0.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2736
* Formatting updates using newest version of clang-format by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2744
* Bump docker/build-push-action from 5.1.0 to 5.2.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2747
* Bump softprops/action-gh-release from 1 to 2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2746
* wasm: unify pygame-web/pyodide/static Freetype init by pmp-p in https://github.com/pygame-community/pygame-ce/pull/2748
* Reorganize geometry internals by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2731
* Undeprecate draw aaline blend by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2743
* AVX2 premul_alpha() by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2615
* Bump docker/login-action from 3.0.0 to 3.1.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2755
* Bump docker/build-push-action from 5.2.0 to 5.3.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2756
* Bump actions/checkout from 4.1.1 to 4.1.2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2754
* Add `mixer.get_driver` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2741
* Add pipewire and libsamplerate+fftw3 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2733
* SDL 2.30.1 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2761
* Fix `pygame.display.get_caption()` Docs in display.rst by kritserv in https://github.com/pygame-community/pygame-ce/pull/2765
* Bump actions/cache from 4.0.1 to 4.0.2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2767
* setup.py: Properly add _sdl2_data_files to data_files by cclauss in https://github.com/pygame-community/pygame-ce/pull/2770
* Update freetype download link because current one is broken (fixes failing circleci builds) by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2774
* Remove undefined variable in aliens.py by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2769
* Fix ftfont_test being run directly by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2763
* Remove pygame.threads by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2762
* Make error messages for using font.align clearer by Kn4ughty in https://github.com/pygame-community/pygame-ce/pull/2777
* Remove apt upgrade in CI by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2778
* `python3 setup.py lint` is deprecated: Let's lint with `pre-commit` by cclauss in https://github.com/pygame-community/pygame-ce/pull/2772
* Add example for retro scaling by snowfruit in https://github.com/pygame-community/pygame-ce/pull/2785
* PEP572 Use Python's assignment expression by cclauss in https://github.com/pygame-community/pygame-ce/pull/2782
* Remove all .editorconfig duplicates, re-add in project root with updates by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2788
* Add SIMD versions of the invert transform by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2534
* Remove docs non-public module stubs by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2794
* Add meson build system [phase 1] by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2557
* (Freetype) use calloc where possible by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2802
* Bump robinraju/release-downloader from 1.9 to 1.10 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2809
* SDL 2.30.2 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2806
* gitignore meson temp folder by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2805
* Fix sdist to include meson stuff and minor updates by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2803
* build-on-msys2.yml: Upgrade GitHub actions/checkoutv4 by cclauss in https://github.com/pygame-community/pygame-ce/pull/2812
* Use macros for (Bytes|Bits)PerPixel compat in SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2804
* Add armv6 and armv7 to multiarch CI and fix build issues by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2779
* Optimized Rect multi-collision methods by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2786

New Contributors
* Lumiobyte made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2658
* XFajk made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2693
* whydoubt made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2602
* lispspb made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2734
* kritserv made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2765
* cclauss made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2770
* Kn4ughty made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2777
* snowfruit made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2785

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

2.4.1

πŸŽ©βš“πŸ“ΊπŸ’½πŸ¦ΎπŸŽ©βš“πŸ“ΊπŸ’½πŸ¦ΎπŸŽ©βš“πŸ“ΊπŸ’½πŸ¦Ύ
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
πŸŽ©βš“πŸ“ΊπŸ’½πŸ¦ΎπŸŽ©βš“πŸ“ΊπŸ’½πŸ¦ΎπŸŽ©βš“πŸ“ΊπŸ’½πŸ¦Ύ

Hello! This is a smaller release focused on bugfixes and small updates that we've developed on the course to 2.5.0. Rather than waiting for 2.5.0 to get these out into the world, we're doing this release to get bugfixes and small updates out into the world as soon as possible.

Special thanks to all our contributors and reviewers. Check out the changes!

Bugfixes

* Starbuck5 Fixed a `2.3.0` regression where `sysfont` wouldn't provide real bold/italic fonts. (Thanks RasmusTufvesson for reporting this). 2678
* Starbuck5 Fixed a rare bug involving `libpng16-16.dll`. 2674
* Matiiss Fixed a segfault that could be triggered in `Surface.fblits`. 2667
* gresm Changed local docs viewing (`python -m pygame.docs`) to launch a webserver on Linux, to get around permissions issues with some Linux environments. This can be accessed explicitly as `python -m pygame.docs.serve`. 2676
* pmp-p Fixed the webassembly build setup. 2653
* Matiiss Fixed a memory leak in `Renderer.to_surface`. 2665

Dependencies

* Matiiss updated the build to `SDL_ttf 2.22.0` (fixing an issue where `"\n\n"` would segfault multiline-rendering). 2688
* ankith26 updated the build to `SDL_mixer 2.8.0` (adding support for `wavpack` music/sound). 2703
* Starbuck5 updated the build to `SDL_image 2.8.2` (also fixing a rare bug involving libpng, mentioned earlier). 2674

Documentation and examples

* Matiiss updated the bug report template. 2669
* Matiiss improved the Window.flip error message when no surface is associated with the Window. 2633
* Matiiss furthered deprecation of deprecated sprite groups. 2666
* szabolcsdombi Fixed documentation of a Window parameter name (allow_highdpi -> allow_high_dpi). 2704
* itzpr3d4t0r Added more links to the `special_flags` page. 2708
* oddbookworm removed use of the `display` depth parameter in examples. 2644

CI and tests

* MyreMylar kept the CI running error-free by adjusting to a Python 3.12.2 change. 2715
* ankith26 improved test resiliency and coverage. 2640, 2641, 2647
* Starbuck5 fixed code formatting for latest black version. 2697
* dependabot kept github actions up to date. 2612, 2613, 2663, 2671, 2701, 2700, 2702, 2710

New contributors

* szabolcsdombi made their first contribution in 2704

Community showcase

Clear Code released a new pygame tutorial meant specifically for `pygame-ce`, check it out: https://www.youtube.com/watch?v=WViyCAa6yLI

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

2.4.0

β˜€οΈπŸ«πŸŽŠπŸ‘πŸŽ†πŸ πŸ•›πŸ«πŸŒˆπŸŽ„πŸ©πŸͺπŸŽ‡πŸ πŸŽ‰πŸ‘πŸͺ…
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
β˜€οΈπŸ«πŸŽŠπŸ‘πŸŽ†πŸ πŸ•›πŸ«πŸŒˆπŸŽ„πŸ©πŸͺπŸŽ‡πŸ πŸŽ‰πŸ‘πŸͺ…

Happy new year! And with that, hello and welcome to yet another release of `pygame-ce`!

In about 4 months since the last release, this release has seen 36 contributors make over 150 pull requests and 606 commits with 81,203 line additions and 88,026 line deletions across 375 files! Wow!

The 2.4.x series drops support for Python 3.7, which has reached EOL. If you are still using this, consider upgrading to a newer Python version!

Special thanks to all our new (and returning after a while) contributors. Check out the changes!

Notable changes

🟒 A new experimental `geometry` submodule with a `Circle` class

A new submodule is making its way to pygame, how exciting!

The [`pygame_geometry`](https://github.com/pygame-community/pygame-geometry) project started with the purpose of helping users integrate special colliders more easily, by providing implementations for things like polygons, circles, lines, and raycasting. This submodule is still in early development and is very much experimental, but is set to slowly make its way into `pygame-ce` over the next couple of releases.

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

Parts of the submodule were ported bit by bit in the PRs 2268, 2562, 2560, 2614, 2540, 2536, 2519 and 2545

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](https://pyga.me/docs/ref/geometry.html) for the current progress.

πŸš€ More SIMD-based performance enhancements

Did you know pygame-ce uses optimized assembly? We use single instruction, multiple data (SIMD) instructions to speed up operations with lots of parallel computations. In this release, we've used this to increase performance of several `transform` and `Surface` operations (with more to come in future releases). These optimizations target Intel/AMD and ARM architectures.

* MyreMylar added an optimized backend for `transform.greyscale` through 2421 and 2432. **Expected speedup**: 7x for ARM/old x86 computers. 11x for x86 computers that support AVX2.
* itzpr3d4t0r worked on speeding `Surface.fill` when used with blend flags in 2566, 2382 and 2565. **Expected speedup**: Ridiculously faster, like 50-100x faster
* Starbuck5 added a new optimized backend for `transform.smoothscale` in 2473 and 2544. **Expected speedup**: 15% faster on x86, 35% faster on ARM.

πŸͺŸ Improvements to the experimental Window class

A lot of nice work went behind the experimental `Window` class in this release. The `Window` class enables controlling multiple windows, and enables cool new windowing features over the `pygame.display` API. This is important because we hope the `Window` API exits experimental status soon! See [the docs](https://pyga.me/docs/ref/window.html) for the current progress.

* Matiiss added the `[min|max]imum_size` properties in 2364
* novialriptide fixed a segmentation fault when destroying window in 2530
* yunline and Starbuck5 created a new way to manage display surfaces with Window, adding the `get_surface` and `flip` methods and deprecating `from_display_module`. 2350, 2575, 2577, 2624.
* yunline added some unit tests in 2230
* yunline did a `grab` API rework in 2379 and 2520
* yunline added `mouse_rect` in 2564
* Starbuck5 worked to improve the documentation and remove extraneous/questionable bits of the API. 2617, 2618, 2627.
* Starbuck5 made the Window class available as `pygame.Window` in 2604 and 2607.

API Changes

New API

* `key.get_just_[pressed|released]` (check key status without event loop) by ScriptLineStudios in 1912
* `[F]Rect.move_to` by Matiiss in 2165
* `math.lerp` and `math.smoothstep` by robertpfeiffer in 2254
* `mixer.Channel.id` by oddbookworm in 2369
* `image.load_sized_svg` (scale as vector before loading into Surface) by ankith26 in 2620
* `mouse.[get|set]_relative_mode` by yunline in 2076
* `system.get_power_state` (battery info!) by yunline in 2257
* `display.message_box` (for alerts) by yunline in 2427

Updated API

* yunline improved subpixel rendering (float coordinates) for `_sdl2.video.Texture` and `_sdl2.video.Renderer` in 2039
* yunline added support for `int`/`str` color values in `_sdl2.video` module in 2400
* gresm added and improved support for subclassing `mixer.Sound` and `mixer.Channel` in 2590
* oddbookworm added keyword argument support to `Rect.collidedict[all]` in 2309
* oddbookworm did some changes to allow `clamp_magnitude`ing of the zero vector when possible in 2598
* Starbuck5 updated our build to use SDL_image 2.8.0, which adds support for `QOI` images, in 2595.

Removals and deprecations

* MightyJosip and MyreMylar removed deprecated `blend` argument from `draw.aaline[s]` in 2506 and 2550 respectively.
* MyreMylar removed the cythonised `_sprite` module in 2546. For now, a compat shim is provided, but its usage is deprecated.
* zoldalma999 deprecated the `depth` argument of `display.set_mode` in 2490
* Starbuck5 deprecated the old backends of `transform.smoothscale` in 2583

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

* Starbuck5 optimized vector argument parsing in 2443, so `Vector` methods that operate on another `Vector` (like `move_towards`) are now ~10% faster.
* itzpr3d4t0r made many `[F]Rect` methods implement the FASTCALL convention in 2043, 2563 and 2570. All the updated functions should now work faster!
* Matiiss and itzpr3d4t0r optimized hadling of `[F]Rect` arguments in 2041 and 2465.

Bug fixes

* dr0id added checks to disable font API usage when the subsystem is not initialized in 2371
* oddbookworm fixed an underflow issue in `tick_busy_loop` in 2466
* Damus666 did some WASM related fixes in `display`, `math` and `color` submodules in 2480 and 2482 (by adding required PyObject *_null parameter to functions marked with METH_NOARGS)
* pmp-p fixed a WASM loader incorrect target issue in 2586
* A team of new contributors: igordsm, JorasOliveira, Antonioarf, jpgianfaldoni, caioesr, cicerotcv and nataliaqmc fixed a colorkey issue in `transform.rotozoom` in 2491
* yunline fix a segfault in the `update` method of `_sdl2.video.Texture` in 2553
* ankith26 fix file-like `close` not called in `freetype.Font` in 2606
* Temmie3754 fixed incorrectly drawn edges in `draw.polygon` in 2131
* Temmie3754 fixed `gfxdraw.bezier` for when there are a lot of points in 2503
* MyreMylar fixed a segfault when passing empty `StringIO`/`File` objects to `Font` in 2548
* MyreMylar fixed RLE related issues in the `transform` module in 2535
* MyreMylar prevented an unnecessary warning from being raised when using `SysFont` and the default font in 2543
* Starbuck5 implemented a fix for windows webcams that don't report framerate crashing `pygame.camera` in 2574
* Starbuck5 fixed `image.get_sdl_image_version` incorrectly handling the `linked` argument in 2597

Test and examples related improvements

* dr0id corrected a typo in `Rect` test methods in 2359
* Matiiss added a `mixer` test skip because it randomly fails on Linux in 2438
* zoldalma999 removed `test` tests in 2475
* JorasOliveira added tests to `Surface.get_(f)rect` in 2492
* gresm added more multiline examples in 2588
* KentAugust added multiplayer joystick example in 2524
* bilhox updated `video` example to use the new `pygame.display.message_box` in 2572
* llindstrom updated the `go_over_there` example for Python 3.12 in 2521
* ankith26 made some freetype tests run on CI and fixed a minor test fail in 2370
* ankith26 added tests for PBM, LBM and XCF images, and also updated some docs in 2608

Docs and typing related enhancements

* itzpr3d4t0r improved `Surface.blit[s]` docs in 2262 and 2263
* zoldalma999 remove mentions of `overlay` module in 2411
* bilhox updated the French README in 2228
* oddbookworm did some minor `sprite` doc fixes in 2423
* sweatshirtwearingviper corrected a `sprite` documentation error in 2442
* Carbon32 added a Spanish translation of the README file in 2430
* novialriptide corrected casing for macOS in 2538
* Notenlish fixed caution visual bug for dark theme in 2418
* JiffyRob added docs for `devicename` parameter in `mixer.init` in 2525
* JorasOliveira clarified `event.custom_type` docs in 2527
* ZeroWave022 added typing support for `sprite.collide_mask` as `collided` argument in `sprite.spritecollide` in 2569
* Starbuck5 removed some obsolete information in 2459 and 2499
* Matiiss added positional-only parameter notation (`/` in function signature) in 2457. This removes ambiguity from the docs about whether a function supports keyword arguments or not.
* Matiiss edited `scrap` docs to highlight non-deprecated functions in 2515
* MyreMylar added some missing `versionadded` tags in `mouse` in 2573
* MyreMylar added a Premultiplied Alpha tutorial in 2531
* MyreMylar de-emphasise passing a list of rectangles to update in 2532
* MyreMylar removed 'responsive' tables from docs CSS in 2509
* MyreMylar added docs for windows DPI awareness hint and docs/tests for `SDL_MOUSE_TOUCH_EVENTS` in 2511, 2484.
* MyreMylar removed an unused param from `Surface.convert_alpha` docs in 2486

Other general updates

* Matiiss improved `Surface.fill` error message for invalid blend flags in 2434
* ankith26 dropped Python 3.7 support in 2493
* MyreMylar reduced usage of "dummy" in codebase to minimum in 2547
* MyreMylar stripped the leading `SDL_` from the pixel format name in 2477

Code quality and robustness

* Julian-O remove spurious comment in base `__init__.py` in 2507
* yunline removed unneeded SDL version checks in 2372
* Matiiss made minor improvements to `Window.size` and `Window.position` C code in 2367
* Matiiss fixed linter failing due to new `clang-format` version in 2461
* MyreMylar ran `clang-format` on the vendored contents of `SDL_gfx/` in 2508
* MyreMylar removed usage of deprecated `Thread.setDaemon` in 2559
* ankith26 fixed compiler warnings in event, camera and display in 2567
* ankith26 made windows `_camera` compile only on MSVC in 2585
* ankith26 updated `pygame.version` to not be an autogen file in 2537
* ankith26 fixed a pypy fail by calling `PyObject_GetBuffer` directly in base C code in 2639
* Starbuck5 started work on SDL3 support by incrementally patching modules to get them to compile in the PRs 2437, 2439, 2440, 2481, 2483, 2500, 2501, 2502
* Starbuck5 removed redundant checks in `pg_ResizeEventWatch` in 2487
* Starbuck5 added usage of `RAISE` macro when appropriate in 2444

CI and dependency related updates

* oddbookworm capped the sphinx version under 7.2.0 in 2407
* MyreMylar fixed grub-efi-amd64-signed installation failures on Ubuntu 20.04 CI builds in 2504
* zoldalma999 and Starbuck5 removed old CI files in 2479 and 2460
* Starbuck5 managed versions of our SDL dependencies, raising our minimum build requirements and updating to SDL 2.28.5 as well as a custom build of SDL_image 2.8.0. 2464, 2584, 2580, 2595, 2596, 2474
* ankith26 kept improving our Mac and Linux dependency systems, and keeping our subdependencies up to date. One big win of this work is a 1.4 mb reduction in the size of the Linux wheels, achieved by making mpg123, fluidsynth and sndfile not link directly to lower-level audio playback libs! 2470, 2513, 2549, 2471

New (& returning after a time) Contributors

* sweatshirtwearingviper made their first contribution in 2442
* Carbon32 made their first contribution in 2430
* Damus666 made their first contribution in 2480
* Julian-O made their first contribution in 2507
* llindstrom a pygame contributor of long standing, made their first contribution to pygame-ce 2521
* JorasOliveira, igordsm, Antonioarf, jpgianfaldoni, caioesr, cicerotcv and nataliaqmc made their first contributions in 2491
* MightyJosip a pygame contributor of long standing, made their first contribution to pygame-ce in 2550
* ZeroWave022 made their first contribution in 2569
* KentAugust made their first contribution in 2524
* maqa41 made their first contribution in pygame geometry
* newpaxonian made their first contribution in pygame geometry

Thanks all

A hearty thank you to everyone involved! In addition to PR makers, we are thank the community at large. This includes issue reporters, PR reviewers, tutorial makers, admins/mods/helpers on various online forums, people who make helper libraries, and last but certainly not least, all our users including you: the person reading these notes!

Apologies in advance if we've made a mistake in these notes, do not hesitate to get in touch with us to get a correction made.

Cya, and have fun!

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.3.2...2.4.0

2.4.0.dev4

Hello!

A final dev pre-release before the release of 2.4.0 - please test it!

🍾 🐍 πŸŽ‰ 🌈

The 2.4.x series drops support for Python 3.7, which has reached EOL. If you are using this python version, consider upgrading!

(Yes these notes are mostly autogenerated, if something is missing from here, please do reach out and let us know! The notes for the final release is going to be more handwritten and polished)

Notable new features

- 🟒 **A new, experimental, Circle geometry class** - like `Rect` & `FRect`, but for Circles.
- πŸš€ **More SIMD based performance enhancements** - for the transform submodule and filling surfaces with special blend modes.
- πŸͺŸ **More improvements to the experimental Window class** - should be a lot easier to use for standard pygame software rendering using (e.g. using `.blit()`).
- πŸ› And, as usual, lots of more enhancements and bug fixes. You can see the full list of changes below

And special thanks to all our new (and returning after a while) contributors.

What's Changed

* We no longer have any OBJ-c source, remove tag mention by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2499
* Fix SDL_ConvertSurface(Format) for SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2500
* Optimized `Rect/FRect` `pgRect_FromObject` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2041
* Fix incorrectly drawn edges with fillpoly by Temmie3754 in https://github.com/pygame-community/pygame-ce/pull/2131
* Port last SDL_CreateRGBSurface calls to SDL3-safe PG_CreateSurface by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2501
* Fix grub-efi-amd64-signed installation failures on Ubuntu 20.04 CI builds by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2504
* Strip the leading SDL_ from the pixel format name by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2477
* Remove RDTSC key because detection removed in SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2502
* Implemented `(F)Rect.move_to` by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2165
* Remove spurious comment by Julian-O in https://github.com/pygame-community/pygame-ce/pull/2507
* Remove deprecated blend attribute from draw_aaline() & draw_aalines() by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2506
* `geometry` module, `Circle` base by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2268
* Fix caution visual bug for dark theme by Notenlish in https://github.com/pygame-community/pygame-ce/pull/2418
* run clang-format on the vendored contents of SDL_gfx/ by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2508
* Add docs for windows DPI awareness hint by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2511
* Optimized `pgRect_FromObject` by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2465
* Moving current scrap API docs to the top to avoid confusion by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2515
* `display.message_box()` by yunline in https://github.com/pygame-community/pygame-ce/pull/2427
* Window grab API rework by yunline in https://github.com/pygame-community/pygame-ce/pull/2379
* Fix problems caused by 2379 by yunline in https://github.com/pygame-community/pygame-ce/pull/2520
* Update pygame.examples.go_over_there for Python 3.12 by llindstrom in https://github.com/pygame-community/pygame-ce/pull/2521
* Fix issue 2109: Added requested tests by JorasOliveira in https://github.com/pygame-community/pygame-ce/pull/2492
* Make mpg123, fluidsynth and sndfile not link directly to lower-level audio playback libs by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2471
* Add docs for "devicename" parameter in 'pygame.mixer.init()' by JiffyRob in https://github.com/pygame-community/pygame-ce/pull/2525
* Remove the unused Surface param from convert alpha docs by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2486
* changed to wording in order to make it more clear by JorasOliveira in https://github.com/pygame-community/pygame-ce/pull/2527
* Fix issue 2446: rotozoom keeps the colorkey flag. by igordsm in https://github.com/pygame-community/pygame-ce/pull/2491
* Fix segmentation fault when destroying window by novialriptide in https://github.com/pygame-community/pygame-ce/pull/2530
* Correct casing for macOS by novialriptide in https://github.com/pygame-community/pygame-ce/pull/2538
* Update `pygame.version` to not be an autogen file by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2537
* Add Circle `collidepoint()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2536
* Added missing Circle attrs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2519
* Add SSE2 intrinsics smoothscale backend by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2473
* Fix Circle stubs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2545
* Remove 'responsive' tables from docs CSS by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2509
* Don't double install mac deps, cleanups by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2513
* Add Circle `collidecircle()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2540
* Fix segfault when passing empty StringIO/File object to Font by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2548
* Add the default font to sysfonts by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2543
* Remove and deprecate cythonised sprite module by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2546
* De-emphasise passing a list of rectangles to update by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2532
* Fix RLE usage in the transform module by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2535
* Remove blend from draw.aaline by MightyJosip in https://github.com/pygame-community/pygame-ce/pull/2550
* Fix segfault in Texture.update() by yunline in https://github.com/pygame-community/pygame-ce/pull/2553
* Compile SSE2 smoothscale intrinsics on NEON by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2544
* Fix setDaemon() deprecation error by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2559
* AVX Surface.fill() setup, AVX BLEND_ADD by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2382
* Add Premultiplied Alpha tutorial by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2531
* Add SIMD versions of the greyscale transform (attempt 2) by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2432
* Rect.clipline() optimization by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2563
* Add `Window.mouse_rect` by yunline in https://github.com/pygame-community/pygame-ce/pull/2564
* Fix compiler warnings in event, camera and display by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2567
* Rect.contains() optimization by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2570
* Support collide_mask as collided argument in spritecollide by ZeroWave022 in https://github.com/pygame-community/pygame-ce/pull/2569
* Add `get_surface()` for Window class by yunline in https://github.com/pygame-community/pygame-ce/pull/2350
* `mouse.get/set_relative_mode()` instead of `_sdl2.Window.relative_mouse` by yunline in https://github.com/pygame-community/pygame-ce/pull/2076
* Reduce amount of usage of "dummy" in codebase to minimum by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2547
* Updated ``video.py`` example so it uses ``pygame.display.message_box`` by bilhox in https://github.com/pygame-community/pygame-ce/pull/2572
* Fix for windows cameras without framerate by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2574
* Window update->flip, doc changes by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2577
* Add versionadded tag set_relative_mode by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2573
* Adding positional-only parameter notation (`/` in function signature) by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2457
* Raise minimum SDL version to 2.0.10 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2584
* C loader targets a python alias by pmp-p in https://github.com/pygame-community/pygame-ce/pull/2586
* Fix gfxdraw.bezier for a lot of points by Temmie3754 in https://github.com/pygame-community/pygame-ce/pull/2503
* Smoothscale: deprecate old backends, update docs by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2583
* Install meson+ninja on buildscripts, bump glib by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2549
* Update SDL 2.26.5 -> 2.28.5 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2580
* Add lerp & smoothstep to math module by robertpfeiffer in https://github.com/pygame-community/pygame-ce/pull/2254
* Improved `blit()` docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2262
* Make Texture and Renderer compatible with float input (floor() based pixel rasterisation/conversion changing to round()) by yunline in https://github.com/pygame-community/pygame-ce/pull/2039
* Compile windows _camera on MSVC only by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2585
* Added missing AVX2 fillers by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2565
* Add multiplayer joystick example by KentAugust in https://github.com/pygame-community/pygame-ce/pull/2524
* Subclassing Sounds + Channels. by gresm in https://github.com/pygame-community/pygame-ce/pull/2590
* SDL_image 2.8.0 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2595
* Add SSE2 fillers by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2566
* Fix linked/non linked SDL image version getter by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2597
* Add Circle `update()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2562
* SDL_image 2.8.0 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2596
* Add Circle `colliderect()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2560
* Allow for clamping the zero vector when possible by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2598
* Multiline more examples by gresm in https://github.com/pygame-community/pygame-ce/pull/2588
* Set default convert format when `Window.get_surface()` is called by yunline in https://github.com/pygame-community/pygame-ce/pull/2575
* Move Window to pygame.window.Window namespace by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2604
* Fix Circle update() docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2614
* Test PBM and LBM images, test and document XCF by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2608
* Public docs for Window by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2607
* Remove Window API that will be questionable in SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2617
* Fix file-like `close` not called in freetype (Removed `pgRWops_ReleaseObject` and replaced usage with `SDL_RWclose`) by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2606
* Deprecate from_display_module by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2624
* Implement `pygame.image.load_sized_svg` by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2620
* Update always_on_top doc (it's not x11 only) by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2618
* Push window out of 2.4.0 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2627

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

New (& returning after a time) Contributors
* Julian-O made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2507
* llindstrom a pygame contributor of long standing, made their first contribution to pygame-ce https://github.com/pygame-community/pygame-ce/pull/2521
* JorasOliveira made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2492
* igordsm made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2491
* MightyJosip a pygame contributor of long standing, made their first contribution to pygame-ce in https://github.com/pygame-community/pygame-ce/pull/2550
* ZeroWave022 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2569
* KentAugust made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2524

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

2.4.0.dev2

A pre-release for testing before the full release, thanks to everyone! :partying_face:

The 2.4.x series drops support for Python 3.7, which has reached EOL. If you are using this python version, consider upgrading!

(Yes these notes are mostly autogenerated, if something is missing from here, please do reach out and let us know! The notes for the final release is going to be more handwritten and polished)

What's Changed

* Start 2.4.0 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2362
* Minor improvements to `Window.size` and `Window.position` C code by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2367
* correct typo in rect test methods by dr0id in https://github.com/pygame-community/pygame-ce/pull/2359
* remove SDL_VERSION_ATLEAST(2, 0, 5) by yunline in https://github.com/pygame-community/pygame-ce/pull/2372
* Remove sdlmain_osx.m by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2357
* Try getting freetype tests running on CI, fix minor test fail issues by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2370
* Improved `blits()` docs by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2263
* Bump pypa/cibuildwheel from 2.14.1 to 2.15.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2396
* Bump uraimo/run-on-arch-action from 2.5.0 to 2.5.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2397
* Cap the sphinx version under 7.2.0 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2407
* Add a `mixer.Channel.id` getter by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2369
* Remove mentions of overlay module by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2411
* added keyword use_values to collidedict and collidedictall by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2309
* Added `Window.(min|max)imum_size` by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2364
* Support int and str input for color values in video module by yunline in https://github.com/pygame-community/pygame-ce/pull/2400
* Update README.fr.rst (fix typos, ``pygame`` => ``pygame-ce`` ...) by bilhox in https://github.com/pygame-community/pygame-ce/pull/2228
* minor sprite doc fixes by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2423
* Bump actions/checkout from 3.5.3 to 3.6.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2424
* Add unitest for `Window` by yunline in https://github.com/pygame-community/pygame-ce/pull/2230
* Add SIMD functionality to the transform submodule (Attempt 2) by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2421
* Patches so constants.c compiles in SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2437
* Use format instead of masks (4) by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2439
* Use format instead of masks (5) by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2440
* Improved `Surface.fill` error message for invalid blend flags by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2434
* Use RAISE when appropriate by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2444
* Bump actions/checkout from 3.6.0 to 4.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2449
* Corrects sprite documentation error by sweatshirtwearingviper in https://github.com/pygame-community/pygame-ce/pull/2442
* Bump actions/cache from 3.3.1 to 3.3.2 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2448
* Bump docker/build-push-action from 4.1.1 to 4.2.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2447
* Optimize vector parsing in math.c by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2443
* get_just_pressed and get_just_released by ScriptLineStudios in https://github.com/pygame-community/pygame-ce/pull/1912
* Add `get_power_state()` by yunline in https://github.com/pygame-community/pygame-ce/pull/2257
* Bump docker/metadata-action from 4.6.0 to 5.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2454
* Bump docker/build-push-action from 4.2.1 to 5.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2455
* Bump docker/login-action from 2.2.0 to 3.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2456
* Fix linter failing due to new clang-format version by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2461
* Spanish Translation by Carbon32 in https://github.com/pygame-community/pygame-ce/pull/2430
* Remove conan buildconfig by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2460
* Remove experimental notice on system module by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2459
* Made many `Rect/FRect` methods fastcall by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2043
* Bump actions/checkout from 4.0.0 to 4.1.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2469
* Fix uint64 underflow in `tick_busy_loop` by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2466
* Bump pypa/cibuildwheel from 2.15.0 to 2.16.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2468
* Raise minimum deps of SDL and friends by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2464
* Bump versions of many manylinux deps by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2470
* Skipping mixer test because it randomly fails on Linux by Matiiss in https://github.com/pygame-community/pygame-ce/pull/2438
* Up cibuildwheel by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2474
* Remove test tests by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2475
* WASM: add required PyObject *_null parameter to functions marked with METH_NOARGS in display.c by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2480
* Remove old CI files by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2479
* WASM: add required PyObject *_null parameter to remaining functions marked with METH_NOARGS in math.c and color.c by Damus666 in https://github.com/pygame-community/pygame-ce/pull/2482
* Add PG_CreateSurface(From) for SDL2/3 compat by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2481
* Bump pypa/cibuildwheel from 2.16.0 to 2.16.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2489
* Bump TheMrMilchmann/setup-msvc-dev from 2 to 3 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2488
* Remove redundant check in pg_ResizeEventWatch by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2487
* Drop python 3.7 by ankith26 in https://github.com/pygame-community/pygame-ce/pull/2493
* Deprecate set_mode depth argument by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/2490
* Enhancement/font/check initialization by dr0id in https://github.com/pygame-community/pygame-ce/pull/2371
* Port SDL_ShowCursor to SDL3 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2483
* Use SDL_MOUSE_TOUCH_EVENTS in touch test and docs by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2484

New Contributors
* sweatshirtwearingviper made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2442
* Carbon32 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2430
* Damus666 made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2480

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

2.3.2

Not secure
β˜€οΈπŸŒŠπŸ–οΈπŸ˜ŽπŸ„πŸšπŸοΈπŸΉβ˜€οΈπŸŒŠπŸ–οΈ
`pip uninstall pygame` (if previously installed, to avoid package conflicts)
`pip install pygame-ce --upgrade`
β˜€οΈπŸŒŠπŸ–οΈπŸ˜ŽπŸ„πŸšπŸοΈπŸΉβ˜€οΈπŸŒŠπŸ–οΈ

Hello and welcome to a shiny new bugfix release of `pygame-ce`! While we are working towards a 2.4.0 release, we thought it'd be nice to have a quick 2.3.2 with a couple of fixes and enhancements.

Bug fixes

* New contributor Cyuria fixed a long standing and infamous bug in `pygame.draw.arc` in 2344 where arcs with widths would be incorrectly rendered with holes in between.
* `music.get_pos` could segfault due to an internal zero division error, this has now been fixed by oddbookworm in 2426
* ankith26 fixed a couple of overflow related bugs in mapped int color handling and improved the internal C API for it in 2349
* oddbookworm fixed a case of segfaulting in `PixelArray` in 2276
* Matiiss fixed `Sound.__init__` incorrectly raising `TypeError` instead of `FileNotFoundError` for some inputs in 2381
* dr0id fixed `copy.deepcopy` support for `Surface` in 2394
* pmp-p fixed webassembly support of `pygame.newbuffer` and `pygame.pixelarray` in 2419 and 2413

Codebase fixes and robustness improvements

* pmp-p fixed compilation error when `lseek64` is absent (like webassembly 32 bit mode) in 2410
* yunline replaced usage of `PYGAMEAPI_DISPLAY_INTERNAL` with the intended `BUILD_STATIC` in `window.c` in 2412
* dr0id added a lint warning ignore in `locals.py` to make the linter pass in 2393
* yunline bumped cython to 3.0.0 in 2395
* ankith26 bumped cibuildwheel in 2402 and as a result, **this release now has wheels shipping for the python 3.12 release candidate, ready for the full release of Python 3.12 at the start of October!**

Deprecation warnings

* bilhox fixed joystick doc and properly deprecated `pygame.Joystick.init/get_id` in 2363
* ankith26 deprecated passing out of range sequence lengths to colorspace setters in 2392

Unit-tests, typing and examples related improvements

* dr0id fixed `ftfont` to pass same tests as `font` in 2180
* Matiiss removed an unneeded `mixer` test skip in 2384
* devdanzin fixed the rect typing with `Union[FRect, Rect]` in `sprite` in 2380
* dr0id fixed `property` usage issues in `font` stubs in 2358
* ddorn fixed stubs for `Color.__getitem__` in 2391
* yunline fixed a couple of typing issues in `Window` and also did some cleanups in 2366
* ankith26 fixed minor issues in joystick and moveit examples in 2387
* robertpfeiffer improved glcube example and display docs in 2038

New Contributors
* Cyuria made their first contribution in 2344
* ddorn made their first contribution in 2391

Thanks all

Sincere thanks to everyone helping out! In addition to PR makers, as always we are thankful to the community at large and this includes issue reporters, PR reviewers, tutorial makers, admins/mods/helpers on various online forums, people who make helper libraries, and last but certainly not least, all our users including you: the person reading these notes!

If we've made a mistake in these notes, please get in touch with us to get a correction made.

Cya, have fun using `pygame-ce`!

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.3.1...2.3.2

Page 1 of 3

Β© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.