Note that this week was the week (after some tests the previous weeks) when MOODLE_310_STABLE had to come to life.
And it came, into
moodle.git, as a branch, but being 100% the same than master (4.0dev). We just created the branch because it's required to have it in order to have all the testing machinery (automated tests, CiBoT, different checkers...) working.
Then, this week (the week) a lot of changes have been performed in the tracker, within tools, to core (specifically look to MDL-69475 that, effectively, diverges clearly 310_STABLE (3.10dev) and master (4.0dev). Names, branches and versions!
And those changes are, right now @
integration.git and will be rolled to
moodle.git in hours.
So yes, since last Sunday until now (over 5 days)... the (interim) status of the 310_STABLE has been misleading (because it was showing 4.0 version and branch, when it was 310). But, as said, to get all the integration and testing infrastructure working... we needed the branch to exist. I think that explains the reason it was created in advance (and pointing still to 4.0).
Starting tomorrow (once we roll all the weekly changes) they effectively will be diverged with each branch showing their own version and branch codes, surely making things clear.
Finally, I can understand that assuming that MOODLE_310_STABLE is going to be (until it becomes released in November 2020) a dev (alpha) branch can be hard to get. The very same will happen with MOODLE_311_STABLE that also will be a dev (alpha) branch until released (May 2021). On release... they will become really stable branches (for production).
But it's the price to pay to support multiple development branches in parallel within Moodle (note that while all those developments and new features are being worked in those dev 310 and 311 branches... the master branch will be also being used to produce the 4.0 version (November 2011). In parallel.
Other alternatives were considered, like changing the branch naming schema in various ways being also proposed...but finally we decided to keep branch names unmodified, given it's clear for everybody that they are dev/alpha branches, not production/stable ones, despite their names.
- MOODLE_310_STABLE is a dev/alpha branch. Aiming to get Moodle 3.10 in November 2020. Then (and only then), it will become a stable branch (after passing over the usual beta, release candidate statuses).
- With 3.10 released, MOODLE 311_STABLE will be created. Also as a dev/alpha branch. Aiming to get Moodle 3.11 in May 2021. Then (and only then), it will become a stable branch (after passing over the usual beta, release candidate statuses),
And, in parallel (also development-wise):
- master is a dev/alpha branch. Aiming to get Moodle 4.0 in November 2021 (of course, it will include all the stuff added to 310 and 311 above over the next 12 months). And the MOODLE_400_STABLE branch will then be created (will be a really stable branch, after release its base version). And we'll be back to single-development-branches (only master) for Moodle 4.1 (401) to be released in May 2022.
So, basically, what has been done to support 2 parallel dev branches... is to branch earlier. Instead of waiting for the release X to create the MOODLE_X_STABLE, we have created that 310_STABLE branch in advance, before 3.10 is released.
For sure, "a small difference with big consequences": Some headaches for sure (all changes are disruptive up to a point) but, hopefully, enabling us to keep all the parallel work flowing as much naturally as possible (for developers) and globally, having everything under tight control.
Time will tell, it's the first time we run under parallel-development (long lived branches), sure we learn a lot about the experience!
PS: There is a Moodle Docs article that will show all the above (it's my fault that it's not available yet). At least I hope this post shows the exact status of all those branches and adds a little bit of light to the case of the "unstable stable branches".