The CyanogenMod team has just announced the latest M4 snapshot for CyanogenMod 11. Those new to the custom ROM scene, particularly with CyanogenMod, might be a bit confused what all the different releases mean. CyanogenMod now answers that question, specially with regards to the recent M release.
In technical terms, M releases are snapshots of the state of a CyanogenMod branch, in this case CyanogenMod 11 with Android 4.4, frozen at a particular date. This means that starting from the date that an M release was branched, no new features are introduced to that M release, only bug fixes. In fact, features are sometimes even removed to provide stability. Of course, the rest of CyanogenMod moves on as normal, particularly the nightlies. This means that M releases will always be behind the nightlies in terms of code.
This fact has important but not so obvious implications for end users. Those how have set up their CM devices to follow the nightly path might think that M releases have a more “official” weight, but in fact they will practically be performing a downgrade when they switch from a more recent nightly to an M release. Sure, it might actually be an upgrade if their last nightly update is older than the date when the M release was frozen. And yes, there are times when such a downgrade executes flawlessly. But there are no assurances that it will always be the case, so the CM team recommends not mixing nightlies and M releases, at least not without a backup or doing a complete wipe.
M releases are practically a reference point for both developers and users. For users, they are semi-stable milestones that they can use if they don’t want to muck around with nightlies. For developers and maintainers, it becomes a way to enforce a release schedule, bug fixes, and avoid chaos. M releases are normally schedule for the first week of every month, so one could think of the M as meaning “monthly”.
CyanogenMod ends with a note that is almost an appeal for understanding. Unlike nightly builds, M releases undergo more stringent testing and processes. And there will always be times when certain devices cannot make the cut. So when a particular device doesn’t have an M release, it’s not because CyanogenMod has abandoned it. It’s more likely because the maintainer in charge of the device has deemed that the current state of the code isn’t stable enough for a release.