Pygame-ce

Latest version: v2.5.2

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

Scan your dependencies

Page 4 of 4

2.2.1

Not secure
This is a quick patch release to address a reported regression in a certain type of alpha blits, after the blit optimizations from 2.2.0. We're not sure how common this issue is, only one person reported it, but we wanted to get a release out quickly to address it.

We're also including all the changes since 2.2.0 merged in the last ~week, so it's not just that bugfix, we also have some nice enhancements.

What's Changed

Enhancements
* ankith26 and Starbuck5 pulled in updates for pygame's dependencies: SDL and SDL satellite libraries. This updates us with all their hard work fixing bugs. 2057, 1986

* Starbuck5 sped up `pygame.transform.scale` and `scale_by` by replacing our internal scaling algorithm with an SDL function which is 10-40% faster. 1884

* SSS-Says-Snek added some helpful information to the Surface repr. When you print a surface, it looks like `<Surface(50x50x32 SW)>`. Now, it might look like `<Surface(50x50x32, colorkey=(255, 255, 255, 255))>` or `<Surface(50x50x32, global_alpha=200)>`. The idea is to give more information in the representation when there is more relevant things to know about the Surface. We hope that this will help people confused by Surface behavior in debugging. 2016

* Sjmarf made it so `font.Sysfont` will emit a warning if your font choice fell back to the default font. 1973


Bugfixes
* Starbuck5 fixed a regression in one of the AVX2 alpha blitters, thanks to bigwhoopgames for the bug report. 2067

* dr0id fixed a bug where Sysfont could rarely give you a non-existent font file on Windows. (That's what we get for believing the Windows registry) 2034

* robertpfeiffer fixed a regresion where having $XDG_SESSION_TYPE not set would cause a crash in `display.set_mode` 2079


Docs, Examples, and Types
* yunline added a Simplified Chinese version of the README. 1848, 2061

* gresm and Starbuck5 spruced up the examples to use more preferred pygame conventions. 2072, 2074

* VantaTree made `transform` docs consistent about expectations for the `dest_surface` parameter of many functions. 2049


Cleanups and Robustness
* yunline and Starbuck5 both improved how bits of internal C code are written. 2065, 2064

* Starbuck5 fixed a few typos and retargeted some old links. 2059, 2075

* yunline fixed an internal problem where some SDL constants were shadowed with 0. 2078

* yunline fixed a problem in gen_stubs.py. 2089

New Contributors
* Sjmarf made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1973
* VantaTree made their first contribution in https://github.com/pygame-community/pygame-ce/pull/2049

Other News
* The pygame community organization now has a twitter acount. Consider following if you use the bird site :). https://twitter.com/pygamecommunity

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.2.0...2.2.1

2.2.0

Not secure
Welcome to the newest release of pygame-ce! We're excited to share the last month's worth of merged
enhancements, bugfixes, and cleanups.

What's Changed

Enhancements
* Emc2356 and yunline added `pygame.FRect`, a version of `pygame.Rect` that supports floating point values! The `FRect` class supports the whole pygame.Rect API. This is useful so that one can use floating point values for position, while still being a Rect. 1944, 2046

* Starbuck5 accelerated many types of alpha blitting using AVX2 instructions, achieving a 30-300% performance gain when blitting with transparent Surfaces (on supported systems). 2019

* robertpfeiffer made it possible to use VSYNC in a normal (non-SCALED) pygame display setup, also added `is_vsync`, `get_current_refresh_rate`, `get_desktop_refresh_rates` functions. 1874

* ScriptLineStudios added `pygame.transform.invert`, which inverts the RGB color of each pixel in a Surface. 1911

* yunline added `pygame.transform.box_blur` and `pygame.transform.gaussian_blur`. 1836, 2026, 2028

* Starbuck5 and ankith26 added a new module! `pygame.system` is for miscellaneous system information. Right now it has `get_pref_path` to create a persistent data directory and `get_pref_locales` to get system locale information. 1897

* MyreMylar accelerated the BLEND_PREMULTIPLIED blend mode using AVX2 instructions (2-6x faster). 5, 2005

* oddbookworm added a new copy-paste API in the `scrap` module, which is easier to use and more portable. 1984

* novialriptide added a `Font.name` attribute, to get the proper name of the font. 1971

* avaxar implemented swizzling for `pygame.Color`-- `I.e. color.rgb, color.bgr, color.garb`. 1935, 1994

* avaxar updated several object representations to better conform to Python standards. For example, `pygame.Rect(1,2,3,4)` is now represented as `Rect(1, 2, 3, 4)` instead of `<rect(1, 2, 3, 4)>`. 1995

* yunline added full support for keyword arguments in the `image` module. 2010

Bugfixes
* robertpfeiffer and oddbookworm ensured that circles will draw properly even if way off screen. 2003, 2032

* yunline fixed a possible segfault in `Surface.convert()` on 8-bit surfaces. 2007

* Temmie3754 fixed issues where `pygame.draw.line` could be cut off across Surfaces. 1998

Deprecations, Potential Breaking Changes, and Removals
* Legacy `pygame.scrap` functions are now deprecated. Contributed by oddbookworm. 1984

* `pygame.fastevent` has been removed. Contributed by gresm. 1966

* `pygame.mixer` now raises a FileNotFoundError when the sound isn't found on the filesystem. Contributed by Temmie3754. 2001

Docs, Examples, and Types
* oddbookworm and Temmie3754 improved the documentation content. 1992, 1996, 2024

* yunline improved the textinput example. 2009, 2015

* yunline improved documentation CSS slightly. 2004

* yunline added type hints for draw_triangle and draw_quad in sdl2_video. 2018

Cleanups and Robustness
* Starbuck5, itzpr3d4t0r, and simplyrohan contributed refactors in the codebase. 1993, 2002, 2011, 2013

* zoldalma999 and MyreMylar submitted some internal changes for controller and sprite. 1903, 1942

* simplyrohan made sure the version checking of SDL_ttf versions is correct. 1991

Operations
* oddbookworm added *venv* to gitignore. 1985

* yunline removed a now unnecessary GH actions workaround. 2012

New Contributors

* simplyrohan made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1991

Governance
Since last release, we're proud to welcome three new members of the project!
Congratulations to yunline, itzpr3d4t0r, and dr0id.

We've also elected (among the contributors) a group of three contributors to the "steering council" -- responsible for releases and for resolving debates. The current steering council is MyreMylar, ankith26, and Starbuck5. See https://github.com/pygame-community/pygame-ce/wiki/The-Steering-Council.

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.1.4...2.2.0

2.2.0.dev2

What's Changed
* Bump docker/login-action from 1.10.0 to 2.1.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/1979
* Bump docker/metadata-action from 3.3.0 to 4.3.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/1978
* Bump docker/build-push-action from 2.5.0 to 4.0.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/1976
* 2.1.4 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/1983
* Start 2.2 by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/1982
* Implement swizzling for `pygame.Color` by avaxar in https://github.com/pygame-community/pygame-ce/pull/1935
* Dependabot: Update versions of docker related actions by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1980
* pygame.transform.invert by ScriptLineStudios in https://github.com/pygame-community/pygame-ce/pull/1911
* add *venv* to gitignore by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1985
* doc fixes for `Font.set_direction` by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1992
* added missing versionadded tags in recent new API docs by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1996
* Rework doc_ file generation by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/1993
* Fix color swizzling as per request in 1989 by avaxar in https://github.com/pygame-community/pygame-ce/pull/1994
* Modified docs css by yunline in https://github.com/pygame-community/pygame-ce/pull/2004
* Remove pygame.fastevent by gresm in https://github.com/pygame-community/pygame-ce/pull/1966
* Another minor fblits refactor by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2002
* Fix the segfault of `Surface.convert()`. by yunline in https://github.com/pygame-community/pygame-ce/pull/2007
* Add test that the surface to be pre-multiplied has pixels by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/2005
* Move cython based controller module to controller_old by zoldalma999 in https://github.com/pygame-community/pygame-ce/pull/1903
* Change font.c to compare with SDL_ttf instead of SDL itself by simplyrohan in https://github.com/pygame-community/pygame-ce/pull/1991
* transform.blur by yunline in https://github.com/pygame-community/pygame-ce/pull/1836
* System module by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/1897
* Add font name getter by novialriptide in https://github.com/pygame-community/pygame-ce/pull/1971
* Add keyword for image by yunline in https://github.com/pygame-community/pygame-ce/pull/2010
* Add image & rect properties to Sprite by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1942
* Remove `sudo apt-mark hold grub-efi-amd64-signed` for Ubuntu20.04 by yunline in https://github.com/pygame-community/pygame-ce/pull/2012
* Fix text input example by yunline in https://github.com/pygame-community/pygame-ce/pull/2009
* Renamed "`the_args`" to "`blend_flags`" everywhere by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/2011
* Revise `repr` overload as per request in 1988 by avaxar in https://github.com/pygame-community/pygame-ce/pull/1995
* Add unifont to the font list of examples/textinput.py by yunline in https://github.com/pygame-community/pygame-ce/pull/2015
* Bump pypa/cibuildwheel from 2.12.0 to 2.12.1 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2017
* Update file comment header titles by simplyrohan in https://github.com/pygame-community/pygame-ce/pull/2013
* Circle fix by robertpfeiffer in https://github.com/pygame-community/pygame-ce/pull/2003
* Better VSync by robertpfeiffer in https://github.com/pygame-community/pygame-ce/pull/1874
* Change mixer to use FileNotFoundError and fix related tests by Temmie3754 in https://github.com/pygame-community/pygame-ce/pull/2001
* Fix cursor doc formatting and improve consistency by Temmie3754 in https://github.com/pygame-community/pygame-ce/pull/2024
* Add type hint for draw_triangle and draw_quad by yunline in https://github.com/pygame-community/pygame-ce/pull/2018
* Fix issues and inconsistency with draw_line_width by Temmie3754 in https://github.com/pygame-community/pygame-ce/pull/1998
* fixed banding bug with draw.circle by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2032
* Bump actions/checkout from 3.3.0 to 3.4.0 by dependabot in https://github.com/pygame-community/pygame-ce/pull/2037
* Implement FRect by yunline and Emc2356 in https://github.com/pygame-community/pygame-ce/pull/1944
* Add an AVX2 version of the BLEND_PREMULTIPLIED blend mode by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/5
* AVX2 alpha blitters by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/2019
* Raise `ValueError` when bluring an indexed surface. by yunline in https://github.com/pygame-community/pygame-ce/pull/2026

New Contributors

* simplyrohan made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1991

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.1.4...2.2.0.dev2

2.1.4

Not secure
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. https://github.com/pygame-community/pygame-ce/pull/1898
- Internationalization! We can now render non-latin alphabets much better with new `Font.set_script(...)` and `Font.set_direction(...)` methods. For example, to render Arabic, you'd load a font that supports Arabic, `Font.set_script("Arab")`, and `Font.set_direction(pygame.DIRECTION_RTL)`. https://github.com/pygame-community/pygame-ce/pull/1956, [upstream #3330](https://github.com/pygame/pygame/pull/3330)

* Matiiss added `pygame.mixer.music.get_metadata()` to potentially grab title/album/artist/copyright metadata from music files. https://github.com/pygame-community/pygame-ce/pull/8

* ScriptLineStudios added `transform.grayscale` and `Color.grayscale` (in case you're feeling gray). https://github.com/pygame-community/pygame-ce/pull/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](https://github.com/pygame/pygame/pull/3424), [upstream #3322](https://github.com/pygame/pygame/pull/3322), https://github.com/pygame-community/pygame-ce/pull/1832, https://github.com/pygame-community/pygame-ce/pull/1905

* PurityLake optimized blit mode code, achieving a 15-20% speedup while using blit blend modes for computers without AVX2 support. [upstream 3370](https://github.com/pygame/pygame/pull/3370)

* MightyJosip optimized pygame.draw.circle's with width (I saw a 300% performance boost in one case). [upstream 3550](https://github.com/pygame/pygame/pull/3550)

* itzpr3d4t0r added `Surface.fblits()`, which achieves faster speeds than `blits` by being slightly less flexible about input, as well as being highly optimized code itself. https://github.com/pygame-community/pygame-ce/pull/1831, https://github.com/pygame-community/pygame-ce/pull/1965

* Matiiss added `__round__()` method for pygame.Vector(2/3). [upstream 3559](https://github.com/pygame/pygame/pull/3559)

* avaxar implemented `pitch` argument for `pygame.image.frombuffer`, `pygame.image.from(string|bytes)`. https://github.com/pygame-community/pygame-ce/pull/1863

* Matiiss replaced an unclear hardcoded error message with the value of `SDL_GetError()`. [upstream 3641](https://github.com/pygame/pygame/pull/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")`. https://github.com/pygame-community/pygame-ce/pull/1900

* yunline added a "window" attribute DROPFILE and DROPTEXT events. [upstream 3568](https://github.com/pygame/pygame/pull/3568)

* oddbookworm made every dependency version getter work the same way, and return linked version vs compiled version. [upstream 3379](https://github.com/pygame/pygame/pull/3379) and [upstream #3567](https://github.com/pygame/pygame/pull/3567)

* PurityLake added aliases to common objects. E.g. `pygame.Joystick(...)` instead of `pygame.joystick.Joystick(...)`, `pygame.Font(...)`, `pygame.Clock(...)`, `pygame.Event(...)`, `pygame.Channel(...)`. https://github.com/pygame-community/pygame-ce/pull/1854

* oddbookworm added a debug method to print out tons of pygame details. https://github.com/pygame-community/pygame-ce/pull/2

* avaxar implement `draw_triangle` and `draw_quad` in `pygame._sdl2`. https://github.com/pygame-community/pygame-ce/pull/1876

* MyreMylar added a way to premultiply a Surface's alpha, starting on a track towards optimized alpha blits via premultiplication. [upstream 3276](https://github.com/pygame/pygame/pull/3276)

Bugfixes

* ankith26 fixed the "MacOS font rendering bug" that shall live in infamy-- where MacOS < 12 macs couldn't render fonts at all. https://github.com/pygame-community/pygame-ce/pull/1922

* zoldalma999 made sure updating a Texture with a Surface takes into account pixel format. [upstream 3548](https://github.com/pygame/pygame/pull/3548)

* ankith26 fixed a regression where `camera.list_cameras()` would be empty on Linux. [upstream 3594](https://github.com/pygame/pygame/pull/3594)

* ankith26 fixed several memory leaks in the math module. [upstream 3590](https://github.com/pygame/pygame/pull/3590)

* oddbookworm fixed potential segfaults in `PixelArray`, `Surface`, `draw`, and `transform`. [upstream 3666](https://github.com/pygame/pygame/pull/3666), https://github.com/pygame-community/pygame-ce/pull/1940

* ankith26 fixed a bizarre bug where fast mouse scrolls would have a bogus `.button` attribute. [upstream 3642](https://github.com/pygame/pygame/pull/3642)

* yunline fixed reversed `Window.borderless` in the _sdl2 module. https://github.com/pygame-community/pygame-ce/pull/1869

* Temmie3754 ensured toggle_fullscreen works for maximized window. https://github.com/pygame-community/pygame-ce/pull/4

Deprecations, Potential Breaking Changes, and Removals

* Python 3.6 support has been dropped. Thanks yunline for implementing that in https://github.com/pygame-community/pygame-ce/pull/1896 and https://github.com/pygame-community/pygame-ce/pull/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](https://github.com/pygame/pygame/pull/3622)

* `pgScancodeWrapper` now raises `TypeError` when you attempt to iterate over it, since iterating it is a footgun. Thanks to PurityLake for implementing that in https://github.com/pygame-community/pygame-ce/pull/1855

Docs, Examples, and Types
* pgattic, winterhazel, CodeMaster7000, chimosky, and IlmastroStefanuzzo fixed typos and grammar mistakes. [upstream 3554](https://github.com/pygame/pygame/pull/3554), [upstream #3562](https://github.com/pygame/pygame/pull/3562), [upstream #3625](https://github.com/pygame/pygame/pull/3625), [upstream #3694](https://github.com/pygame/pygame/pull/3694), https://github.com/pygame-community/pygame-ce/pull/1879

* Matiiss and novialriptide polished up `PixelArray` and `math` docs. [upstream 3544](https://github.com/pygame/pygame/pull/3544), [upstream #3581](https://github.com/pygame/pygame/pull/3581), [upstream #3574](https://github.com/pygame/pygame/pull/3574).

* Linkid fixed several links in the docs. [upstream 3549](https://github.com/pygame/pygame/pull/3549)

* zoldalma999 documented `SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS`. [upstream 3546](https://github.com/pygame/pygame/pull/3546)

* Starbuck5 added a pygame quickstart section to docs front page. [upstream 3541](https://github.com/pygame/pygame/pull/3541)

* SmashedFrenzy16 updated README to replace a list with a table. [upstream 3638](https://github.com/pygame/pygame/pull/3638)

* novialriptide, yunline, PurityLake, and khiaxeng worked on enhancements throughout the docs. [upstream 3684](https://github.com/pygame/pygame/pull/3684), [upstream #3558](https://github.com/pygame/pygame/pull/3558), https://github.com/pygame-community/pygame-ce/pull/1916, https://github.com/pygame-community/pygame-ce/pull/1920, https://github.com/pygame-community/pygame-ce/pull/1964

* pycoinfu overhauled the "stars" example. https://github.com/pygame-community/pygame-ce/pull/1909

* ankith26, Matiiss, and yunline fixed typestub related errors in [upstream 3395](https://github.com/pygame/pygame/pull/3395), https://github.com/pygame-community/pygame-ce/pull/1885, https://github.com/pygame-community/pygame-ce/pull/1

Cleanups and Robustness
* yunline, MyreMylar, Koswu, and Starbuck5 removed unused and obsolete code from the codebase. https://github.com/pygame-community/pygame-ce/pull/1895, https://github.com/pygame-community/pygame-ce/pull/1904, [upstream #3563](https://github.com/pygame/pygame/pull/3563), [upstream #3553](https://github.com/pygame/pygame/pull/3553), [upstream #3618 ](https://github.com/pygame/pygame/pull/3618), [upstream #3617](https://github.com/pygame/pygame/pull/3617)

* ankith26 and Starbuck5 worked to make the SIMD code (low level code for blitting) simpler and emit better warnings. [upstream 3501](https://github.com/pygame/pygame/pull/3501), [upstream #3588](https://github.com/pygame/pygame/pull/3588)

* ankith26 worked to make the key compat table more robust. [upstream 3426](https://github.com/pygame/pygame/pull/3426)

* MyreMylar, Matiis, itzpr3d4t0r, Starbuck5, and TheVroum worked to simplify and spruce up code throughout the codebase. [upstream 3530](https://github.com/pygame/pygame/pull/3530), https://github.com/pygame-community/pygame-ce/pull/15, [upstream #3655](https://github.com/pygame/pygame/pull/3655), [upstream #3633](https://github.com/pygame/pygame/pull/3633), https://github.com/pygame-community/pygame-ce/pull/1938, [upstream #3577](https://github.com/pygame/pygame/pull/3577), [upstream #3620](https://github.com/pygame/pygame/pull/3620), [upstream #3595](https://github.com/pygame/pygame/pull/3595)

* avaxar changed `pygame.time` to use `SDL_GetTicks64` when possible, which stops `pygame.time` from having a 32 bit rollover ~days~ into program runtime. https://github.com/pygame-community/pygame-ce/pull/1873

Operations
* ankith26, MyreMylar, Starbuck5, yunline, and novialriptide all helped keep the CI running and up to date and passing, which is hugely important. Special kudos to ankith26 and MyreMylar for their amount of work on this. [upstream 3611](https://github.com/pygame/pygame/pull/3611), [upstream #3647](https://github.com/pygame/pygame/pull/3647), [upstream #3698](https://github.com/pygame/pygame/pull/3689), [upstream #3695](https://github.com/pygame/pygame/pull/3695), https://github.com/pygame-community/pygame-ce/pull/790, https://github.com/pygame-community/pygame-ce/pull/1838, https://github.com/pygame-community/pygame-ce/pull/1849, https://github.com/pygame-community/pygame-ce/pull/1852, https://github.com/pygame-community/pygame-ce/pull/1882, https://github.com/pygame-community/pygame-ce/pull/1888, https://github.com/pygame-community/pygame-ce/pull/1867, https://github.com/pygame-community/pygame-ce/pull/1891, https://github.com/pygame-community/pygame-ce/pull/1899, https://github.com/pygame-community/pygame-ce/pull/1901, https://github.com/pygame-community/pygame-ce/pull/1946

* cgohlke Fixed build errors on win_arm64. [upstream 3583](https://github.com/pygame/pygame/pull/3583)

* Starbuck5, oddbookworm, Mega-JC, Matiiss, gresm, and novialriptide all helped get pygame-ce set up as its own independent project. https://github.com/pygame-community/pygame-ce/pull/6, https://github.com/pygame-community/pygame-ce/pull/7, https://github.com/pygame-community/pygame-ce/pull/13, https://github.com/pygame-community/pygame-ce/pull/10, https://github.com/pygame-community/pygame-ce/pull/1921, https://github.com/pygame-community/pygame-ce/pull/1914, https://github.com/pygame-community/pygame-ce/pull/1858, https://github.com/pygame-community/pygame-ce/pull/1865, https://github.com/pygame-community/pygame-ce/pull/1871

* MyreMylar added a CODEOWNERS file to set up our review structure. https://github.com/pygame-community/pygame-ce/pull/14

* pmp-p continued work on improving pygame wasm CI, and making runtime behavior more optimal. [upstream 3593](https://github.com/pygame/pygame/pull/3593), https://github.com/pygame-community/pygame-ce/pull/1861, https://github.com/pygame-community/pygame-ce/pull/1948

* novialriptide renamed a folder, and Starbuck5 added a folder to the gitignore, https://github.com/pygame-community/pygame-ce/pull/1925, [upstream #3587](https://github.com/pygame/pygame/pull/3587)

* yunline added 'stubcheck' into setup.py. https://github.com/pygame-community/pygame-ce/pull/1866

* Ritikkhulbe, novialriptide, and oddbookworm made sure our README badges were in tip-top shape. https://github.com/pygame-community/pygame-ce/pull/1893, [upstream #3599](https://github.com/pygame/pygame/pull/3599), https://github.com/pygame-community/pygame-ce/pull/1880, https://github.com/pygame-community/pygame-ce/pull/1872

New Contributors
* pgattic made their first contribution [upstream in 3554](https://github.com/pygame/pygame/pull/3554)
* winterhazel made their first contribution [upstream in 3562](https://github.com/pygame/pygame/pull/3562)
* Koswu made their first contribution [upstream in 3563](https://github.com/pygame/pygame/pull/3563)
* yunline made their first contribution [upstream in 3568](https://github.com/pygame/pygame/pull/3568)
* CodeMaster7000 made their first contribution [upstream in 3625](https://github.com/pygame/pygame/pull/3625)
* SmashedFrenzy16 made their first contribution [upstream in 3638](https://github.com/pygame/pygame/pull/3638)
* TheVroum made their first contribution [upstream in 3595](https://github.com/pygame/pygame/pull/3595)
* chimosky made their first contribution [upstream in 3694](https://github.com/pygame/pygame/pull/3694)
* IlmastroStefanuzzo made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1879
* Ritikkhulbe made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1893
khiaxeng made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1964

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.1.3...2.1.4.dev2

And finally...

It is time to officially open contributor nominations for the Pygame Community Edition "Steering Council" who will guide the Community Edition of pygame for the next year. The steering council concept is modelled after the similar governance structure for Python itself, and the structure of other large, community driven, open source projects. You can read more about [the steering council here](https://github.com/pygame-community/pygame-ce/wiki/The-Steering-Council). If you are [an official contributor](https://github.com/orgs/pygame-community/teams/pygame-contributors/members) and want to nominate yourself for election then send an email to [danintheshedgmail.com](mailto:danintheshedgmail.com) and you'll be added to the candidates list.

Due to the small size of the electorate this year, nominations will be open only for a week from this release and then we will do the voting after that for a week, or until everyone has had a chance to vote. Voting will be done via the [Helios Voting](https://vote.heliosvoting.org/) platform.

2.1.4.dev2

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](https://github.com/pygame/pygame/pull/3370)
* Tweaking version getters for sdl modules and freetype by oddbookworm in [upstream 3379](https://github.com/pygame/pygame/pull/3379)
* Warn when SIMD is usable but not compiled by ankith26 in [upstream 3501](https://github.com/pygame/pygame/pull/3501)
* Changed minor name mismatch in `PixelArray` docs by Matiiss in [upstream 3544](https://github.com/pygame/pygame/pull/3544)
* Document `SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS` by zoldalma999 in [upstream 3546](https://github.com/pygame/pygame/pull/3546)
* Move `pg_tuple_from_values_int()` into header, rename & add triple variant by MyreMylar in [upstream 3530](https://github.com/pygame/pygame/pull/3530)
* `mouse.get_pos()`, `mouse.get_rel()` optimizations by itzpr3d4t0r in [upstream 3424](https://github.com/pygame/pygame/pull/3424)
* Minor typo in the "pygame.Color" docs by pgattic in [upstream 3554](https://github.com/pygame/pygame/pull/3554)
* Remove Python < 3.2 compatibility shim by Starbuck5 in [upstream 3553](https://github.com/pygame/pygame/pull/3553)
* Docs: fix links by Linkid in [upstream 3549](https://github.com/pygame/pygame/pull/3549)
* Fix typo in music.rst by winterhazel in [upstream 3562](https://github.com/pygame/pygame/pull/3562)
* Delete `test_test_.py` by Koswu in [upstream 3563](https://github.com/pygame/pygame/pull/3563)
* Add info on viewing docs locally by novialriptide in [upstream 3558 ](https://github.com/pygame/pygame/pull/3558)
* Modify key compat table to store key-name pairs (fixes a rare bug) by ankith26 in [upstream 3426](https://github.com/pygame/pygame/pull/3426)
* Adjust surface masks to create a proper 24 bit `Surface` by Starbuck5 in [upstream 3577](https://github.com/pygame/pygame/pull/3577)
* Add vector zero constructor clarification by novialriptide in [upstream 3574](https://github.com/pygame/pygame/pull/3574)
* Minor `pygame.math` doc enhancements by Matiiss in [upstream 3581](https://github.com/pygame/pygame/pull/3581)
* Improved `.colliderect()` method performance by itzpr3d4t0r in [upstream 3322](https://github.com/pygame/pygame/pull/3322)
* Add VScode? _headers/ folder to gitignore by Starbuck5 in [upstream 3587](https://github.com/pygame/pygame/pull/3587)
* Remove LGTM badges by novialriptide in [upstream 3599](https://github.com/pygame/pygame/pull/3599)
* Fix `list_cameras` being empty on linux by ankith26 in [upstream 3594](https://github.com/pygame/pygame/pull/3594)
* Fix some more math memory leaks by ankith26 in [upstream 3590](https://github.com/pygame/pygame/pull/3590)
* Use Python 3.11.0 rather than 3.11rc2 by Starbuck5 in [upstream 3611](https://github.com/pygame/pygame/pull/3611)
* Add quickstart section to docs front page by Starbuck5 in [upstream 3541](https://github.com/pygame/pygame/pull/3541)
* Add `.premul_alpha()` method to surface by MyreMylar in [upstream 3276](https://github.com/pygame/pygame/pull/3276)
* Add "window" attribute to DROPFILE and DROPTEXT event by yunline in [upstream 3568](https://github.com/pygame/pygame/pull/3568)
* Added `__round__()` method for vectors by Matiiss in [upstream 3559](https://github.com/pygame/pygame/pull/3559)
* Segfault fix in `freetype.get_version()` by oddbookworm in [upstream 3567](https://github.com/pygame/pygame/pull/3567)
* Convert surface to texture's pixel format in `Texture.update()` by zoldalma999 in [upstream 3548](https://github.com/pygame/pygame/pull/3548)
* Performance improvement for `draw.circle()` by MightyJosip in [upstream 3550](https://github.com/pygame/pygame/pull/3550)
* Fix build errors on win_arm64 by cgohlke in [upstream 3583](https://github.com/pygame/pygame/pull/3583)
* Consolidate SSE2 and NEON code paths by Starbuck5 in [upstream 3588](https://github.com/pygame/pygame/pull/3588)
* Correct set_(shifts/masks) docs and cleanup code by Starbuck5 in [upstream 3620](https://github.com/pygame/pygame/pull/3620)
* Capitalise 'Pygame' in readme by CodeMaster7000 in [upstream 3625](https://github.com/pygame/pygame/pull/3625)
* Deprecate gamma and _sdl2 window brightness functionality by SSS-Says-Snek in [upstream 3622](https://github.com/pygame/pygame/pull/3622)
* Change all (to|from)string to (to|from)bytes in image.c by Matiiss in [upstream 3633](https://github.com/pygame/pygame/pull/3633)
* Update docs generation to sphinx 6.0 by MyreMylar in [upstream 3647](https://github.com/pygame/pygame/pull/3647)
* Raise minimum SDL version to 2.0.8 by Starbuck5 in [upstream 3618 ](https://github.com/pygame/pygame/pull/3618)
* Replace `music.set_pos()` current error message with `SDL_GetError()` by Matiiss in [upstream 3641](https://github.com/pygame/pygame/pull/3641)
* Update README with a table for the dependency versions by SmashedFrenzy16 in [upstream 3638](https://github.com/pygame/pygame/pull/3638)
* Fixed segfault (in `PixelArray`) by oddbookworm in [upstream 3666](https://github.com/pygame/pygame/pull/3666)
* Fix event `.button` attribute for fast mousewheel by ankith26 in [upstream 3642](https://github.com/pygame/pygame/pull/3642)
* Change casting to list to using copy in `pygame.sprite` by Matiiss in [upstream 3655](https://github.com/pygame/pygame/pull/3655)
* Removing redudancy in regex by TheVroum in [upstream 3595](https://github.com/pygame/pygame/pull/3595)
* Remove bit of MIR code by Starbuck5 in [upstream 3617](https://github.com/pygame/pygame/pull/3617)
* Fix `scrap` module typing (use only bytes and not AnyStr) by ankith26 in [upstream 3395](https://github.com/pygame/pygame/pull/3395)
* pygame wasm test CI optimization by pmp-p in [upstream 3593](https://github.com/pygame/pygame/pull/3593)
* Syntax highlighting fix by novialriptide in [upstream 3684](https://github.com/pygame/pygame/pull/3684)
* Port `SDL_ttf` text shaping capability by Starbuck5 in [upstream 3330](https://github.com/pygame/pygame/pull/3330)
* Update linter ubuntu version by MyreMylar in [upstream 3698](https://github.com/pygame/pygame/pull/3689)
* Linter/formatter run (`black` version update) by novialriptide in [upstream 3695](https://github.com/pygame/pygame/pull/3695)
* Correct update statement by chimosky in [upstream 3694](https://github.com/pygame/pygame/pull/3694)
* Initial retargeting for fork by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/6
* Fix a typestub inconsistency causing the 22.04 ubuntu workflow to fail by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1
* More retargeting by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/7
* Fix project logo URL in `README.rst` by Mega-JC in https://github.com/pygame-community/pygame-ce/pull/9
* Revert "Fix project logo URL in `README.rst`" by Mega-JC in https://github.com/pygame-community/pygame-ce/pull/11
* more retargeting to the fork by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/13
* Reword fork project description in README by Mega-JC in https://github.com/pygame-community/pygame-ce/pull/10
* Add a windows CI build by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/790
* Try adding a -ce to fix Debian CI by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1838
* fix math.c formatting by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1849
* Add concurrecy check to CI runs. by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1852
* Add an initial CODEOWNERS file to the pygame-ce project by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/14
* Use prebuilt bundle hosted by us by Starbuck5 in https://github.com/pygame-community/pygame-ce/pull/1858
* Spelling and grammar fixes suggested by PyCharm code inspection by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/15
* Fixed reversed `Window.borderless` by yunline in https://github.com/pygame-community/pygame-ce/pull/1869
* Documentation retarget by novialriptide in https://github.com/pygame-community/pygame-ce/pull/1865
* wasm ci : bump sdk version, and python 3.11.2 by pmp-p in https://github.com/pygame-community/pygame-ce/pull/1861
* Add aliases for most common objects by PurityLake in https://github.com/pygame-community/pygame-ce/pull/1854
* updated "commits since badge" to reflect commits since 2.1.3 by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1871
* updated badges by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/1880
* Reestablish uniformity across sentence terminations through the addition of a full stop character by IlmastroStefanuzzo in https://github.com/pygame-community/pygame-ce/pull/1879
* `collidepoint()` performance improvements by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/1832
* Fix `mypy` failing in Python <= 3.7 due to positional-only argument syntax by Matiiss in https://github.com/pygame-community/pygame-ce/pull/1885
* Bump version of actions/checkout by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1882
* Add 'stubcheck' into setup.py by yunline in https://github.com/pygame-community/pygame-ce/pull/1866
* Use `SDL_GetTicks64` instead of `SDL_GetTicks` by avaxar in https://github.com/pygame-community/pygame-ce/pull/1873
* Add brew install pkg-config to mac builds by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1888
* Debug method by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/2
* Removed appveyor badge from the Readme file by Ritikkhulbe in https://github.com/pygame-community/pygame-ce/pull/1893
* Fix cppcheck crash. by yunline in https://github.com/pygame-community/pygame-ce/pull/1891
* Fix `gen_stubs.py` and regenerate `__init__.pyi` by yunline in https://github.com/pygame-community/pygame-ce/pull/1901
* Delete old unused scrap module code by MyreMylar in https://github.com/pygame-community/pygame-ce/pull/1904
* Added `pygame.mixer.music.get_metadata()` by Matiiss in https://github.com/pygame-community/pygame-ce/pull/8
* Remove `draw_py` module by yunline in https://github.com/pygame-community/pygame-ce/pull/1895
* Bump cibw, more pypy builds on windows by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1867
* Implement `pitch` argument for `pygame.image.frombuffer`, `pygame.image.fromstring`, and `pygame.image.frombytes` by avaxar in https://github.com/pygame-community/pygame-ce/pull/1863
* Add `IS_CE` to constants by yunline in https://github.com/pygame-community/pygame-ce/pull/1900
* Add `Surface.fblits()` by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/1831
* Remove `www` from `pyga.me` because not supported(?) by Matiiss in https://github.com/pygame-community/pygame-ce/pull/1921
* There are still more references to pygame.org by gresm in https://github.com/pygame-community/pygame-ce/pull/1914
* Re-order display fullscreen handling and ensure toggle_fullscreen works for maximized window (by Temmie) by oddbookworm in https://github.com/pygame-community/pygame-ce/pull/4
* Remove experimental tags for certain functions by PurityLake in https://github.com/pygame-community/pygame-ce/pull/1920
* Docs CSS enhancement by yunline in https://github.com/pygame-community/pygame-ce/pull/1916
* Rect `collidelist()`/`collidelistall()` speedup by itzpr3d4t0r in https://github.com/pygame-community/pygame-ce/pull/1905
* Rewrite stars.py by pycoinfu in https://github.com/pygame-community/pygame-ce/pull/1909
* Addresses some concerns from 1924 by novialriptide in https://github.com/pygame-community/pygame-ce/pull/1925
* Drop CPython 3.6 support by yunline in https://github.com/pygame-community/pygame-ce/pull/1896
* Remove legacy `PG_FASTCALL` marcos by yunline in https://github.com/pygame-community/pygame-ce/pull/1936
* Make manylinux (i686 and x86_64) base images on CI by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1899
* Fix mac freetype dylib circular import issue, make sure CI generated wheels are self-contained by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1922
* Implement `draw_triangle` and `draw_quad` in `pygame._sdl2` by avaxar in https://github.com/pygame-community/pygame-ce/pull/1876
* Add GH actions infra to automate releases by ankith26 in https://github.com/pygame-community/pygame-ce/pull/1946
* pgScancodeWrapper now raises exception when trying to use `__iter__` by PurityLake in https://github.com/pygame-community/pygame-ce/pull/1855

New Contributors

* pgattic made their first contribution [upstream in 3554](https://github.com/pygame/pygame/pull/3554)
* winterhazel made their first contribution [upstream in 3562](https://github.com/pygame/pygame/pull/3562)
* Koswu made their first contribution [upstream in 3563](https://github.com/pygame/pygame/pull/3563)
* yunline made their first contribution [upstream in 3568](https://github.com/pygame/pygame/pull/3568)
* CodeMaster7000 made their first contribution [upstream in 3625](https://github.com/pygame/pygame/pull/3625)
* SmashedFrenzy16 made their first contribution [upstream in 3638](https://github.com/pygame/pygame/pull/3638)
* TheVroum made their first contribution [upstream in 3595](https://github.com/pygame/pygame/pull/3595)
* chimosky made their first contribution [upstream in 3694](https://github.com/pygame/pygame/pull/3694)
* IlmastroStefanuzzo made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1879
* Ritikkhulbe made their first contribution in https://github.com/pygame-community/pygame-ce/pull/1893

**Full Changelog**: https://github.com/pygame-community/pygame-ce/compare/2.1.3...2.1.4.dev2

2.1.3

Not secure
💽🏴🍋⚫📀🖤💽🏴⚫📀🖤💽🏴🌞⚫📀🖤
⚫ `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](https://www.reddit.com/r/pygame/comments/1112q10/pygame_community_edition_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/pygame3080, pygame/pygame3104, pygame/pygame3105, pygame/pygame3106, pygame/pygame3108, pygame/pygame3191, pygame/pygame3185, pygame/pygame3115, pygame/pygame3225, pygame/pygame3246, pygame/pygame3247, pygame/pygame3349, pygame/pygame3304), 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/pygame2988, pygame/pygame3136, pygame/pygame3170, pygame/pygame3181) Starbuck5 followed in his footsteps improving blit blend mode efficiency slightly in pygame/pygame3294 and getting a 15-20% boost for simple alpha blits in pygame/pygame3378. 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/pygame3028

New contributor mariospapaz added `font.get_sdl_ttf_version` to check the underlying `SDL_ttf` library version in pygame/pygame3095

New contributor Emc2356 added `pygame.image.(to|from)bytes` (the same as (to|from)string but appropriately named) in pygame/pygame3321

New contributor rlatowicz added support for the `BGRA` format for image functions in pygame/pygame3338 and pygame/pygame3342. This should be helpul for pygame interoperability with pycairo!

New contributor JamesC01 added `math.clamp(val, min, max)` in pygame/pygame3326 and pygame/pygame3361

Vectors have been receiving some nice polish thanks to the efforts of novialriptide, who added `move_towards()` in pygame/pygame2929 and `clamp_magnitude` in pygame/pygame2990 and pygame/pygame3133

Starbuck5 added `transform.scale_by` and `transform.smoothscale_by` functions in pygame/pygame2723

dr0id added the parameter `consider_alpha` to `transform.average_color` to to remove black artifacts if alpha is present in pygame/pygame2968. They also added a new rect method `Rect.collidelistall` in pygame/pygame3026 and pygame/pygame2989

MightyJosip added a strikethrough option to `Font` in pygame/pygame2991

ankith26

- Added `precise_x` and `precise_y` fields to `MOUSEWHEEL` events and also added some more pygame events in pygame/pygame2953.
- Made `Rect` and `Color` support `collections.abc.Container` in pygame/pygame3066
- Added `use_compat` to `pygame.key.name`, fixed `key_code` compat issues in pygame/pygame3312

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/pygame3300, pygame/pygame3314, pygame/pygame3335, pygame/pygame3319, pygame/pygame3401

avaxar changed `_sdl2.video.Image.flipX` and `.flipY` to use snakecase in pygame/pygame2978

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/pygame2661

New contributor Matiiss fixed windows version parsing in camera that errored on windows versions like 8.1 in pygame/pygame3158

New contributor ryanking13 fixed wasm build when no PREFIX variable is defined in pygame/pygame3280

New contributor PurityLake

- Fixed window not staying centered on second call of `display.set_mode` in pygame/pygame3172
- Fixed segault in subclass of `Sound` in pygame/pygame3492

novialriptide

- Fixed pygame Vector subclassing in pygame/pygame3088. Now inherited methods return objects of the correct subtype.
- Added Windows user fonts handling for `pygame.font.match_font()` in pygame/pygame3184

Starbuck5

- Fixed a serious performance regression of `draw.polygon` in pygame/pygame3141
- Fixed `pkgdata` import so that pygame continues to work with PyInstaller in pygame/pygame3082
- Not all surfaces started of with an opaque black background on MacOS, this was fixed in pygame/pygame2973
- Fixed DLL loading problems on Windows Store Python installations in pygame/pygame3196
- Made textinput show a candidate list in pygame/pygame3244
- Fixed `Surface.set_palette` to be usable without an initialized display in pygame/pygame3259

ankith26

- Fixed UCS_4 UCS4 typo, incorrect color methods export and display.c error handling bugs in pygame/pygame2987
- Fixed a segfault in resource loading functions such as `pygame.image.load` in pygame/pygame3089
- Added a mutex to guard multithreaded functions in `pygame.event` and fixed allocation issues due to GIL in pygame/pygame3177
- `font.get_fonts` was returning a list `None` in some cases, this has now been fixed in pygame/pygame3159. 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/pygame2961
- Music load fails could trigger wrong errors, this was fixed to only raise `pygame.error` in pygame/pygame3148
- Internal function `pgBuffer_Release` now retains previously set errors in pygame/pygame3127
- Internal function `v4l2_read_frame` could raise python exceptions when it should not, fixed in pygame/pygame3052
- Fixed misnamed `APPMOUSEFOCUS` constand naming and updated the values in pygame/pygame3043
- Fixed `Controller.rumble` returning wrong bool on error in pygame/pygame3248
- Vendor in SDL PNG save function, fix new 2.1.3 regression in pygame/pygame3376
- Fixed an edge case bug in `Vector.move_towards`, add more tests in pygame/pygame3400
- Fixed segfault (due to incref issue) in `PixelArray` context manager API in pygame/pygame3414
- Delete rect subscripts should error not segfault in pygame/pygame3440
- Made sure `display.set_mode` always returns a cleared window in pygame/pygame3317
- Fixed pypy rect freelist issue, unskipped tests in pygame/pygame3452
- Fixed blitters compile error when missing SIMD in pygame/pygame3498

MightyJosip fixed a Vector memory leak in pygame/pygame3236

MyreMylar removed `SIGALARM` suppression in pygame/pygame3142

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/pygame2975.

New contributors Yvant2000 and corrected a code comment in `rect.c` in pygame/pygame3182

New contributor GregoryMorse noticed `VideoInfo` string was missing closing parenthesis and fixed this in pygame/pygame3053

New contributor blankRiot96 removed an old use Python 2's \_\_nonzero\_\_ in pygame/pygame3194

New contributor blankRiot96 deprecated `Color.set_length` in pygame/pygame3352

New contributor itzpr3d4t0r ensured the CI continued to work by fixing a checksum in pygame/pygame3329

New contributor Vazno removed unused imports, fixed a confusing message, and improved some code in pygame/pygame3382, pygame/pygame3388, pygame/pygame3397, and pygame/pygame3392

New contributor Matiiss replaced some truth testing with `is not None` checks in sprite module in pygame/pygame3271

New contributor kevin-pease removed deprecated blend argument from test and docs in pygame/pygame3281

New contributor lebedevhhh changed f strings (sysfont.py) in pygame/pygame3391

robertpfeiffer made buildconfig handle `-auto` flag in pygame/pygame3157

zoldalma999 improved clang format source file detection in pygame/pygame3140

zoldalma999 added `__new__` and `__init__` methods to some pygame classes in pygame/pygame3001. Previously these classes had functions named after the class that did what `__init__` was supposed to do. He also changed renderer names to strings in `_sdl2.video.get_drivers` in pygame/pygame3132.

cclauss worked on linting and improving the python source code in pygame/pygame3208, pygame/pygame3213, pygame/pygame3207, pygame/pygame3212, pygame/pygame3220, and pygame/pygame3219

pmp-p fixed setup.py for clang-built Python, fixed a deprecation warning, and corrected some relative imports in pygame/pygame3381, pygame/pygame3228, and pygame/pygame3313

novialriptide cleaned up some python code in pygame/pygame2984, pygame/pygame3013, and pygame/pygame3016

illume worked to update manylinux and Windows dependencies in pygame/pygame2983, pygame/pygame3475 and pygame/pygame3059

illume generated the 2.1.3 dev releases in pygame/pygame2957, pygame/pygame3039, pygame/pygame3060, pygame/pygame3471, pygame/pygame3503 and pygame/pygame3513

ankith26 worked on refactoring and improving code in pygame/pygame2952, pygame/pygame2919, pygame/pygame3032, pygame/pygame3067, pygame/pygame3041, pygame/pygame3201, pygame/pygame3206, pygame/pygame3203, pygame/pygame3295, pygame/pygame3366, pygame/pygame3325, pygame/pygame3396, and pygame/pygame3490

ankith26 made sure the continuous integration and Mac/Linux dependencies were well in order in pygame/pygame3188, pygame/pygame3187, pygame/pygame3431, pygame/pygame3042, pygame/pygame3347, pygame/pygame3445, pygame/pygame3433, and pygame/pygame3496

ankith26 relaxed a SDL minor version exact match check that was giving users problems on Linux in pygame/pygame3428

MyreMylar added tools to make it easier for us to understand and implement blitting changes in pygame/pygame2964 and pygame/pygame3284.

MyreMylar also did some code formatting himself, in pygame/pygame3137

ankith26 and Starbuck5 added Python 3.11 builds to CI in pygame/pygame3484 and pygame/pygame3486

Starbuck5 worked on refactoring and improving code in pygame/pygame3192, pygame/pygame3183, pygame/pygame3014, pygame/pygame2911, pygame/pygame3093, pygame/pygame3126, pygame/pygame3180, pygame/pygame3216, pygame/pygame3186, pygame/pygame3296, pygame/pygame3344, pygame/pygame3364, pygame/pygame3375, pygame/pygame3416, pygame/pygame3487, pygame/pygame3239, and pygame/pygame3272

Starbuck5 worked to keep windows dependencies up to date in pygame/pygame3086, pygame/pygame3162, pygame/pygame3193, and pygame/pygame3287

Unit Tests and Typestubs

New contributor JovialKnoll added a missing copy test for `Vector3` in pygame/pygame3000

New contributor PurityLake added a unittest for fullscreen toggle in pygame/pygame3171

New contributor Temmie3754 relaxed strict pixel match tests in `test_src_alpha_sdl2_blitter` by allowing a small delta by in pygame/pygame3494

New contributor SSS-Says-Snek added SysFont `pygame.font.get_fonts()` verification test in pygame/pygame3266

novialriptide improved `Rect` typehints in pygame/pygame2969

MyreMylar added a unit test for `display.gl_set_attribute()` in pygame/pygame3256

MightyJosip fixed imported class typehints in pygame/pygame2965.

ankith26

- Added a unittest for `pygame.locals` in pygame/pygame2958
- Fixed stubtest warnings, run stubtest on CI in pygame/pygame2999 and pygame/pygame3075
- Did some Event tests and types improvements in pygame/pygame3063
- Did some `Sprite` typestub updates, used generics and protocols in pygame/pygame3138
- Added `_GenericVector` to math typestubs and did some more fixes in pygame/pygame3150
- Fixed latest stubtest issues in pygame/pygame3332
- Fixed new mypy-0.981 fails in pygame/pygame3470
- Fixed tests that had overshadowed names in pygame/pygame3384

Docs and Examples

New contributor eoghanriley fixed a typo in `tests.rst` in pygame/pygame3022

New contributor gresm corrected some docs formatting in pygame/pygame3122, and fixed some docs typos in pygame/pygame3027 and pygame/pygame3044

New contributor brccabral improved the mask example by selecting an image that would actually get an interesting mask, in pygame/pygame3111.

New contributor wxh06 updated a list of datafiles relevant to the docs in pygame/pygame3073.

New contributor dbrown3562 improved many of our example programs in pygame/pygame3092 and pygame/pygame3146

New contributor thanice improved the cursors example in pygame/pygame3037.

New contributor blankRiot96 improved the textinput example in pygame/pygame3050.

New contributor kharissa fixed Chimp tutorial code to use the correct module name alias in pygame/pygame3205

New contributor elgcodes corrected some typos in tutorials in pygame/pygame3164 and pygame/pygame3165.

New contributor EunhoKang fixed typo in korean document in pygame/pygame3176

New contributor StarDexterity fixed typos in sprite docs in pygame/pygame3263

New contributor fQ7N Fix sprite docs `DrawPlain` ---> `RenderPlain` in pygame/pygame3298

New contributor muelletm fixed typo in aliens example in pygame/pygame3485

New contributor oddbookworm improved `pygame.math` documentation in pygame/pygame3359 and pygame/pygame3373

New contributor JoshuaDRose

- updated DisplayModes.rst - PEP Changes in pygame/pygame3385
- fixed a typo in `SpriteIntro.rst` in pygame/pygame3154.

New contributor Vicky-Vicky27

- Improved `mixer.set_reserved()` documentation in pygame/pygame3434
- fixed docs and types for `math.Vector2.cross()` return to float in pygame/pygame3286

New contributor stefpivser added Spanish translation of chimp tutorial in pygame/pygame3421

New contributor pycoinfu refactored `examples/mask.py` in pygame/pygame3455

New contributor cvionis corrected a typo in `tom_games3.rst` in pygame/pygame3504

MyreMylar and new contributor davidpendergast overhauled the "newbie guide" in pygame/pygame3118 and pygame/pygame2718 respectively

hnrkcode made the header of the documentation look nice and pretty in pygame/pygame3094

novialriptide

- Improved README in pygame/pygame3090 and pygame/pygame3091
- Cleaned up test/README.TXT in pygame/pygame3254
- Prettify joystick documentation + add Nintendo Switch mapping in pygame/pygame3290
- overview.rst -> 개요.rst in pygame/pygame3474

dr0id helped keep the docs building nicely by fixing a warning in pygame/pygame3029.

Grimmys fixed an issue where a few pages weren't added to the built documentation in pygame/pygame2977.

Starbuck5

- Updated the image documentation and corrected an image typehint in pygame/pygame2959
- Improved the draw docs and example in pygame/pygame3074
- Corrected some incorrect info about the `DOUBLEBUF` flag in pygame/pygame3129
- Freshened up `arraydemo.py` in pygame/pygame3453

illume fixed es folder location as well some Sphinx issues in `ChimpanceLineaporLinea.rst` in pygame/pygame3473

illume added experimental feedback links to new APIs in pygame/pygame3511

New Contributors

This release has seen a phenomenal rise in the number of new contributors, special shout out to people who are contributing for the first time! No matter the size or way of the contribution, we sincerely appreciate all ways the community is helping the pygame project.

SergioArnaud JovialKnoll eoghanriley gresm ThanhChinhBK GregoryMorse thanice blankRiot96 wxh06 SnoopJ brccabral mariospapaz JoshuaDRose Matiiss dbrown3562 elgcodes EunhoKang PurityLake Yvant2000 kharissa StarDexterity SSS-Says-Snek ryanking13 kevin-pease Vicky-Vicky27 fQ7N itzpr3d4t0r rlatowicz Emc2356 JamesC01 oddbookworm Vazno lebedevhhh stefpivser pycoinfu muelletm Temmie3754 davidpendergast cvionis

Thank you one and all

Sincere thanks to everyone keeping the pygame project going strong! This is not just limited to our contributors on Github, but also thousands of pygame learners and enthusiasts all around the world.

Special thanks to

- people submitting issues and PRs, answering questions, making guides and tutorials, sharing your work, or moderating discussions on different forums.
- code reviewers for helping with PRs that people make.

If we've missed someone in these notes or made any other mistake, don't hesitate to get in touch with us to make a correction.

Page 4 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.