We previously took a look at improved Docker compatibility and NVIDIA GPU Support coming to SingularityCE 3.9.0. The improvements we talked about in those posts are the headline features for 3.9.0, but we've been busy on a number of smaller changes and fixes too.
This week, let's take a look at some of the other improvements you'll benefit from when 3.9.0 is released on November 16th.
Writable tmpfs for build test sections - A SingularityCE definition file
can include a
%test section, which will be run during the build process.
Previously, it was a bit difficult to use as the test script always ran in a
read-only filesystem. You can now use the
--writable-tmpfs flag with
singularity build so that the
%test script is able to create files when
needed, inside a temporary filesystem that is cleaned up when the build
library:// pulls - A
singularity pull against a
library:// URI will now attempt to download the image using multiple streams,
each fetching parts of the image concurrently. This improves download speeds
from the Sylabs Cloud and on-premise Singularity
Support for http-only remotes - Community projects such as
sregistry support the
library:// protocol and can be configured with
singularity remote add. For
local testing we now support unenecrypted
http:// connections for remote
service discovery, via a new
--insecure flag for
singularity remote add.
Updated ORAS support - We updated the libraries we use for ORAS push/pull, and fixed some issues in the CLI code. This means SingularityCE can now push/pull successfully to a wider range of OCI registries, and won't get stuck trying.
Consistent external binary handling - In SingularityCE 3.9.0 the way in
which we find external binaries has been reviewed, and changed for consistency
and clarity. For each external program we call (such as
mksquashfs) we now
have a single method of finding it. Previously, the code sometimes switched
PATH searches and configuration file settings for the same binary,
which could result in confusing behavior. The improved handling of external
binaries is documented in our admin
We also list the complete sets of external dependencies for various distribution
Cgroups v2 Support - With more distributions adopting the v2 unified cgroups
hierarchy, we have added support for this to the SingularityCE
--cgroups flag. SingularityCE continues to its existing TOML
cgroups rules format, and will apply it to the new unified hierarchy.
Hopefully you'll agree that 3.9.0 is a pretty comprehensive release! Check out the changelog for more, and grab the latest release candidate to test out the new stuff. We'd be really grateful for any testing, comments, and bug reports as we get everything tidied up for the stable release in just over a week.