GoForge — Build | Test | Ship | Collaborate GoForge — Build | Test | Ship | Collaborate
v1.4.0

Task

The task runner, rewritten in Go+

$ go get goforge.dev/gptask@v1.4.0

Released — v1.4.0. goforge.dev/gptask is a Go+ reimplementation of go-task/task v3.52.0, byte-identical to the upstream binary across a broad differential battery. Install the CLI with go 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.