FriendsOfSymfony1 / symfony1

[DEPRECATED -- Use Symfony instead] Fork of symfony 1.4 with DIC, form enhancements, latest Swiftmailer, better performance, composer compatible and PHP 8 support
https://symfony.com/legacy
MIT License
338 stars 176 forks source link

[ci] introduce `mode: experimental` flag #335

Open connorhu opened 6 months ago

connorhu commented 6 months ago

@thePanz This was the best solution I found. If mode: experimental is enabled, the exit status is printed but exits the shell with a zero.

This changes is because of php8.4 testing. We can now mark php version as experimental.

connorhu commented 6 months ago

If this works, we can roll out the solution to other repos and start testing it with php 8.4.

mentalstring commented 6 months ago

IMHO, I'm not sure this hack is worth the time and added complexity, given that a) php8.4 is at least 8 months away from .0 release (why test something that may still change?) and b) our tests are already passing with php8.4 anyway. We could just let https://github.com/FriendsOfSymfony1/symfony1/pull/334 test php8.4 (or wait until rc1 before merging it), and iff it starts failing, at that point either fix our code to make it pass, or temporarily stop testing php8.4 until we have a fix.

connorhu commented 6 months ago

I think in our case (seeing our reaction time) it is very important to foresee what the new version will bring (and run tests with that version). I'm not sure if it's worth it to make it switchable either, but in the end it's not a big change (I'd rather test it with phpunit).

alquerci commented 6 months ago

Like a feature flag

The overall test suite should pass when the feature flag is enabled or disabled.

Regarding this principle, a failed test should always fail the job.

But how to progressively make symfony1 compatible with next PHP version?

Test case after test case.

  1. Starts with one test file, passes on next PHP version.
  2. Ends with the overall test suite, passes on next PHP version.

With this plan, each contributor can provide a small PR with one test file executed on the next PHP version.