-
Notifications
You must be signed in to change notification settings - Fork 286
Remove E_STRICT usage for 7.5 #1479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 7.5
Are you sure you want to change the base?
Conversation
Related to phpspec#1477
|
@jakzal please trigger pipelines again |
|
IIRC Prophecy has tagged a version which should be compatible with PHP 8.4, so hopefully retriggering the build should allow to get a passing build. |
|
It needs a bit more, moreover declare compatibility in composer.json ref #1477 |
|
@andypost Well, that would be nice, but that can be overcome with a |
|
@andypost looking at the branches now, seems like the thinking is that branch 7.x would be kept for bug fixes; while main would be for phpspec 8, which will then support php >=8.4. Not really a major release reason... just seems that branches are set this way. This was loosely observed in conversation with @Jean85. But, I don't think either of us are locked to any direction. It would also make sense to have 7.7.0 supporting php 8.4. I am easy. What do you folks think? /cc @Jean85 @torchello |
|
I agree that adding support for 8.4 is not a reason for a new major. But the main branch also dropped support for 8.0 and below (which is not a reason for a major bump too) while also applying many types here and there, and those may require a major bump, due to subtle breaking changes. I'm not sure if there's an actual breaking change, we would need to inspect the diff to ascertain it. IIRC, the most notable change is that in some places a return type was added, and that would break extending classes (see https://3v4l.org/qMIjP). If that was done on a non internal, non final class, it would be a BC. |
|
I started scanning the diff, but there's A LOT to read. I stopped at the IO folder, and this is what I fnd that qualify as BC: TL;DR: I fear a major bump is needed; otherwise, we need to revert a lot of code... Constructors with (now) typed arguments
private ?string $bootstrapPath,
private bool $isVerbose
private mixed $subject,
private string $method,
private array $arguments,
private int $result = self::PASSED,
private ?Exception $exception = null
private object $subject,
private string $method,
private array $arguments,
private mixed $returnValue = null)
mixed $expected,
mixed $actual,
private object $subject,
private string $method)
private mixed $expected,
private mixed $actual
string $message = "",
int $code = 0,
?Exception $previous = null,
private int $result = 0)
private mixed $subject,
private string $interface
private object $subject,
private string $method,
private object $subject,
private string $property
private string $subject,Methods with a new return type, and the class is neither
|
|
Thanks @Jean85, Sounds like we should keep the main for 8.x and 7.x for bug fixes |
|
@MarcelloDuarte @stof Let's close this one? |
Related to #1477 and #1478