2024-01-28 07:47:09 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 1.2.0
Released 2023-01-27 - v1.2.0
Features:
- If a garden file has no trees defined at all then an implicit tree called
`.` will now be synthesized into existence. The presence of this implicit tree
allows garden files that define just the current directory as a tree to omit
the entire `trees` section altogether. This consequently makes it easier
to use garden as a simple command runner because the `commands` section
is the only section required in order to run `garden` commands.
- When `garden.root` is not configured `garden` will behave as if
`garden.root` is configured to `${GARDEN_CONFIG_DIR}`. This allows garden
files to omit `garden.root` from their configuration in typical scenarios.
- Configuring `garden.root` to an empty string (`""`) will behave as if
`garden.root` is configured to the current directory from which `garden`
was run.
- When a `garden.yaml` file does not exist in the current directory then garden
will walk up the file system searching for `garden.yaml` or the name specified
using `garden -c <name>`. Garden will behave as if it were launched from the
directory containing the garden file when a configuration file is found.
- The `GARDEN_CEILING_DIRS` and `GIT_CEILING_DIRS` environment variables can be
used to limit the `garden.yaml` discovery by preventing `garden` from
traversing into and beyond the specified directories when discovering garden
files.
- `garden exec`, `garden cmd` `garden grow`, `garden ls` and custom garden
commands can now filter the trees they operate over by passing a glob pattern
using `-t | --trees` option. These commands will only operate on the trees
whose names match the pattern. This allows you to specify a garden as the tree
query and use the full set of environment variables from all trees in the
query while executing commands over a subset of the trees in that garden.
- `garden init` will now add the current directory to the `trees` block
when the current directory contains a Git repository. Use `garden init --empty`
to disable this behavior.
Development:
- The `shlex` dependency was upgraded to `1.3.0`, which includes fixes for
[RUSTSEC-2024-0006](https://rustsec.org/advisories/RUSTSEC-2024-0006.html) a.k.a.
\
[GHSA-r7qv-8r2h-pg27](https://github.com/comex/rust-shlex/security/advisories/GHSA-r7qv-8r2h-pg27).
|
2024-01-16 22:27:13 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 1.1.0
v1.1.0
Features
- garden ls now displays information about trees, groups, gardens and commands.
- garden ls -c (i.e. --no-commands) hides command details from the output.
- garden plant -s (i.e. --sort) sorts all of the configured trees entries
after planting the specified trees.
- garden exec -n (i.e. --dry-run) performs a trial run without executing
any commands.
- garden.shell-errexit can now be configured to false in garden.yaml to
opt-out of using the -e exit-on-error shell option when running custom
commands.
- garden.shell can now be configured to bun, fish, node, perl and python3
in addition to the traditional bash, zsh, dash, ksh and sh shells.
This allows you to use these interpreters to run custom commands.
Development:
- Garden is now using shellexpand v3.
|
2023-12-28 21:45:02 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 1.0.0
v1.0.0
Features
- Commands can now specify pre-commands and post-commands that are run
before/after the specified command. (#3) (documentation)
- The default origin remote name can now be configured using
tree.<tree>.default-remote. (#16)
- Commands now display the tree's current branch alongside the tree name. (#18)
- garden -vv exec and garden -vv shell now display the command being run.
Packaging:
- garden can now be installed as a nix flake package. A flake.nix file is now
provided. (#16)
|
2023-11-20 08:44:35 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 0.9.1
v0.9.1
Fixes
- garden -D name=value now overrides variables in all scopes. Variables
defined in tree scope were not subject to overrides and will now get
properly overridden by the --define / -D command-line options.
v0.9.0
Features
- garden grow now sets git config remote.$name.tagopt --no-tags when adding
additional remotes. This prevents accidentally fetching tags when
interacting with remotes.
|
2023-07-19 07:59:35 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 0.8.1
v0.8.1
Fixes
- garden grow was fixed to detect existing branches when growing
- git worktree-created child worktrees.
Development:
- strum is now used to implement FromStr for enum ColorMode.
- is-terminal is now used instead of the unmaintained atty crate.
|
2023-07-16 23:16:14 by pin | Files touched by this commit (3) | |
Log message:
devel/garden: update to 0.8.0
v0.8.0
Features:
- garden now supports a grafts feature that allows you to stitch configuration
entities from separate garden files into a graft-specific namespace.
Trees and variables from grafted configurations can be referenced using
graft:: namespace qualifiers.
- garden grow can now configure upstream branches.
- garden grow can now configure gitconfig settings with multiple values using
git config --add <name> <value>.
v0.7.0
Features:
- Trees, Groups, Gardens and Commands defined in the top-level garden.yaml
can now override entries defined via garden.includes. Configuration entities
now follow "last one wins" semantics -- if the same entity is defined in
multiple includes files then only the final definition will be used. (#14)
(#15)
- Trees now sparsely override existing entries. This behavior allows a tree
definition to replace just the url field, or to replace individual tree
commands while retaining the rest. Use replace: true in a Tree definition in
order to completely replace the existing entry instead of sparsely
overridding it.
- Improved shell completions for garden, garden init and garden plant.
Packaging
- 0323pin packaged garden for pkgsrc/NetBSD and merged the package into the
main branch! (#13)
|
2023-01-22 10:01:46 by pin | Files touched by this commit (5) |
Log message:
garden: import package
Garden streamlines development workflows that involve a loosely-coupled set
of multiple, independent Git trees.
Garden allows you to define dynamic relationships and workflows between these
repositories using a declarative YAML config file that can be shared and used
as a bootstrapping mechanism for getting a auditable, from-source project
cloned, built, installed and running with minimal effort for consumers
of a Garden file.
Garden sits above any individual project's build scripts and conventions.
Garden is all about making it easy to remix and reuse libraries maintained in
seperate Git repositories.
|