# just changelog > A handy command runner for project-specific recipes. - Vendor: Casey Rodarmor - Category: Developer Tools - Official site: https://just.systems - Tracked by: What's New (https://whatsnew.fyi/product/just) - Harvested from: GitHub (casey/just) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 1.58.0 - Date: 2026-08-03 - Version: 1.58.0 - Original notes: https://github.com/casey/just/releases/tag/1.58.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.58.0 - **changed** — Surround interpolation expressions with spaces when formatting - **changed** — Accept multiple comma-separated values in --justfile-name - **added** — Add format argument to [timestamp] attribute - **added** — Add [timestamp] recipe attribute ###### Changed - Surround interoplation expressions with spaces when formatting ([#3685](https://github.com/casey/just/pull/3685) by [casey](https://github.com/casey)) - Accept multiple `,`-separated values in `--justfile-name` ([#3676](https://github.com/casey/just/pull/3676) by [casey](https://github.com/casey)) ###### Added - Add format argument to `[timestamp]` attribute ([#3681](https://github.com/casey/just/pull/3681) by [casey](https://github.com/casey)) - Add `[timestamp]` recipe attribute ([#3680](https://github.com/casey/just/pull/3680) by [casey](https://github.com/casey)) ###### Misc - Note that `no-cd` only affects recipe working directory ([#3679](https://github.com/casey/just/pull/3679) by [casey](https://github.com/casey)) - Link to GitHub from docs ([#3674](https://github.com/casey/just/pull/3674) by [casey](https://github.com/casey)) ### 1.57.0 - Date: 2026-07-19 - Version: 1.57.0 - Original notes: https://github.com/casey/just/releases/tag/1.57.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.57.0 - **changed** — Pass arguments to `cmd.exe` without escaping - **changed** — `split('')` splits into characters - **changed** — Accept markdown justfiles found by name - **changed** — Make `[env]` variables visible to `shell()` invocations - **changed** — Forbid duplicate groups - **changed** — Forbid option names beginning with `-` - **changed** — Don't accept option arguments starting with `-=` or `--=` - **changed** — Reject empty alphabet in `choose()` regardless of count - **changed** — Forbid `[arg(flag)]` with `[arg(pattern)]` - **changed** — Add extension to cache key - **fixed** — Don't reevaluate lazy assignments in user-defined functions - **fixed** — Don't print parenthesis around dependencies without arguments - **fixed** — Accept override paths containing module aliases - **fixed** — Fix line number in error message after multi-line interpolation - **fixed** — Don't execute dotenv commands during dry run - **fixed** — Only run `dotenv-command` in root module - **fixed** — Detect module cycle when path uses `..` - **fixed** — Recipes with `[arg(min)]` greater than zero cannot be default - **fixed** — Avoid panic in ambiguous module file error - **added** — Add `len()` function ###### Changed - Pass arguments to `cmd.exe` without escaping ([#3636](https://github.com/casey/just/pull/3636) by [casey](https://github.com/casey)) - `split('')` splits into characters ([#3650](https://github.com/casey/just/pull/3650) by [casey](https://github.com/casey)) - Accept markdown justfiles found by name ([#3648](https://github.com/casey/just/pull/3648) by [casey](https://github.com/casey)) - Make `[env]` variables visible to `shell()` invocations ([#3631](https://github.com/casey/just/pull/3631) by [casey](https://github.com/casey)) - Forbid duplicate groups ([#3626](https://github.com/casey/just/pull/3626) by [casey](https://github.com/casey)) - Forbid option names beginning with `-` ([#3608](https://github.com/casey/just/pull/3608) by [casey](https://github.com/casey)) - Don't accept option arguments starting with `-=` or `--=` ([#3607](https://github.com/casey/just/pull/3607) by [casey](https://github.com/casey)) - Reject empty alphabet in `choose()` regardless of count ([#3605](https://github.com/casey/just/pull/3605) by [casey](https://github.com/casey)) - Forbid `[arg(flag)]` with `[arg(pattern)]` ([#3602](https://github.com/casey/just/pull/3602) by [casey](https://github.com/casey)) - Add extension to cache key ([#3600](https://github.com/casey/just/pull/3600) by [casey](https://github.com/casey)) ###### Fixed - Don't reevaluate lazy assignments in user-defined functions ([#3654](https://github.com/casey/just/pull/3654) by [casey](https://github.com/casey)) - Don't print parenthesis around dependencies without arguments ([#3653](https://github.com/casey/just/pull/3653) by [casey](https://github.com/casey)) - Accept override paths containing module aliases ([#3652](https://github.com/casey/just/pull/3652) by [casey](https://github.com/casey)) - Fix line number in error message after multi-line interpolation ([#3646](https://github.com/casey/just/pull/3646) by [casey](https://github.com/casey)) - Don't execute dotenv commands during dry run ([#3644](https://github.com/casey/just/pull/3644) by [casey](https://github.com/casey)) - Only run `dotenv-command` in root module ([#3643](https://github.com/casey/just/pull/3643) by [casey](https://github.com/casey)) - Detect module cycle when path uses `..` ([#3641](https://github.com/casey/just/pull/3641) by [casey](https://github.com/casey)) - Recipes with `[arg(min)]` greater than zero cannot be default ([#3639](https://github.com/casey/just/pull/3639) by [casey](https://github.com/casey)) - Avoid panic in ambiguous module file error ([#3638](https://github.com/casey/just/pull/3638) by [casey](https://github.com/casey)) - Consider value when checking for setting conflicts ([#3627](https://github.com/casey/just/pull/3627) by [casey](https://github.com/casey)) - Ignore disabled indentation settings ([#3618](https://github.com/casey/just/pull/3618) by [casey](https://github.com/casey)) - Reject duplicate function parameters ([#3611](https://github.com/casey/just/pull/3611) by [casey](https://github.com/casey)) - Allow defaulted option before required positional parameter ([#3609](https://github.com/casey/just/pull/3609) by [casey](https://github.com/casey)) - Truncate cache entry before writing ([#3603](https://github.com/casey/just/pull/3603) by [casey](https://github.com/casey)) - Ignore absent optional modules under `--allow-missing` ([#3601](https://github.com/casey/just/pull/3601) by [casey](https://github.com/casey)) ###### Added - Add `len()` function ([#3663](https://github.com/casey/just/pull/3663) by [casey](https://github.com/casey)) - Avoid panic when passed parentless justfile path ([#3624](https://github.com/casey/just/pull/3624) by [casey](https://github.com/casey)) ###### Misc - Fix flags and options link in readme ([#3669](https://github.com/casey/just/pull/3669) by [casey](https://github.com/casey)) - Add `else if` to grammar ([#3667](https://github.com/casey/just/pull/3667) by [casey](https://github.com/casey)) - _[Truncated at 4000 characters — full notes: https://github.com/casey/just/releases/tag/1.57.0]_ ### 1.56.0 - Date: 2026-07-10 - Version: 1.56.0 - Original notes: https://github.com/casey/just/releases/tag/1.56.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.56.0 - **fixed** — Omit authorization header in install script if GITHUB_TOKEN is empty - **fixed** — Evaluate assignments in dependency order - **fixed** — Do not run shell() commands during dry run - **fixed** — List aliases for recipes in other modules - **fixed** — Don't unindent format strings twice - **fixed** — Include doc comments and attributes in --show - **fixed** — Don't resolve submodule variables to parent module variables - **fixed** — Show dependency paths - **fixed** — Reject shell-expanded string identifier in format string interpolation - **fixed** — Resolve variables in [cache] expressions - **fixed** — Preserve blank CRLF lines between recipes - **fixed** — Report mixed leading whitespace in recipe bodies - **fixed** — Preserve eager keyword in --dump and --fmt - **fixed** — Export [env] variables to recipe bodies - **fixed** — Don't add trailing space to empty doc comments - **fixed** — Preserve CRLF when unindenting blank lines - **fixed** — Include parameter multiple in dump - **fixed** — Skip private variables when calculating --evaluate padding - **fixed** — Don't show flag placeholders in --usage - **fixed** — Fix is_dependency() in [confirm] expressions ###### Fixed - Omit authorization header in install script if GITHUB_TOKEN is empty ([#3595](https://github.com/casey/just/pull/3595) by [casey](https://github.com/casey)) - Evaluate assignments in dependency order ([#3591](https://github.com/casey/just/pull/3591) by [casey](https://github.com/casey)) - Do not run `shell()` commands during dry run ([#3588](https://github.com/casey/just/pull/3588) by [casey](https://github.com/casey)) - List aliases for recipes in other modules ([#3581](https://github.com/casey/just/pull/3581) by [casey](https://github.com/casey)) - Don't unindent format strings twice ([#3579](https://github.com/casey/just/pull/3579) by [casey](https://github.com/casey)) - Include doc comments and attributes in `--show` ([#3578](https://github.com/casey/just/pull/3578) by [casey](https://github.com/casey)) - Don't resolve submodule variables to parent module variables ([#3577](https://github.com/casey/just/pull/3577) by [casey](https://github.com/casey)) - Show dependency paths ([#3576](https://github.com/casey/just/pull/3576) by [casey](https://github.com/casey)) - Reject shell-expanded string identifier in format string interpolation ([#3575](https://github.com/casey/just/pull/3575) by [casey](https://github.com/casey)) - Resolve variables in `[cache]` expressions ([#3573](https://github.com/casey/just/pull/3573) by [casey](https://github.com/casey)) - Preserve blank CRLF lines between recipes ([#3568](https://github.com/casey/just/pull/3568) by [casey](https://github.com/casey)) - Report mixed leading whitespace in recipe bodies ([#3567](https://github.com/casey/just/pull/3567) by [casey](https://github.com/casey)) - Preserve `eager` keyword in `--dump` and `--fmt` ([#3565](https://github.com/casey/just/pull/3565) by [casey](https://github.com/casey)) - Export `[env]` variables to recipe bodies ([#3566](https://github.com/casey/just/pull/3566) by [casey](https://github.com/casey)) - Don't add trailing space to empty doc comments ([#3564](https://github.com/casey/just/pull/3564) by [casey](https://github.com/casey)) - Preserve CRLF when unindenting blank lines ([#3563](https://github.com/casey/just/pull/3563) by [casey](https://github.com/casey)) - Include parameter `multiple` in dump ([#3562](https://github.com/casey/just/pull/3562) by [casey](https://github.com/casey)) - Skip private variables when calculating `--evaluate` padding ([#3561](https://github.com/casey/just/pull/3561) by [casey](https://github.com/casey)) - Don't show flag placeholders in `--usage` ([#3559](https://github.com/casey/just/pull/3559) by [casey](https://github.com/casey)) - Fix `is_dependency()` in `[confirm]` expressions ([#3558](https://github.com/casey/just/pull/3558) by [casey](https://github.com/casey)) - Skip private modules when choosing ([#3557](https://github.com/casey/just/pull/3557) by [casey](https://github.com/casey)) - Don't re-evaluate assignments in user-defined functions ([#3555](https://github.com/casey/just/pull/3555) by [casey](https://github.com/casey)) - Forbid format-string backticks ([#3554](https://github.com/casey/just/pull/3554) by [casey](https://github.com/casey)) - Don't use shebangs as doc comments ([#3553](https://github.com/casey/just/pull/3553) by [casey](https://github.com/casey)) - Don't deduplicate ASTs ([#3552](https://github.com/casey/just/pull/3552) by [casey](https://github.com/casey)) - Allow escaping CRLF in strings ([#3550](https://github.com/casey/just/pull/3550) by [casey](https://github.com/casey)) - Ignore sigils on continuation lines ([#3549](https://github.com/casey/just/pull/3549) by [casey](https://github.com/casey)) - Catch circular references though function calls ([#3548](https://github.com/casey/just/pull/3548) by [casey](https://github.com/casey)) - Resolve references in module `[doc]` attributes ([#3547](https://github.com/casey/just/pull/3547) by [casey](https://github.com/casey)) - Avoid exponential blowup when traversing dependencies ([#3546]( _[Truncated at 4000 characters — full notes: https://github.com/casey/just/releases/tag/1.56.0]_ ### 1.55.1 - Date: 2026-06-30 - Version: 1.55.1 - Original notes: https://github.com/casey/just/releases/tag/1.55.1 - Permalink: https://whatsnew.fyi/product/just/releases/1.55.1 - **fixed** — Fix panic when empty path is passed to --show and --usage ###### Fixed - Fix panic when empty path is passed to `--show` and `--usage` ([#3511](https://github.com/casey/just/pull/3511) by [casey](https://github.com/casey)) ###### Misc - Upgrade sha2 to 0.11.0 ([#3512](https://github.com/casey/just/pull/3512) by [casey](https://github.com/casey)) - Remove `Test::test_round_trip()` ([#3509](https://github.com/casey/just/pull/3509) by [casey](https://github.com/casey)) - Remove round-trip testing ([#3508](https://github.com/casey/just/pull/3508) by [casey](https://github.com/casey)) ### 1.55.0 - Date: 2026-06-29 - Version: 1.55.0 - Original notes: https://github.com/casey/just/releases/tag/1.55.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.55.0 - **fixed** — Fix forwarded dependency flag value - **changed** — Allow `[arg(pattern)]` to be a list - **changed** — Allow `[arg(help)]` to be expression - **changed** — Allow `[arg(pattern)]` to be expression - **added** — Add stream gates to `style()` - **added** — Accept `-F` for `--dotenv-filename` - **added** — Add `just_version()` function - **added** — Add `[arg(multiple)]` - **added** — Allow combining short options - **added** — Allow variadic parameters to be options - **added** — Default `[arg(short)]` to first character of parameter name - **added** — Add support for RGB and fixed colors to `style()` - **added** — Improve `style()` function - **added** — Add `set minimum-version` - **added** — Add module aliases ###### Fixed - Fix forwarded dependency flag value ([#3489](https://github.com/casey/just/pull/3489) by [casey](https://github.com/casey)) ###### Changed - Allow `[arg(pattern)]` to be a list ([#3484](https://github.com/casey/just/pull/3484) by [casey](https://github.com/casey)) - Allow `[arg(help)]` to be expression ([#3483](https://github.com/casey/just/pull/3483) by [casey](https://github.com/casey)) - Allow `[arg(pattern)]` to be expression ([#3482](https://github.com/casey/just/pull/3482) by [casey](https://github.com/casey)) ###### Added - Add stream gates to `style()` ([#3503](https://github.com/casey/just/pull/3503) by [casey](https://github.com/casey)) - Accept `-F` for `--dotenv-filename` ([#3498](https://github.com/casey/just/pull/3498) by [casey](https://github.com/casey)) - Add `just_version()` function ([#3497](https://github.com/casey/just/pull/3497) by [casey](https://github.com/casey)) - Add `[arg(multiple)]` ([#3493](https://github.com/casey/just/pull/3493) by [casey](https://github.com/casey)) - Allow combining short options ([#3490](https://github.com/casey/just/pull/3490) by [casey](https://github.com/casey)) - Allow variadic parameters to be options ([#3488](https://github.com/casey/just/pull/3488) by [casey](https://github.com/casey)) - Default `[arg(short)]` to first character of parameter name ([#3486](https://github.com/casey/just/pull/3486) by [casey](https://github.com/casey)) - Add support for RGB and fixed colors to `style()` ([#3479](https://github.com/casey/just/pull/3479) by [casey](https://github.com/casey)) - Improve `style()` function ([#3478](https://github.com/casey/just/pull/3478) by [casey](https://github.com/casey)) - Add `set minimum-version` ([#3477](https://github.com/casey/just/pull/3477) by [casey](https://github.com/casey)) - Add module aliases ([#3472](https://github.com/casey/just/pull/3472) by [casey](https://github.com/casey)) ###### Misc - Add example to cached recipes readme ([#3506](https://github.com/casey/just/pull/3506) by [casey](https://github.com/casey)) - Fix readme heading levels ([#3505](https://github.com/casey/just/pull/3505) by [casey](https://github.com/casey)) - Move Friendly Admonitions higher in Cached Recipes section ([#3504](https://github.com/casey/just/pull/3504) by [casey](https://github.com/casey)) - Rename test helper functions ([#3502](https://github.com/casey/just/pull/3502) by [casey](https://github.com/casey)) - Simplify tests ([#3501](https://github.com/casey/just/pull/3501) by [casey](https://github.com/casey)) - Use `assert_eval_eq` in tests ([#3499](https://github.com/casey/just/pull/3499) by [casey](https://github.com/casey)) - Expand readme intro list ([#3496](https://github.com/casey/just/pull/3496) by [casey](https://github.com/casey)) - Organize readme into sections ([#3495](https://github.com/casey/just/pull/3495) by [casey](https://github.com/casey)) - Rename option tests ([#3494](https://github.com/casey/just/pull/3494) by [casey](https://github.com/casey)) - Move option application to `switch.apply()` ([#3491](https://github.com/casey/just/pull/3491) by [casey](https://github.com/casey)) - Document that `[arg(help)]` may be a list ([#3485](https://github.com/casey/just/pull/3485) by [casey](https://github.com/casey)) - Move override processing out of `Analyzer` ([#3481](https://github.com/casey/just/pull/3481) by [casey](https://github.com/casey)) - Add `ConstEvalError` ([#3480](https://github.com/casey/just/pull/3480) by [casey](https://github.com/casey)) - Remove `ModuleAlias` ([#3475](https://github.com/casey/just/pull/3475) by [casey](https://github.com/casey)) - Chain tests ([#3476](https://github.com/casey/just/pull/3476) by [casey](https://github.com/casey)) - Remove temptree dependency ([#3473](https://github.com/casey/just/pull/3473) by [casey](https://github.com/casey)) - Simplify show tests ([#3471](https://github.com/casey/just/pull/3471) by [casey](https://github.com/casey)) - Rem _[Truncated at 4000 characters — full notes: https://github.com/casey/just/releases/tag/1.55.0]_ ### 1.54.0 - Date: 2026-06-23 - Version: 1.54.0 - Original notes: https://github.com/casey/just/releases/tag/1.54.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.54.0 - **fixed** — Forbid duplicate attribute keys - **fixed** — Clear signal handler when infallible line catches signal - **changed** — Allow passing `--dotenv-command` multiple times - **changed** — Allow `[arg]` `value` to be expression - **added** — Add `[continue]` attribute - **added** — Add `--dotenv-command` and `set dotenv-command` - **added** — Add cache key to verbose output - **added** — Add `--no-cache` flag - **added** — Remove empty cache entries with `just --clean` - **added** — Allow filtering `--clean` by recipe and module path - **added** — Add `--clean` subcommand for clearing recipe cache - **added** — Include recipe name in cache entries - **added** — Add extra user-supplied cache key - **fixed** — Fix working directory cache key - **added** — Add output files to cached recipes - **added** — Add file inputs to cached recipes - **added** — Use body lines in cache key - **added** — Use recipe body in cache key instead of lines - **added** — Add additional cache keys - **added** — Add cached recipes ###### Fixed - Forbid duplicate attribute keys ([#3454](https://github.com/casey/just/pull/3454) by [casey](https://github.com/casey)) - Clear signal handler when infallible line catches signal ([#3444](https://github.com/casey/just/pull/3444) by [casey](https://github.com/casey)) ###### Changed - Allow passing `--dotenv-command` multiple times ([#3445](https://github.com/casey/just/pull/3445) by [casey](https://github.com/casey)) - Allow `[arg]` `value` to be expression ([#3429](https://github.com/casey/just/pull/3429) by [casey](https://github.com/casey)) ###### Added - Add `[continue]` attribute ([#3442](https://github.com/casey/just/pull/3442) by [casey](https://github.com/casey)) - Add `--dotenv-command` and `set dotenv-command` ([#3441](https://github.com/casey/just/pull/3441) by [casey](https://github.com/casey)) ###### Cached Recipes - Add cache key to verbose output ([#3465](https://github.com/casey/just/pull/3465) by [casey](https://github.com/casey)) - Add `--no-cache` flag ([#3463](https://github.com/casey/just/pull/3463) by [casey](https://github.com/casey)) - Remove empty cache entries with `just --clean` ([#3462](https://github.com/casey/just/pull/3462) by [casey](https://github.com/casey)) - Add `just --clean` instructions to readme ([#3461](https://github.com/casey/just/pull/3461) by [casey](https://github.com/casey)) - Allow filtering `--clean` by recipe and module path ([#3460](https://github.com/casey/just/pull/3460) by [casey](https://github.com/casey)) - Add `--clean` subcommand for clearing recipe cache ([#3459](https://github.com/casey/just/pull/3459) by [casey](https://github.com/casey)) - Include recipe name in cache entries ([#3457](https://github.com/casey/just/pull/3457) by [casey](https://github.com/casey)) - Add extra user-supplied cache key ([#3456](https://github.com/casey/just/pull/3456) by [casey](https://github.com/casey)) - Fix working directory cache key ([#3455](https://github.com/casey/just/pull/3455) by [casey](https://github.com/casey)) - Add output files to cached recipes ([#3453](https://github.com/casey/just/pull/3453) by [casey](https://github.com/casey)) - Add file inputs to cached recipes ([#3452](https://github.com/casey/just/pull/3452) by [casey](https://github.com/casey)) - Use body lines in cache key ([#3451](https://github.com/casey/just/pull/3451) by [casey](https://github.com/casey)) - Use recipe body in cache key instead of lines ([#3447](https://github.com/casey/just/pull/3447) by [casey](https://github.com/casey)) - Add additional cache keys ([#3446](https://github.com/casey/just/pull/3446) by [casey](https://github.com/casey)) - Add cached recipes ([#3437](https://github.com/casey/just/pull/3437) by [casey](https://github.com/casey)) ###### Misc - Rename `AttributeDiscriminant` to `AttributeKind` ([#3464](https://github.com/casey/just/pull/3464) by [casey](https://github.com/casey)) - Improve invalid shell recipe attribute error message ([#3458](https://github.com/casey/just/pull/3458) by [casey](https://github.com/casey)) - Add `Environment` struct ([#3450](https://github.com/casey/just/pull/3450) by [casey](https://github.com/casey)) - Remove `Test::no_justfile()` ([#3449](https://github.com/casey/just/pull/3449) by [casey](https://github.com/casey)) - Use plural consistently in `UnstableFeature` enum ([#3448](https://github.com/casey/just/pull/3448) by [casey](https://github.com/casey)) - Lowercase `ctrl` consistently ([#3443](https://github.com/casey/just/pull/3443) by [casey](https://github.com/casey)) - Add activating environments section to readme ([#3440](https://github.com/casey/just/pull/3440) by [casey](https://github.com/casey)) - Bump minimum-supported Rust version to 1.89.0 ([#3438](https://github.com/casey/just/pull/3438) by [casey](https://github.com/casey)) - Make non-unicode error messages consistent ([#3436](https://github.com/casey/just/pull/3436) by [casey](https://github.com/casey)) - Lowercase function e _[Truncated at 4000 characters — full notes: https://github.com/casey/just/releases/tag/1.54.0]_ ### 1.53.0 - Date: 2026-06-16 - Version: 1.53.0 - Original notes: https://github.com/casey/just/releases/tag/1.53.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.53.0 - **added** — Add `recipe_name()` function - **added** — Support markdown justfiles - **changed** — Allow omitting `assert()` message - **changed** — Preserve bare `[arg]` long key when formatting - **added** — Add list concatenation operator - **changed** — Do not export empty lists - **added** — Add `split()` function - **changed** — Make `which()` require `set lists` - **changed** — Make `env()` functions work with lists - **changed** — Make `+` and `/` work with lists - **changed** — Allow lists as regex operands of `=~` and `!~` - **changed** — Allow multiple `--dotenv-filename` and `--dotenv-path` options - **changed** — Load multiple `.env` files - **changed** — Flatten interpreter settings - **changed** — Make `[env]` work with lists - **changed** — Join lists in `assert()` and `[confirm]` messages - **changed** — Join lists in interpolations - **added** — Add `flag` `[arg]` attribute - **added** — Add `bool()` function - **added** — Add negation operator `!` ###### Added - Add `recipe_name()` function ([#3366](https://github.com/casey/just/pull/3366) by [casey](https://github.com/casey)) - Support markdown justfiles ([#3361](https://github.com/casey/just/pull/3361) by [casey](https://github.com/casey)) ###### Changed - Allow omitting `assert()` message ([#3423](https://github.com/casey/just/pull/3423) by [casey](https://github.com/casey)) - Preserve bare `[arg]` long key when formatting ([#3397](https://github.com/casey/just/pull/3397) by [casey](https://github.com/casey)) ###### Lists - Add list concatenation operator ([#3427](https://github.com/casey/just/pull/3427) by [casey](https://github.com/casey)) - Do not export empty lists ([#3424](https://github.com/casey/just/pull/3424) by [casey](https://github.com/casey)) - Add `split()` function ([#3420](https://github.com/casey/just/pull/3420) by [casey](https://github.com/casey)) - Make `which()` require `set lists` ([#3418](https://github.com/casey/just/pull/3418) by [casey](https://github.com/casey)) - Make `env()` functions work with lists ([#3416](https://github.com/casey/just/pull/3416) by [casey](https://github.com/casey)) - Make `+` and `/` work with lists ([#3415](https://github.com/casey/just/pull/3415) by [casey](https://github.com/casey)) - Allow lists as regex operands of `=~` and `!~` ([#3414](https://github.com/casey/just/pull/3414) by [casey](https://github.com/casey)) - Allow multiple `--dotenv-filename` and `--dotenv-path` options ([#3413](https://github.com/casey/just/pull/3413) by [casey](https://github.com/casey)) - Load multiple `.env` files ([#3412](https://github.com/casey/just/pull/3412) by [casey](https://github.com/casey)) - Flatten interpreter settings ([#3410](https://github.com/casey/just/pull/3410) by [casey](https://github.com/casey)) - Make `[env]` work with lists ([#3409](https://github.com/casey/just/pull/3409) by [casey](https://github.com/casey)) - Join lists in `assert()` and `[confirm]` messages ([#3408](https://github.com/casey/just/pull/3408) by [casey](https://github.com/casey)) - Join lists in interpolations ([#3407](https://github.com/casey/just/pull/3407) by [casey](https://github.com/casey)) - Using lists in string contexts is an error ([#3406](https://github.com/casey/just/pull/3406) by [casey](https://github.com/casey)) - `assert(condition)` evaluates to `condition` ([#3405](https://github.com/casey/just/pull/3405) by [casey](https://github.com/casey)) - Make `assert()` evaluate to `"true"` when `set lists` is enabled ([#3404](https://github.com/casey/just/pull/3404) by [casey](https://github.com/casey)) - Make `=~` and `!~` work with lists ([#3403](https://github.com/casey/just/pull/3403) by [casey](https://github.com/casey)) - `if` without `else` evalutes to `[]` when false ([#3401](https://github.com/casey/just/pull/3401) by [casey](https://github.com/casey)) - Check structural equality in `!=` and `==` ([#3402](https://github.com/casey/just/pull/3402) by [casey](https://github.com/casey)) - Add `flag` `[arg]` attribute ([#3398](https://github.com/casey/just/pull/3398) by [casey](https://github.com/casey)) - Make `show()` require `set lists` ([#3392](https://github.com/casey/just/pull/3392) by [casey](https://github.com/casey)) - Add `bool()` function ([#3391](https://github.com/casey/just/pull/3391) by [casey](https://github.com/casey)) - Add negation operator `!` ([#3389](https://github.com/casey/just/pull/3389) by [casey](https://github.com/casey)) - Allow conditions to be used in arbitrary expressions ([#3387](https://github.com/casey/just/pull/3387) by [casey](https://github.com/casey)) - Add `show()` function ([#3383](https://github.com/casey/just/pull/3383) by [casey](https://github.com/casey)) - Print lists in `--evaluate` ([#3382](https://github.com/casey/just/pull/3382) by [casey](https://github.com/casey)) - Reform booleans ([#3381](https://github.com/casey/just/pull/3381) by [casey](https://github.com/casey)) - Add list literals ([# _[Truncated at 4000 characters — full notes: https://github.com/casey/just/releases/tag/1.53.0]_ ### 1.52.0 - Date: 2026-06-08 - Version: 1.52.0 - Original notes: https://github.com/casey/just/releases/tag/1.52.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.52.0 - **added** — Add `[shell]` attribute to override `default-script` setting - **added** — Add `default-script` setting - **added** — Add `--default-list` flag - **added** — Add `default-list` setting - **changed** — Disable aliases that depend on absent modules - **changed** — Print formatted justfile to stdout when source is stdin - **changed** — Allow search directory with more subcommands - **changed** — Disable recipes that depend on absent modules - **changed** — Include UTF-8 byte-order mark in PowerShell scripts - **changed** — Remove options from `--list` output ###### Added - Add `[shell]` attribute to override `default-script` setting ([#3359](https://github.com/casey/just/pull/3359) by [casey](https://github.com/casey)) - Add `default-script` setting ([#3354](https://github.com/casey/just/pull/3354) by [casey](https://github.com/casey)) - Add `--default-list` flag ([#3350](https://github.com/casey/just/pull/3350) by [casey](https://github.com/casey)) - Add `default-list` setting ([#3337](https://github.com/casey/just/pull/3337) by [casey](https://github.com/casey)) ###### Changed - Disable aliases that depend on absent modules ([#3358](https://github.com/casey/just/pull/3358) by [casey](https://github.com/casey)) - Print formatted justfile to stdout when source is stdin ([#3356](https://github.com/casey/just/pull/3356) by [casey](https://github.com/casey)) - Allow search directory with more subcommands ([#3353](https://github.com/casey/just/pull/3353) by [casey](https://github.com/casey)) - Disable recipes that depend on absent modules ([#3352](https://github.com/casey/just/pull/3352) by [casey](https://github.com/casey)) ###### Misc - Improve absent optional module error messages ([#3357](https://github.com/casey/just/pull/3357) by [casey](https://github.com/casey)) - Alphabetize Attribute derive macro order ([#3355](https://github.com/casey/just/pull/3355) by [casey](https://github.com/casey)) - Include UTF-8 byte-order mark in PowerShell scripts ([#3347](https://github.com/casey/just/pull/3347) by [casey](https://github.com/casey)) - Remove options from `--list` output ([#3346](https://github.com/casey/just/pull/3346) by [casey](https://github.com/casey)) - Switch from ansi_term to nu_ansi_term ([#3344](https://github.com/casey/just/pull/3344) by [casey](https://github.com/casey)) - Remove redundant argument parser attributes ([#3340](https://github.com/casey/just/pull/3340) by [casey](https://github.com/casey)) ### 1.51.0 - Date: 2026-05-10 - Version: 1.51.0 - Original notes: https://github.com/casey/just/releases/tag/1.51.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.51.0 - **added** — Add `no-cd` setting - **changed** — Allow `[env]` attribute to take expressions - **changed** — Allow using expressions with `[working-directory]` - **changed** — Read justfile from standard input with `--justfile -` - **changed** — Make `parent_directory()` of bare filename return `.` - **changed** — Make `[env]` override module-level exports - **fixed** — Fail on deep recursion instead of overflowing stack - **fixed** — Invoke chooser selections separately - **fixed** — Don't evaluate unused assertions - **fixed** — Respect lazy setting in submodules - **fixed** — Fix overrides not being visible in user-defined functions - **fixed** — Don't panic on invalid datetime format string ###### Added - Add `no-cd` setting ([#2981](https://github.com/casey/just/pull/2981) by [hans-d](https://github.com/hans-d)) ###### Changed - Allow `[env]` attribute to take expressions ([#3329](https://github.com/casey/just/pull/3329) by [casey](https://github.com/casey)) - Allow using expressions with `[working-directory]` ([#3326](https://github.com/casey/just/pull/3326) by [casey](https://github.com/casey)) - Read justfile from standard input with `--justfile -` ([#3325](https://github.com/casey/just/pull/3325) by [casey](https://github.com/casey)) - Make `parent_directory()` of bare filename return `.` ([#3313](https://github.com/casey/just/pull/3313) by [casey](https://github.com/casey)) - Make `[env]` override module-level exports ([#3312](https://github.com/casey/just/pull/3312) by [casey](https://github.com/casey)) ###### Fixed - Fail on deep recursion instead of overflowing stack ([#3319](https://github.com/casey/just/pull/3319) by [casey](https://github.com/casey)) - Invoke chooser selections separately ([#3311](https://github.com/casey/just/pull/3311) by [casey](https://github.com/casey)) - Don't evaluate unused assertions ([#3310](https://github.com/casey/just/pull/3310) by [casey](https://github.com/casey)) - Respect lazy setting in submodules ([#3308](https://github.com/casey/just/pull/3308) by [casey](https://github.com/casey)) - Fix overrides not being visible in user-defined functions ([#3307](https://github.com/casey/just/pull/3307) by [casey](https://github.com/casey)) - Don't panic on invalid datetime format string ([#3304](https://github.com/casey/just/pull/3304) by [casey](https://github.com/casey)) ###### Misc - Use `cargo-limit` commands in justfile ([#3331](https://github.com/casey/just/pull/3331) by [casey](https://github.com/casey)) - Simplify code more ([#3330](https://github.com/casey/just/pull/3330) by [casey](https://github.com/casey)) - Update install-dev-deps recipe with compatible mdbook ([#3328](https://github.com/casey/just/pull/3328) by [casey](https://github.com/casey)) - Simplify code ([#3327](https://github.com/casey/just/pull/3327) by [casey](https://github.com/casey)) - Link to duplicate recipe issue in readme ([#3321](https://github.com/casey/just/pull/3321) by [casey](https://github.com/casey)) - Remove periods from error messages ([#3316](https://github.com/casey/just/pull/3316) by [casey](https://github.com/casey)) - Avoid multi-sentence error messagess ([#3315](https://github.com/casey/just/pull/3315) by [casey](https://github.com/casey)) - Make error messages lowercase ([#3314](https://github.com/casey/just/pull/3314) by [casey](https://github.com/casey)) - Actually bump version to 1.50.0 ([#3303](https://github.com/casey/just/pull/3303) by [casey](https://github.com/casey)) ### 1.50.0 - Date: 2026-04-19 - Version: 1.50.0 - Original notes: https://github.com/casey/just/releases/tag/1.50.0 - Permalink: https://whatsnew.fyi/product/just/releases/1.50.0 - **added** — Filter `--choose` by `--group` - **added** — Add `[android]` recipe attribute - **added** — Add `module_path()` function - **fixed** — Preserve trailing comments when formatting - **fixed** — Preserve comments before `[doc]` attribute - **fixed** — Allow comments after unexports - **changed** — Stabilize `--fmt` subcommand - **changed** — Ignore trailing `::` on last argument - **changed** — Complete files and directories when completing arguments - **changed** — Include `module_path` field in JSON - **changed** — Partially collapse blank lines between items - **changed** — Omit defaults when formatting settings ###### Added - Filter `--choose` by `--group` ([#3298](https://github.com/casey/just/pull/3298) by [casey](https://github.com/casey)) - Add `[android]` recipe attribute ([#2884](https://github.com/casey/just/pull/2884) by [duncanawoods](https://github.com/duncanawoods)) - Add `module_path()` function ([#3270](https://github.com/casey/just/pull/3270) by [casey](https://github.com/casey)) ###### Fixed - Preserve trailing comments when formatting ([#3282](https://github.com/casey/just/pull/3282) by [casey](https://github.com/casey)) - Preserve comments before `[doc]` attribute ([#3275](https://github.com/casey/just/pull/3275) by [casey](https://github.com/casey)) - Allow comments after unexports ([#3264](https://github.com/casey/just/pull/3264) by [casey](https://github.com/casey)) ###### Changed - Stabilize `--fmt` subcommand ([#3301](https://github.com/casey/just/pull/3301) by [casey](https://github.com/casey)) - Ignore trailing `::` on last argument ([#3300](https://github.com/casey/just/pull/3300) by [casey](https://github.com/casey)) - Complete files and directories when completing arguments ([#3299](https://github.com/casey/just/pull/3299) by [casey](https://github.com/casey)) - Include `module_path` field in JSON ([#3288](https://github.com/casey/just/pull/3288) by [casey](https://github.com/casey)) - Partially collapse blank lines between items ([#3274](https://github.com/casey/just/pull/3274) by [casey](https://github.com/casey)) - Omit defaults when formatting settings ([#3268](https://github.com/casey/just/pull/3268) by [casey](https://github.com/casey)) ###### Misc - Fix `read()` description ([#3295](https://github.com/casey/just/pull/3295) by [casey](https://github.com/casey)) - Note that pull requests are not currently being accepted ([#3289](https://github.com/casey/just/pull/3289) by [casey](https://github.com/casey)) - Improve completer config parsing ([#3287](https://github.com/casey/just/pull/3287) by [casey](https://github.com/casey)) - Test that aliases complete with environment variable ([#3286](https://github.com/casey/just/pull/3286) by [casey](https://github.com/casey)) - Replace unnecessary raw strings ([#3281](https://github.com/casey/just/pull/3281) by [casey](https://github.com/casey)) - Fix test string indentation ([#3280](https://github.com/casey/just/pull/3280) by [casey](https://github.com/casey)) - Document `assert()` in readme ([#3279](https://github.com/casey/just/pull/3279) by [casey](https://github.com/casey)) - Replace dashes with underscores when using `--evaluate-format shell` ([#3278](https://github.com/casey/just/pull/3278) by [casey](https://github.com/casey)) - Fix readme typos ([#3277](https://github.com/casey/just/pull/3277) by [casey](https://github.com/casey)) - Test multi-line recipe comments ([#3276](https://github.com/casey/just/pull/3276) by [casey](https://github.com/casey)) - Document `set no-exit-message` and `[exit-message]` ([#3269](https://github.com/casey/just/pull/3269) by [casey](https://github.com/casey)) - Refactor end-of-file handling in lexer ([#3267](https://github.com/casey/just/pull/3267) by [casey](https://github.com/casey)) - Fix end-of-file parsing ([#3266](https://github.com/casey/just/pull/3266) by [casey](https://github.com/casey)) - Update softprops/action-gh-release to 2.6.1 ([#3253](https://github.com/casey/just/pull/3253) by [casey](https://github.com/casey)) - Include bash completion script in crate ([#3252](https://github.com/casey/just/pull/3252) by [casey](https://github.com/casey))