-
ModelGrid v2.0.0
released this
2026-10-15 07:51:29 +00:00 | 12 commits to main since this releaseBreaking Changes
- ship ModelGrid as Node.js 26.11.1 single executables instead of Deno binaries (runtime)
- The executable names stay the same:
modelgrid-linux-x64,-linux-arm64,-macos-x64,-macos-arm64and-windows-x64.exe. - Linux hosts need glibc 2.28 or later plus
libstdc++6andlibatomic1; withoutlibatomic.so.1the executable does not start. Alpine/musl is not supported. - The Windows executable is built but not run in tests.
- The Deno source run (
mod.ts,deno.jsontasks) is gone; run from source withpnpm run dev. - The executables trust the operating system's CA store in addition to Node's bundled CAs.
- The executable names stay the same:
- remove the npm launcher package; ModelGrid is distributed only through Gitea releases and
install.sh(distribution)- The npm wrapper (
bin/modelgrid-wrapper.js) and its postinstall downloader were never published and are deleted; the package is private.
- The npm wrapper (
- install and update ModelGrid with the gitzone-managed installer (installer)
install.shverifies the downloaded executable and its third-party notices against the release'sSHA256SUMS.txtand runs the executable with--versionbefore it touches the installation; a mismatch, a missing entry or missing checksums are refused. It needssha256sumorshasumbesidescurl.- An update moves the previous installation aside instead of deleting
/opt/modelgridfirst, restarts a runningmodelgridservice with the new version, and restores the previous installation and service when any step fails. Every failure exits non-zero with the failed step. - The installation directory holds the executable, its notices (
<name>.third-party-notices.txtand.json) anduninstall.sh. The command link is always/usr/local/bin/modelgrid; the old installer used/usr/binwhen/usr/local/binwas not onPATH. --versiontakes a SemVer 2.0 version with an optionalv(orlatest), and the release tag the Gitea API names must have that form. Downloads use HTTPS only, also on redirects, with connect, idle and transfer time limits. The new--dry-runchecks, without root and without changing the system, that the release carries every file the installation needs.- The installer installs only releases that carry the third-party notice files, which starts with 2.0.0:
install.sh --versionnaming 1.1.0 or an earlier release fails before it changes the installation.
- release with the gitzone-managed release workflow (release)
- A
v*tag builds the five executables with Node.js tooling only, after checking that thepackage.jsonversion equals the tag. - The release carries exactly the executables, their third-party notices,
uninstall.shandSHA256SUMS.txt; its description is the version's changelog section. - A published asset is never replaced: a release that already has an asset of the same name fails before anything uploads; the old workflow deleted and recreated the release. Releases older than the newest three are still deleted.
- A
- remove the
ui.assetSourcesetting and theUI_ASSET_SOURCEoverride (ui)- The executable serves the console from its embedded
uiasset tree; runs from source servets_web/from disk. An existingui.assetSourcekey is ignored with a warning. - A missing embedded UI is an error instead of a silent switch to disk.
- The executable serves the console from its embedded
Fixes
- report the release version everywhere:
--version,update, the API health response and the systemd status read it from the release metadata instead of a stale constant (cli) modelgrid uninstallworks on installed hosts:install.shnow installsuninstall.shnext to the executable, the CLI runs it from the executable's directory instead of two directories aboveargv[1], and the script removes the systemd unit, the command link and the installation directory it lives in instead of a fixed/opt/modelgrid; it refuses a directory without themodelgridexecutable (cli, installer)- the API and UI servers report the port they actually listen on (api, ui)
Maintenance
- build with tsbuild, test with tstest, bundle with tsbundle and package with tssea; CI runs pnpm build and tests on Node.js (tooling)
- generate
install.sh, the release workflow andscripts/gitzone-binary-release.mjsfrom@git.zone/cli9.1.0binaryClimanaged assets and drop the unused.gitea/release-template.md(tooling) @git.zone/tsbundle3.6.1 (tooling)
Downloads
- ship ModelGrid as Node.js 26.11.1 single executables instead of Deno binaries (runtime)