daniel-lerch / openkool

Open source fork of kOOL - Online church organization tool
GNU General Public License v2.0
3 stars 3 forks source link

PHP 8.0 support #25

Open daniel-lerch opened 1 year ago

daniel-lerch commented 1 year ago

With PHP 7.4 having reached its end of life on 28 November 2022, OpenKool does not receive security fixes to its underlying Docker images anymore.

Lifting OpenKool at least to PHP 8.0 would require a huge effort. Libraries don't seem to be such a big deal this time. However, kOOL calls sizeof() and other functions with NULL values countless times. Therefore, many null checks have to be introduced.

I have started working on PHP 8.0 support on the php8.0 branch but won't complete this effort. Feel free to fork OpenKool and continue if you are interested in up-to-date dependencies and Docker images.

GutDing commented 1 year ago

Hi Daniel, How are your code customizations and Renzo Lauper's customizations actually merged? I'm asking because unfortunately you can't see any progress here. Or will Renzo release his "Version R50, Copyright © 2003-2023 Renzo Lauper"? We're on version R48 here at Github. When is R50 coming? Best regards Christian

daniel-lerch commented 1 year ago

@GutDing

I asked Renzo Lauper a few times for a release date of kOOL R50 on churchtool.org. Unfortunately, he only told me to wait because these versions will be released at a later time.

At first I assumed that Renzo Lauper would never release an open source version after kOOL R45 again and started a major code cleanup, renamed files and installed libraries via Composer. When Renzo Lauper released R46, R47 and R48 in 2020 out of the blue it caught me off guard. I had to throw away almost all of my work and was only able to merge some Docker related changes into the R46 branch and future versions.

After that experience, I tried to keep changes as small as possible and local in one place. I fixed some bugs from the upstream version, added Docker support and rewrote parts of mailing.php but that's it. These very few changes can easily be merged using a three way merge editor like in Visual Studio Code.

Now that Renzo Lauper might take a long time to release R49 and R50, it might be worth considering to fix issues for PHP 8.0 but keep the existing master branch as a backup. For a future upstream release we could then easily throw away all custom changes for PHP 8.0 and keep those developed by Renzo Lauper.

However, as I said, I won't continue working on PHP 8.0 support for OpenKool (unless someone wants to pay for it). In my church we have just migrated to ChurchTools and I am working on Korga to support features like mailing lists like in kOOL also for ChurchTools.