This is a build step that happens before containers.
Modularity provides parallel availability of multiple versions that can be consumed by containers to enable parallel installation.
Modularity is about building multiple versions of packages, and making them available to users.
SCLs are about installing software in parallel using RPM.
These two don’t overlap, they complement each other. You can build an SCL using Modularity.
Technical: DNF performance with many repositories. We envision having tens or even hundreds of modules available to a single system.
User experience: A repository is a source of software provided by a vendor, not necessarily representing a single application, language stack, or any other logical unit of software. A repository typically contains multiple applications, stacks, etc. We do not want to change this concept.
We are developing the technology such as the build pipeline and client tooling to enable contributors to build multiple versions.
We envision longer lifecycles of stacks mainly for server, and devel/rolling releases of some stacks for developers.
Using an older version that is no longer maintain can be dangerous, mostly because of the lack of security updates.
Modules, on the other hand, represent a major version that is still being actively maintained by the upstream and therefore should receive updates.