May the Fourth, and M6 builds are Community Distribution channel. The changelog is further down this page, but first, let’s have a chat.
Where is stable CM11?
“What’s in a name? That which we call a rose, by any other name would smell as sweet” – Romeo & Juliet
As part of my daily CM routine, I am constantly looking around for the general opinion pieces of what and how we are doing, not because of vanity, but because its the most direct way for me to figure out what topics I should discuss in future posts.
With the release of M6 (and even earlier in the CM11 cycle) I began to see this sentiment of “why haven’t they hit [a build labelled] stable yet?” followed immediately after by “why are [CM] so slow now?”. I had hoped that much of this discussion was curtailed by the M4 Post-Release entry, but that doesn’t seem to be the case. So, attempt #2:
Don’t expect a build labelled ‘stable’. The ‘M’ builds have supplanted our need for such a release. This also means you will not being seeing ‘RC’ builds.
To answer why, you have to understand just what it was the ‘stable’ builds afforded us. Beyond just being a trusted label to assuage the more risk-adverse users, it was our marker for accepting reports to our bug tracker. This had a few pain points, but most notably, it meant months of code would be introduced with no particular predictability, which led to gaps between identifying issues from your reports, fixing them and then releasing them in the next stable. With a ‘stable’ and ‘nightly’ only structure, you either waited months for a fix, or updated to a nightly – and with the risk of items such as the ‘master key’ and ‘Heartbleed’ vulnerabilities, this became an unacceptable risk we were posing to you all.
The ‘M’s have now become the fix for that particular issue; you can now reliably know that your next batch of fixes will arrive 4 weeks after the last (and if you are using a nightly, you are not stripped of your ability to update whenever you want). This also allows helps us collect JIRA tickets more frequently and track progression or regression of features in smaller windows.
Like the ‘stables’ before it, ‘M’ releases are built off the ‘stable/CM-##.#’ branches – the only difference is now frequency and label. We could have chosen to remove ‘M’ releases and stick with the ‘stable’ tag instead for these monthlies, but the word ‘stable’ itself is a misnomer – it doesn’t mean bug free and it certainly never meant feature complete; but with the name ‘stable’ it gave the false impression that it did mean those things – especially to those risk-adverse that would only hop from ‘stable’ to ‘stable’.
We can go faster
Our goal is to get a release out every 2 weeks with the same quality and expectations you would have of a ‘stable’ release (label for that yet undecided). But with that goal, it further underscores how the label ‘stable’ no longer works for us. With the current M cycle, we have gotten our routine down to every 4 weeks; to get it to 2 weeks is ambitious, but we can do it, and it would benefit everyone. At a 2 week cycle, you are not subjected to the rollercoaster that is nightlies. At a 2 week cycle we can collect and act on JIRA reports with more immediacy. At a 2 week cycle new devices or those that miss a release due to being withheld can enter the release cycle again at the next build (assuming issues are resolved). And of course, with this being CM, you can choose to take or ignore an update as you’d like.
This has a lot of dependencies of course. We need to make sure even more issues are discovered and fleshed out at the code review stage, that our maintainers and contributors are more present on the CM forums and JIRA, and that users feel that their voices are contributing something. It will take some time, but I, personally, would like to see us at this stage across the board by the end of this year.
Quiet Hours – Fix longpress QS tile option
Voice+ – Integrate into settings (under Wireless and Networks > ‘More’)
Blacklist – Add provider permissions
Lockscreen – Fix custom wallpaper crashes and album art issues
Display – Consolidate screen-off animation options (remove checkbox)
Bluetooth – Upstream updates and fix issues with audio routing to select car makes/models and disconnect issues
MultiSim – Additional support patches (15+) and UI/UX modifications
Lockscreen – Disable elements when in custom lockscreen
Quick Settings – Options to show smaller tiles; add BT device name to tile
Quick Settings – Fix QS tiles layout in landscape mode
Usage Stats – Fix screen on stats after boot
Resolve memory leaks in Frameworks
Settings – Show ‘eject card’ action for USB storage
Theme Engine – Introduce new Engine capabilities (chooser to arrive in nightlies this week)
Parallel Shutdown – Decrease shutdown time
Address security vulnerability for icons
Downloads – Add pause/resume support
Trebuchet – Hidden apps and labels support
Remove parallel boot dexopt from stable/cm-11.0 branch
And more (all changes from Mar 29th to April 30th)
M6 builds are actively generating at the time of this post, and yes, D2lte and Jflte are included in this round.