Releases: pygame-community/pygame-ce
2.2.0.dev2 - dev release for testing
What's Changed
- Bump docker/login-action from 1.10.0 to 2.1.0 by @dependabot in #1979
- Bump docker/metadata-action from 3.3.0 to 4.3.0 by @dependabot in #1978
- Bump docker/build-push-action from 2.5.0 to 4.0.0 by @dependabot in #1976
- 2.1.4 by @Starbuck5 in #1983
- Start 2.2 by @Starbuck5 in #1982
- Implement swizzling for
pygame.Color
by @avaxar in #1935 - Dependabot: Update versions of docker related actions by @ankith26 in #1980
- pygame.transform.invert by @ScriptLineStudios in #1911
- add venv to gitignore by @oddbookworm in #1985
- doc fixes for
Font.set_direction
by @oddbookworm in #1992 - added missing versionadded tags in recent new API docs by @oddbookworm in #1996
- Rework doc_ file generation by @Starbuck5 in #1993
- Fix color swizzling as per request in #1989 by @avaxar in #1994
- Modified docs css by @yunline in #2004
- Remove pygame.fastevent by @gresm in #1966
- Another minor fblits refactor by @itzpr3d4t0r in #2002
- Fix the segfault of
Surface.convert()
. by @yunline in #2007 - Add test that the surface to be pre-multiplied has pixels by @MyreMylar in #2005
- Move cython based controller module to controller_old by @zoldalma999 in #1903
- Change font.c to compare with SDL_ttf instead of SDL itself by @simplyrohan in #1991
- transform.blur by @yunline in #1836
- System module by @Starbuck5 in #1897
- Add font name getter by @novialriptide in #1971
- Add keyword for image by @yunline in #2010
- Add image & rect properties to Sprite by @MyreMylar in #1942
- Remove
sudo apt-mark hold grub-efi-amd64-signed
for Ubuntu20.04 by @yunline in #2012 - Fix text input example by @yunline in #2009
- Renamed "
the_args
" to "blend_flags
" everywhere by @itzpr3d4t0r in #2011 - Revise
repr
overload as per request in #1988 by @avaxar in #1995 - Add unifont to the font list of examples/textinput.py by @yunline in #2015
- Bump pypa/cibuildwheel from 2.12.0 to 2.12.1 by @dependabot in #2017
- Update file comment header titles by @simplyrohan in #2013
- Circle fix by @robertpfeiffer in #2003
- Better VSync by @robertpfeiffer in #1874
- Change mixer to use FileNotFoundError and fix related tests by @Temmie3754 in #2001
- Fix cursor doc formatting and improve consistency by @Temmie3754 in #2024
- Add type hint for draw_triangle and draw_quad by @yunline in #2018
- Fix issues and inconsistency with draw_line_width by @Temmie3754 in #1998
- fixed banding bug with draw.circle by @oddbookworm in #2032
- Bump actions/checkout from 3.3.0 to 3.4.0 by @dependabot in #2037
- Implement FRect by @yunline and @Emc2356 in #1944
- Add an AVX2 version of the BLEND_PREMULTIPLIED blend mode by @MyreMylar in #5
- AVX2 alpha blitters by @Starbuck5 in #2019
- Raise
ValueError
when bluring an indexed surface. by @yunline in #2026
New Contributors
- @simplyrohan made their first contribution in #1991
Full Changelog: 2.1.4...2.2.0.dev2
2.1.4
pygame-ce 2.1.4
# if you're switching over from pygame/pygame,
# remove it first to avoid conflicting namespace
pip uninstall pygame
pip install pygame-ce==2.1.4
Welcome, all! This release contains all the changes in the main branch of pygame/pygame from October through early February, mainly written by pygame-ce contributors, and of course all the pygame-ce progress in the past month!
Thank you to the community for all the support since the last release!
Because this contains so many months of changes, the release notes are quite long, so prepare yourself before reading further :).
What's Changed
Enhancements
-
@Starbuck5 and @oddbookworm worked on features to make font rendering better than ever before!
- Multiline text! You can set a pixel limit and do automatic line wrapping, and you can align text left/right/center. Additionally,
Font.render
will respect explicit newlines in the text. #1898 - Internationalization! We can now render non-latin alphabets much better with new
Font.set_script(...)
andFont.set_direction(...)
methods. For example, to render Arabic, you'd load a font that supports Arabic,Font.set_script("Arab")
, andFont.set_direction(pygame.DIRECTION_RTL)
. #1956, upstream #3330
- Multiline text! You can set a pixel limit and do automatic line wrapping, and you can align text left/right/center. Additionally,
-
@Matiiss added
pygame.mixer.music.get_metadata()
to potentially grab title/album/artist/copyright metadata from music files. #8 -
@ScriptLineStudios added
transform.grayscale
andColor.grayscale
(in case you're feeling gray). #1907 -
@itzpr3d4t0r dug into the source to optimize overhead on
mouse.get_pos()
,mouse.get_rel()
,Rect.colliderect()
,Rect.collidepoint()
,Rect.collidelist()
,Rect.collidelistall()
. These functions don't usually bottleneck people's code, but regardless, a 30-40% speedup on them is a cool thing to have. upstream #3424, upstream #3322, #1832, #1905 -
@PurityLake optimized blit mode code, achieving a 15-20% speedup while using blit blend modes for computers without AVX2 support. upstream #3370
-
@MightyJosip optimized pygame.draw.circle's with width (I saw a 300% performance boost in one case). upstream #3550
-
@itzpr3d4t0r added
Surface.fblits()
, which achieves faster speeds thanblits
by being slightly less flexible about input, as well as being highly optimized code itself. #1831, #1965 -
@Matiiss added
__round__()
method for pygame.Vector(2/3). upstream #3559 -
@avaxar implemented
pitch
argument forpygame.image.frombuffer
,pygame.image.from(string|bytes)
. #1863 -
@Matiiss replaced an unclear hardcoded error message with the value of
SDL_GetError()
. upstream #3641 -
@yunline add
IS_CE
constant to test for running on pygame-ce, i.e.if getattr(pygame, "IS_CE", False): print("Running pygame CE")
. #1900 -
@yunline added a "window" attribute DROPFILE and DROPTEXT events. upstream #3568
-
@oddbookworm made every dependency version getter work the same way, and return linked version vs compiled version. upstream #3379 and upstream #3567
-
@PurityLake added aliases to common objects. E.g.
pygame.Joystick(...)
instead ofpygame.joystick.Joystick(...)
,pygame.Font(...)
,pygame.Clock(...)
,pygame.Event(...)
,pygame.Channel(...)
. #1854 -
@oddbookworm added a debug method to print out tons of pygame details. #2
-
@avaxar implement
draw_triangle
anddraw_quad
inpygame._sdl2
. #1876 -
@MyreMylar added a way to premultiply a Surface's alpha, starting on a track towards optimized alpha blits via premultiplication. upstream #3276
Bugfixes
-
@ankith26 fixed the "MacOS font rendering bug" that shall live in infamy-- where MacOS < 12 macs couldn't render fonts at all. #1922
-
@zoldalma999 made sure updating a Texture with a Surface takes into account pixel format. upstream #3548
-
@ankith26 fixed a regression where
camera.list_cameras()
would be empty on Linux. upstream #3594 -
@ankith26 fixed several memory leaks in the math module. upstream #3590
-
@oddbookworm fixed potential segfaults in
PixelArray
,Surface
,draw
, andtransform
. upstream #3666, #1940 -
@ankith26 fixed a bizarre bug where fast mouse scrolls would have a bogus
.button
attribute. upstream #3642 -
@yunline fixed reversed
Window.borderless
in the _sdl2 module. #1869 -
@Temmie3754 ensured toggle_fullscreen works for maximized window. #4
Deprecations, Potential Breaking Changes, and Removals
-
Python 3.6 support has been dropped. Thanks @yunline for implementing that in #1896 and #1936
-
pygame.display
"gamma" functionality has been deprecated as it has been removed in the upcoming SDL3. Thanks @SSS-Says-Snek for implementing that in upstream #3622 -
pgScancodeWrapper
now raisesTypeError
when you attempt to iterate over it, since iterating it is a footgun. Thanks to @PurityLake for implementing that in #1855
Docs, Examples, and Types
-
@pgattic, @winterhazel, @CodeMaster7000, @chimosky, and @IlmastroStefanuzzo fixed typos and grammar mistakes. upstream #3554, upstream #3562, upstream #3625, upstream #3694, #1879
-
@Matiiss and @novialriptide polished up
PixelArray
andmath
docs. upstream #3544, upstream #3581, upstream #3574. -
@Linkid fixed several links in the docs. upstream #3549
-
@zoldalma999 documented
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS
. upstream #3546 -
@Starbuck5 added a pygame quickstart section to docs front page. upstream #3541
-
@SmashedFrenzy16 updated README to replace a list with a table. upstream #3638
-
@novialriptide, @yunline, @PurityLake, and @khiaxeng worked on enhancements throughout the docs. upstream #3684, upstream #3558, #1916, #1920, #1964
-
@pycoinfu overhauled the "stars" example. #1909
-
@ankith26, @Matiiss, and @yunline fixed typestub related errors in upstream #3395, #1885, #1
Cleanups and Robustness
-
@yunline, @MyreMylar, @Koswu, and @Starbuck5 removed unused and obsolete code from the codebase. #1895, #1904, upstream #3563, upstream #3553, upstream #3618 , upstream #3617
-
@ankith26 and @Starbuck5 worked to make the SIMD code (low level code for blitting) simpler and emit better warnings. upstream #3501, upstream #3588
-
@ankith26 worked to make the key compat table more robust. upstream #3426
-
@MyreMylar, @Matiis, @itzpr3d4t0r, @Starbuck5, and @TheVroum worked to simplify and spruce up code throughout the codebase. upstream #3530, #15, upstream #3655, upstream #3633, #1938, upstream #3577, [upstream #3620...
2.1.4.dev2 - dev release for testing
This is a development pre-release for testing.
Please let us know of any issues on the issue tracker
What's Changed
- SSE2 blitter Optimisations by @PurityLake in upstream #3370
- Tweaking version getters for sdl modules and freetype by @oddbookworm in upstream #3379
- Warn when SIMD is usable but not compiled by @ankith26 in upstream #3501
- Changed minor name mismatch in
PixelArray
docs by @Matiiss in upstream #3544 - Document
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS
by @zoldalma999 in upstream #3546 - Move
pg_tuple_from_values_int()
into header, rename & add triple variant by @MyreMylar in upstream #3530 mouse.get_pos()
,mouse.get_rel()
optimizations by @itzpr3d4t0r in upstream #3424- Minor typo in the "pygame.Color" docs by @pgattic in upstream #3554
- Remove Python < 3.2 compatibility shim by @Starbuck5 in upstream #3553
- Docs: fix links by @Linkid in upstream #3549
- Fix typo in music.rst by @winterhazel in upstream #3562
- Delete
test_test_.py
by @Koswu in upstream #3563 - Add info on viewing docs locally by @novialriptide in upstream #3558
- Modify key compat table to store key-name pairs (fixes a rare bug) by @ankith26 in upstream #3426
- Adjust surface masks to create a proper 24 bit
Surface
by @Starbuck5 in upstream #3577 - Add vector zero constructor clarification by @novialriptide in upstream #3574
- Minor
pygame.math
doc enhancements by @Matiiss in upstream #3581 - Improved
.colliderect()
method performance by @itzpr3d4t0r in upstream #3322 - Add VScode? _headers/ folder to gitignore by @Starbuck5 in upstream #3587
- Remove LGTM badges by @novialriptide in upstream #3599
- Fix
list_cameras
being empty on linux by @ankith26 in upstream #3594 - Fix some more math memory leaks by @ankith26 in upstream #3590
- Use Python 3.11.0 rather than 3.11rc2 by @Starbuck5 in upstream #3611
- Add quickstart section to docs front page by @Starbuck5 in upstream #3541
- Add
.premul_alpha()
method to surface by @MyreMylar in upstream #3276 - Add "window" attribute to DROPFILE and DROPTEXT event by @yunline in upstream #3568
- Added
__round__()
method for vectors by @Matiiss in upstream #3559 - Segfault fix in
freetype.get_version()
by @oddbookworm in upstream #3567 - Convert surface to texture's pixel format in
Texture.update()
by @zoldalma999 in upstream #3548 - Performance improvement for
draw.circle()
by @MightyJosip in upstream #3550 - Fix build errors on win_arm64 by @cgohlke in upstream #3583
- Consolidate SSE2 and NEON code paths by @Starbuck5 in upstream #3588
- Correct set_(shifts/masks) docs and cleanup code by @Starbuck5 in upstream #3620
- Capitalise 'Pygame' in readme by @CodeMaster7000 in upstream #3625
- Deprecate gamma and _sdl2 window brightness functionality by @SSS-Says-Snek in upstream #3622
- Change all (to|from)string to (to|from)bytes in image.c by @Matiiss in upstream #3633
- Update docs generation to sphinx 6.0 by @MyreMylar in upstream #3647
- Raise minimum SDL version to 2.0.8 by @Starbuck5 in upstream #3618
- Replace
music.set_pos()
current error message withSDL_GetError()
by @Matiiss in upstream #3641 - Update README with a table for the dependency versions by @SmashedFrenzy16 in upstream #3638
- Fixed segfault (in
PixelArray
) by @oddbookworm in upstream #3666 - Fix event
.button
attribute for fast mousewheel by @ankith26 in upstream #3642 - Change casting to list to using copy in
pygame.sprite
by @Matiiss in upstream #3655 - Removing redudancy in regex by @TheVroum in upstream #3595
- Remove bit of MIR code by @Starbuck5 in upstream #3617
- Fix
scrap
module typing (use only bytes and not AnyStr) by @ankith26 in upstream #3395 - pygame wasm test CI optimization by @pmp-p in upstream #3593
- Syntax highlighting fix by @novialriptide in upstream #3684
- Port
SDL_ttf
text shaping capability by @Starbuck5 in upstream #3330 - Update linter ubuntu version by @MyreMylar in upstream #3698
- Linter/formatter run (
black
version update) by @novialriptide in upstream #3695 - Correct update statement by @chimosky in upstream #3694
- Initial retargeting for fork by @Starbuck5 in #6
- Fix a typestub inconsistency causing the 22.04 ubuntu workflow to fail by @oddbookworm in #1
- More retargeting by @Starbuck5 in #7
- Fix project logo URL in
README.rst
by @Mega-JC in #9 - Revert "Fix project logo URL in
README.rst
" by @Mega-JC in #11 - more retargeting to the fork by @oddbookworm in #13
- Reword fork project description in README by @Mega-JC in #10
- Add a windows CI build by @MyreMylar in #790
- Try adding a -ce to fix Debian CI by @MyreMylar in #1838
- fix math.c formatting by @MyreMylar in #1849
- Add concurrecy check to CI runs. by @MyreMylar in #1852
- Add an initial CODEOWNERS file to the pygame-ce project by @MyreMylar in #14
- Use prebuilt bundle hosted by us by @Starbuck5 in #1858
- Spelling and grammar fixes suggested by PyCharm code inspection by @MyreMylar in #15
- Fixed reversed
Window.borderless
by @yunline in #1869 - Documentation retarget by @novialriptide in #1865
- wasm ci : bump sdk version, and python 3.11.2 by @pmp-p in #1861
- Add aliases for most common objects by @PurityLake in #1854
- updated "commits since badge" to reflect commits since 2.1.3 by @oddbookworm in #1871
- updated badges by @oddbookworm in #1880
- Reestablish uniformity across sentence terminations through the addition of a full stop character by @IlmastroStefanuzzo in #1879
collidepoint()
performance improvements by @itzpr3d4t0r in #1832- Fix
mypy
failing in Python <= 3.7 due to positional-only argument syntax by @Matiiss in #1885 - Bump version of actions/checkout by @MyreMylar in #1882
- Add 'stubcheck' into setup.py by @yunline in #1866
- Use
SDL_GetTicks64
instead ofSDL_GetTicks
by @avaxar in #1873 - Add brew install pkg-config to mac builds by @ankith26 in #1888
- Debug method by @oddbookworm in #2
- Removed appveyor badge from the Readme file by @Ritikkhulbe in #1893
- Fix cppcheck crash. by @yunline in #1891
*...
2.1.3
💽🏴🍋⚫📀🖤💽🏴⚫📀🖤💽🏴🌞⚫📀🖤
⚫ pip install pygame-ce
📀👤💽🏴⚫📀🖤💽🏴🍋⚫📀🖤💽🏴🍋🔌
(pip uninstall pygame
first to avoid contention)
Hello! This is the first release of pygame-ce
-- pygame community edition, a pygame fork. See our reddit announcement for more of an explanation of the fork's goals and reason for existing.
The entirety of the code changes in this release were developed under the original pygame name. Most of these changes were actually developed by the contributors making this fork!
These changes represent the work on the pygame main branch between December of 2021 and October of 2022. (This release was supposed to happen back in October 2022 to add 3.11 support, but that didn't happen).
This changelog reflects the difference between pygame 2.1.2 and pygame-ce 2.1.3, with a few caveats. After these notes were written and the release was prepped, a couple memory leaks were discovered, and those patches have been added. Additionally, warning, font rendering doesn't work on macOS <= 11.0 in this release. We're aware of the problem and have a potential (if not ideal) fix drafted.
Release notes of 2.1.3, extremely long because of the long timescale covered:
Highlights
pygame on the Web
pygame now has source code support for WASM (web assembly)! @pmp-p is driving most of the work behind this, you can check their github profile to see a few pygame apps in action on the browser!
This is still a work-in-progress - more changes and fixes need doing before this will be a smooth experience. Existing pygame applications need a few minor changes to work on browsers.
See https://github.com/pygame-web/pygbag for more information.
Thanks to pmp-p for making this possible on the pygame end (pygame/pygame#3080, pygame/pygame#3104, pygame/pygame#3105, pygame/pygame#3106, pygame/pygame#3108, pygame/pygame#3191, pygame/pygame#3185, pygame/pygame#3115, pygame/pygame#3225, pygame/pygame#3246, pygame/pygame#3247, pygame/pygame#3349, pygame/pygame#3304), and thanks to the CPython team for making CPython 3.11 compile nicely on WASM.
Faster blitting
@MyreMylar has been hard at work to make some special flags for Surface.blit
faster using SIMD instructions, and the results can be more than 10x faster on supported hardware! (pygame/pygame#2988, pygame/pygame#3136, pygame/pygame#3170, pygame/pygame#3181) @Starbuck5 followed in his footsteps improving blit blend mode efficiency slightly in pygame/pygame#3294 and getting a 15-20% boost for simple alpha blits in pygame/pygame#3378. There are more blitter improvements in the pipeline and we expect more boosts to alpha blending in 2.1.4.
Enhancements
A lot of nice additions and enhancements. There is some new API in this release, which currently have the experimental status. This release also has some performance enhancements (some of those are from updated dependencies, the performance changes on the pygame end are listed throughout the notes and not in this section)
New contributor @ThanhChinhBK made it possible to save surfaces with palettes as indexed 8P PNG in pygame/pygame#3028
New contributor @mariospapaz added font.get_sdl_ttf_version
to check the underlying SDL_ttf
library version in pygame/pygame#3095
New contributor @Emc2356 added pygame.image.(to|from)bytes
(the same as (to|from)string but appropriately named) in pygame/pygame#3321
New contributor @rlatowicz added support for the BGRA
format for image functions in pygame/pygame#3338 and pygame/pygame#3342. This should be helpul for pygame interoperability with pycairo!
New contributor @JamesC01 added math.clamp(val, min, max)
in pygame/pygame#3326 and pygame/pygame#3361
Vectors have been receiving some nice polish thanks to the efforts of @novialriptide, who added move_towards()
in pygame/pygame#2929 and clamp_magnitude
in pygame/pygame#2990 and pygame/pygame#3133
@Starbuck5 added transform.scale_by
and transform.smoothscale_by
functions in pygame/pygame#2723
@dr0id added the parameter consider_alpha
to transform.average_color
to to remove black artifacts if alpha is present in pygame/pygame#2968. They also added a new rect method Rect.collidelistall
in pygame/pygame#3026 and pygame/pygame#2989
@MightyJosip added a strikethrough option to Font
in pygame/pygame#2991
- Added
precise_x
andprecise_y
fields toMOUSEWHEEL
events and also added some more pygame events in pygame/pygame#2953. - Made
Rect
andColor
supportcollections.abc.Container
in pygame/pygame#3066 - Added
use_compat
topygame.key.name
, fixedkey_code
compat issues in pygame/pygame#3312
New contributor @itzpr3d4t0r cleaned up / optimized functions in the draw
, math
, and transform
, and rect
modules, resulting in some speedups for certain tasks. Check the PRs if you're interested. pygame/pygame#3300, pygame/pygame#3314, pygame/pygame#3335, pygame/pygame#3319, pygame/pygame#3401
@avaxar changed _sdl2.video.Image.flipX
and .flipY
to use snakecase in pygame/pygame#2978
Bug Fixes
This release comes with many bug fixes on the pygame side, but there should also be improvements due to bundling newer shinier versions of our dependencies.
New contributor @SnoopJ added checks to fail early if there are SDL version incompatibilities in pygame/pygame#2661
New contributor @Matiiss fixed windows version parsing in camera that errored on windows versions like 8.1 in pygame/pygame#3158
New contributor @ryanking13 fixed wasm build when no PREFIX variable is defined in pygame/pygame#3280
New contributor @PurityLake
- Fixed window not staying centered on second call of
display.set_mode
in pygame/pygame#3172 - Fixed segault in subclass of
Sound
in pygame/pygame#3492
- Fixed pygame Vector subclassing in pygame/pygame#3088. Now inherited methods return objects of the correct subtype.
- Added Windows user fonts handling for
pygame.font.match_font()
in pygame/pygame#3184
- Fixed a serious performance regression of
draw.polygon
in pygame/pygame#3141 - Fixed
pkgdata
import so that pygame continues to work with PyInstaller in pygame/pygame#3082 - Not all surfaces started of with an opaque black background on MacOS, this was fixed in pygame/pygame#2973
- Fixed DLL loading problems on Windows Store Python installations in pygame/pygame#3196
- Made textinput show a candidate list in pygame/pygame#3244
- Fixed
Surface.set_palette
to be usable without an initialized display in pygame/pygame#3259
- Fixed UCS_4 UCS4 typo, incorrect color methods export and display.c error handling bugs in pygame/pygame#2987
- Fixed a segfault in resource loading functions such as
pygame.image.load
in pygame/pygame#3089 - Added a mutex to guard multithreaded functions in
pygame.event
and fixed allocation issues due to GIL in pygame/pygame#3177 font.get_fonts
was returning a listNone
in some cases, this has now been fixed in pygame/pygame#3159. Now sysfont code also warns when there are underlying internal issues.- Made sure all functions in
pygame.camera
are defined at all times regardless init state and fixed a few more bugs around here in pygame/pygame#2961 - Music load fails could trigger wrong errors, this was fixed to only raise
pygame.error
in pygame/pygame#3148 - Internal function
pgBuffer_Release
now retains previously set errors in pygame/pygame#3127 - Internal function
v4l2_read_frame
could raise python exceptions when it should not, fixed in pygame/pygame#3052 - Fixed misnamed
APPMOUSEFOCUS
constand naming and updated the values in pygame/pygame#3043 - Fixed
Controller.rumble
returning wrong bool on error in pygame/pygame#3248 - Vendor in SDL PNG save function, fix new 2.1.3 regression in pygame/pygame#3376
- Fixed an edge case bug in
Vector.move_towards
, add more tests in pygame/pygame#3400 - Fixed segfault (due to incref issue) in
PixelArray
context manager API in pygame/pygame#3414 - Delete rect subscripts should error not segfault in pygame/pygame#3440
- Made sure
display.set_mode
always returns a cleared window in pygame/pygame#3317 - Fixed pypy rect freelist issue, unskipped tests in pygame/pygame#3452
- Fixed blitters compile error when missing SIMD in pygame/pygame#3498
@MightyJosip fixed a Vector memory leak in pygame/pygame#3236
@MyreMylar removed SIGALARM
suppression in pygame/pygame#3142
Devops, Maintenance, and Cleanups
The pygame codebase has seen a lot of devops related changes, with many contributors helping with cleanups and maintenance. These changes would have also fixed a few rare bugs and such.
New contributor @SergioArnaud fixed dependencies not being found on PowerPC in pygame/pygame#2975.
New contributors @Yvant2000 and corrected a code comment in rect.c
in pygame/pygame#3182
New contributor @GregoryMorse noticed VideoInfo
string was missing closing parenthesis and fixed this in pygame/pygame#3053
New contributor @blankRiot96 removed an old use Python 2's __nonzero__ in pygame/pygame#3194
New contributor @blankRiot96 deprecated Color.set_length
in pygame/pygame#3352
New contributor @itzpr3d4t0r ensured the CI continued to work by fixing a checksum in pygame/pygame#3329
New contributor @Vazno removed unused imports, fixed a confusing message, and improved some code in pygame/pygame#3382, pygame/pygame#3388, pygame/pygame#3397, and pygame/pygame#3392
New contributor @Matiiss replaced some truth testing with is not None
checks in sprite module in pygame/pygame#3271
New contributor @kevin-pease removed deprecated blend argument from test and docs in pygame/pygame#3281
New contributor @lebedevhhh changed f strings (sysfont.py) in pygame/pygame#3391
@robertpfeiffer made buildconfig handle -auto
flag in pygame/pygame#3157
@zold...