-
ModelGrid v2.0.3
Stablereleased this
2026-10-16 17:52:54 +00:00 | 0 commits to main since this releaseFixes
- a stopped installer script (the Docker convenience script at its time limit or output limit, or on Ctrl+C, SIGTERM or SIGHUP) counts as ended once none of its processes is running; processes that ended but were never reaped (zombies) no longer count. In a container without an init process nothing reaps the ended commands the script started, so the stop used to wait out the SIGTERM and SIGKILL grace periods and then fail with
Process group <id> is still running after SIGKILLalthough every process had ended. On Linux the state is read from/proc.
Maintenance
pnpm12.11.2 (tooling)
Downloads
- a stopped installer script (the Docker convenience script at its time limit or output limit, or on Ctrl+C, SIGTERM or SIGHUP) counts as ended once none of its processes is running; processes that ended but were never reaped (zombies) no longer count. In a container without an init process nothing reaps the ended commands the script started, so the stop used to wait out the SIGTERM and SIGKILL grace periods and then fail with
-
ModelGrid v2.0.2
Stablereleased this
2026-10-16 17:03:16 +00:00 | 3 commits to main since this releaseFixes
modelgrid updatereads the newest release throughcurl -fsSLwithout a shell and stops with a clear error when the releases API answers with an HTTP error or anything other than release JSON with atag_name; it used to parse an error page as the release and fail with a JSON syntax error. The releases API request and the installer download each end after 30 s with an error that names the time limit; before, a stalled connection hung the update.- the NVIDIA Container Toolkit setup downloads its signing key, apt source list and yum repository file with
curl -fsSLwithout a shell and checks them before writing: a failed download orgpg --dearmor, an empty file or an error page stops the setup with a clear error, and the keyring and source files are written whole (0644) or not at all. It used to pipecurlthroughgpg,sedandteewithout failing on a download error, so an error page or an empty keyring could land in/etc/apt/sources.list.d,/etc/yum.repos.dor/usr/share/keyrings. - Docker installation adds Docker's apt key and source list the same way (key checked by
gpg --dearmor, the source entry refused when the codename or thedpkgarchitecture is empty or not a plain name, files written whole or not at all) instead ofcurl … | gpg --dearmorandecho … >through the shell, and the convenience-script fallback downloadshttps://get.docker.comfirst, refuses an empty or failed download and runs it withshfrom a private temporary file that is removed afterwards, instead ofcurl https://get.docker.com | sh, which ran whatever arrived. The script runs in its own process group, so its 10-minute time limit also ends theapt-get,dpkgandcurlit started instead of leaving them running, and Ctrl+C, SIGTERM or SIGHUP to ModelGrid stops that group before ModelGrid ends. - Docker's apt repository uses the release codename from
/etc/os-release(UBUNTU_CODENAME, elseVERSION_CODENAME, as Docker documents) and stops with a clear error when it names none; it usedlsb_release -cs, which minimal Debian installations lack and which gives an Ubuntu derivative's own codename, unknown to Docker's repository. The codename is read before anything changes, and the source is written only after Docker'sReleasefile for that codename has been read and checked, before old Docker packages are removed; a release Docker does not publish stops with an error naming the repository and codename instead of writing adocker.listthat breaks every laterapt-get update. - the Intel graphics and oneAPI repositories and the AMD ROCm and AMDGPU repositories are added the same way: keys downloaded and checked by
gpg --dearmorinto/usr/share/keyrings, source entries bound to them withsigned-by=and checked before anything is written, list and yum repository files written whole or not at all. They used to pipewgetintogpg --dearmor,teeor the deprecatedapt-key addand write the sources withecho … >andcat <<EOF >through the shell, so a failed download could leave an empty keyring or no trusted key behind a written source list. - the Intel graphics repository is added for Ubuntu 22.04 (jammy) only, the one release whose suite Intel's graphics repository publishes; other releases stop with an error that names jammy and points to Intel's intel-graphics PPA guide for Ubuntu 24.04 and 26.04. It used to map every release other than 24.04 to jammy, and 24.04 to a
noblesuite the repository does not serve, which brokeapt-get update. - the ROCm and AMDGPU repositories use the Ubuntu release codename from
/etc/os-releaseas their suite, as AMD's install documentation does, and are added only after the repository'sReleasefile for that release has been read and checked; an unpublished release stops with an error naming the repository and release. The ROCm source used the suiteubuntu, which serves focal packages on every release, and the AMDGPU source mapped every release other than 22.04 to focal. A requested ROCm version must be a version such as6.0or6.1.3and is checked before anything changes; any other value, which used to go into the repository URLs unchecked, is refused. - the NVIDIA driver on Ubuntu installs the server driver Ubuntu's NVIDIA driver guide describes for servers and compute instead of
nvidia-driver-535from the graphics-drivers PPA, which is no longer added: the-serverseries thatubuntu-drivers list --gpgpu --recommendednames for the GPU, from Ubuntu's archive with Ubuntu's pre-built, signed kernel modules (linux-modules-nvidia-<series>-server-<kernel flavour>and the modules of the running kernel, installed before the driver metapackage), so Secure Boot works. A requested driver version (thedriverVersioninstall option, such as580or580-server-open) selects that series'-serverpackages. The installation stops before the driver is installed when ubuntu-drivers recommends no server driver, prints anything else, or apt has no candidate for one of the packages; it never runsubuntu-drivers install, which exits 0 when apt fails.curlandgnupgare installed before the CUDA and container toolkit downloads. - the NVIDIA driver on Debian installs Debian's packages as its NVIDIA driver guide describes: the release's packaged series (Debian 12: 535, Debian 13: 550) as
nvidia-kernel-dkmsandnvidia-driver, with the header metapackage of the running kernel's flavour (such aslinux-headers-amd64orlinux-headers-cloud-amd64) so DKMS builds for later kernels too. It checks first that apt offersnvidia-driverfrom Debian's series and stops with an error that names thecontrib,non-freeandnon-free-firmwarecomponents when it does not. A requested driver version Debian does not package, another Debian release, a backports kernel or an unknown kernel is refused with a named error before anything is changed. It used to request Ubuntu'snvidia-driver-535, which Debian does not have. Ubuntu driver versions are checked to be a version (such as550or550-server) before they reach apt. - the Intel driver on Fedora enables the
intel/oneapiCopr repository withdnf copr enablewithout a shell and reports its failure: xpu-smi is optional, so a failed Copr or xpu-smi step is a warning that names the failure. It used to rundnf copr enable -y intel/oneapi || trueand ignore a failed Copr step. - a driver installation with container support (NVIDIA, AMD, Intel) reports the installation as failed when the container support step fails; it used to ignore that step's result and report the installation as completed.
- the NVIDIA Container Toolkit apt source is NVIDIA's stable
deblist from its current install guide, for every Debian and Ubuntu release; it used the per-releaselibnvidia-container/<id><version>/lists, which do not exist for Debian 12 (404). - the CUDA repository keyring is chosen for the running release and architecture (Ubuntu 20.04, 22.04, 24.04, 26.04 and Debian 11, 12, 13; x86_64, and sbsa for arm64 except Debian 11) and an unsupported release stops with an error naming the supported ones before the driver or anything else is installed; it used to install the Ubuntu 22.04 x86_64 repository on every Debian and Ubuntu system. A requested CUDA toolkit version must be
<major>or<major>.<minor>(such as12.4, installed ascuda-toolkit-12-4) and is checked at the same point; any other value, which used to reachapt-getthrough the shell, is refused. - the CUDA repository keyring package is downloaded with
curl -fsSL, refused unless it is a Debian package, and installed withdpkg -iwithout a shell from a private temporary directory that is removed afterwards; it usedwget … -O /tmp/cuda-keyring.deb && dpkg -i /tmp/cuda-keyring.deb, a fixed path in/tmpthat root installed from. - the documented one-liner, the installer's
--helpexamples and the release notes usecurl -fsSL, so an HTTP error makes curl fail instead of piping the error page intobash;install.shand.gitea/workflows/release.ymlare regenerated with@git.zone/cli9.2.2, which also pins the release workflow's actions by commit and checks out without persisted credentials. - the NVIDIA driver on Debian refuses a backports kernel before anything changes, as Debian's NVIDIA driver guide requires the driver from backports with it: backports kernels carry the release's
+deb<N>in their name (trixie-backports, bookworm-backports 6.12), so they are now recognised by the Debian package version the kernel reports (~bpo). It used to treat them as release kernels and install the release's driver with the release's header package, which does not build the module for the running kernel. A kernel that names no Debian package version is refused as not a Debian kernel. - the NVIDIA driver on RHEL, Rocky Linux, AlmaLinux (8, 9, 10) and Fedora 44 installs as NVIDIA's driver installation guide describes for each: EPEL and its prerequisite repositories (RHEL: AppStream, BaseOS and CodeReady Builder with
subscription-manager, thenepel-release-latest-<major>; Rocky Linux and AlmaLinux: CRB, or PowerTools on 8, thenepel-release), the running kernel's development packages, NVIDIA's CUDA repository of the release and architecture (x86_64, andsbsafor aarch64), thenvidia-driver:open-dkmsmodule stream on 8 and 9, andnvidia-open; the CUDA toolkit iscuda-toolkit(or the requestedcuda-toolkit-<version>). Every step runs without a shell and stops the installation with an error naming it. The release and architecture are checked and the repository file downloaded and checked before anything changes, and the file is written whole to/etc/yum.repos.d. It used to add the x86_64rhel<major>repository on every system, Fedora included, unchecked throughdnf config-manager --add-repo(which dnf 5 on Fedora 41 and later no longer has), installdkmswithout EPEL and ask fornvidia-driver-latest-dkms, which NVIDIA's repositories no longer carry, so the installation always failed. CentOS and other releases are refused, naming the supported ones. modelgrid gpu installsets up container support once, as a step of the driver installation; it used to run the container support step a second time after a successful installation.- Docker installation removes only the conflicting packages that are installed (Docker's documented list for Ubuntu, Debian, RHEL, CentOS-family and Fedora systems, asked from
dpkg-queryorrpmwithout a shell) and stops with an error naming the packages when the query or the removal fails, for example on a held dpkg lock; it used to runapt-get remove … || trueordnf remove … || trueand ignore every failure. - Docker installation on dnf systems uses the repository Docker documents for the system (RHEL:
linux/rhel; CentOS, Rocky Linux and AlmaLinux:linux/centos; Fedora:linux/fedora), downloads and checks its repository file before anything changes and writes it whole to/etc/yum.repos.d, the same way under dnf 4 and dnf 5. It used to add the CentOS repository on RHEL and rundnf config-manager --add-repo, which dnf 5 (Fedora 41 and later) no longer has. - the AMD and Intel drivers add the sudo user to the groups the vendor documents for GPU access (AMD:
videoandrender; Intel:render) without a shell, stop with an error naming the user and groups when that fails, and log which groups users need when there is no sudo user; they used to runusermod … $SUDO_USER || trueand ignore every failure. Container support no longer runschmod 666on/dev/kfdand the render nodes: it made the GPUs writable for every local user until the next reboot, while containers reach the devices through--deviceand--group-add. - the readme's manual NVIDIA Container Toolkit, ROCm and oneAPI install steps save and check every download before installing it and run each step only after the previous one succeeded, instead of piping downloads into
gpgandtee; the ROCm steps no longer point at an installer package that no longer exists.
Maintenance
pnpm12.11.1 (tooling)
Downloads
-
ModelGrid v2.0.1
Stablereleased this
2026-10-15 12:51:13 +00:00 | 9 commits to main since this releaseFixes
- install and update work again without a code.foss.global sign-in: every release carries
install.shas a release asset, the documented one-liner iscurl -sSL https://code.foss.global/modelgrid.com/modelgrid/releases/download/latest/install.sh | sudo bash, andmodelgrid updatedownloads the installer of the release it installs instead of the sign-in-only raw file, and fails on a download error instead of running the error page (installer, cli)modelgrid updateon 2.0.0 still fetches the raw file and fails; update a 2.0.0 host once with the one-liner.
Maintenance
@git.zone/tsbundle3.7.0 (tooling)
Downloads
- install and update work again without a code.foss.global sign-in: every release carries