1.27.0
casey/just1.27.0May 25, 2024by github-actions[bot]
AI Summary
Version 1.27.0 is a substantial release adding numerous new functions (source_file, source_directory, shell, encode_uri_component, choose, prepend, append), recipe groups, shell-expanded strings, predefined constants, and the --global-justfile flag. This release also adds environment variable support for command-line options, a --man subcommand, and various quality-of-life improvements.
Key Highlights
- Add recipe groups for organizing recipes ([#1842])
- Add source_file() and source_directory() functions for path resolution ([#2088])
- Add shell() function for running external commands ([#2047])
- Add shell-expanded strings for dynamic path evaluation ([#2055])
- Add --global-justfile flag for cross-project justfiles ([#1846])
- Add predefined constants and --man subcommand ([#2054], [#2041])
New Features
- Add `[doc]` attribute to set and suppress documentation comments ([#2050])
- Add source_file() and source_directory() functions ([#2088])
- Add recipe groups ([#1842])
- Add shell() function for running external commands ([#2047])
- Add `--global-justfile` flag ([#1846])
- Add shell-expanded strings ([#2055])
- Add `encode_uri_component` function ([#2052])
- Add `choose` function for generating random strings ([#2049])
- Add predefined constants ([#2054])
- Allow setting some command-line options with environment variables ([#2044])
- Add prepend() function ([#2045])
- Add append() function ([#2046])
- Add --man subcommand ([#2041])
- Make `dotenv-path` relative to working directory ([#2040])
- Add `assert` expression ([#1845])
- Add 'allow-duplicate-variables' setting ([#1922])
Full Release Notes
### Changed - Use cache dir for temporary files ([#2067](https://github.com/casey/just/pull/2067)) ### Added - Add `[doc]` attribute to set and suppress documentation comments ([#2050](https://github.com/casey/just/pull/2050) by [neunenak](https://github.com/neunenak)) - Add source_file() and source_directory() functions ([#2088](https://github.com/casey/just/pull/2088)) - Add recipe groups ([#1842](https://github.com/casey/just/pull/1842) by [neunenak](https://github.com/neunenak)) - Add shell() function for running external commands ([#2047](https://github.com/casey/just/pull/2047) by [gyreas](https://github.com/gyreas)) - Add `--global-justfile` flag ([#1846](https://github.com/casey/just/pull/1846) by [neunenak](https://github.com/neunenak)) - Add shell-expanded strings ([#2055](https://github.com/casey/just/pull/2055)) - Add `encode_uri_component` function ([#2052](https://github.com/casey/just/pull/2052) by [laniakea64](https://github.com/laniakea64)) - Add `choose` function for generating random strings ([#2049](https://github.com/casey/just/pull/2049) by [laniakea64](https://github.com/laniakea64)) - Add predefined constants ([#2054](https://github.com/casey/just/pull/2054)) - Allow setting some command-line options with environment variables ([#2044](https://github.com/casey/just/pull/2044) by [neunenak](https://github.com/neunenak)) - Add prepend() function ([#2045](https://github.com/casey/just/pull/2045) by [gyreas](https://github.com/gyreas)) - Add append() function ([#2046](https://github.com/casey/just/pull/2046) by [gyreas](https://github.com/gyreas)) - Add --man subcommand ([#2041](https://github.com/casey/just/pull/2041)) - Make `dotenv-path` relative to working directory ([#2040](https://github.com/casey/just/pull/2040)) - Add `assert` expression ([#1845](https://github.com/casey/just/pull/1845) by [de1iza](https://github.com/de1iza)) - Add 'allow-duplicate-variables' setting ([#1922](https://github.com/casey/just/pull/1922) by [Mijago](https://github.com/Mijago)) ### Fixed - List modules in source order with `--unsorted` ([#2085](https://github.com/casey/just/pull/2085)) - Show submodule recipes in --choose ([#2069](https://github.com/casey/just/pull/2069)) - Allow multiple imports of the same file in different modules ([#2065](https://github.com/casey/just/pull/2065)) - Fix submodule recipe listing indentation ([#2063](https://github.com/casey/just/pull/2063)) - Pass command as first argument to `shell` ([#2061](https://github.com/casey/just/pull/2061)) - Allow shell expanded strings in mod and import paths ([#2059](https://github.com/casey/just/pull/2059)) - Run imported recipes in root justfile with correct working directory ([#2056](https://github.com/casey/just/pull/2056)) - Fix output `\r\n` stripping ([#2035](https://github.com/casey/just/pull/2035)) ### Misc - Forbid whitespace in shell-expanded string prefixes ([#2083](https://github.com/casey/just/pull/2083)) - Add Debian and Ubuntu install instructions to readme ([#2072](https://github.com/casey/just/pull/2072)) - Remove snap installation instructions from readme ([#2070](https://github.com/casey/just/pull/2070)) - Fallback to wget in install script if curl isn't available([#1913](https://github.com/casey/just/pull/1913) by [tgross35](https://github.com/tgross35)) - Use std::io::IsTerminal instead of atty crate ([#2066](https://github.com/casey/just/pull/2066)) - Improve `shell()` documentation ([#2060](https://github.com/casey/just/pull/2060) by [laniakea64](https://github.com/laniakea64)) - Add bash completion for snap ([#2058](https://github.com/casey/just/pull/2058) by [albertodonato](https://github.com/albertodonato)) - Refactor list subcommand ([#2062](https://github.com/casey/just/pull/2062)) - Document working directory ([#2053](https://github.com/casey/just/pull/2053)) - Replace FunctionContext with Evaluator ([#2048](https://github.com/casey/just/pull/2048)) - Update clap to version 4 ([#1924](https://github.com/casey/just/pull/1924) by [poliorcetics](https://github.com/poliorcetics)) - Cleanup ([#2026](https://github.com/casey/just/pull/2026) by [adamnemecek](https://github.com/adamnemecek)) - Increase --list maximum alignable width from 30 to 50 ([#2039](https://github.com/casey/just/pull/2039)) - Document using `env -S` ([#2038](https://github.com/casey/just/pull/2038)) - Update line continuation documentation ([#1998](https://github.com/casey/just/pull/1998) by [laniakea64](https://github.com/laniakea64)) - Add example using GNU parallel to run tasks in concurrently ([#1915](https://github.com/casey/just/pull/1915) by [amarao](https://github.com/amarao)) - Placate clippy: use `clone_into` ([#2037](https://github.com/casey/just/pull/2037)) - Use --command-color when printing shebang recipe commands ([#1911](https://github.com/casey/just/pull/1911) by [avi-cenna](https://github.com/avi-cenna)) - Document how to use watchexec to re-run recipes when files change ([#2036](https://github.com/casey/just/pull/2036)) - Update VS Code extensions in readme ([#2034](https://github.com/casey/just/pull/2034)) - Add rust:just repology package table to readme ([#2032](https://github.com/casey/just/pull/2032))