python-sfml icon indicating copy to clipboard operation
python-sfml copied to clipboard

Abandoned?

Open ElPresidentePoole opened this issue 6 years ago • 5 comments

The website is down, pip installs have been broken for years, and the project hasn't had any commits for a year. Is it safe to say this binding is dead?

ElPresidentePoole avatar Jul 06 '18 18:07 ElPresidentePoole

I guess it is safe to say so, yes.

TankOs avatar Aug 21 '18 06:08 TankOs

I've never been involved in the Python SFML bindings, but I was hoping to get my old entity-component-system game framework ported over to the latest Python SFML binding available. I can try my luck at manually building this project with Cython. I will focus on getting a working version of SFML 2.3.2 built. From there I can setup something that will push binaries into pypi. Then someone else can takeover and add support for the latest version of SFML. However, I think version 2.3.2 of SFML is probably fine.

If anybody else wants to take over this project, then I'd be happy to serve as a mentor/guide. In theory, once an automated system is in place and there's sufficient documentation, then anybody would be able to contribute with minimal effort. Pygame is a wonderful example how a group effort is possible.

Pygame's Github repository uses the Travis Github plugin to automate their builds and deployments. With Travis, we can trigger builds every time a new commit has been published to the master branch of the python-sfml repository. We can also define a file that specifies how the project is supposed to be built on each supported platform -- we can start out with a single platform and other people can add more platforms as they need them. Ideally, the repository's branches would also be configured so that only pull requests can be pushed to the master branch. This would prevent people from accidentally publishing broken builds to pypi.

jawaff avatar Oct 12 '18 07:10 jawaff

I am currently working on a SFML binding for Python using pybind11: https://github.com/martinRenou/pysfml11

The reason I am using pybind11 is because it makes it super simple to create bindings, without writing too much code. It is higher-level than the Python C API and makes it easier for Python users and beginners to come and contribute.

The API is not completely implemented yet, but I am slowly getting there. It is only possible to make a development installation for now, I did not create a pip package yet but I am planning on doing it.

Once the API is complete with SFML 2.5.1, it will be super easy to maintain pysfml11 at almost no cost, thanks to pybind11.

As @jawaff is saying, having continuous integration makes it easier to replicate a development installation, I chose to use Github Actions for that. See https://github.com/martinRenou/pysfml11/actions and https://github.com/martinRenou/pysfml11/blob/master/.github/workflows/main.yml.

The library is tested on Linux/MacOS/Windows, and I want to have as many tests as possible. See https://github.com/martinRenou/pysfml11/tree/master/tests.

If you are willing to contribute, please contact me or open an issue on the repo, I'd greatly appreciate it :smile:

martinRenou avatar May 02 '20 08:05 martinRenou

@martinRenou Hey, I don't know if you found it, but I actually did a good amount of work towards getting automated builds and Pypi publishing. I was able to get all of that working for Windows at a point (until Travis changed their Windows environment and broke my strategy). My biggest struggle was with a Linux Pypi package, because you need to create a manylinux wheel. I think SFML is dynamically linked against dependencies that are expected to be installed already, but a manylinux wheel requires all of the dependencies to be statically linked and included in the wheel (it has been a while.)

I put my work into some pull requests within a fork of the project: https://github.com/jawaff/python-sfml/pulls?q=is%3Apr+is%3Aclosed

jawaff avatar May 08 '20 00:05 jawaff

That's massive work! I'll definitely look at it. I heard it was painful to make a wheel.

martinRenou avatar May 10 '20 07:05 martinRenou