Merge branch 'MDL-87520-500-branch-number' of https://github.com/mudrd8mz/moodle into MOODLE_500_STABLE

This commit is contained in:
Huong Nguyen
2026-02-03 10:32:43 +07:00
2 changed files with 32 additions and 6 deletions
+15 -4
View File
@@ -297,15 +297,26 @@ class api {
* versioning and stable branches numbering scheme. The API at
* download.moodle.org uses the X.Y numbering scheme.
*
* @param int $branch moodle branch in the XY format (e.g. 29, 30, 31 etc)
* @return string moodle branch in the X.Y format (e.g. 2.9, 3.0, 3.1 etc)
* Branch integers are interpreted differently from Moodle 3.10 onwards.
* 299 = 29.9 (prior to 3.10).
* 399 = 3.99 (3.10 onwards).
*
* @param int $branch moodle branch in the XY format (e.g. 29, 30, 31, 311, 502 etc)
* @return string moodle branch in the X.Y format (e.g. 2.9, 3.0, 3.1, 3.11, 5.2 etc)
*/
protected function convert_branch_numbering_format($branch) {
$branch = (string)$branch;
$branch = (string) $branch;
if (strpos($branch, '.') === false) {
$branch = substr($branch, 0, -1).'.'.substr($branch, -1);
$intbranch = (int) $branch;
if ($intbranch >= 310) {
$major = floor($intbranch / 100);
$minor = $intbranch - 100 * $major;
$branch = (string) ($major . '.' . $minor);
} else {
$branch = substr($branch, 0, -1) . '.' . substr($branch, -1);
}
}
return $branch;
+17 -2
View File
@@ -45,11 +45,26 @@ final class update_api_test extends \advanced_testcase {
$client = \core\update\testable_api::client();
$this->assertSame('2.9', $client->convert_branch_numbering_format(29));
$this->assertSame('29.9', $client->convert_branch_numbering_format(299));
$this->assertSame('3.0', $client->convert_branch_numbering_format('30'));
$this->assertSame('3.1', $client->convert_branch_numbering_format(3.1));
$this->assertSame('3.1', $client->convert_branch_numbering_format(3.10));
$this->assertSame('3.1', $client->convert_branch_numbering_format('3.1'));
$this->assertSame('10.1', $client->convert_branch_numbering_format(101));
$this->assertSame('10.2', $client->convert_branch_numbering_format('102'));
$this->assertSame('3.10', $client->convert_branch_numbering_format(310));
$this->assertSame('3.10', $client->convert_branch_numbering_format('310'));
$this->assertSame('3.10', $client->convert_branch_numbering_format('3.10'));
$this->assertSame('3.11', $client->convert_branch_numbering_format(311));
$this->assertSame('3.99', $client->convert_branch_numbering_format(399));
$this->assertSame('4.0', $client->convert_branch_numbering_format(400));
$this->assertSame('4.1', $client->convert_branch_numbering_format(401));
$this->assertSame('5.2', $client->convert_branch_numbering_format(502));
$this->assertSame('5.2', $client->convert_branch_numbering_format('502'));
$this->assertSame('9.0', $client->convert_branch_numbering_format(900));
$this->assertSame('9.9', $client->convert_branch_numbering_format(909));
$this->assertSame('9.99', $client->convert_branch_numbering_format(999));
$this->assertSame('10.0', $client->convert_branch_numbering_format(1000));
$this->assertSame('10.1', $client->convert_branch_numbering_format(1001));
$this->assertSame('10.10', $client->convert_branch_numbering_format(1010));
}
/**