2.0.3 - the many many manylinux M1 && good bye SDL1 goodbye py2 release
🍂🍊🌰🥮🥧🌆🌇🔥🎃🎑🏮🍂🍊🍂🥮🌰🎃🥮
🥮 python3 -m pip install pygame==2.0.3
🍊🍂🥮🌰🥧🌇🔥🌆🎃🏮🍂🍊🏮🍂🥮🌰🥧🥮
Goodbye python 2, goodbye SDL 1.
Firstly, everyone raise their glasses for python 2. This will (probably) be our last python 2 supporting release. From your weird unicode, to your print
statement that didn't need ()
. We will miss you, but we will always remember you.
Secondly, raise a second glass (at the same time!) for SDL1. Oh, SDL 1.2.x how great it was to know you and use you on dead platforms like BeOS and DOS, with your now exotic features like cdrom support. So many pixels, so many sound waves. You stuck around with us several years after retirement, and for that we thank you. SDL 1, take your gold watch and enjoy your retro computing nostalgia after-life.
The python 2 wheels will still be there, and you can still use SDL1 through the pygame 1.9.6 wheels if you need. But it's time for us to move on.
You can stop raising your glasses now. Onto the goodies!
Here we go...
There's lots of build improvements in here, including support for M1 macs and much better linux support (fullscreen and multi touch is working!). There's some regression fixes including on pygame.time.set_timer
and when compiling from source on older linux distros. New in here is a loops
keyword argument has been added to mixer.music.queue
. The Camera module got some further improvements removing some unused legacy code and some code cleanups.
One very cool highlight is that are UCS4 unicode (including emoji) rendering is working. Rendering emoji and some other human languages is now possible!
We now have much better error newbie friendly messages for image/resource loading issues. Which should help people when they make typos or path issues when loading images. This is a common problem for newbies, so it's a really nice improvement.
A bunch of difficult bugs were fixed, and python 3.10 wheels for manylinux (which were accidentally forgotten in the 2.0.2 release). There were also some docs improvements for the new Cursor
class and get_desktop_sizes
function as well as some type improvements for the experimental _sdl2
modules.
On mac and linux we are using libjpegturbo
, so on those platforms jpeg loading should be smoking fast. Additionally lots of our dependencies on mac and linux have been improved (and they share the same build scripts now). Things like fluidsynth
being actually compiled in and support for the opus sound files being compiled in properly.
What's Changed
Here's what we have in this release for you in a bit more detail. If you want ALL the details please scroll to the bottom to see the full commits and code diffs.
- config_darwin.py improvements by @jmroot in #2768
- Remove redundant python includes, fix compiler warnings on re-exported symbols by @ankith26 in #2673
- GH Actions make /usr/local cache for mac deps by @ankith26 in #2762
- Fix regression in set_timer, old events not removed by @ankith26 in #2769
- Added loops option for mixer.music.queue by @thorhunter1 in #2770
- document get_desktop_sizes by @robertpfeiffer in #2506
- Add sdl2_video types by @Starbuck5 in #2664
- Split GH actions mac builds into 5 matrix builds by @ankith26 in #2773
- Change shield to 2.0.2 by @MayuSakurai in #2784
- update mixer/music docs, unskip mp3 tests by @ankith26 in #2780
- Lots of cleanups by @Starbuck5 in #2779
- Simplify pygame resource loaders by @Starbuck5 in #2695
- Camera improvements by @Starbuck5 in #2772
- Add python 3.10 building in manylinux by @illume in #2787
- More informative FileNotFoundError by @Starbuck5 in #2694
- Added doc for Cursor object by @fortwoone in #2709
- Continue on Cursor docs by @illume in #2788
- Fix issue #2543 segfault in font dealloc after reinit by @REW1L in #2548
- Old API removal in ft_unicode, sdlmain_osx cleanups by @ankith26 in #2433
- BytesIO fix on 32-bit platforms by @ankith26 in #2776
- Remove restriction on rendering 4-byte characters on pygame.font part 1 of 2 by @AvaxarXapaxa in #2627
- Remove restriction on rendering 4-byte characters on pygame.font part 2 of 2 by @illume in #2746
- test image: Fix test which relied on removed image by @illume in #2793
- Redirect pygame github image to pygame webpage by @MightyJosip in #2789
- fix syntax error for slightly older versions of libSDL by @ckuttruff in #2798
- Build arm64 mac wheels on CI by @ankith26 in #2782
- Remove travis again by @illume in #2803
- add opus, brotli and bzip2 to dep builds by @ankith26 in #2804
- Fix selection of manylinux to build by @illume in #2805
- Fix portmidi building for wrong arch on m1 mac by @ankith26 in #2808
New Contributors
- @jmroot made their first contribution in #2768
- @thorhunter1 made their first contribution in #2770
- @MayuSakurai made their first contribution in #2784
- @fortwoone made their first contribution in #2709
- @REW1L made their first contribution in #2548
- @ckuttruff made their first contribution in #2798
- @AvaxarXapaxa made their first contribution in #2627
Thanks all
Thanks to all for reporting issues, doing reviews and helping out in other ways than code contributions. Especially issue reporters, wiki editors, discord mods/folk, redditors, patreons, and such like.
As all releases, this one too would not have been possible without support from the community, from people submitting issues, to people making PRs for all kinds of improvements, from typo fixes, to fixing complex segfaults in C code, every contribution matters a lot!
Special thanks are in order with with this release. For help with last minute testing by /dev/mario, @pkulev, @solozobov, @interstellartaurus, fxbeta and @kajott. Thanks!
python3 -m pip install pygame==2.0.3
- merged PRs since we started the pygame 2.0.3 series on the 10th of October 2021.
- 114 Commits since 2.0.2 release