Skip to content

hecatron 0.3.0

Choose a tag to compare

@dnf dnf released this 27 Oct 05:54
· 169 commits to main since this release
0f13d95
  • An installer: curl -fsSL …/install.sh | sh installs the latest
    release into ~/.hecatron and adds it to bash, zsh and fish startup files;
    sourced from a clone, it also sets up the current shell. Rerun to update.
    It first installs what hecatron needs if it's missing: the Command Line
    Tools on macOS, and git, Python 3 and perl on Linux (apt, dnf or zypper).
  • Downloads retry transient failures (timeouts, dropped connections,
    429 and 5xx answers, stalled transfers) in installers, hooks, apt and the
    installer's git operations; a 404 isn't retried.
  • A smoke test for every language: each builds and runs a small program
    with the freshly installed toolchain, and checks its output.
  • Groovy, Scala and Kotlin install their own compilers (Groovy 5.1.3,
    Scala 3.3.8 LTS, Kotlin 2.4.21), not only the JDK.
  • Default hooks for every language. A conventional project needs no hook
    files: each language's test, lint, build and clean commands are chosen from
    the build files present (#36).
  • New languages: JavaScript, Objective-C and Haxe, for 54 in all (#36).
  • Toolchain versions for Python, Go, Rust, Node.js and Java: a pinned
    default (Python 3.15.1, Go 1.27.3, Rust 1.99.1, Node.js 24.22.1 LTS,
    Temurin JDK 25.0.5 LTS), or the version a component's own pin file asks
    for, installed side by side (#19, #27, #28). A component on the default
    accepts any installed version on the default's release line (#31). The JDK
    is Temurin rather than the distribution's OpenJDK 17, and Node.js comes from
    nodejs.org rather than NodeSource.
  • hct init finds real layouts: directory aliases such as dotnet/,
    javascript/ and lib/py, a directory per language where one template
    doesn't fit, and examples, tests and vendored code skipped (#33, #34, #35,
    #37).
  • Generated Dockerfiles install every version the components use (#30).
  • hct self-test runs ShellCheck and the unit tests; hecatron checks at
    startup for bash 3.2+ and Python 3.9+, and no longer asks for bash 4 (#38).
  • Hecatron or ad hoc?, a ten-language
    library maintained with hecatron and without it (#15).
  • Fixes for macOS (Python, Mojo, D, Lua, Pharo, Go) and Debian
    (PowerShell) from the first full coverage run (#32), Ruby gems with native
    extensions (#25), and Wren on arm64 (#21).