Fedora 26 introduced the concept of modularity to Fedora. To paraphrase Fedora’s own description, the modularity project is an attempt to separate the life cycles of the applications in a distribution from both each other and the distribution itself. Users need to be able to upgrade to the most recent version of both an application stack, but also retain earlier versions of individual pieces of that stack for backward compatibility (such as Python 3.x versus Python 2.x).
Previous versions of Fedora had each software component—this database, that language runtime—as a discrete package. Modularity groups those packages into modules—this database with this core database application and that library—and lets each module be installed and run separately. Modules also have their own versioning and life cycles, so users can deploy both cutting-edge and more conservative editions of app stacks side by side. It takes some manual work to convert packages into modules, but one of the goals of Fedora going forward will be to automate as much of the process as possible.
Submitted by: Arnfried Walbrecht