Rune changelog

1.0.2 November 2026

  • Rune 1.0.2 brings the bus: every running script is a job that the others can see, and scripts can wait for each other's events.
  • Jobs and their events: each job has an id, and the bus reports start, blocked, issue, done, failed, quit and vanished.
  • emit, subscribe, next_event and wait_event send and receive events.
  • lock and unlock let one job at a time hold a name.
  • jobs(), job_summary and job_issue give the running jobs and report a summary or an issue.
  • rune ps lists the running jobs.
  • rune events prints events as JSON lines, with --job, --once and --timeout.
  • RUNE_BUS=off runs a script without the bus.
  • wait for EVENT where CONDITION within SECONDS waits for the next event that fits.
  • on KIND as NAME { ... } runs a block for each event while the script waits.
  • map + map merges two maps, and the right side wins. The same merge is merge(a, b).
  • copy_tree(from, to) copies a whole folder.
  • split(text, sep, count) splits at most count times. The last piece keeps the rest.
  • rune check reports a comparison whose answer is never used, such as a == b on its own line. It is usually meant as a = b.
  • Opened from the Start menu (the Store version), rune shows its help and waits for Enter.
  • Clearer wording in rune report and the crash note.
  • pad_start and pad_end pad a text to a width.
  • New maths functions: sin, cos, tan, asin, acos, atan and atan2 (in radians), exp, log (with an optional base), log2, log10, pow, hypot, sign, clamp(x, lo, hi) and pi(). A name the script defines itself still wins over them.
  • find(text, part, from) starts looking at the position from, which lets a loop find each match in turn.
  • http() takes request headers and returns the headers of the reply.
  • rune check and the compiler now report a built-in called with the wrong number of arguments. rune --builtins lists every built-in with its arguments.
  • to_int, to_float and to_str convert a value, as functions or as methods, such as "42".to_int().
  • A { meant literally in a text now gets an error that points at the text and says to write \{ and \}.

1.0.1 November 2026

  • Rune 1.0.1, a small fix release.
  • On Linux and macOS, the commands a script runs now stop with it when it is stopped from outside (TERM or HUP), as they already did on Windows. They no longer keep running, or keep a lock, after the script has ended.

1.0.0 November 2026

  • Rune 1.0.0, the script language for builds, tests and deployments.
  • Commands run without a shell, so each argument reaches the program exactly as written.
  • A failed command stops the script. try gives a result to check instead.
  • Secrets never print and cannot be put into command arguments.
  • make rebuilds only what has changed, and par runs work on every core.
  • Built in: HTTP client and server, TLS, JSON and regular expressions.
  • Tools: rune check, rune fmt, rune --llm and rune report bug, on Windows, macOS and Linux.