Documentation and tooling only: no exported API, behaviour or dependency changed since
v1.2.13 — the Go source of this release is identical. Take it if you want the Docker workflow; for
code, v1.2.13 already has everything.
Status
Gosl is mature and in maintenance mode. It is stable and is used in published work, but new
development has moved to Russell, its successor — if you are
starting a new project, look there first. Reports about Gosl's existing functionality are welcome;
new features are unlikely.
What changed
- A Docker build-and-test toolchain, with no Go toolchain on the host.
docker/Dockerfilepins
Ubuntu 24.04 and Go 1.27.1 (GOTOOLCHAIN=local) and installs exactly the libraries the cgo files
link against, recording them in/etc/gosl-libs.txtinside the image../goslwrapsdocker run
(all build test race vet fmt cover bench shell go), runs as your own user so nothing it produces
is root-owned, caches into the gitignored.docker-cache/, and needs no network for build or test. - README rewritten. Docker is the only requirement for the container path, and the status of the
project — mature, maintenance mode, successor Russell — is the first section after the
introduction. The new Licence section records thatgm/triwraps Jonathan Richard Shewchuk's
Triangle: free for private, research and institutional use, with a direct arrangement with the
author required for distribution as part of a commercial system. It also notes that the vendored
copy is adapted for Gosl rather than upstream 1.6 verbatim, which those terms require be stated. - Retired the VS Code / Docker Hub container setup:
.devcontainer/, the old rootDockerfile
(Ubuntu 22.04,GO_VERSION=latest, avscodeuser built by two vendored Microsoft scripts) and
thezscripts/wrappers that built and published thegosl/goslimage. Those tags remain on
Docker Hub, but are no longer built from this repository.
How this release was verified
Built and tested in that image — Ubuntu 24.04 with SuiteSparse 7.6.1, OpenBLAS 0.3.26, LAPACKE
3.12.0, FFTW3 3.3.10, METIS 5.1.0, MUMPS-seq 5.6.2, gfortran 14.2 and Go 1.27.1 — after the legacy
setup was removed:
- all 19 packages build,
go vetreports nothing, and every package's tests pass:./gosl all
printsSUCCESS!. It takes 4.6 s once warm and 14.2 s from an empty cache; - the same image works as a build environment for your own project —
go get github.com/cpmech/gosl
inside it and run, as the README's example shows.