What I don't get is how the Linux kernel can be so far ahead when it comes to development practices and how long it takes for userspace projects and distros to pick up their habits. The kernel has been maintained in an always-releasable state for a decade now with regular releases every quarter, including stable releases of longer-term maintained versions. The kernel has a fixed ABI to userspace that is ruthlessly maintained. The kernel also has plenty of contributions from amateurs and hobbists who provide labor on their own terms that co-exist with a large number of professional paid developers. As far as "No Obligation" goes, if you want to have your code be a part of the "Linux" kernel then you have a mighty obligation to not break the build, not break the ABI, no break peoples systems and adhere to coding standards, or your code is not going to be accepted and Linus is not going to put his name on it. How is this different for maintaining standards for Debian or GNOME?