- Support for unprivileged cgroups v2 resource limits and systemd cgroups management. Allows non-root users on modern Linux distributions to apply resource limits to containers with SingularityCE directly, rather than needing to rely on a job scheduler/resource manager to do so.
- New command-line flags to set resource limits. Users can now easily apply CPU, memory, IO, and other limits on their containers from the command line, with flags compatible with the Docker CLI. No cgroups configuration files are required.
- A new `–no-eval` flag makes SingularityCE treat environment variables and command line arguments the same way as Docker and other OCI runtimes, improving compatibility. This feature has been added to the `–compat` mode which provides a simple way to enable various Docker/OCI compatibility options with a single flag.
- Experimental unprivileged SIF mounts with squashfuse. Run native SIF container images within an unprivileged user namespace, and without having to extract them to disk.
- The `singularity oci` commands now use `runc` to execute containers in the OCI lifecycle. This is the first step in progressively introducing greater OCI compatibility to SingularityCE under our roadmap to 4.0.
- Support for remote builds that contain a ‘%files’ section in the definition.
“These new features are big steps toward better compatibility with the OCI world, which will give Singularity greater utility across the entire spectrum of workloads,” said Dave Trudgian, Software Engineer at Sylabs and the lead developer within the Singularity ecosystem. “The release also introduces the ability for all users to apply RAM, CPU, and other resource limits directly to individual containers. This is very useful when developing and testing scientific software on your laptop or desktop. Benchmarking tasks becomes easier, and you can avoid your workstation grinding to a halt. It also allows balancing the needs of multiple containers within a single HPC job, optimizing for overall productivity.”