Hi, I strongly feel that starting with tests is a good idea, and also for "good first issue" issues. Most projects mark issues which should be fairly easy to get started on. Definitely choose a project based on your interests, and one where people are willing to help out.
Here's a "good first issue" for you if you want it: https://github.com/pygame/pygame/issues/565 Just say on there something like "I'm working on this". Also see: https://www.pygame.org/wiki/Contribute Feel free to drop in the #contributing room where you can get help. On Mon, Nov 5, 2018 at 11:08 AM Thomas Sanjurjo <sanjur...@gmail.com> wrote: > If I'm getting my feet wet with programming seriously, where should I best > focus my efforts? I can do documentation and explain what code does > decently well, but I'd also like to actually conteibute some code to the > project. > > Thanks for pointing me in the right direction . > > On Mon, Nov 5, 2018, 5:04 AM René Dudfield <ren...@gmail.com wrote: > >> Hello, >> >> Some updates on where we're up to... >> >> >> https://www.pygame.org/news/2018/11/where-we-are-up-to-with-pygame-2-and-1-9-5 >> >> >> - pygame now compiles with SDL2 from source on at least Mac, Linux, >> and Windows. >> - SDL2 now does batching with the existing API. Should be in the next >> release. So no need to integrate SDL_gpu, or to change how we submit >> surfaces for rendering. >> - Many things are working with SDL2, there are dozens of known issues >> and test failures however. The main one is color keyed surfaces not >> working >> properly. The other big piece of work is getting it to compile on the >> build >> bots (travis, appveyor), and making pre releases available. >> - There have been a few more developers contributing (10 in the last >> month). >> - Work continues on cleanups, making it more developer friendly, and >> developer out reach. The repo has been cleaned up, removing the clutter, >> and beginning an internal CAPI refactor. Unit tests have also undergone >> some cleanups using newer features. python 2.4/2.5/2.6 support has been >> removed in the code. The contribution guide has been improved. >> https://www.pygame.org/wiki/Contribute >> - If anyone using pygame in Berlin wants to come along and help talk >> with people interested in contributing, I am presenting here: >> https://www.meetup.com/opensourcediversity/events/255369540/ >> - We're working toward the 1.9.5 release (the refactor release). >> - There could be 'one more SDL 1.2' release, and we may use that >> SDL1.2 branch for a 1.9.6 release. >> >> >> Here's the milestone for pygame 2: >> https://github.com/pygame/pygame/milestone/4 >> >>> When is pygame 2 done? TLDR; When the pygame API is mostly running in a >>> backwards compatible way on SDL2. When the few parts that are not working >>> are documented as such. When there are binaries available for python 2.7, >>> 3.4, 3.5, 3.6, 3.7 in 32bit/64bit varieties on at least Mac, Linux, Windows. >>> >> >> Here's the milestone for pygame 1.9.5 (the refactor release). >> https://github.com/pygame/pygame/milestone/7 >> >>> The 1.9.5 release is the 'refactor' release, with the SDL2 branch merged >>> and many cleanups. Being able to compile SDL2 support in is possible from >>> source, but there are known issues with it. Binaries (on pypi and >>> otherwise) should be distributed with SDL 1.2. >>> >> >> Thanks to the following people who have been helping out since the last >> release (sorry if I've missed anyone). >> >> (@alphaCTzo7G <https://github.com/alphaCTzo7G>) | Amos Bastian ( >> @amosbastian <https://github.com/amosbastian>) | Andrey Lopukhov ( >> @andreyx86 <https://github.com/andreyx86>) | Augusto Noronha ( >> @augusto2112 <https://github.com/augusto2112>) | (@Bottersnike >> <https://github.com/Bottersnike>) | (@Cerealdragon >> <https://github.com/Cerealdragon>) | (@cmtrapp02 >> <https://github.com/cmtrapp02>) | Daniel Molina (@daniel-molina >> <https://github.com/daniel-molina>) | David Caughell (@DavidCaughell >> <https://github.com/DavidCaughell>) | David L (@dlon >> <https://github.com/dlon>) | burmer (@dtschirmer >> <https://github.com/dtschirmer>) | René Dudfield (@illume >> <https://github.com/illume>) | (@LambdaGoblin >> <https://github.com/LambdaGoblin>) | Lenard Lindstrom (@llindstrom >> <https://github.com/llindstrom>) | Marius Gedminas (@mgedmin >> <https://github.com/mgedmin>) | (@metulburr >> <https://github.com/metulburr>) | Dominik George (@Natureshadow >> <https://github.com/Natureshadow>) | Nunu-Willump (@Nunu-Willump >> <https://github.com/Nunu-Willump>) | Nik (@nikolas >> <https://github.com/nikolas>) | Sett (@sw00 <https://github.com/sw00>) | >> >> >> On Wed, Aug 15, 2018 at 7:00 PM Leif Theden <leif.the...@gmail.com> >> wrote: >> >>> Is this unrelated to the "Renderer" API? Just IMO, i'd rather use the >>> Renderer API than trying to work with obsolete opengl and have >>> cross-platform issues. Not worth getting working if it really has all >>> these issues. >>> >>> On Mon, Aug 13, 2018 at 1:15 PM, René Dudfield <ren...@gmail.com> wrote: >>> >>>> Yes! For sure. I think we should seriously consider it. >>>> >>>> TLDR; there are a few concerns, but it could be the best way forward. >>>> >>>> What do you(ses) think? Anyone want to try it out? >>>> >>>> >>>> >>>> I think we definitely could use something for what sdl-gpu does well. >>>> Which is mainly automatic batch rendering to reduce state changes, but also >>>> a rotation/scale API along with a nicer way to use shaders. >>>> >>>> - the author and other people have used it in various games, and >>>> it's a number of years old now. >>>> - People have used it on iOS and Android. Which both currently >>>> support OpenGL, and these are where you need performance most. >>>> - It's not in Debian, homebrew, Fedora or... (which is the same as >>>> 'is it stable/mature and packaged well?'). >>>> - The releases haven't been 'proper' and versioned yet. There's no >>>> .tar.gz with the version in its name for example. >>>> - it uses CMake (ya! for modern packaging). >>>> - It's marked as version 0.11.0 (ie. not stable or finished). >>>> - Currently it only supports OpenGL*[0] (which is still worthwhile). >>>> - there is a windows/appveyor CI, but it's been broken for five >>>> months. >>>> - it's mainly one author, but quite a few minor contributions. >>>> - there's lots of interactive tests, but no automated tests. >>>> - I'm slightly concerned it's too closely coupled to OpenGL, and >>>> some of this may leak through. >>>> >>>> >>>> The best thing about sdl-gpu is that it doesn't require you to batch up >>>> your drawing calls first. So people using the API in a naive way can also >>>> see performance improvements. However, (c)python has the high python >>>> function call overhead, so in some ways we still have to avoid non-batch >>>> rendering anyway. >>>> >>>> Some of these cons about packaging, and 'proper releases' could perhaps >>>> be contributed. However maybe the author doesn't want this(or yet), rather >>>> than doesn't know how or hasn't had time. There is a pkg-config script PR >>>> been open for two years without comment, so I'm a bit afraid the author >>>> doesn't care*[1 <https://github.com/grimfang4/sdl-gpu/pull/45>]. To be >>>> fair, that Pr is incomplete, so maybe the author just doesn't want to do >>>> this work, or wants to wait a bit longer before things stabalise... who >>>> knows? Or just wants to support CMake only. Perhaps asking the main author >>>> questions about it would be a good idea :) >>>> >>>> I'd feel more confident knowing someone I trusted who had used it, or >>>> someone experimenting with it more and reporting back any potential >>>> problems we'd have. >>>> >>>> >>>> Note, however that there are several 'draw 2D things faster on OpenGL' >>>> even done in python which are 'pretty good'. Including one I wrote (but >>>> that mainly worked at the sprite level). Other groups (renpy, kivy) seem to >>>> decide on 'hey lets roll our own!' where SDL is lacking. I think it's >>>> better to contribute to a shared solution with the rest of the SDL >>>> community. >>>> >>>> But perhaps it's worth us considering using or helping out one of the >>>> dozen python options? For example, some people already use some of the >>>> pyglet OpenGL drawing code on pygame. >>>> >>>> >>>> The SDL2 option is to try and help get a batched API into SDL2 itself. >>>> Then other backends would also be optimized that aren't using OpenGL. >>>> Remember that OpenGL is theoretically deprecated now. Things like >>>> Vulkan, Metal, Direct3d, and such. >>>> And there has been some work on that, and discussion on that for some >>>> time. But not much movement there. >>>> >>>> Note: sdl-gpu could(theoretically) be used from inside a SDL1 pygame :) >>>> >>>> >>>> If someone has some time, I feel like patching in the 10-30 required >>>> alternative function calls and just giving it a go could be a great first >>>> step. >>>> Which would be a search replace job with SDL_RenderCopy() into >>>> GPU_Blit(). Full list on the github page *[2 >>>> <https://github.com/grimfang4/sdl-gpu#conversion>]. >>>> >>>> Then we can better figure out the pros and cons... to determine if it's >>>> worth us using. >>>> To get around the problems with it not being packaged for >>>> Debian/Ubuntu/Etc... we could just make it an optional compilation for now. >>>> Then compile it ourselves in our binary wheels for these platforms, >>>> plus contribute towards packaging on Debian/Homebrew. >>>> >>>> Maybe it's even possible for us to compile it in, and have some sort of >>>> setting to enable/disable it. Not sure if that's possible, but that would >>>> be best. >>>> >>>> >>>> >>>> Open questions for me: >>>> >>>> - Is there someone I know who can try it out, and report back? >>>> - Will this be stable in the future and packaged well? Is this even >>>> an aim? >>>> - Will other backends be supported other than OpenGL ones? >>>> - Can we include it without tightly coupling ourselves to OpenGL? >>>> Will OpenGL leak out? >>>> - Can we compile it in optionally, so that people can opt in? >>>> - What other options are there for nice 2d OpenGL renderers? >>>> (pyglet, renpy, ...) >>>> - Can we get a confirmation from Sam/Ryan on if batch SDL2 >>>> rendering would be accepted? >>>> - Who will actually do this work? Does this work have to be done >>>> before a pygame 2, or can it come later? >>>> >>>> >>>> >>>> >>>> * [0] OpenGL 1.1, 2.0, 3.0, 4.0 OpenGL ES 1.1, 2.0, 3.0 >>>> * [1] https://github.com/grimfang4/sdl-gpu/pull/45 >>>> * [2] https://github.com/grimfang4/sdl-gpu#conversion >>>> >>>> >>>