PascalGameDevelopment / SDL2-for-Pascal

Unit files for building Free Pascal and Delphi applications using the SDL2 library
https://pascalgamedevelopment.github.io/SDL2-for-Pascal/
Mozilla Public License 2.0
103 stars 20 forks source link

How to react to (soon to come) release of SDL3? #117

Open Free-Pascal-meets-SDL-Website opened 1 year ago

Free-Pascal-meets-SDL-Website commented 1 year ago

Hi there,

I wonder what would be the best option to react if SDL3 is released. Their main branch is already dedicated to SDL3.

Unfortunately our repo has the version 2 ingrained in the name, so we have the following options

  1. rename the repo
  2. start a new repo "SDL3-for-Pascal" based on SDL2-for-Pascal (no fork)
  3. branching SDL3 off within the SDL2-for-Pascal repo

I prefer the second option so far, as this allows for further development of SDL2-for-Pascal and keeps all links to this repo intact and it prevents confusion. Option 1 would break links to this repo. Option 3 is confusing if the repo is not renamed to SDL3-for-Pascal.

I would suggest to base SDL3 at least on our next release as soon as the last few include files are updated.

Best regards

@suve @AthenaOfDelphi

suve commented 1 year ago

I prefer option 2 by a wide margin. Option 1 and 3 are pretty much the same - one way or the other, we'd have a single repository and keep SDL2 and SDL3 on separate branches.

While having two different repos will likely result in some duplication of effort - there will, quite likely, be many parts of SDL2 and SDL3 that'll have an identical API - from a user point of view, it will be easier to discover and use.

flowCRANE commented 1 year ago

Given that SDL2 and SDL3 are and will be developed separately, in order not to force SDL users to migrate and to ensure continued support for the previous version, the only sensible solution is to create a separate headers repo — SDL3-for-Pascal.

I would suggest to base SDL3 at least on our next release as soon as the last few include files are updated.

It would be good to finally start making official releases and publish them in the Releases section so that users can conveniently check and download new versions of the headers. Publish the release after matching the headers to a specific SDL version (according to the tags).

Free-Pascal-meets-SDL-Website commented 1 year ago

the only sensible solution is to create a separate headers repo — SDL3-for-Pascal.

I fully agree.

It would be good to finally start making official releases and publish them in the Releases section so that users can conveniently check and download new versions of the headers. Publish the release after matching the headers to a specific SDL version (according to the tags).

Yes, I agree, but that is actually what we are doing, or try to achieve. Unfortunately, it turned out that even the minimal main goal (= being up to date with at least SDL2 version 2.0.14) for the first official unit release (after the compatibility release) could not be fully reached since we started this. The process of updating takes undesirably long, but we are only a "core team" of two (@suve and me) working on this more or less actively - and in the spare time. Please do not hesitate to play a more active role and contribute regularly to this project, if you like,

The long update time of the units is also the reason why we started to add the version tag of the translated headers next to the corresponding include file in SDL2.pas. It is not possible to match all headers to a specific SDL2 version within a reasonable time frame (with a team of two). From this follows also the decision to mark functions/constants/... which got removed from SDL2 as deprecated instead of also removing them from the include files.

Best regards Matthias

AthenaOfDelphi commented 1 year ago

I've created a team for maintainer, created a new repo and given the team maintainer access to the new repo... let me know if it needs any tweaking :)

Free-Pascal-meets-SDL-Website commented 1 year ago

I've created a team for maintainer, created a new repo and given the team maintainer access to the new repo... let me know if it needs any tweaking :)

Excellent, thank you!