• v6.0.1 637200e9fd

    TSPM v6.0.1
    Default (tags) / security (push) Failing after 0s
    Default (tags) / test (push) Failing after 0s
    Default (tags) / metadata (push) Skipped
    Release / build-and-release (push) Successful in 3m37s
    Stable

    jkunz released this 2026-10-15 12:52:55 +00:00 | 1 commits to main since this release

    Fixes

    • The installer works again without a code.foss.global sign-in: every release carries install.sh as a release asset, and the documented command is curl -sSL https://code.foss.global/git.zone/tspm/releases/download/latest/install.sh | sudo bash. The old raw/branch/main/install.sh address needs a sign-in, so it served the sign-in page instead of the installer.

    Maintenance

    • release tooling: @git.zone/tsbundle ^3.7.0.
    Downloads
  • v6.0.0 15451856c4

    TSPM v6.0.0
    Default (tags) / security (push) Failing after 0s
    Default (tags) / test (push) Failing after 0s
    Default (tags) / metadata (push) Skipped
    Release / build-and-release (push) Successful in 9m45s
    Stable

    jkunz released this 2026-10-15 07:50:48 +00:00 | 4 commits to main since this release

    Breaking Changes

    • The Linux release binaries tspm-linux-x64 and tspm-linux-arm64 are Node.js 26.11.1 single executable applications built with @git.zone/tssea instead of Deno executables. Hosts need glibc 2.28 or later, libstdc++.so.6 and libatomic.so.1; Alpine and other musl systems are not supported. Asset names, the install command and the systemd service command are unchanged; each release now also carries <asset>.third-party-notices.txt and .json.
    • The installer installs only releases that carry the third-party notice files, which starts with 6.0.0: install.sh --version naming 5.15.4 or an earlier release fails before it changes the installation.
    • tspm enable, tspm disable and the version-mismatch service refresh, and TspmServiceManager.enableService(), disableService() and reloadService() in @git.zone/tspm/client, fail when a systemctl or sudo step fails, with @push.rocks/smartdaemon 3's SmartDaemonCommandError (the command, its exit code and its error output). They used to resolve, so the CLI printed "✓ TSPM daemon enabled" after a refused sudo or a failed systemctl call. tspm disable on a host without the service now reports the unit as not loaded instead of "Service was not running" followed by success.
    • Importing the package no longer starts a daemon when TSPM_DAEMON_MODE=true is set, and running dist_ts/daemon/index.js directly no longer starts one either. The daemon starts through tspm daemon start-service (the systemd service and tspm daemon start) or startDaemon().

    Fixes

    • tspm daemon start and tspm daemon restart run the daemon with the systemd service's command. They used to set TSPM_DAEMON_MODE=true, which the daemon passed on to the processes it manages, so a tspm command run by a managed process tried to start a daemon itself. Inside the release binary the old spawn also started the daemon twice in one process.
    • The CLI and the daemon report the version from ts/00_commitinfo_data.ts instead of reading package.json at run time, so the release binary's daemon no longer reports unknown and tspm --version no longer reports a version mismatch against it. @push.rocks/projectinfo is no longer a dependency.
    • The installer verifies the downloaded binary against the release's SHA256SUMS.txt and refuses a mismatch or a missing entry before it touches the installation. When an update fails after the running service was stopped, it restores the previous installation and restarts its service, and every failure exits non-zero naming the failed step; before, a failed install step could leave the service stopped. It also installs the binary's third-party notice files beside it, accepts only a SemVer 2.0 version with an optional v (or latest) for --version and as the release tag the Gitea API names, downloads over HTTPS only (also on redirects) with connect, idle and transfer time limits, and gains --dry-run, which checks that the release carries every file the installation needs without root and without changing the system.
    • The CLI reads its arguments through @push.rocks/smartconsole 4, which detects single executable applications through node:sea.
    • The release binary refuses tspm enable --node <path> with ERR_NODE_OPTION_IN_BINARY before it writes the systemd unit; the option used to replace the binary in the service command, so the service never started. --node applies to package installs only; --path sets the PATH the managed processes see.

    Maintenance

    • Replace @git.zone/tsdeno with @git.zone/tssea 1.2 and @git.zone/tsbundle 3.6 (build:binary = tsbundle && tssea build), add @push.rocks/smartsea, raise @push.rocks/smartconsole to 4 (the reset, edit and service-refresh prompts come from @push.rocks/smartconsole/prompts, which loads inquirer on the first prompt) and @push.rocks/smartdaemon to 3 (@push.rocks/smartshell 5, without node-pty), and regenerate the installer and release workflow from the @git.zone/cli 9.1.0 binaryCli assets; the release workflow installs with --frozen-lockfile, no longer installs Deno, publishes the tag's changelog.md section as the release notes (through the managed scripts/gitzone-binary-release.mjs; it published generic notes before) and fails instead of replacing an asset the release already has.
    • Drop the unused emitDecoratorMetadata option from tsconfig.json (the code has no decorators); esbuild, which builds the release binary bundle, refuses it.
    • Require @git.zone/tssea ^1.2.1, @git.zone/tsbundle ^3.6.1 and @push.rocks/smartsea ^1.1.0.
    • release tooling: packageManager pnpm@12.10.1, @git.zone/tsbuild ^6.0.2, @git.zone/tstest ^8.0.0, @git.zone/tsrun ^3.0.3, @types/node ^26.6.4.
    Downloads
  • TSPM v5.15.4
    Default (tags) / security (push) Failing after 1s
    Default (tags) / test (push) Failing after 0s
    Default (tags) / metadata (push) Skipped
    Release / build-and-release (push) Successful in 9m52s
    Stable

    jkunz released this 2026-10-01 21:23:36 +00:00 | 11 commits to main since this release

    TSPM v5.15.4

    Pre-compiled release assets for TSPM.

    Downloads
  • TSPM v5.15.3
    Default (tags) / security (push) Failing after 1s
    Default (tags) / test (push) Failing after 1s
    Default (tags) / release (push) Has been skipped
    Default (tags) / metadata (push) Has been skipped
    Release / build-and-release (push) Successful in 1m2s
    Stable

    jkunz released this 2026-06-10 17:50:16 +00:00 | 14 commits to main since this release

    TSPM v5.15.3

    Pre-compiled release assets for TSPM.

    Downloads
  • TSPM v5.15.2
    Default (tags) / security (push) Failing after 1s
    Default (tags) / test (push) Failing after 1s
    Default (tags) / release (push) Has been skipped
    Default (tags) / metadata (push) Has been skipped
    Release / build-and-release (push) Successful in 1m3s
    Stable

    jkunz released this 2026-06-08 23:53:07 +00:00 | 16 commits to main since this release

    TSPM v5.15.2

    Pre-compiled release assets for TSPM.

    Downloads
  • TSPM v5.15.1
    Default (tags) / security (push) Failing after 1s
    Default (tags) / test (push) Failing after 1s
    Default (tags) / release (push) Has been skipped
    Default (tags) / metadata (push) Has been skipped
    Release / build-and-release (push) Successful in 1m1s
    Stable

    jkunz released this 2026-06-08 22:50:51 +00:00 | 18 commits to main since this release

    TSPM v5.15.1

    Pre-compiled release assets for TSPM.

    Downloads
  • TSPM v5.15.0
    Default (tags) / security (push) Failing after 1s
    Default (tags) / test (push) Failing after 1s
    Default (tags) / release (push) Has been skipped
    Default (tags) / metadata (push) Has been skipped
    Release / build-and-release (push) Successful in 1m3s
    Stable

    jkunz released this 2026-06-08 22:15:38 +00:00 | 20 commits to main since this release

    TSPM v5.15.0

    Pre-compiled release assets for TSPM.

    Downloads