StaxPing2 development and releases
Development requires Node.js 18.15 or newer, a terminal emulator, and the
platform’s ping command.
git clone https://github.com/StaxDash/staxping2.git
cd staxping2
npm install
npm test
| Command | Purpose |
|---|---|
npm start |
Run from source. |
npm test |
Syntax checks plus unit, CLI, live, and PTY tests. |
npm pack |
Build an npm archive. |
npm run build:bin |
Build a standalone executable for the host OS. |
The Node test suite covers platform ping parsers, statistics, outages, loss accounting, traceroute parsing, local DNS/TCP/HTTP checks, loopback MTU probes, exports, paging, sorting, configuration, persistence, and rendering helpers. The PTY integration test drives real paging, export, sorting, exit, and history behavior inside an isolated configuration directory.
Standalone packaging
The binary build uses esbuild, Node.js Single Executable Applications, and
postject. It embeds blessed terminal data so the executable does not depend
on a system terminfo installation. Use an official nodejs.org binary because
some distribution builds remove the injection sentinel. NODE_BIN can select
the official executable when needed.
Artifacts are written to dist/; macOS output receives an ad-hoc signature.
CI and release process
The upstream matrix tests Node 18 and 22 on Linux, macOS, and Windows and
performs binary-build smoke checks. A v* tag launches release automation;
hyphenated versions become prereleases.
For a release:
- update
CHANGELOG.mdand thepackage.jsonversion; - run the full tests and PTY smoke test;
- tag the release from
mainand push the tag; - wait for release artifacts; and
- update the separate StaxDash Homebrew tap formula and checksums.
The exact tap update command is maintainer workflow owned by the tap repository. It is intentionally not presented here as an end-user step.
Contribution boundaries
- Keep collectors independent of the terminal UI.
- Preserve
defaults < config file < CLI flags. - Keep the single runtime dependency.
- Follow the existing CommonJS style.
- Add fixture or local-server tests for parsers and pure helpers.
See the upstream development guide for detailed test coverage and packaging internals.