Skip to content

Latest commit

 

History

History
560 lines (328 loc) · 17.7 KB

File metadata and controls

560 lines (328 loc) · 17.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.13.5 - 2026-03-24

Changed

  • Bump all updatable Go dependencies to their latest versions as of this date.

0.13.4 - 2026-03-24

Changed

  • Bump charm.land dependencies.

0.13.3 - 2026-03-24

Fixed

  • Align USAGE and SYNOPSIS columns across all groups in stave -l/--list output.
  • Isolate git hook tests from user global config (core.hooksPath). Closes #90.

0.13.2 - 2026-03-07

Changed

  • Address gosec lint in pkg/watch/watch.go.

0.13.1 - 2026-03-06

Changed

  • Bump Go version to 1.25.8 (and update dependencies).

0.13.0 - 2026-03-04

Changed

  • Simplify --list output by merging NAME and USAGE columns into a single USAGE column (while still preserving original color-coding & annotations that NAME column previously had).

0.12.0 - 2026-02-26

Changed

  • Bump Go version to 1.25.7 (and update dependencies).

0.11.1 - 2026-02-21

Changed

  • Bump all updatable Go dependencies to their latest versions as of this date.

0.11.0 - 2026-02-21

Changed

  • Instead of the main Go file template being used to always generate a file called stave_output_file.go, switch to deduped filenames (based on a content hash and the current PID).

0.10.10 - 2026-02-19

Changed

  • Change pre-push trufflehog hook to only scan changes, rather than entire repo.

0.10.9 - 2026-02-19

Fixed

  • Downgrade dependencies to preserve compatibility with Go 1.24.

0.10.8 - 2026-02-19

Changed

  • Bump all updatable Go dependencies to their latest versions as of this date.

0.10.7 - 2026-02-19

Fixed

  • Maintenance release to fix homebrew tap issue.

0.10.6 - 2026-02-19

Added

  • Secrets scanning (based on trufflehog GitHub action) in CI.
  • Wire in trufflehog to project's stavefile.gp

0.10.5 - 2026-01-31

Changed

  • CHANGELOG.md correction.

0.10.4 - 2026-01-31

Changed

  • Bumped yaklabco/direnv to v2.37.1.14.

0.10.3 - 2026-01-28

Fixed

  • Removed remove replace directive in go.mod.

0.10.2 - 2026-01-28

Changed

  • Bump all updatable Go dependencies to their latest versions as of this date.

0.10.1 - 2026-01-28

Changed

  • CHANGELOG.md correction.

0.10.0 - 2026-01-28

Fixed

  • Reference to root-command flags in spf13/cobra usage.

Added

  • Design document for Stave Spells - a scaffolding and code generation system.

0.9.10 - 2026-01-16

Changed

  • Made changelog.FindDefaultBase(...) function public.

0.9.9 - 2026-01-16

Changed

  • Bumped Go version to 1.24.12, updated 3rd-party Go dependencies.

0.9.8 - 2026-01-15

Fixed

  • Respect -f/--force flag in stave --hooks subcommands.

0.9.7 - 2026-01-14

Fixed

  • Attend to log.directory config value in svu config reading.

0.9.6 - 2026-01-08

Changed

  • ContainsFile function, used in changelog validation, now uses strings.Contains for file matching. This means that as long as there is a file named CHANGELOG.md in the list, it will be considered a match, regardless of whether that files sits in the repo root or not.

0.9.5 - 2026-01-08

Changed

  • "Double-dip" running of golangci-lint in stavefile.go: run once with --fix & without reporting exit code, then run a second time without --fix & report exit code as well as any output.
  • Change test TestTransitiveHashFast to not be parallelized.

0.9.4 - 2026-01-07

Fixed

  • More handling of complex tags in changelog validation functions.

0.9.3 - 2026-01-07

Fixed

  • Handling of complex tags in changelog validation functions.

0.9.2 - 2026-01-07

Fixed

  • Handling of complex URLs in changelog.Linkify* functions.

0.9.1 - 2026-01-07

Fixed

  • Handling of svu config file in pkg/changelog code.
  • Propagation of working dir in hooks processing.

0.9.0 - 2026-01-07

Added

  • Ability to set workdir field for hooks. See documentation for details.

0.8.3 - 2026-01-03

Changed

  • Improvements to display of default targets in -l/--list functionality.

0.8.2 - 2026-01-03

Changed

  • Bumped yaklabco/direnv to v2.37.1.12.

0.8.1 - 2026-01-02

Added

  • More unit tests.

0.8.0 - 2026-01-02

Added

  • Direnv support for environment management, via stave --direnv [direnv-subcommand] [args...]. See documentation for details.

0.7.0 - 2025-12-31

Added

  • Support for running a Default target in a namespace when only the namespace name is provided as an argument.

0.6.6 - 2025-12-25

Fixed

  • Type-validation on st.F-wrapped arguments passed to watch.Deps.

0.6.5 - 2025-12-25

Added

  • st.ActiveContext() function to retrieve the context of the nearest active target from the call stack.

Changed

  • Shell commands in pkg/sh (e.g., sh.Run, sh.Output) now automatically derive from Stave's active context, allowing them to be cancelled by timeouts or file changes in watch mode. The watch-specific shell helpers in pkg/watch have now been removed.

Fixed

  • Panic propagation in st.Deps: if a dependency panics, subsequent calls now correctly re-propagate the panic instead of silently returning a nil error.
  • Watch mode improvements:
    • Support for multiple targets: all specified targets are now re-run upon file changes.
    • Non-blocking re-runs: re-running one target no longer blocks others.
    • Activation logic: fixed issues where watch mode wouldn't activate correctly depending on target order.
    • Safety: restricted watch mode activation to explicitly requested targets to prevent infinite loops from transitive dependencies.
  • Fixed potential out-of-bounds panic when multiple variables are declared on a single line in a stavefile (e.g., var A, Default = 1, Target).

Removed

  • Redundant shell-helper functions from pkg/watch (watch.Run, watch.Output, etc.), as the standard helpers in pkg/sh are now automatically context-aware.

0.6.4 - 2025-12-24

Removed

0.6.3 - 2025-12-23

Changed

  • Improvements to doc strings and Clean target in --init stavefile template.

0.6.2 - 2025-12-23

Changed

  • Use stave check:gitStateClean in checks.yml workflow instead of cumbersome bash code.

0.6.1 - 2025-12-23

Fixed

  • Removed erroneous disabling of changelog functionality in .goreleaser.yaml, so that --release-notes=... command-line argument is respected.

0.6.0 - 2025-12-23

Added

  • ExtractSection(...) function to extract a section from a changelog file, with ability to extract latest (numbered) section if no explicit section specified. Useful in generating release notes from manually-curated, Keep a Changelog-style changelog.
  • Snapshot target in stave's own stavefile.go
  • Prep.GitStateClean target in stave's own stavefile.go

Changed

  • Generate stave's own release notes from changelog using ExtractSection(...) function.
  • Some refactoring of stave's own stavefile.go
  • stave's own Check.PrePush now calls Prep.LinkifyChangelog (which is idempotent, so will no-op if changelog is already linkified), followed by Check.GitStateClean, as dependencies. This means that if changelog has not been linkified beforehand, attempting to push the branch will fail the Check.PrePush check on uncommitted changes.

0.5.4 - 2025-12-22

Changed

  • Yet more minor improvements to goreleaser config for Homebrew handling of completion files.

0.5.3 - 2025-12-22

Changed

  • More minor improvements to goreleaser config for Homebrew handling of completion files.

0.5.2 - 2025-12-22

Added

  • Post-install Homebrew message (a.k.a. "caveats") about how to enable completions.

Fixed

  • More fixes to Homebrew release pipeline, to ensure completion files are properly included in formula.

0.5.1 - 2025-12-22

Fixed

  • Homebrew release pipeline, including automated generation of completions.

0.5.0 - 2025-12-22

Added

  • Command-line completion of targets (via stave completion <shell_name>, or by simply installing stave via Homebrew).

0.4.1 - 2025-12-22

Fixed

  • Incorporated watch.Deps(...), as well as mixed st.Deps/watch.Deps dependency chains, into circular dependency detection logic.

0.4.0 - 2025-12-21

Added

0.3.4 - 2025-12-16

Changed

  • Outdated outputln string in main app stavefile.go file.

0.3.3 - 2025-12-16

Removed

  • Extra printing of errors in main.go (ExecuteWithFang(...) already pretty-prints error; eliminates duplicate error printing).

0.3.2 - 2025-12-16

Changed

  • Organized targets in project's own stavefile.go using namespaces.

Fixed

  • Remove extra padding added to SYNOPSIS header (added in word-wrapping feature) to prevent line overflow.

0.3.1 - 2025-12-15

Added

  • Word-wrapping in stave -l/--list output.

0.3.0 - 2025-12-15

Added

  • Enhanced stave -l output with Lipgloss styling and table formatting.
  • Color auto-detection via st.ColorEnabled() respecting NO_COLOR standard.

Changed

  • List output (-l) now handled by stave binary, not compiled output.

Removed

  • Unused st.EnableColor() function (use st.ColorEnabled() instead).
  • Dead list code from compiled mainfile template.

0.2.8 - 2025-12-12

Changed

  • Fix some inaccuracies in CLI usage strings.

0.2.7 - 2025-12-12

Changed

  • Docs: more updates & improvements to documentation.

0.2.6 - 2025-12-11

Changed

  • Lots of updates to documentation. See docs/index.md and links therein.
  • Bump all updatable Go dependencies to their latest versions as of this date.

0.2.5 - 2025-12-10

Added

  • Section on using stave in CI has been added to the README.

0.2.4 - 2025-12-10

Added

  • Installation instructions for installing via Homebrew.

Changed

  • Simplified how env vars are nullified in TestGo build target.

0.2.3 - 2025-12-10

Changed

  • Replace dependency on goctx's fsutils with an "in-house" fsutils.

0.2.2 - 2025-12-10

Added

  • Added changelog.NextTag(), which returns the next version prefixed with "v" (in contrast to changelog.NextVersion(), which strips the v).

0.2.1 - 2025-12-09

Fixed

  • Maintenance release to ensure proper propagation to sum.golang.org.

0.2.0 - 2025-12-09

Added

  • New sh.Piper(...) and sh.PiperWith(...) functions.

Changed

  • Refactored internal/env -> pkg/env to expose env functions publicly.

0.1.3 - 2025-12-09

Changed

  • When calculating the next version to-be-released, call svu code programmatically instead of running the executable.

0.1.2 - 2025-12-08

Changed

  • Upgraded caarlos0/svu to v3, and removed deprecated --force-patch-increment flag from all its invocations.

0.1.1 - 2025-12-08

Changed

  • Drop minimum Go version to 1.24.11 (was: 1.25.4) (by consuming v0.14.3 of goctx instead of the older v0.14.2, which, despite being older, had a higher minimum Go version requirement).

0.1.0 - 2025-12-08

Added

  • Git hooks management. Stave can manage your git hooks, implementing both native hooks management, and husky-based hooks management for support of legacy projects. See docs/user-guide/hooks.md for details.
  • Public Go functions, exported as pkg/changelog, for automatically enforcing keep-a-changelog-compliant CHANGELOG formatting; and, separately, for enforcing that every push includes an update to the CHANGELOG (each can be used / not used separately from one another). Also, changelog.NextVersion(), which automatically calculates next release version based on Conventional Commits.
  • --dryrun mode.
  • Automated detection of circular dependencies among stavefile targets.
  • Detailed API reference documentation as well as an architecture overview for contributors.
  • Pretty-printed debug logs, both in "outer" Stave execution and in execution of compiled stavefile.
  • --exec flag to execute arbitrary command-lines under Stave.
  • CHANGELOG.md! (And first formally-versioned release of Stave.)

Changed

  • Added parallelism-by-default to use of Go tools from inside Stave.
  • Parallelized tests where possible, including locking mechanism to prevent parallel tests in same testdata/(xyz/) subdir.