mgrojo / ASFML

Ada binding to the SFML library
Other
33 stars 4 forks source link

Update to CSFML 2.5.2 #21

Closed mgrojo closed 11 months ago

mgrojo commented 1 year ago

CSFML version 2.5.2 has been published with a few API additions that should be included in ASFML.

mgrojo commented 1 year ago

https://github.com/SFML/CSFML/compare/2.5.1...2.5.2

mgrojo commented 1 year ago

This update is ready in https://github.com/mgrojo/ASFML/tree/csfml-2.5.2, but for the moment, I'm not merging it to main, nor releasing it in Alire, since not many distributions have this CSFML version. I encourage anyone reading this and wanting to test this branch together with CSFML 2.5.2 to do it. I'd welcome your bug reports.

Another matter is how to release this in Alire setting a correct dependency to CSFML 2.5.2. In this case, the third number changes the API (as it sometimes happens too with ASFML), but Ubuntu, for example, releases CSFML 2.5.1 as 2.5-1.1. Will it be released as 2.5.2-x or as 2.5-2.x? How can this be managed in Alire if different distributions choose different versioning?

ghost commented 1 year ago

Hello,

There is work currently on packaging CSFML, and ASFML for FreeBSD. The CSFML Port is complete, tho awaiting reviewer(s), and subsequent review, and finally, committing to the Ports tree. I already have a 2.5.3 Port of ASFML prepared locally. If I understand you correctly, you would like testing of a branched ASFML with CSFML-2.5.2? I am more than happy to have that reflected in the FreeBSD Port, tho I do not know how much exposure that will create for the update.

Alire is also not yet in the FreeBSD Ports tree, but should be committed in some days. This initial commit does not integrate Alire into the FreeBSD Ports framework yet—that will come later—so Alire use on FreeBSD is minimal, and all Ada Ports are installed without Alire for the moment.

Anyways, thanks for the awesome work ASFML.

ghost commented 1 year ago

Thinking about this further, it may not be a good idea to commit ASFML to the FreeBSD Ports tree that is pulling from a development branch, and I think this may be discouraged in FreeBSD'istan. Will 2.5.4 work with CSFML-2.5.2? It looks like I had ASFML-2.5.3 with CSFML-2.5.2 building and running the examples fine some months ago.

mgrojo commented 1 year ago

Hi. Nice to see someone working on adding ASFML to an open-source distribution. Mixing ASFML-2.5.3 or 2.5.4 with CSFML-2.5.2 is not ideal, because there are API changes in the CSFML-2.5.1 to 2.5.2 transition. They seem to not follow the convention of using the third number only for compatible fixes, so my versioning now will also lose that property. Nevertheless, if you don't mind about orthodoxy, that combination will probably work if you only call from your application those functions which hasn't changed.

I've tested this branch locally, and it is working as fine as the main branch. The question is that I didn't know of any distribution that included CSFML-2.5.2, so I could not think in building this in some CI environment. If you could test this branch against CSFML 2.5.2 successfully, I suppose we can think in merging this branch and making the 2.5.5 release for ASFML, compatible with CSFML 2.5.2.

ghost commented 1 year ago

Whelp you convinced me. I will use 2.5.2 across both projects, thanks for helping me untangle that.

mgrojo commented 1 year ago

Sorry, I think I've explained it to you in an ambiguous form. When I wrote "Mixing ASFML-2.5.3 or 2.5.4 with CSFML-2.5.2 is not ideal", I should have written "Mixing ASFML-2.5.[0-4] with CSFML-2.5.2 is not ideal". The first version to support CSFML-2.5.2 will be ASFML-2.5.5. I know that it is confusing, but I didn't expect that they would do incompatible changes to the API inside the same major.minor release, but it seems this is only true for SFML (C++ original). For earlier versions of CSFML, any x.y version matches the API of any of the x.y versions. But after CSFML-2.5.2, you have to use ASFML-2.5.5. I will try to put a compatibility matrix in the README.md.

This ASFML-2.5.5 version is not yet in main branch, but I'm going to merge it today, and then I'll make an Alire release, depending on what they recommend me here: https://github.com/alire-project/alire/discussions/1472

mgrojo commented 1 year ago

The new release has been published on GitHub: #22

ghost commented 1 year ago

Gosh, what an unfortunate situation, thanks again for taking the time to explain that. ASFML-2.5.5 has been submitted for review in the FreeBSD Ports tree.

Thanks.

mgrojo commented 1 year ago

Great! Thanks for your integration work.

mgrojo commented 11 months ago

Closing this, as ASFML 2.5.5 is already released on GitHub and Alire, and included in FreeBSD.