On Mon, Mar 20, 2017 at 2:27 PM, Thomas Kluyver <tak...@gmail.com> wrote:

> On 20 March 2017 at 12:25, René Dudfield <ren...@gmail.com> wrote:
>
>> The stronger evidence of tests passing, and no concrete theoretical
>> reasons presented on why it can't be compatible suggests to me that it can
>> be done.
>
>
> I don't know a lot about SDL, but the transition sounds like a big change.
> And my experience is that any big change inevitably makes things break.
> People will rely on undocumented, untested features, and things that aren't
> features at all but just happen to work. There are some old stories about
> the lengths Microsoft went to for backwards compatibility in Windows, which
> included checking when a certain popular game was started, and then
> emulating an old bug which that game happened to rely on. I don't think
> we're going to be doing that sort of thing.
>
>
I understand it's a risk. But from what I've seen, I don't think it's a big
one.

I also don't see the advantage of having one version of pygame that can be
> built with two different versions of SDL. When people install it, they're
> getting one or the other version of SDL, not both. If they install it with
> SDL 1, they don't benefit from the SDL 2 support. If they install it with
> SDL 2, there's just as much risk of incompatibility as if they had to
> install a different version or different package for pygame with SDL 2. And
> recompiling to switch between the two is harder than simply running 'pip
> install pygame<2'.
>
>
The big advantage is that it is a much smaller change than something new.

   - smaller changes reducing risk
   - the smaller amount of resources needed to get to SDL2
   - compatibility for those of us who care about what we've made
   - SDL1 using people can keep with that for the time being

End users will still `pip install pygame` and not care about how we decide
to develop the changes.


This (supporting both SDLs in the same pygame release) is a separate
> question from making pygame API compatible when it moves to SDL 2 by
> default. That's an easier case to make - though I think there's also a case
> for letting pygame 1.x go quietly into the sunset supporting games already
> built for it, and making pygame2 for new games with some API breakage.
>

I guess that is a lot more effort than what I'm suggesting, and provides
less benefit.

The proposal:

   - takes work that is mostly done already, and cleans it up
   - keeps everyones apps working
   - whilst the work happens, pygame 1.9.x and 1.9.10 are releasable.
   - provides a base for future improvements
   - gets extra platform support (SDL2 gives us easier mobile, etc)
   - keeps everything working whilst the changes are made
   - reduces future documentation, and packaging work of maintaining two
   code bases
   - is less work, and less risky than continuing on from pygame_sdl2 and
   filling in the missing bits.
   - has a transition plan for end users, which is do nothing differently.

Reply via email to