Skip to content

v3.1.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Feb 23:49
· 190 commits to main since this release
v3.1.0
69e3ff9

v3.1.0 (2024-02-13)

Known issues

  • Fixed in 3.1.1: --doctor always reports "Unknown builder, no identity set"

Major feature: Add support for CHEZMOI_SOURCE_FILE

With chezmoi 2.46.1 and newer the modify script no longer needs to be a template.
Chezmoi now exports the environment variable CHEZMOI_SOURCE_FILE which is all
that chezmoi_modify_manager needs. The script can still be a template if you
need to for other reasons.

chezmoi_modify_manager --add will now auto detect which version of chezmoi is
in use on the current system and try to use the most performant approach (no
template) if possible. If you use mixed versions you can override this by exporting
the environment variable CHEZMOI_MODIFY_MANAGER_ASSUME_CHEZMOI_VERSION=2.46.0,
forcing chezmoi_modify_manager to treat the chezmoi version as older.

In addition chezmoi_modify_manager --add --style now works differently and supports:

  • --style=path: Default on newer chezmoi versions, will use the new source auto
    directive and not add a template file
  • --style=path-tmpl: Default on older chezmoi versions. Will add as a template
    file, use CHEZMOI_MODIFY_MANAGER_ASSUME_CHEZMOI_VERSION as described above
    to switch between source auto or templated. Even on newer versions this is
    a shortcut compared to renaming to .tmpl yourself if you need templating for
    other reasons.
  • --style=auto is the actual default and selects one of the above options.
  • --style=src still exists and still isn't recommended.

Additional documentation can be found here

A bit of quickly hacked together shell script for converting to the new format (for a
minor performance win) is available in #80 (comment) though beware that it isn't well
tested. Caution and being prepared to to git reverts is advised.

Minor feature: Improve --doctor

  • Warn about old chezmoi in --doctor (no support for CHEZMOI_SOURCE_FILE)
  • Add info to --doctor on where the binary came from (helps with issue reports)
  • Add colour to output of --doctor
  • Improve --doctor output by tracking worst level of issue found

Other Features

  • Switch to dep: syntax. This remove some internal cargo features from the build
    system making it cleaner for users.
  • Ring now supports all platforms. Drop OpenSSL support entirely. This was never
    used in any official builds but remained an option for some platforms like
    PPC and RISC-V until ring/rustls supported those.
  • Upgrade various dependencies, also upgrade MSRV (Minimum Supported Rust Version) to 1.74 as a result

Documentation

  • Document how source specifications work
  • Update README with relevant changes for source auto
  • Document source auto in --help-syntax
  • Add notes for packagers
  • Internal docs: Document the fast path concept in design decisions.
  • Clarify MSRV policy & build requirements