For now it’s working, but most likely in a new release, as per the message, modules will be deprecated. Currently there isn’t an equivalent, at least unless Red Hat decide to replace it with something else. But it could well be that they decided, that they will phase out modules and they will no longer be an option in the future.
I don’t expect they will change the version of dnf during the EL10 release, but expect when RHEL11 is released with a newer version of dnf that the modules would disappear at that point.
The replacement will most likely be mutliple, but versioned packages, so the dnf module enable command goes away and you will type something like dnf install php85,
but as said for Enterprise Linux this is a more far future thing, this won’t affect 8/9/10, most likely never, 11 won’t have the abililty anymore so starting with this one it’s the different way “again”.
Sorry about that, it’s my own opinion, the whole Fedora project decided the Modularity stuff was more harm than a benefit ^^ (especially the building side was so much more work)
I really liked it because it made version upgrades really easy, but overall it should just be a change in behavior nothing more, can be seen neutral or as improvement
To be fair, some applications have had that all along. E.g. python3, python3.11, python3.12, …
The modularity tried to implement there can be only one with many to choose from. That is, that admin can choose version of PHP for the system and then user can use (only that version) with command php. No need for user to know about version (in pathnames).
As pointed out, separate repo for each version does also provide the “can install only one, with unversioned commands”.
There are also the alternatives and Software Collections / environment modules to provide “unversioned” command for user, although they allow simultaneous installs (of namespaced packages).
Someone somewhere has to make some decisions:
Maintainer: what repos to create / how to build / what to put in them / how to name them
Admin: which repos to use / which module or package to use / select alternative
User: which command to use
EL 10 has .NET 8 and .NET 9 as Application Streams. They can be installed simultaneously, because there is no module metadata to hide them in the repo and because they are namespaced.
Choosing dnf install dotnet-sdk-8.0 and/or dnf install dotnet-sdk-9.0 is kind of known (for more than a decade).