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))