@@ -280,7 +280,7 @@ protected function repack(package $package, \titania_contribution $contrib, \tit
280280
281281 $ ext_name = $ data ['name ' ];
282282 $ data ['type ' ] = 'phpbb-extension ' ;
283- $ data = $ this ->update_phpbb_requirement ($ data );
283+ $ data = $ this ->update_phpbb_requirement ($ data, $ revision );
284284 $ data = $ this ->set_version_check ($ data , $ contrib );
285285
286286 $ data = json_encode (
@@ -352,9 +352,10 @@ protected function set_version_check(array $data, \titania_contribution $contrib
352352 * Updates phpBB requirements in composer.json
353353 *
354354 * @param array $data composer.json data
355+ * @param \titania_revision $revision
355356 * @return array Returns $data array with phpBB requirement updated
356357 */
357- protected function update_phpbb_requirement (array $ data )
358+ protected function update_phpbb_requirement (array $ data, \ titania_revision $ revision )
358359 {
359360 if (!isset ($ data ['require ' ]['phpbb/phpbb ' ]))
360361 {
@@ -374,7 +375,7 @@ protected function update_phpbb_requirement(array $data)
374375 if (!isset ($ data ['require ' ]['composer/installers ' ]))
375376 {
376377 $ installers_version = '~1.0 ' ;
377- if (isset ($ data ['require ' ]['phpbb/phpbb ' ]) && $ this ->requires_phpbb_4_or_higher ($ data ['require ' ]['phpbb/phpbb ' ]))
378+ if ($ this -> is_phpbb_4_branch ( $ revision ) || ( isset ($ data ['require ' ]['phpbb/phpbb ' ]) && $ this ->requires_phpbb_4 ($ data ['require ' ]['phpbb/phpbb ' ]) ))
378379 {
379380 $ installers_version = '^1.0 || ^2.0 ' ;
380381 }
@@ -401,7 +402,7 @@ protected function is_stable_version($version)
401402 * @param string $constraint Version constraint
402403 * @return bool True if constraint requires phpBB 4.0.0+
403404 */
404- protected function requires_phpbb_4_or_higher ($ constraint )
405+ protected function requires_phpbb_4 ($ constraint )
405406 {
406407 try
407408 {
@@ -418,6 +419,17 @@ protected function requires_phpbb_4_or_higher($constraint)
418419 }
419420 }
420421
422+ /**
423+ * Check if revision is submitted to phpBB 4.0+ branch
424+ *
425+ * @param \titania_revision $revision
426+ * @return bool True if submitted to phpBB 4.0+ branch
427+ */
428+ protected function is_phpbb_4_branch (\titania_revision $ revision )
429+ {
430+ return max (array_column ($ revision ->phpbb_versions , 'phpbb_version_branch ' )) >= 40 ;
431+ }
432+
421433 /**
422434 * Get prevalidator
423435 *
0 commit comments