Oops. I forgot to paste the release notes here the other day.
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻 🌼🌸 pip install pygame==2.0.0.dev8 🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻 One year ago today on the 5th of May 2019 we released the first development release of the pygame 2 series. So today is our anniversary of sorts. 🎉 Type hints for better editor support. Type hints are now installed thanks to @MightyJosip <https://github.com/MightyJosip> #1685 <https://github.com/pygame/pygame/pull/1685> This lets static type checkers do TAB completion and check your function inputs and outputs. Giving an altogether nicer experience when programming with pygame. Color arguments are fuzzy wuzzy human friendlier Thanks to new pygame team member @nthykier <https://github.com/nthykier> in #1676 <https://github.com/pygame/pygame/pull/1676> there is now support for writing colors in an easier way. surf.fill('black') # surf.fill(pygame.Color('black')) surf.fill('#FFEECCF0') # surf.fill(pygame.Color('#FFEECCF0')) Drawing improvements, and rounded corners. Drawing improvements including more correct AND faster circle drawing, rounded rects. Thanks to @charlesej <https://github.com/charlesej> @MightyJosip <https://github.com/MightyJosip> and @robertpfeiffer <https://github.com/robertpfeiffer>. #1503 <https://github.com/pygame/pygame/pull/1503> # Draw a rectangle with rounded corners pygame.draw.rect(screen, GREEN, [115, 210, 70, 40], 10, border_radius=15) pygame.draw.rect(screen, RED, [135, 260, 50, 30], 0, border_radius=10, border_top_left_radius=0, border_bottom_right_radius=15) # Draw only one circle quadrant pygame.draw.circle(screen, BLUE, [250, 250], 40, 0, draw_top_right=True) pygame.draw.circle(screen, RED, [250, 250], 40, 30, draw_top_left=True) pygame.draw.circle(screen, GREEN, [250, 250], 40, 20, draw_bottom_left=True) pygame.draw.circle(screen, BLACK, [250, 250], 40, 10, draw_bottom_right=True) - Drawing an empty string now returns a zero sized surface and rect, before it was 1 pixel wide and the height of the font. #1488 <https://github.com/pygame/pygame/pull/1488> Thanks to the @MightyJosip <https://github.com/MightyJosip> - Additionally, zero sized rects do not collide with anything anymore - thanks to @thiagojobson <https://github.com/thiagojobson> and @charlesej <https://github.com/charlesej> #1226 <https://github.com/pygame/pygame/pull/1226> - Fix drawing ellipses with width values > 1 <https://github.com/pygame/pygame/pull/1577>@charlesej <https://github.com/charlesej> - draw.c code refactoring and cleanup <https://github.com/pygame/pygame/pull/1552>@MightyJosip <https://github.com/MightyJosip> - Declare UTF-8 encoding in draw_py <https://github.com/pygame/pygame/pull/1542>@stefanor <https://github.com/stefanor> pygame recipe added to Python-For-Android Thanks to @AndreMiras <https://github.com/AndreMiras>, @robertpfeiffer <https://github.com/robertpfeiffer> and others there is a pygame recipe in python-for-android kivy/python-for-android#2164 <https://github.com/kivy/python-for-android/pull/2164> which is a python for android distribution. Documentation and tutorials Lots of little fixes, and even a whole new tutorial were made in this release. When someone takes the time to fix a little problem in the documentation that can help many people in the future from getting lost themselves. - A new tutorial in Korean (and english) #1512 <https://github.com/pygame/pygame/pull/1512> from first time contributor @rumia0601 <https://github.com/rumia0601> - Thanks to first time contributor @glennmackintosh <https://github.com/glennmackintosh> for fixing the docs for KMOD_MODE #1657 <https://github.com/pygame/pygame/pull/1657> - pygame.cursors.compile doc fix <https://github.com/pygame/pygame/pull/1689> thanks to @MyreMylar <https://github.com/MyreMylar> - Thanks to @w-hat <https://github.com/w-hat> for the doc cleanups #1687 <https://github.com/pygame/pygame/pull/1687>. @Starbuck5 <https://github.com/Starbuck5> Fixed a typo in gfxdraw doc <https://github.com/pygame/pygame/pull/1564> - Use an explicit encoding in the documentation headers writer <https://github.com/pygame/pygame/pull/1544> @stefanor <https://github.com/stefanor>and Dominik George. - Fix documentation for Vector3's rotate methods <https://github.com/pygame/pygame/pull/1555> @charlesej <https://github.com/charlesej> - Fix a number of spelling mistakes <https://github.com/pygame/pygame/pull/1543>@stefanor <https://github.com/stefanor> - Fix incorrect comments in draw module example <https://github.com/pygame/pygame/pull/1538> @Starbuck5 <https://github.com/Starbuck5> - Thanks @vilhelmprytz <https://github.com/vilhelmprytz> for a little doc fix <https://github.com/pygame/pygame/pull/1473> :) - pygame.music.play() looping docs consistent with pygame and SDL behaviour <https://github.com/pygame/pygame/pull/1693> @MyreMylar <https://github.com/MyreMylar> - Document BLEND_PREMULTIPLIED Surface.blit flag <https://github.com/pygame/pygame/pull/1706> @MyreMylar <https://github.com/MyreMylar> - Correction pygame.sprite.LayeredUpdates _layer attribute name <https://github.com/pygame/pygame/pull/1708> @glennmackintosh <https://github.com/glennmackintosh> Optimizations - Speed up pygame.image.fromstring <https://github.com/pygame/pygame/pull/1650>@nthykier <https://github.com/nthykier> - Load time on windows and linux improved due to avoiding loading element tree. - SDL 2.0.12 includes assembler optimizations for many blit drawing functions for ARM platforms like Raspberry Pi. - The assembler optimized scale function was enabled again <https://github.com/pygame/pygame/pull/1546> thanks @stefanor <https://github.com/stefanor> - The draw bounds tests were sped up <https://github.com/pygame/pygame/pull/1571>@charlesej <https://github.com/charlesej> - circle drawing was sped up again, and is more correct. new feature pygame.key.key_code There's now a function to return the key code from the name of a key <https://github.com/pygame/pygame/pull/1694>. Thanks to @MyreMylar <https://github.com/MyreMylar> for digging into C code to implement, document and test this feature. >>> pygame.key.key_code("return") == pygame.K_RETURNTrue>>> >>> pygame.key.key_code("0") == pygame.K_0True>>> pygame.key.key_code("space") >>> == pygame.K_SPACETrue Bug fixes and Cleanups Lots of bug fixes and cleanups continued to happen in the pygame code base. We reached a milestone of turning lots of compiler warnings into errors for our linux builds. In our C/C++ code we are now at zero alerts with LGTM, and only 10 left in our python code. - Fixed some potential memory leaks <https://github.com/pygame/pygame/pull/1632> in low memory conditions. - Cleanups continued including various cppchecker <https://github.com/pygame/pygame/pull/1497> fixes <https://github.com/pygame/pygame/pull/1501> Some LGTM bug fixes <https://github.com/pygame/pygame/pull/1590>were made too. Thanks to @charlesej <https://github.com/charlesej> - The Mask.to_surface <https://github.com/pygame/pygame/pull/1588> method got a lot of tests, so did the <https://github.com/pygame/pygame/pull/1585> PixelArray.compare <https://github.com/pygame/pygame/pull/1583>method. - The playmus <https://github.com/pygame/pygame/pull/1579> example was fixed, thanks to @flaambe <https://github.com/flaambe> Also the - setmodescale <https://github.com/pygame/pygame/pull/1578>example fixed thanks to @galexandreg <https://github.com/galexandreg> - Fixed rect collision with negative size and image.frombuffer not working with ARGB <https://github.com/pygame/pygame/pull/1576> @MightyJosip <https://github.com/MightyJosip> - Fix Python syntax warning <https://github.com/pygame/pygame/pull/1566> @charlesej <https://github.com/charlesej> - midi: fix midi_to_ansi_note <https://github.com/pygame/pygame/pull/1561> @zuh0 <https://github.com/zuh0> - Close file handle fixed in MacOS <https://github.com/pygame/pygame/pull/1527>@markph0204 <https://github.com/markph0204> - Fix memory leak in pygame.font.Font.metrics <https://github.com/pygame/pygame/pull/1470> @charlesej <https://github.com/charlesej> - OpenGL screen size from set_mode as requested. <https://github.com/pygame/pygame/pull/1482> @illume <https://github.com/illume> - fix set_controls in _camera.c on python 3.8 <https://github.com/pygame/pygame/pull/1484>@robertpfeiffer <https://github.com/robertpfeiffer> - Thanks to first time contributor @DotMars <https://github.com/DotMars>for making image.load throw FileNotFoundError <https://github.com/pygame/pygame/pull/1660> instead of the generic pygame.error when the file does not exist. Dependencies updated pygame uses a whole lot of different pieces of software to do a lot of the heavy lifting. - There's a new conan <https://conan.io/> based build system. Conan is a cross platform C/C++ package manager written in python. It's replaced our homebrew based build system for Mac, but may potentially be an option for other platforms too. - Windows dependencies were updated <https://github.com/pygame/pygame/pull/1629>: SDL 2.0.12, SDL_ttf 2.0.15, and jpeg 9d. The Windows dependency downloader: replaced requests with urllib <https://github.com/pygame/pygame/pull/1493>, so that it can be used by people without first installing the requests module. - The linux 'manylinux' build dependencies were updated <https://github.com/pygame/pygame/pull/1641>. freetype-2.10.1, libpng-1.6.37, libwebp-1.1.0, mpg123-1.25.13, libogg-1.3.4, SDL2-2.0.12. - Portmidi is skipped on Debian GNU/kFreeBSD and GNU/Hurd too <https://github.com/pygame/pygame/pull/1545> thanks to @stefanor <https://github.com/stefanor> and Debian folk. Development improvements Along with the typehints for most pygame functions (which I've already mentioned above) there were some improvements for people developing pygame itself. Many compiler errors now cause the CI system to fail if present. Thanks again to @charlesej <https://github.com/charlesej>for many fixes #1634 <https://github.com/pygame/pygame/pull/1634> and to @nthykier <https://github.com/nthykier> for making our CI bots fail for more warnings #1652 <https://github.com/pygame/pygame/pull/1652> Previous pygame header files for C extensions using pygame were not installed. Now they are thanks to @robertpfeiffer <https://github.com/robertpfeiffer> #1662 <https://github.com/pygame/pygame/pull/1662> Some depreciation warnings <https://github.com/pygame/pygame/pull/1627> from python 3.8 were fixed. Community help A special thanks to all the people who help out others. claudeb, DaFluffyPotato, MyreMylar, MichaelCPalmer, jtiai, Rabbid76, The Big Kahuna, sloth, Kingsley, ... Also a big thanks to the people who run community spaces and events like lordmauve who runs pyweek, and the /r/pygame community members. Issues @MyreMylar <https://github.com/MyreMylar> in particular went above and beyond investigating lots of old pygame issues, and closing many. Some of them several years old. I'm happy that 4 'critical' backwards compatibility issues were fixed since the last release. If you notice a backwards compatibility issue with the pygame 2 series please let us know with a delicious issue report. Nom nom nom 🍕 ------------------------------ - 16 open 'critical' issues <https://github.com/pygame/pygame/issues?q=is%3Aissue+is%3Aopen+label%3Acritical> (backwards compatibility issues reported by people), and 22 closed (last release: 13 open, 18 closed). - merged PRs <https://github.com/pygame/pygame/pulls?q=is%3Apr+is%3Aclosed> - 1166 Commits since 1.9.6 stable release <https://github.com/pygame/pygame/compare/1.9.6...2.0.0.dev8> - 269 Commits since 2.0.0.dev6 pre release <https://github.com/pygame/pygame/compare/2.0.0.dev6...2.0.0.dev8> On Monday, November 18, 2019, René Dudfield <ren...@gmail.com> wrote: > Now for something a little different... > > > One focus: pygame 2 issues. > Feature freeze for two months. > One issue at a time. > https://github.com/pygame/pygame/issues/1511 > > >