Task
The task runner, rewritten in Go+
Released —
v1.4.0.goforge.dev/gptaskis a Go+ reimplementation ofgo-task/taskv3.52.0, byte-identical to the upstream binary across a broad differential battery. Install the CLI withgo install goforge.dev/gptask/cmd/task@v1.4.0.
Version v1.1.0 adds reusable Quicken doctor/build/run task definitions and
makes concurrent dependency output and template caches race-safe. Quicken
applications can expose the same task build:* and task run:* surface across
Web, TUI, desktop, iOS, and Android without embedding platform commands in
their application Taskfile.
Version v1.1.1 removes generated remote cache files from module archives so
clean go install works across platforms.
Version v1.2.0 selects Quicken Build v0.2.0 by default for iOS device and
configured desktop cross-toolchain targets.
Version v1.3.0 selects Quicken Build v0.3.0 and adds init:* starter
generation to the shared Quicken task surface.
Version v1.4.0 selects Quicken Build v0.4.0 and exposes its complete
server/TUI/native-desktop architecture matrix through wildcard build tasks.
GoForge Task targets go-task/task v3.52.0. The whole tool — the executor
engine, the Taskfile schema, the templater, the up-to-date fingerprinting, and
the CLI — is authored in Go+ and distributed as generated Go; consumers
never need the toolchain.
Parity
The task binary reports 3.52.0 and is differential-identical to the
pinned upstream binary across --list, --list-all --json, deps ordering,
sh:/ref: vars, --summary, --dry, preconditions (message + exit code),
requires/enum validation, output: group/prefixed, includes:,
env:/dotenv, and stateful up-to-date runs via sources:/generates:
(timestamp and checksum methods) with --status. The full upstream test suite
passes.
Go+ authorship
~13k lines of go-task’s own logic are authored in 92 .gp source files
(only //go:embed shims and the platform build-split stay hand-written Go),
reusing the same third-party libraries (mvdan.cc/sh, fsnotify,
slim-sprig, pflag, yaml). Generation is deterministic and goplus gen -check is clean against released goplus v0.139.0 — whose codegen was
extended along the way so that generic methods over pointer iterators
(iter.Seq[*T]) and func-typed arguments author cleanly in Go+.
The Taskfile schema is honest about its shape: its “variants” (var kinds, output styles, precondition/dep forms, source-check methods) are structural YAML unions and polymorphic interfaces, not scalar sums — so no enums were forced onto them, preserving the Taskfile wire format byte-for-byte.
Notes
Faithful to pinned upstream MIT provenance (© 2016 Andrey Nering). Third-party
dependencies are unchanged. See the repository’s PARITY.md for the phase-by-
phase parity ledger.