This is a pre-release for 2.5.6, which should be out next weekend if everything goes to plan. GitHub autogenerated release notes can be found below, for the full release we will clean these up to be more human readable.
What's Changed
- Start 2.5.5 by @Starbuck5 in #3437
- new angle and angle_rad property in vector2 by @AntoineMamou in #3222
- Use float for
load_animation
delay, improve docs by @damusss in #3444 - Update pythoncapi_compat.h by @Starbuck5 in #3445
- Elaborate on Vector conversion to tuples/lists by @DickerDackel in #3447
- add doc for vec conversion by @AntonisDevStuff in #3446
- Port over some SDL functions to SDL3 by @Starbuck5 in #3434
- Port over more SDL functions to SDL3 by @Starbuck5 in #3451
- Surface multiphase init by @oddbookworm in #3354
- Update pre-commit config by @oddbookworm in #3452
- Bump docker/build-push-action from 6.17.0 to 6.18.0 by @dependabot[bot] in #3459
- Simplify math module init by @Starbuck5 in #3453
- Fix palettes in
newsurf_fromsurf
by @oddbookworm in #3464 - Fix dst palette in modify_hsl by @ankith26 in #3465
- Transform palette tests by @Starbuck5 in #3466
- Re exclude korean tutorials in release wheels and run important CI everytime by @ankith26 in #3478
- Start 2.5.6 by @Starbuck5 in #3479
- Remove redundant tp_getattro sets by @Starbuck5 in #3482
- Update CIBW setting to prevent warning by @Starbuck5 in #3438
- Optimize vector-number math by avoiding RealNumber_Check by @Starbuck5 in #3454
- Rewrite sprite collision functions by @aatle in #3209
- better rect tests using literal values by @AntoineMamou in #3190
- Added
area
kwarg tomask.to_surface
by @Matiiss in #2670 - Add versionchanged note to Mask.to_surface by @ankith26 in #3484
- Optimize vector creation/update using pg_VectorCoordsFromObj by @Starbuck5 in #3458
- Combine all "checks" CI into a single workflow by @ankith26 in #3483
- Add conditional skip to testSavePaletteAsPNG8 by @ankith26 in #3476
- Add skip to set_gamma tests by @ankith26 in #3471
- Fix cppcheck skip logic on CI by @ankith26 in #3489
- Update to SDL 2.32.8 by @Starbuck5 in #3481
- add Color.from_hex by @AntonisDevStuff in #3456
- Add missing/Fix versionadded tags in display, mixer and surface by @damusss in #3490
- New draw.aaline width algorithm by @mzivic7 in #3191
- Add sanitize flag to dev.py, fix UBSAN issues and run UBSAN check on CI by @ankith26 in #3493
- Fix event docs grammar by @wade-cheng in #3498
- Typing enhancements for the
pygame.sprite
module by @nachomaiz in #3488 - Move mouse and key docs to stubs by @zoldalma999 in #3441
- Use PyModule_AddType by @Starbuck5 in #3499
- Bump actions/attest-build-provenance from 2.3.0 to 2.4.0 by @dependabot[bot] in #3505
- Add stripped option to dev.py by @ankith26 in #3495
- Remove unused code in mask/alphablit by @Starbuck5 in #3508
- Wasm/py313 by @pmp-p in #3496
- Fix init functions with SDL3 build by @MightyJosip in #3509
- Refactor alphablit by @MightyJosip in #3404
- Pull windows deps on update in meson buildconfig by @ankith26 in #3500
- Simplify key code by @Starbuck5 in #3514
- Bump pypa/cibuildwheel from 2.23.2 to 3.0.0 by @dependabot[bot] in #3504
- Added set_led method for Joystick and Controller objects by @oddbookworm in #3507
- fixed incredibly small grammar error by @tomatophu in #3522
- Fix local stubtest for
set_led()
by @aatle in #3524 - docs: logical_size might be (0, 0) by @DickerDackel in #3520
- Port more SDL functions (SDL3) by @Starbuck5 in #3515
- Bump pypa/cibuildwheel from 3.0.0 to 3.0.1 by @dependabot[bot] in #3526
- Fix math.lerp docs, improve code by @ankith26 in #3523
(F)Rect.inflate(_ip)
FASTCALL by @ankith26 in #3518- Add pypy 3.11 support by @oddbookworm in #3527
- Add stubs as dependencies to doc pages by @zoldalma999 in #3534
- Fix refcount tests for Python 3.14 by @Starbuck5 in #3538
- Bump pypa/cibuildwheel from 3.0.1 to 3.1.1 and do the other things by @dependabot[bot] in #3540
- Update SDL3 from 3.2.10 to 3.2.18 by @Starbuck5 in #3545
- Port Texture to C code by @MightyJosip in #3330
- Surface module compiling in SDL3 by @Starbuck5 in #3435
- Base header by @oddbookworm in #3486
- Bump pypa/cibuildwheel from 3.1.1 to 3.1.3 by @dependabot[bot] in #3552
- Bump docker/metadata-action from 5.7.0 to 5.8.0 by @dependabot[bot] in #3551
- Update python versions in
run-ubuntu-checks
workflow, and fix faulty refcounting in rect clipline by @oddbookworm in #3548 - Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #3557
- Bump actions/cache from 4.2.3 to 4.2.4 by @dependabot[bot] in #3558
- Bump docker/login-action from 3.4.0 to 3.5.0 by @dependabot[bot] in #3559
- Add Renderer.coordinates_to_window and Renderer.coordinates_from_window by @DickerDackel in #3519
- Fix rwops and some image stuff on SDL3 by @ankith26 in #3550
- Fix some Surface and Window tests on SDL3 by @Starbuck5 in #3544
- Fix windowevent and key repeat in sdl2-compat by @ankith26 in #3470
- Bump build dependencies by @ankith26 in #3443
- Port
display.c
to SDL3 by @ankith26 in #3428 - Fix font test segfault on SDL3 by @Starbuck5 in #3549
- Fix ASAN issues in surface.scroll by @ankith26 in #3497
- Add
Color.__bytes__
by @Matiiss in #3547 - Bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #3561
- documentataion -> documentation typo fix by @zepredos in #3566
- fix: typo in sndarray docs calling it surfarray #3567 by @f4ni in #3568
- Fix aaline width and blend conflict by @ankith26 in #3510
- Fix and improve
pygame.Window
tests by @ankith26 in #3474 - Support prompts indicate freethreaded build status by @oddbookworm in #3554
dev.py
: alias build with install and add argument to only test specific modules withall
by @damusss in #3529- Improve sprite stubs by @aatle in #3525
- New approach to lazy loading of pygame submodules (
surfarray
,sndarray
) by @aatle in #3249 - Implemented the Line.project by @XFajk in #3402
- Greek README by @AntonisDevStuff in #3503
- Bump pypa/cibuildwheel from 3.1.3 to 3.1.4 by @dependabot[bot] in #3569
- Add coderabbit configuration file by @oddbookworm in #3564
- pygame.transform.pixelate by @oddbookworm in #2354
- Fix ascii scrap on sdl2 backend, docs/tests fixes by @ankith26 in #3473
- flood fill by @robertpfeiffer in #2840
- Implementation of
pygame.(F)Rect.relcenter
by @bilhox in #3089 - Port freetype to SDL3 by @Starbuck5 in #3574
- Fix failing tests on non-libpng backends by @ankith26 in #3570
- [Part 5] SDL3: image+scrap+transform+debug: runtime fixes by @ankith26 in #3580
- [Part 4] SDL3: mouse+key+rect: runtime fixes by @ankith26 in #3579
- Fix PG_SURF_BitsPerPixel SDL3 by @Starbuck5 in #3573
- Translate readme to Brazillian Portuguese by @Guedxx in #3582
- Bump actions/attest-build-provenance from 2.4.0 to 3.0.0 by @dependabot[bot] in #3583
- Bump TheMrMilchmann/setup-msvc-dev from 3 to 4 by @dependabot[bot] in #3584
- Update to SDL 2.32.10 and 3.2.22 by @Starbuck5 in #3586
- FIx PySequence_AsVectorCoords and discourage usage by @ankith26 in #3487
- Add weak reference support to Texture by @cherez in #3590
- Add wayland specific skips by @ankith26 in #3575
- Bump actions/cache from 4.2.4 to 4.3.0 by @dependabot[bot] in #3593
- Add weak reference support to freetype.Font by @cherez in #3596
- Bump pypa/cibuildwheel from 3.1.4 to 3.2.0 by @dependabot[bot] in #3594
- Misc bug fixes (display, window, image, pixelarray) by @ankith26 in #3591
- Pin astroid version below 4.0.0 to fix docs by @oddbookworm in #3598
- Bump docker/login-action from 3.5.0 to 3.6.0 by @dependabot[bot] in #3599
- Remove usage of deprecated
ByteString
by @ankith26 in #3600 - Update mypy/pre-commit, fix new issues by @ankith26 in #3602
- Add Sound.copy and Sound.copy by @oddbookworm in #3556
- Add test & fix for unusual pitch in
surface.premul_alpha()
by @MyreMylar in #2882 - Fix premul alpha tutorial link by @Starbuck5 in #3607
- Clean Surface docs 1: Capitalize surface/surfaces by @damusss in #3603
- Support emscripten (pygbag + pyodide) in the meson buildconfig by @ankith26 in #3588
New Contributors
- @AntoineMamou made their first contribution in #3222
- @DickerDackel made their first contribution in #3447
- @AntonisDevStuff made their first contribution in #3446
- @wade-cheng made their first contribution in #3498
- @nachomaiz made their first contribution in #3488
- @tomatophu made their first contribution in #3522
- @zepredos made their first contribution in #3566
- @f4ni made their first contribution in #3568
- @Guedxx made their first contribution in #3582
- @cherez made their first contribution in #3590
Full Changelog: 2.5.4.dev2...2.5.6.dev2