I took more time on this issue and I've added a second sheet to the previous document:
https://docs.google.com/spreadsheets/d/1QY7AUVQbWnVCbOZqJX11tbz2gKr-pU0CeZezcyJsEPA The second page stems from my proposal, and it shows the scenario for a package that extends Monolog, so it has to be compatible with both psr/log and Monolog to work. As shown in the table, if the package adds only argument types, it will be broken in any upstream version combination that is working on itself, and that's bad. But if it adds the return type first, following Monolog's example, all is fine; the only downside is that adding argument types too would break compat with Monolog v2, regardless of psr/log version. So, to summarize, the upgrade path of this downstream package would be: Version N: psr/log: ^1.0 monolog/monolog: ^1.0 Version N+1: adds return type like Monolog v2, will use v2 only if PHP >= 7.2 psr/log: ^1.0|^2.0 monolog/monolog: ^1.0|^2.0 Version N+2: add argument types too: psr/log: ^2.0|^3.0 monolog/monolog: ^3.0 This IMHO would make releasing version N+2 very unlikely in the short term, due to not having cross compatibility with 2 major versions of Monolog at the same time. -- You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/3f1a68ef-b5ed-4005-8b0d-667dbbc8a73a%40googlegroups.com.