As you likely know, CentOS Stream is a new concept that allows the community to see what future RHEL brings. Let me touch on a few specific things that you can test in CentOS Stream 8 and 9 for some time already, and couldn't see in a released RHEL until recently.
Module streams concept is used in CentOS Stream 8 and 9 (and thus also in the future RHEL-8.x and RHEL-9.x versions) for delivering alternative versions of popular stacks for developers (except other components). You can for example try the latest Node.js version 18, Ruby 3.1, or Maven 3.8. How? Let's see an example with a CentOS Stream 9 container image:
First, pull the CentOS Stream 9 image using podman and run it:
#> podman pull centos:stream9
#> podman run -ti --rm centos:stream9
Then, use dnf to list available modules
[root@ad0a3f9d2aa3 /]# dnf module list
Here you see a couple of modular streams that are not enabled by default but are available in the repository in parallel to the default version (which is 3.0 in the case of Ruby and CentOS Stream 9).
Now, the most important part, enable the latest available version of Ruby and install some packages:
[root@ad0a3f9d2aa3 /]# dnf -y module enable ruby:3.1
[root@ad0a3f9d2aa3 /]# dnf -y install ruby
And finally, check what version we actually have:
[root@ad0a3f9d2aa3 /]# ruby --version
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
And you can follow a similar pattern for other module streams, that are on their way to the next RHEL minor release. This way, CentOS Stream and RHEL users can test the new content earlier than before and provide feedback in the BZ [2].
[1]
https://www.centos.org/centos-stream/[2]
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%209Enjoy!
Honza