What's new in chezmoi 2.48.0
Apr 27, 2024
- Features:
- e04dcf feat: Add --tree flag to unmanaged command
- e3 feat: Add --tree flag to managed command
- e2be feat: Add --tree flag to ignored command
- a9d0e4 feat: Include name of target in error message
- Fixes:
- c758a1c fix: Apply chezmoiignore to dirs in external archives
- dfcfcf fix: Remove unmanaged files from exact_ directories containing external files
- ff43 fix: Better detect username on Android/Termux systems
- Documentation updates:
- b1b40b2 docs: Add link to article
- c817ce docs: Document --tree flag
- fab4b docs: Fix origin URL in quick start guide
New in chezmoi 2.47.4 (Apr 13, 2024)
- Fixes:
- d6ad485 fix: Fix potential panic when textconv interpreter is empty
- b4df44d fix: Fix panic on empty external
- Documentation updates:
- 872c584 docs: Add troubleshooting entry on missing /bin/bash on Nix
- 8b2a435 docs: Add install.doctor to related software
- 3a3dd13 docs: Add links to articles
New in chezmoi 2.47.3 (Apr 1, 2024)
- Fixes:
- 2e4236c fix: Don't traverse into ignored directories when adding files
- 8a83dcc fix: Skip adding entries in external dirs instead of erroring
- b366d0e fix: Fix panic when adding children in exact_ dirs
- ad77158 fix: Increase range of types accepted by promptChoice template function
New in chezmoi 2.47.2 (Mar 17, 2024)
- Fixes:
- Fix: pass the --needed flag to pacman
- Fix: Remove fig support
- Fix: Explicitly tell user when then should use a config file template
- Fix: Handle copies in automatic commit messages
- Fix: Add missing newlines in error messages
- Documentation updates:
- Docs: Add link to article
- Docs: Fix incomplete sentence in usage docs
- Docs: Add link to article
New in chezmoi 2.47.1 (Mar 3, 2024)
- Fixes:
- 59764c8 fix: Fix panic in unmanaged on some dir permission errors
- dc99169 fix: Make splitList return []any
- 0405763 fix: Set CHEZMOI_ environment variables for plugins
- 1f44189 fix: Ensure that all .chezmoi.config template variables have simple types
- 5bb87f1 fix: a grammar mistake
- Documentation updates:
- 85d015b docs: Refactor developer guide
- 885487b docs: Add link to blog post
- 18c99c3 docs: Add link to video
New in chezmoi 2.47.0 (Feb 26, 2024)
- Features:
- 6788c54 feat: 1Password Secrets Automation Support
- Fixes:
- 3b3541c fix: Ensure default mode is set
- c6b867b fix: Fix marshaling of severities
- 523fd84 fix: Fix marshaling of autobools
- 5224e11 fix: Fix marshaling of absolute paths
- e925b0f fix: Fix --keep-going flag for unmanaged command
- 5201ddc fix: Don't leak internal default sentinel values in template data
- 1abcfa5 fix: Fix panic when merging unmanaged file
- c0b7e92 fix: Don't attempt to add entries in external_ directories
- d14bdd5 fix: Use uname -o to detect Android in install script
- 302a3b8 fix: Move documentation of --output flag to correct section
- ccde612 fix: Prioritize $HOME when Cygwin or msys2 is detected
- Documentation updates:
- 3e5f0c8 docs: Fix type of .chezmoi.kernel and .chezmoi.osRelease variables
- 0269f80 docs: Update docs on auto applying changes on edit in VIM
- b5fc7b6 docs: Document config vars for command-specific flags
- f52062e docs: Cross link "See REF" in config variables doc
New in chezmoi 2.46.1 (Feb 11, 2024)
- Features:
- Feat: Add update.apply configuration variable
- Feat: Set CHEZMOI_SOURCE_FILE env var for scripts
- Fixes:
- Fix: Fix age/rage check in doctor command
- Documentation updates:
- Docs: typo
- Other:
- Chore(deps-dev): bump ruff from 0.1.9 to 0.1.15 in /assets
New in chezmoi 2.46.0 (Jan 25, 2024)
- Features:
- Feat: Build for Android (Termux)
- Feat: Support rage as an alternative age encryption command
- Feat: Add re-add --recursive flag and make it the default
- Feat: Promote hooks to stable
- Feat: Promote HCP Vault Secrets template functions to stable
- Feat: Promote Doppler template functions to stable
- Feat: Promote edit --watch to stable
- Fixes:
- Fix: Defer lookup of git in $PATH for git-repo externals
- Fix: Change init to default to --config if --config-path is absent
- Fix: Handle more keepassxc-cli errors
- Fix: Reduce injection of terminal control characters into keepassxc-cli output
- Documentation updates
- Docs: Fix broken release history page
- Docs: links to testing-templates
- Docs: combine testing and debugging templates
- Docs: Add links to article and video
- Docs: add link
- Docs: Fix names of age recipients files config variables
New in chezmoi 2.45.0 (Jan 14, 2024)
- Features:
- 7d915c0 feat: Scan for secrets with gitleaks when adding files
- 404878c feat: Add add.encrypt configuration variable
- Fixes:
- 3436563 fix: Improve robustness of keepassxc-cli integration in open mode
- 49791f9 fix: Handle keepassxc-cli localization
- 85464dd fix: Restore user args to keepassxc-cli in cache password mode
- 9437b62 fix: Always use forward slashes to separate Windows paths
New in chezmoi 2.43.0 (Jan 3, 2024)
- Features:
- feat: Extend rbw and rbwFields template funcs to take extra args
- feat: Extend remove_ attribute to directories
- Fixes:
- fix: Fix detection of changes to remove_ directories
- fix: Only invoke diff pager if there is diff output
- fix: Handle implicit directories in externals
- fix: add missing command annotations
- fix: Make execute-template --init not read .chezmoitemplates
- fix: key.txt is not written to home, but home/.config
- Documentation updates:
- docs: Add upcoming changes to release history
- docs: Add link to article
- docs: Add links to articles
- docs: Fix guide on clearing state of run_onchange_ scripts
- Other"
- chore(deps-dev): bump ruff from 0.1.6 to 0.1.9 in /assets
New in chezmoi 2.42.3 (Dec 17, 2023)
- Features:
- 538169a feat: Remove nested subshell check
- 31780bf feat: Make mackupApplicationsDir func agnostic to mackup's installation method
- Documentation updates:
- ef01881 docs: Add github.com/xvzc/chezmoi.nvim to related software
- e530e7c docs: Add link to article
- 31e6207 docs: Add link to video
- 854ea06 docs: Add entry on declarative package installation
- 0cf9f29 docs: add warning for GitHub SSH key deletion
New in chezmoi 2.42.2 (Dec 2, 2023)
- Features:
- a9d389e feat: Add CHEZMOI_COMMAND_DIR env var for hooks
- Fixes:
- 649c758 fix: Fix fromJson template function deserializing non-objects
- c68ddac fix: Handle extra slashes in path arguments
New in chezmoi 2.42.1 (Nov 29, 2023)
- Fixes:
- d07689e fix: Set env vars from config file when re-reading config
New in chezmoi 2.42.0 (Nov 26, 2023)
- Features:
- 694977b feat: Preserve numeric types when reading from .chezmoidata JSON and JSONC files
- 1f11386 feat: Preserve integer values in fromJson and fromJsonc template funcs
- 711a39a feat: Add read-source-state hook
- Documentation updates:
- 47609a3 docs: Add admonitions linking remove and forget
- 8784a67 docs: Add links to blog posts
New in chezmoi 2.41.0 (Nov 14, 2023)
- Features:
- 26fd133 feat: Add git-commit-message to generate command
- c6688d2 feat: Make commit message templates regular templates
- f7c3745 feat: Add git.commitMessageTemplateFile config variable
- 1f016e8 feat: Add edit-config-template command
- Fixes:
- d9cb6b0 fix: Don't escape HTML characters in JSON strings
- Documentation updates:
- b94f954 docs: Document support for the passage password manager
- a1fba75 docs: add how-to for gpg ? age migration
- 8d58c3e docs: Fix default value of persistentState variable
- Other:
- e8ed4c4 refactor: Allow mkdocs build from any origin
New in chezmoi 2.40.4 (Oct 29, 2023)
- Fix: Make stdinIsATTY return false if --no-tty is passed.
New in chezmoi 2.40.3 (Oct 12, 2023)
- Features:
- b64f2bc feat: Add env config var as an alternative to scriptEnv
- f47c268 feat: Warn when overriding CHEZMOI_ env vars
- 7203d6b feat: Set CHEZMOI_ and scriptEnv env vars for all invoked commands
- Documentation updates:
- 319dd20 docs: Tidy up release notes
New in chezmoi 2.40.1 (Oct 9, 2023)
- Features:
- Fc56533 feat: Add Path Separator and Path List Separator to provided template values.
- 61f7ed1 feat: Ignore AppleDouble files in externals
- 4a52e5c feat: find[One]Executable in user-supplied paths
- Bb6f952 feat: Use Goreleaser's Chocolatey support
- Fixes:
- Eecf015 fix: Only invoke diff pager if command modifies filesystem
- 5c0140d fix: Don't use replace-executable for WinGet installations
- 7976373 fix: Add chattr +remove support for files
- Documentation updates:
- 784d38b doc: Add information how to ignore cache files in external dependencies
- 66070dc docs: Added an example for promptChoice
- 5f14f10 docs: Added an example for promptChoiceOnce
- C96a4b7 docs: Fix cross-function link references
New in chezmoi 2.40.0 (Sep 20, 2023)
- Features:
- 2858a0c feat: Implement the path-style flag for status
- 5918296 feat: Add plugin support
- 63cda81 feat: Allow overlapping, non-conflicting externals
- f15b158 feat: Add decryption of non-armored files to age command
- Fixes:
- cdd4f16 fix: Use diff pager for all diff output if configured
- 3667788 fix: provide a consistent error for cd to file
- Documentation updates:
- 284baf6 docs: Add links to articles
New in chezmoi 2.39.1 (Sep 6, 2023)
- Fixes:
- 46e13ed fix: Ensure default template data when reading .chezmoidata in subdir
- Documentation updates:
- fe10a69 docs: Improve developer experience under fish
- 5b738bd docs: Fix documentation on dirs vs content in .chezmoiignore
New in chezmoi 2.39.0 (Sep 3, 2023)
- Features:
- Acb8937 feat: add .chezmoi.targetFile template variable
- 205fd6c feat: Add age command
- F6947d3 feat: Add bitwardenSecrets template function
- Fixes:
- 40b711d fix: Handle .chezmoidata files in subdirectories when template has already been executed
- 6fa4fe4 fix: Update goreleaser changelog
- Documentation updates:
- A89e0e0 docs: Tweak location of private key in age onetime passphrase how-to
- Da9f3c6 docs: Use age command in onetime passphrase how-to
- Fe903d4 docs: Minor expansion of application order docs
- 02ffbd7 docs: Add link to article
New in chezmoi 2.38.0 (Aug 22, 2023)
- Other:
- chore: Update dependencies
- chore: Miscellaneous website improvements
- docs: Linuxbrew -> Homebrew
- feat: Add gitHubReleases and gitHubTags
- feat: Support nushell scripts on Windows
- docs: Improve documentation on using separate source files
- chore: Reformat long lines
- feat: Add promptChoice and promptChoiceOnce template functions
- fix: Fix minor issues with promptBool docs and errors
- chore: Generate release notes from git log, not GitHub
- chore: Remove dependency on go.uber.org/multierr
- chore: Use io/fs.Skip{All,Dir} sentinel errors
- chore: Bump golangci-lint to version 1.54.0
- chore: Build with Go 1.21.0
- chore: Update dependencies
- feat: Restore --autotemplate flag to add command
- docs: Document --source-path flag
- fix: Fix race condition in concurrent parsing of externals
New in chezmoi 2.37.0 (Aug 6, 2023)
- Feat: Read personal mackup config files by @twpayne in #3133
- Chore(deps): bump github/codeql-action from 2.20.1 to 2.21.2 by @dependabot in #3135
- Chore: Build with Go 1.20.7 by @twpayne in #3140
- Feat: Add support for Doppler by @equals03 in #3134
- Feat: Extend re-add command to accept an optional list of targets by @twpayne in #3146
- Chore: Update dependencies by @twpayne in #3150
- Fix: Avoid concurrent map access when evaluating multiple templates by @twpayne in #3155
- Feat: Add isExecutable template function by @twpayne in #3157
- Chore: Fix isExecutable tests on Windows by @twpayne in #3158
- Chore: Update dependencies by @twpayne in #3159
New in chezmoi 2.36.1 (Jul 30, 2023)
- Fix: Make detection of mackup config dir more robust
- Fix: Ensure that templates cannot modify each other's data
- Chore: Move core packages back to internal
New in chezmoi 2.36.0 (Jul 28, 2023)
- What's Changed:
- feat: Add .chezmoiexternals directory for multiple externals by @twpayne in #3108
- fix: Respect setting diff.pager to the empty string as disabling the pager by @twpayne in #3117
- chore: Update dependencies by @twpayne in #3124
- feat: Add undocumented mackup command by @twpayne in #3121
New in chezmoi 2.35.2 (Jul 19, 2023)
- chore: Pass WinGet GitHub Token to release job
New in chezmoi 2.35.1 (Jul 18, 2023)
- feat: Allow executable bits to be overridden in archive-file externals by @twpayne in #3102
- docs: Clarify use of exclude patterns in .chezmoiignore by @twpayne in #3103
- feat: Add work-around for Docker Desktop breaking /etc/hosts by @twpayne in #3104
- chore: Update dependencies by @twpayne in #3105
New in chezmoi 2.35.0 (Jul 16, 2023)
- Feat: Add archive-file externals by @twpayne in #3080
- Fix: Never consider localhost.localdomain in /etc/hosts as the FQDN by @twpayne in #3082
- Chore: Miscellaneous fixes by @twpayne in #3091
- Chore: Use golang/govulncheck-action by @twpayne in #3094
- Feat: Add support for HCP Vault Secrets by @twpayne in #3067
- Chore: Use Goreleaser's WinGet support by @twpayne in #3059
New in chezmoi 2.34.3 (Jul 4, 2023)
- fix: Check .chezmoiignore before protected paths by @twpayne in #3052
- chore: Add actionlint linter by @twpayne in #3053
- fix: Parse hostnames from all loopback addresses in /etc/hosts by @twpayne in #3055
- chore: Update dependencies by @twpayne in #3058
- fix: Respect persistentState config variable by @twpayne in #3066
- chore: Miscellaneous fixes by @twpayne in #3068
- docs: Remove reference to tar and /dev/stdin so code works on Windows by @Sacro in #3069
- chore: Update goreleaser config for version 1.19 by @twpayne in #3071
- fix: Drop Solaris and Illumos support by @twpayne in #3060
- chore(deps): bump github.com/rogpeppe/go-internal from 1.10.1-0.20230524175051-ec119421bb97 to 1.11.0 by @dependabot in #3073
- chore(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.1 by @dependabot in #3074
- chore(deps): bump reviewdog/action-misspell from 1.12.4 to 1.13.1 by @dependabot in #3075
- chore(deps): bump github/codeql-action from 2.20.0 to 2.20.1 by @dependabot in #3076
New in chezmoi 2.34.2 (Jun 17, 2023)
- chore: Simplify code by using strings.EqualFold, time.Before by @twpayne in #3038
- chore: Use http.NoBody instead of nil by @alexandear in #3040
- chore: Miscellaneous clean-ups by @twpayne in #3041
- fix: Handle multiple files in .chezmoidata directory by @twpayne in #3042
- chore: Update dependencies by @twpayne in #3043
- chore(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.6.0 by @dependabot in #3044
- chore(deps): bump dessant/lock-threads from 4.0.0 to 4.0.1 by @dependabot in #3045
- chore(deps): bump github/codeql-action from 2.3.5 to 2.20.0 by @dependabot in #3046
- chore(deps): bump goreleaser/goreleaser-action from 4.2.0 to 4.3.0 by @dependabot in #3047
- chore(deps): bump actions/checkout from 3.5.2 to 3.5.3 by @dependabot in #3048
New in chezmoi 2.34.1 (Jun 10, 2023)
- What's Changed:
- Chore: Build with Go 1.20.5 by @twpayne in #3030
- Feat: Add git.commitMessageTemplate configuration variable by @twpayne in #3032
New in chezmoi 2.34.0 (Jun 5, 2023)
- feat: Add support for .chezmoidata directory by @twpayne in #3009
- chore(deps): bump github/codeql-action from 2.3.3 to 2.3.5 by @dependabot in #3010
- chore(deps): bump actions/setup-go from 4.0.0 to 4.0.1 by @dependabot in #3012
- chore: Misc fixes by @twpayne in #3019
- chore: Update dependencies by @twpayne in #3018
- chore(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5 by @dependabot in #3011
- chore: Bump golangci-lint to version 1.53.1 by @twpayne in #3020
- fix: Fix init --debug flag by @twpayne in #3021
- feat: Add get.chezmoi.io/lb and chezmoi.io/getlb install scripts by @twpayne in #3024
- chore: Update dependencies by @twpayne in #3026
- fix: Fix parsing of flags to secret keyring delete command by @twpayne in #3027
New in chezmoi 2.33.6 (May 15, 2023)
- What's Changed:
- Chore(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3 by @dependabot in #2991
- Fix: Only create empty files if they have the empty_ attribute by @twpayne in #2997
- Chore: Refactor internal handling of remove_ directories by @twpayne in #2999
- Chore(editorconfig): Remove quotes from editorconfig file by @aarondill in #3000
- Fix: Set CHEZMOI_SOURCE_DIR env var in init when using .chezmoiroot by @twpayne in #3001
- Chore: Update dependencies by @twpayne in #3002
New in chezmoi 2.33.5 (May 11, 2023)
- chore: Build with Go 1.20.4 by @twpayne in #2970
- chore: Use github.com/alecthomas/assert instead of github.com/stretchr/testify by @twpayne in #2974
- fix: Fix commands for managed files in exact_ directories by @twpayne in #2980
- docs: Improved Bitwarden login documentation by @halostatue in #2955
- chore: Update dependencies by @twpayne in #2983
- chore(deps): bump github/codeql-action from 2.3.2 to 2.3.3 by @dependabot in #2986
- chore(deps): bump cpina/github-action-push-to-another-repository from 1.6 to 1.7 by @dependabot in #2987
- chore(deps): bump reviewdog/action-misspell from 1.12.3 to 1.12.4 by @dependabot in #2985
- fix: Ensure the sourceDir is updated before creating config file by @twpayne in #2989
New in chezmoi 2.33.4 (May 2, 2023)
- Fix: Fix init --promptBool for promptBoolOnce template function
- Docs: update encryption md to account for chezmoiroot
- Chore(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.3
- Chore(deps): bump github/codeql-action from 2.2.9 to 2.3.2
- Chore(deps): bump actions/checkout from 3.5.0 to 3.5.2
- Fix: Respect executable file modes in external_ directories
- Fix: Fix chezmoi rm with files in exact_ directories
New in chezmoi 2.33.3 (Apr 22, 2023)
- Fix: Correct capitalization of .chezmoi.config template variables by @twpayne in #2943
New in chezmoi 2.33.1 (Apr 8, 2023)
- chore: Update dependencies by @twpayne in #2889
- chore: Add rbw version check to doctor command by @twpayne in #2893
- chore(deps): bump sigstore/cosign-installer from 2.8.1 to 3.0.1 by @dependabot in #2897
- chore(deps): bump actions/cache from 3.2.6 to 3.3.1 by @dependabot in #2898
- chore(deps): bump github/codeql-action from 2.2.5 to 2.2.9 by @dependabot in #2899
- chore(deps): bump actions/checkout from 3.3.0 to 3.5.0 by @dependabot in #2900
- chore: Update dependencies by @twpayne in #2903
- chore: Update dependencies by @twpayne in #2908
- fix: Allow source dir to be a git worktree by @twpayne in #2911
- fix: Change where fish completions are installed by @J-M0 in #2912
- chore: Tidy up persistent state tests by @twpayne in #2914
- chore: Update dependencies by @twpayne in #2915
New in chezmoi 2.33.0 (Mar 24, 2023)
- What's Changed:
- Chore(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1 by @dependabot in #2856
- Docs: Miscellaneous fixes by @twpayne in #2860
- Fix: Don't list entries in git-repo externals as unmanaged by @twpayne in #2862
- Chore: Minor fixes by @twpayne in #2863
- Feat: Add support for ejson by @XaF in #2857
- Chore: Tidy up ejson default key dir by @twpayne in #2870
- Feat: Add jq template function by @twpayne in #2833
- Update dependencies by @twpayne in #2874
- Docs: Add missing jsonc to some formats by @bradenhilton in #2876
- Docs: Wait for elevated PS process to return by @alexvy86 in #2872
- Chore: Deprecate --autotemplate by @halostatue in #2877
- Update build infrastructure by @twpayne in #2881
- Feat: Set $CHEZMOI_VERBOSE based on --verbose by @halostatue in #2875
- Fix: Only set $CHEZMOI_VERBOSE when --verbose is set by @twpayne in #2883
New in chezmoi 2.32.0 (Mar 12, 2023)
- chore: Add test for target-path, .chezmoiscripts, and .chezmoiroot by @twpayne in #2811
- fix: Allow underscores and dots in GitHub dotfile repo name guesses by @twpayne in #2817
- Improve chezmoi cd command by @twpayne in #2823
- docs: Fix typo by @hezhizhen in #2829
- feat: Add support for the JSONC format by @twpayne in #2827
- chore: Add test that diff.exclude excludes dirs from external diff tool by @twpayne in #2830
- feat: Refuse to add chezmoi files to chezmoi by @twpayne in #2822
- feat: Add pre- and post-command hooks by @twpayne in #2832
- chore: Update dependencies by @twpayne in #2834
- chore: Tidy up nolint directives by @twpayne in #2842
- docs: Updated config / flags documentation information by @halostatue in #2843
- chore: Miscellaneous password manager cleanups by @twpayne in #2845
- chore: Remove +build comments from modules by @alexandear in #2846
- chore: Use run.go instead of deprecated lang-version by @alexandear in #2847
- feat: Add rbw template function for Bitwarden by @twpayne in #2841
- chore: Miscellaneous fixes by @twpayne in #2848
New in chezmoi 2.31.1 (Mar 2, 2023)
- chore: Bump golangci-lint to v1.51.2 by @twpayne in #2782
- docs: Improve documentation on git-repo externals by @twpayne in #2785
- chore: Update dependencies by @twpayne in #2788
- chore: Enable most govet linters by @twpayne in #2794
- chore: Update dependencies by @twpayne in #2795
- feat: Add Dashlane password manager support by @twpayne in #2792
- fix: Detect absolute paths in externals on Windows by @twpayne in #2796
- feat: Add Dashlane secure notes support by @XaF in #2797
- chore(deps): bump cpina/github-action-push-to-another-repository from 9e487f29582587eeb4837c0552c886bb0644b6b9 to 0a14457bb28b04dfa1652e0ffdfda866d2845c73 by @dependabot in #2802
- chore(deps): bump github/codeql-action from 2.2.1 to 2.2.5 by @dependabot in #2803
- chore(deps): bump actions/cache from 3.2.4 to 3.2.6 by @dependabot in #2804
- chore: Update dependencies by @twpayne in #2809
New in chezmoi 2.31.0 (Feb 17, 2023)
- feat: Print a warning when chezmoi add is called with an ignored entry by @twpayne in #2762
- feat: Cache GitHub API results by default to stay under rate limit by @twpayne in #2763
- feat: Display progress bars by default when stdout is a TTY by @twpayne in #2767
- feat(bitwarden): Grab attachment by object name by @cawaltrip in #2765
- fix: Eliminate [DEFAULT] section for fromIni map by @halostatue in #2770
- chore: Update dependencies by @twpayne in #2772
- feat: Add --with-stdin flag to execute-template command by @twpayne in #2774
- docs: Fix typo, improve grammar in init doc page by @bradenhilton in #2776
- docs: Improve documentation on externals by @twpayne in #2775
- chore: Update dependencies by @twpayne in #2781
New in chezmoi 2.30.1 (Feb 12, 2023)
- Add deleteValueAtPath and pruneEmptyDicts template functions by @twpayne in #2750
- feat: Extend toPrettyJson template function to take indent by @twpayne in #2751
- fix: Fix chezmoi target-path when using .chezmoiroot by @twpayne in #2755
- chore: Use strings.Cut{Prefix,Suffix} by @twpayne in #2756
New in chezmoi 2.30.0 (Feb 6, 2023)
- Feat: Add zstd compression support by @twpayne in #2715
- Feat: Add external_ attribute for directories by @twpayne in #2716
- Chore(deps): bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 by @dependabot in #2720
- Chore(deps): bump actions/checkout from 3.2.0 to 3.3.0 by @dependabot in #2721
- Chore(deps): bump github/codeql-action from 2.1.37 to 2.2.1 by @dependabot in #2722
- Chore(deps): bump actions/upload-artifact from 3.1.1 to 3.1.2 by @dependabot in #2723
- Chore: Miscellaneous fixes by @twpayne in #2719
- Chore(deps): bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0 by @dependabot in #2724
- Chore(deps): bump actions/cache from 3.2.2 to 3.2.4 by @dependabot in #2726
- Chore(deps): bump goreleaser/goreleaser-action from 4.1.0 to 4.2.0 by @dependabot in #2727
- Feat: Build with Go 1.20 by @twpayne in #2731
- Fix: Make chezmoi init --purge-binary always remove binary by @twpayne in #2729
- Chore: Bump golangci-lint to version 1.51.0 by @twpayne in #2732
- Docs: Add install command for winget by @bradenhilton in #2735
- Miscellaneous fixes by @twpayne in #2737
- Set CHEZMOI* environment variables when running cd command by @twpayne in #2743
- Docs: Improve documentation on scripts by @twpayne in #2745
New in chezmoi 2.29.3 (Jan 20, 2023)
- What's Changed:
- feat: Add --recursive flag to chattr command by @twpayne in #2697
- feat: Check config file format in doctor command by @twpayne in #2696
- docs: Fix typo in merge user guide by @mumumumu in #2698
- fix: Support .zip files with empty internal directories by @szinn in #2701
- fix: Only prompt once for KeePassXC password by @twpayne in #2704
- fix: Remove problematic username guessing in init command by @twpayne in #2705
- New Contributors:
- @mumumumu made their first contribution in #2698
- @szinn made their first contribution in #2701
New in chezmoi 2.29.2 (Jan 15, 2023)
- What's Changed:
- chore: Update goreleaser config for v1.14 by @twpayne in #2667
- feat: Add keepassxc.prompt config variable by @jcapiitao in #2677
- docs: Update documentation on encryption by @twpayne in #2683
- chore: Update dependencies by @twpayne in #2679
- chore: Fix umask tests by @twpayne in #2688
- chore: Update dependencies by @twpayne in #2694
New in chezmoi 2.29.1 (Jan 2, 2023)
New in chezmoi 2.29.0 (Jan 2, 2023)
- at's Changed
- feat: Allow .chezmoi{external,ignore,remove} files to have a .tmpl suffix by @twpayne in #2632
- feat: Add support for source paths in managed command by @twpayne in #2633
- chore: Update dependencies by @twpayne in #2634
- docs: Fix passphrase-once encryption instructions by @twpayne in #2636
- chore: Update dependencies by @twpayne in #2639
- chore(deps): bump actions/cache from 3.0.11 to 3.2.2 by @dependabot in #2641
- chore(deps): bump github/codeql-action from 2.1.29 to 2.1.37 by @dependabot in #2642
- chore(deps): bump goreleaser/goreleaser-action from 3.2.0 to 4.1.0 by @dependabot in #2643
- chore(deps): bump actions/setup-go from 3.3.1 to 3.5.0 by @dependabot in #2644
- chore(deps): bump dessant/lock-threads from 3.0.0 to 4.0.0 by @dependabot in #2645
- feat: Allow cd command to take the destination directory as an argument by @twpayne in #2648
- fix: Improve error message when state database cannot be locked by @twpayne in #2651
- fix: Fix authentication when git is not installed by @twpayne in #2650
- fix: Fix bug where edit --watch only applied the first change by @twpayne in #2654
- chore: Miscellaneous updates by @twpayne in #2655
- feat: Add hexDecode and hexEncode template functions by @twpayne in #2658
- chore(deps): bump actions/checkout from 3.1.0 to 3.2.0 by @dependabot in #2659
New in chezmoi 2.28.0 (Dec 19, 2022)
- What's Changed:
- Add lstat template function by @twpayne in #2616
- Add --path-style option to managed and unmanaged commands by @twpayne in #2617
- Chore: Build with Go 1.19.4 by @twpayne in #2619
- Feat: Add verification of external checksums by @twpayne in #2621
- Chore: Update dependencies by @twpayne in #2623
New in chezmoi 2.27.3 (Dec 5, 2022)
- chore: Move GitHub Actions off soon-to-be-deprecated Ubuntu 18.04 by @twpayne in #2604
- chore(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by @dependabot in #2605
- chore(deps): bump github.com/Masterminds/sprig/v3 from 3.2.2 to 3.2.3 by @dependabot in #2607
- chore(deps): bump reviewdog/action-misspell from 1.12.2 to 1.12.3 by @dependabot in #2606
- chore: Update dependencies by @twpayne in #2611
- fix: Don't attempt to run empty scripts by @twpayne in #2612
- fix: Respect config file umask setting when creating entries by @twpayne in #2613
New in chezmoi 2.27.2 (Nov 25, 2022)
- fix: Make re-add command respect --interactive flag by @twpayne in #2569
- feat: Add an optional path argument to the cd command by @twpayne in #2579
- feat: Make it easier to use non-git VCSes by @twpayne in #2580
- fix: Allow underscores in SourceHut usernames by @twpayne in #2582
- fix: Respect diff filter in removes with external diff tool by @twpayne in #2592
- chore: Release fixes by @twpayne in #2593
- chore: Update dependencies by @twpayne in #2596
New in chezmoi 2.27.1 (Nov 14, 2022)
- fix: Don't show always scripts in apply --verbose when excluded from diffs by @twpayne in #2565
- feat: Remember HTTP username in URL in init command by @twpayne in #2562
- chore: Make generation of versioninfo.json work without tags or git repo by @twpayne in #2566
New in chezmoi 2.27.0 (Nov 9, 2022)
- Fix: Revert cpina/github-action-push-to-another-repository version bump by @bradenhilton in #2527
- Chore: Install Go in test-website and deploy-website jobs by @twpayne in #2528
- Feat: Suppress newlines from onepasswordRead by @halostatue in #2532
- Chore(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 by @dependabot in #2533
- Feat: Allow modify_ scripts to be executed as templates by @twpayne in #2529
- Chore: Blacklist buggy version of github.com/bmatcuk/doublestar/v4 by @twpayne in #2537
- Chore: Build with Go 1.19.3 by @twpayne in #2541
- Feat: Add line ending template directive by @twpayne in #2540
- Feat: Add setValueAtPath template function by @twpayne in #2542
- Fix: Don't merge non-files in merge-all command by @twpayne in #2543
- Feat: Add --script-contents flag to diff command by @twpayne in #2544
- Docs: Add line endings directive documentation by @bradenhilton in #2547
- Docs: Fix typos in Sourcehut repo patterns by @kjerstadius in #2552
- Chore: Better handle errors when globbing by @twpayne in #2538
- Feat: Add cat-config and dump-config commands by @twpayne in #2553
- Chore: Remove unused field by @twpayne in #2554
- Chore: Refactor handling of annotations by @twpayne in #2555
- Feat: Allow prompt*Once template functions to take paths by @twpayne in #2557
- Fix: Fix exclusion of externals by @twpayne in #2558
- Chore: Update dependencies by @twpayne in #2559
- Feat: Add completion template function by @twpayne in #2560
New in chezmoi 2.26.0 (Oct 31, 2022)
- Feat: Improve handling of include and exclude for externals and encrypted files
- Feat: Extend --include and --exclude flags to include templates
- Feat: Add per-template configurable delimiters
- Chore: Fix user guide link in support issue template
- Chore(deps): bump github/codeql-action from 2.1.26 to 2.1.27
- Docs: Update homepage
- Chore(deps): bump dorny/paths-filter from 2.10.2 to 2.11.1
- Chore(deps): bump actions/cache from 3.0.9 to 3.0.11
- Chore(deps): bump sigstore/cosign-installer from 2.7.0 to 2.8.0
- Chore(deps): bump cpina/github-action-push-to-another-repository from 9e487f29582587eeb4837c0552c886bb0644b6b9 to 940a2857e598a6392bd336330b07416c1ae8ea1f
- Chore: Update dependencies
- Chore(deps): bump actions/checkout from 3.0.2 to 3.1.0
- Chore: Tweak template directive implementation
- Chore: Miscellaneous fixes
- Feat: Add option to exclude scripts that are always run
- Fix: Extend template directives functionality
- Chore: Update dependencies
- Docs: Add faq entry for templates pre-requisites
- Docs: Add release notes and release history
- Docs: Add note on setting .ps1 interpreter to pwsh
- Chore: Fix comments that start from an incorrect name
- Chore: Add package descriptions
- Fix: Include git repo external state in state dump output
- Docs: Add FAQ entry on snap stdin/stdout redirect bug
- Chore: Use fs.ModePerm instead of 0o777 for all permissions
- Chore: GitHub Actions fixes
- Docs(bitwarden): Correct bitwardenFields example
- : Populate VERSIONINFO on Windows builds
- Chore: Update dependencies
- Docs: Remove duplicate words
- Chore: Improve error messages from git-repo externals
- Fix: Construct templateDataMap manually
- Feat: Add --recurse-submodules flag to init command
- Feat: Add --recurse-submodules flag to update command
- Chore: Reorder eqFold template function reference page
- Chore: Fix refactored --include and --exclude flags
- Chore: Add test for .chezmoiignore and scripts
- Chore: Update dependencies
- Chore: Minor documentation tweaks
- Chore: Release improvements
- Chore(deps): bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0
- Chore(deps): bump actions/upload-artifact from 3.1.0 to 3.1.1
- Chore(deps): bump actions/setup-go from 3.3.0 to 3.3.1
- Chore(deps): bump github/codeql-action from 2.1.27 to 2.1.29
- Chore(deps): bump sigstore/cosign-installer from 2.8.0 to 2.8.1
New in chezmoi 2.25.0 (Oct 15, 2022)
- docs: Add FAQ entry on multiple source states by @twpayne in #2391
- chore: Separate out test-release step by @twpayne in #2392
- chore: Add check for keepassxc-cli version in keepassxcAttachment by @twpayne in #2397
- chore: Fix typo in entrytypeset.go by @sm1999 in #2400
- chore: Add test that chezmoi apply uses textconv by @twpayne in #2401
- fix: Use textconv in interactive diffs by @twpayne in #2402
- chore(deps): bump actions/cache from 3.0.8 to 3.0.9 by @dependabot in #2410
- chore(deps): bump github/codeql-action from 2.1.21 to 2.1.26 by @dependabot in #2411
- feat: Add shell completion for --include and --exclude flags by @twpayne in #2419
- chore: Bump Go and golangci-lint versions by @twpayne in #2420
- chore: Update dependencies by @twpayne in #2421
- chore: Copy github.com/twpayne/go-shell into module by @twpayne in #2422
- feat: Add eqFold template function by @bradenhilton in #2409
- feat: Add scriptEnv configuration variable by @twpayne in #2423
- chore: Set Go version in govulncheck by @twpayne in #2428
- chore: Only read .chezmoiroot once by @twpayne in #2431
- feat: Sign release assets by @twpayne in #2394
- chore: Use build info to set commit and date, if available by @twpayne in #2434
- chore: Use ReadDir to find config files and templates by @twpayne in #2435
- chore: Use GitHub native changelogs for releases by @twpayne in #2438
- feat: Use target paths in automatically generated commit messages by @twpayne in #2439
- chore: Automatically deploy website after release by @twpayne in #2437
- feat: 1Password account lookup table by @halostatue in #2425
- chore: Refactor 1Password account map by @twpayne in #2440
- docs: Use get.chezmoi.io for install links by @twpayne in #2441
- feat: Add get.chezmoi.io/ps1 by @twpayne in #2443
- chore: Fail if multiple config file templates or config files are found by @twpayne in #2444
- fix: Make chattr {no,}encrypted decrypt and encrypt source file by @twpayne in #2447
- chore: Update dependencies by @twpayne in #2448
- feat: Expose template data in environment variables by @twpayne in #2429
- chore: Use GitHub output in govulncheck workflow by @twpayne in #2450
New in chezmoi 2.24.0 (Sep 26, 2022)
- Changelog
- bb8d579 docs: Add FAQ entry on --verbose and --debug flags
- fb595f2 docs: Add link to article
- 0f58586 docs: Elaborate on once vs onchange attributes
- b970bc1 feat: Add always/auto/never options to --refresh-externals flag
- 21e99c7 feat: Add option to suppress warnings
- a29abcf feat: Improve performance of the externals cache
- da407b6 fix: Avoid double read of source state in merge-all and status commands
- 1fbe862 fix: Preserve case in user template data
- 9dda54a fix: Respect .chezmoiroot in source-path command with no arguments
New in chezmoi 2.23.0 (Sep 19, 2022)
- 6e49147 docs: Add hints about escaping diff and merge args in config file template
- f1b404d docs: Add link to video
- 2c3a349 docs: Change remote origin from ssh to https
- 4d68612 docs: Update symlink design question with docs on edit --watch
- 8b4b856 feat: Add --progress flag to show progress when downloading externals
- ccb897c feat: Add passhole password manager support
- 994a0c7 feat: Always set and restore Windows console
- cf51259 feat: Use bubbletea for user input
- 8054dff fix: Don't write file specified by --output atomically
- 80576f5 fix: Ignore commands when creating archives
- 83f01eb fix: Only read source state if needed in source-path command
- c1a53e1 fix: Treat git-repo externals as directories of include/exclude purposes
New in chezmoi 2.22.1 (Sep 5, 2022)
- Fix handling of newlines in comment template function
- Make includeTemplate function first search in .chezmoitemplates
New in chezmoi 2.22.0 (Sep 1, 2022)
- Changelog:
- 6625f29 docs: Add FAQ entry on sharing shell history
- 097a88c docs: Add note on script execution order
- 3b6edaf docs: Fix a coloring issue that lines and texts in Mermaid diagrams are hardly visible in dark mode
- 3e6e26d feat: Add includeTemplate template function
- bf5b674 feat: Add initial fig support
- 41644bb feat: Add support for loong64 architecture
- 7a525b7 fix: Apply changes to directories recursively when editing directories
- 03a91ca fix: Only use quotes if necessary in toIni template function
New in chezmoi 2.21.1 (Aug 29, 2022)
- Docs: Add link to package installation
- Docs: Add summary paragraph
- Feat: Add edit.apply configuration variable
- Feat: Add secret.args configuration variable
- Fix: Detect SSH clones from URL when using builtin git
- Fix: Fix panic when absolute paths are used in externals
- Fix: Respect format configuration variable in data, dump, and state commands
New in chezmoi 2.21.0 (Aug 24, 2022)
- c8399bc docs: Add FAQ entry on init template functions
- e2ec7c5 docs: Add instructions for using chezmoi with Watchman
- dc2ec23 docs: Add link to repology.org
- 4d086c2 docs: Remove unmaintained Guix package
- 485850f docs: Use install-from-git-working-copy in installation instructions
- 9e4629f feat: Add --interactive flag
- 8602622 feat: Add --prompt flag to init command
- f98264b feat: Add --prompt* flags to init command
- 02b8954 feat: Add fromIni template function
- ffbb367 feat: Add gitHubLatestTag template function
- ac0c759 feat: Add initial --watch flag to edit command
- 3af5c7f feat: Add toIni template function
- db4da31 feat: Improve support for external diff commands
- 84afa19 fix: Handle .chezmoiroot in init command
- 7583387 fix: Remove broken symbolic links in exact_ directories
New in chezmoi 2.20.0 (Jul 29, 2022)
- Docs: Add Termux package install instructions
- Docs: Add dark mode option
- Docs: Prioritize package installation over curl | sh installation
- Feat: Add comment template function
- Feat: Add generate command to generate install script
- Feat: Add onepasswordRead template function
- Feat: Add promptBoolOnce, promptIntOnce, and promptStringOnce init template functions
- Feat: Add replaceAllRegex template function
- Feat: Make managed command accept destination directory args
- Feat: Make unmanaged command accept destination directory args
- Feat: Track source state origins more precisely
- Fix: Fix dropping of input when prompting for multiple values from piped stdin
New in chezmoi 2.19.0 (Jul 18, 2022)
- Docs: Add section on muting gpg output
- Feat: Add fromToml and toToml template functions
- Feat: Add support for AWS Secrets Manager
- Feat: Allow dashes in keys in template data in config file
- Fix: Fix FQDN hostname on FreeBSD
- Fix: Fix forget command when asked to forget an external
- Fix: Fix merge command for encrypted files in subdirectories
- Fix: make install creates the bin/ dir if necessary, and uses the unambiguous --target-directory form of install.
New in chezmoi 2.18.1 (Jun 24, 2022)
- docs: Add CPU cores/threads template
- docs: Improve documentation of chezmoi's concepts
- feat: Re-enable building of snaps
New in chezmoi 2.18.0 (Jun 20, 2022)
- feat: Stop building snaps
New in chezmoi 2.17.1 (May 30, 2022)
- Docs:
- Add information about chezmoi_modify_manager
- Add link to podcast
- Fix typo in kubeconfig documentation
- Organize related software page into sub-sections
- Fix:
- Fix dump command in the presence of config file templates
- Include git repo commands in dump command output
New in chezmoi 2.17.0 (May 26, 2022)
- Feat: Add uid and gid template variables
- Feat: Add windowsVersion to builtin template data
- Fix: Parse $EDITOR and $VISUAL environment variables as shell commands
New in chezmoi 2.16.0 (May 19, 2022)
- Feat: Add support for Keeper password manager
- Feat: Build for mips64 and mips64le
- Feat: Build for riscv64
- Feat: Complete auto bool, format, and mode flag values
- Fix: Connect password manager std{in,err} to os.Std{in,err}
- Fix: Don't complete _chezmoi in zsh completion
- Fix: Fix use of slashes in glob on Windows
New in chezmoi 2.15.4 (May 10, 2022)
- Changelog:
- docs: Add chezmoiexternal related links to user-guide/reference docs
- docs: Add example of extracting selected files from external archive
- docs: Add some additional details to contributing-changes.md
- fix: Fix external archive, sub-directory include, no excludes
New in chezmoi 2.15.3 (May 8, 2022)
- Docs: Add hint on random access in modify_ scripts
- Feat: Add --guess-repo option to init command
New in chezmoi 2.15.2 (May 1, 2022)
- Changelog:
- cbfe388 docs: Add clarification about all lowercase custom data fields
- 84ac2e2 docs: Add guide on encrypting files with GPG and a passphrase
- 8552a4c docs: Add links to blog and video
- 7b83a17 docs: Add troubleshooting entry on scripts on Termux
- 4de3fdc docs: Document workaround for #1574
- d507609 docs: Minor tweaks
- 956b449 docs: Use index function to access an item in the example
- 58f9f45 feat: Add glob template function
- fe0b6cf feat: Build with Go 1.18.1
- eaa27b3 fix: Don't cache negative results of path lookups
New in chezmoi 2.15.1 (Apr 10, 2022)
- Docs: Add section on understanding chezmoi's files and directories
- Docs: Document KeepassXC with YubiKey limitations
- Docs: Fix path to config file template
- Docs: Tidy up KeepassXC reference documentation
- Feat: Use diff.command for all verbose output
- Fix: Fix apply --verbose when diff.command is set
- Fix: Fix concurrent map writes on sourcestate.ignoredRelPaths
- Fix: Ignore exit status 1 from external diff commands
New in chezmoi 2.15.0 (Apr 4, 2022)
- docs: Add command overview
- docs: Add link to blog post
- docs: Add link to podcast
- docs: Adjust documents for 1Password CLI 2.0.0 changes
- docs: Document that the ioreg template function is deprecated
- docs: Factor out GitHub template functions into a separate section
- docs: Factor out init template functions into a separate section
- docs: Factor out password manager functions into separate sections
- docs: Improve FAQ entry on source state filenames
- docs: Improve docs on empty files in chezmoi edit
- docs: Update dconf example as dconf only reads stdin
- docs: Use $VARIABLE instead of
- feat: Add diff.reverse configuration variable
- feat: Add ignored command
- feat: Add keepassxcAttachment template function
- feat: Build for s390x architecture
- fix: Fix one line install instructions for Windows
- fix: Fix op signin for 1Password CLI 2.0.0
- fix: Fix parsing of multiline KeepassXC attributes
- fix: Fix use of drives as home directories on Windows
- fix: Prefer id over label for onepasswordDetailsFields template function
New in chezmoi 2.14.0 (Mar 9, 2022)
- Add contributors image
- Add license to website
- Add link to article
- Add include and exclude patterns to external archives
- Add license command
- Release raw binaries
New in chezmoi 2.13.1 (Mar 4, 2022)
- Feat: Add scriptTempDir config var for temporary scripts
- Feat: Change default Python interpreter to python3
- Fix: Allow user and repo to set in install script
- Fix: Fix confusing error message when using builtin git to init over SSH
New in chezmoi 2.13.0 (Feb 26, 2022)
- e8ee359 docs: Add link to article
- 3f36946 docs: Document extracting a single file from an archive
- 843ba33 docs: Improve scripts user guide
- 585adb1 feat: Add initial git-repo external type
- e299d90 feat: Add option to exclude externals
- 5f39fec feat: Add status.exclude configuration variable
- 2451314 feat: Add verify.exclude configuration variable
- fd47686 feat: Allow overriding GitHub user in shell installer
- 08991d1 feat: Enable GNOME Keyring support on FreeBSD
- 881cb7e fix: Correctly cut hostname off at . character
New in chezmoi 2.12.1 (Feb 20, 2022)
- 1fbc2ae feat: Be more strict about presence of source directory
- Baac6fc feat: Support arguments in Windows SHELL environment variable
New in chezmoi 2.12.0 (Feb 15, 2022)
- Feat: Add target-path command
- Feat: add support for xz archives
- Fix: Fix bug where chezmoi init --apply did not configure encryption
New in chezmoi 2.11.2 (Feb 3, 2022)
- fix: Disable problematic concurrent source dir read
New in chezmoi 2.11.1 (Feb 3, 2022)
- Fix: Fix race condition with multiple .chezmoiignore files
New in chezmoi 2.11.0 (Feb 2, 2022)
- Changelog:
- Feat: Add initial support for 1Password CLI 2.0
- Feat: Add remove_ attribute for directories
- Feat: Include removed directories in diff output of external diff command
- Feat: Make chezmoi's core functionality available as a Go module
New in chezmoi 2.10.1 (Jan 24, 2022)
- Fix: Fix add command when parent dir permissions have changed
- Fix: Ignore files and directories beginning with . in .chezmoitemplates
- Fix: Make data and execute-commands not depend on valid source state
New in chezmoi 2.10.0 (Jan 16, 2022)
- Add chezmoi.io/get install URL
- Add list command as an alias for managed
- Append / to completed directories
- Disable custom completions by default
- Remove docs command
- Switch to Material for MkDocs for website
New in chezmoi 2.9.5 (Jan 5, 2022)
- Changelog
- feat: Add passFields template function
- feat: Prompt for 1password password if no session token is set
- fix: Fix shell completion for relative paths
- fix: Make exit template function init only
New in chezmoi 2.9.4 (Dec 20, 2021)
- Feat: Add exit template function
- Feat: Add secret keyring delete command
- Feat: Improve inconsistent state error with removes
- Fix: Add missing --value flag to secret keyring set command
- Fix: Avoid panic when unknown URL schemes are used
- Fix: Fix include template function on Windows with absolute path
New in chezmoi 2.9.3 (Dec 13, 2021)
- Changelog:
- feat: Add --cache option and .chezmoi.cacheDir template variable
- feat: Add more intelligent completion of targets, attributes, and docs
- feat: Follow symlinks in .chezmoitemplates
- fix: Fix .chezmoiversion check when using dev version
New in chezmoi 2.9.2 (Dec 2, 2021)
- Fix: Don't mark .chezmoiscripts as suspicious in doctor command
- Fix: Read .chezmoiversion before other files
New in chezmoi 2.9.1 (Nov 30, 2021)
- Feat: Add .chezmoi.configFile template variable
- Feat: Add .chezmoi.workingTree template variable
- Feat: Extend upgrade command to work on more operating systems
- Fix: Check for .chezmoiversion outside .chezmoiroot
- Fix: Fix use of .chezmoiroot in multiple commands
New in chezmoi 2.9.0 (Nov 28, 2021)
- feat: Add .chezmoiscripts directory
- ec2b92a feat: Add edit.hardlink config var and edit --hardlink flag
- 7d31ecb feat: Add fromYaml template function
- 988fcdc feat: Add state delete-bucket command
- ff1e81d feat: Add state get-bucket command
- da41e0f feat: Add toYaml template function
- 98b6a39 feat: Apply diff.exclude to all diffs
- 33c3e97 feat: Make verbose settable in the config file
- 5672e1f fix: .chezmoiremove with * when destDir is /
- aac0fd6 fix: Handle symlinks in zip archives
- e7e6932 fix: Respect .chezmoiroot when generating config file
New in chezmoi 2.8.0 (Nov 21, 2021)
- Changelog
- feat: Add --persistent-state option for location of persistent state file
- feat: Add --reverse option to diff command
- feat: Add .chezmoi.executable template variable
- feat: Add .chezmoiroot to allow source state to be subdir of source dir
- feat: Add cache HTTP client to cache downloads in .chezmoiexternal.
- feat: Add gitHubLatestRelease template function
- feat: Add support for Homebrew on Linux to upgrade command
- feat: Add upgrade method to doctor command output
- feat: Caching the response of the GitHub API
- feat: Make .chezmoidata. and .chezmoitemplates available in .chezmoiignore
- fix: Return unparsed gopass output in gopassRaw template func
- fix: Warn, don't fail, if age version cannot be parsed in doctor command
- fix: lookPath panics when file does not exists
New in chezmoi 2.7.5 (Nov 8, 2021)
- 2a39175 feat: Add pinentry as an option for reading passwords
- 823836c feat: Extend chattr command to change target types
- bf8a185 fix: Make chezmoi add command respect .chezmoiignore
New in chezmoi 2.7.4 (Nov 2, 2021)
- Changelog:
- Add .chezmoi.args template variable
- Allow equivalent directory entries in source state and externals
- Create parent directories for externals if needed
- Fix upgrade command for non-amd64 packages
New in chezmoi 2.7.3 (Oct 23, 2021)
- feat: Add Illumos support
- feat: Add Solaris support
New in chezmoi 2.7.2 (Oct 19, 2021)
- Fix promptString default on Windows
New in chezmoi 2.7.1 (Oct 18, 2021)
- Feat: Add default argument to promptBool template function
- Feat: Add default argument to promptInt template function
- Feat: Add default argument to promptString template function
- Fix: Apply .chezmoiignore to externals
New in chezmoi 2.6.1 (Oct 3, 2021)
- Feat: Re-enable building with Go 1.16
New in chezmoi 2.6.0 (Oct 3, 2021)
- bump assets/chezmoi.io/themes/book
- Improve docs on externals
- Add --init flag to all relevant commands
- Add refreshPeriod option to externals
- Make chezmoi edit invoke editor with target filenames
- Fix upgrade command on non-amd64 Linux machines
New in chezmoi 2.5.1 (Sep 30, 2021)
- Changelog:
- docs: Add FAQ entry on diff colors not working
- docs: fix error in HOWTO guide
- feat: Add --init option to update command
- feat: Add working tree config option (#1459)
- feat: Make chezmoi edit with no args open working tree (#1455)
- fix: Allow modify_ scripts to be encrypted
New in chezmoi 2.5.0 (Sep 23, 2021)
- Add Vagrant-based tests to CI
- Add doctor check for multiple config files
- Add example to onepasswordItemFields documentation
- Add filter option for externals
- Add how-to entry on managing file permissions but not contents
- Add link to podcast
- Add readonly_ attribute for files and directories
- Add support for .chezmoiexternal files in subdirectories
- Add support for readonly attribute to chattr command
- Allow the format of external archives to be set explicitly
- Cache Vagrant Boxes in CI
- Change gitlab link for other people's dotfiles
- Detect archive format from content if needed
- Detect when the source directory is already in a git working copy
- Disable GPG tests on Windows
- Enable age tests on Windows CI
- Expand FAQ entry on build from source errors
- Fix CLI flags not taking precedence over configuration
- Fix more command line flags overriding config vars
- Fix permissions for CodeQL analysis
- Fix permissions in diff output when user sets a stricter umask
- Guess format of chezmoi archive from output filename
- Improve consistency of source state read from externals
- Improve internal logging infrastructure
- Improve logging in Windows CI
- Make Makefile more portable
- Merge test-release job into test-ubuntu
- 0Minor docs fixes
- Only create .keep files when adding empty directories
- Only warn if version or commit are not set in doctor command
- Propagate failures in Vagrant CI scripts
- Reduce duplication of Go version in CI
- Reduce duplication of versions in build and CI system
- Revert "Disable GPG tests on Windows"
- Separate OS-specific CI jobs
- Skp whitespace linting of temporary Vagrant files
- Support paths containing spaces in VIM integration
- Tidy up error message when doctor command cannot parse version
- Update Vagrant-based tests
- Update dependencies
New in chezmoi 2.4.0 (Sep 11, 2021)
- Add decrypt command
- Add doc on detemining whether the machine is a laptop or desktop
- Add encrypt command
- Add initial --use-builtin-age flag
- Build with Go 1.17.1
- Extend init command to guess the user's username for private repos
- Fix internal capitalization of age
- Simplify internal use of auto bools
- Update dependencies
New in chezmoi 2.3.1 (Sep 9, 2021)
- Add link to blog post
- Add link to podcast
- Add new media links
- Add onepasswordItemFields template function
- Append path arguments to diff command if not provided by user
- Append path arguments to merge command if not provided by user
- Bump age to version 1.0.0
- Bump golangci-lint to version 1.42.1
- Conceal the user's username in doctor command output
- Require Go 1.17 to build and log Go version in debug mode
New in chezmoi 2.3.0 (Sep 5, 2021)
- Add how-to entry on using private dotfile repos
- Add remove_ attribute
- Add support for zip archives to .chezmoiexternal
- Add support for zip archives to import command
- Add umask check to doctor command
- Add undocumented --safe=false command line flag
- Bump assets/chezmoi.io/themes/book from 50147be to a656d71
- Fix install from source documentation
- Improve contributing docs
- Log debug information in chezmoi apply
- Log version and args on startup in debug mode
- Remove accidentally unimplemented --remove option
- Remove stale FIXMEs
New in chezmoi 2.2.0 (Aug 30, 2021)
- Add .chezmoiexternal for external files and archives
- Add support for encrypted externals
- Add tests for multiple OSes using Vagrant
- Check all shell scripts with shellcheck
- Fix bug when using custom diff tool on a file in a subdirectory
- Make Makefile more consistent
- Pass context when reading source state
- Recognize .tbz2 files as archives
- Reduce test verbosity on Cirrus CI
- Remove Cirrus CI
- Rename internal variables for consistency
- Suppress initial branch name hints from git in chezmoi init
- Tidy up code structure
- Tidy up documentation
- Update dependencies
- Update media links
- Update tests for OpenBSD tar output
New in chezmoi 2.1.6 (Aug 23, 2021)
- Add --recursive flag to remove command
- Add executable check to doctor command
- Add link to podcast and notes
- Add more explicit documentation on config file location
- Add more related software
- Add note on using -- in chattr
- Add test of the output and fromJson template functions
- Add windows/arm builds
- Build with Go 1.17
- Bump golangci-lint to v1.42.0
- Create .keep files when adding directories
- Fix bug where adding a dir with a trailing slash added it twice
- Fix creation of .keep files when umask is 002
- Improve how-to on diff and merge customization
- Improve type safety in encryption code
- Make remove command remove entries from persistent state
- Miscellaneous Go 1.17 fixes
- Tidy up suspicious entries list in doctor command
- dc319c4 Tidy up test scripts
- Tranparently decrypt files in merge command
New in chezmoi 2.1.5 (Aug 11, 2021)
- Add --config-type option so config file can be read from stdin
- Add function for running idempotent commands
- Add initial suport for external diff tools
- Add symlink mode
- Build with Go 1.16.7
- Fix chezmoi execute-template --init to not read chezmoidata
- Fix spacing error in docs
- Fix the FreeBSD installation method
- Improve error messages for configurable merge tool arguments
- Improve internal testing functions
- Include .exe extension in Windows build artifact name
- Normalize symlinks on Windows
- Rename internal function for clarity
- Tweak doc formatting
New in chezmoi 2.1.4 (Aug 5, 2021)
- Add inital undocumented mackup add command
- Bump assets/chezmoi.io/themes/book from e939f40 to 50147be
- Fix crash when color was set to auto in config file
- Fix grammar
- Fix some minor internal inconsistencies
- Fix tag line in reference manual
- Make order of arguments to merge command configurable
- Tidy up order of struct fields
- Update contributing doc
- Update dependencies
New in chezmoi 2.1.3 (Jul 31, 2021)
- Add VCSH to comparison chart
- Add hidden internal-test command for internal testing
- Add more media links
- Allow entering username/password when using builtin git
- Bump golangci-lint to 1.41.1
- Correct git archive import features
- Fix formatting in comparison table
- Normalize cell length in Markdown table
- Reduce test verbosity in CI
- Remove incorrectly documented short option
- Set the record straight on some bare-git features
- Tidy up comparison table
- Tidy up repo guessing code
- Tidy up username and password requests when using builtin git
- Update dependencies
- Update dependencies
- Update recommended podcast
- Use golang.org/x/sys/unix package where possible
- Use target name when editing files
- Use terminal to read password on Windows
New in chezmoi 2.1.2 (Jul 14, 2021)
- Add FAQ entry on chezmoi cd
- Add link to blog
- Add more media entries
- Allow install of chezmoi from a powershell where StrictMode is on
- Allow source directory to be a symlink
- Build with Go 1.16.6
- Fix doctor check for suspicious entries
- Make .chezmoi.kernel template variable more generic
- Make .chezmoi.osRelease template variable more generic
- Make modify scripts always overwrite the target without prompting
- Populate all default template variables
- Remove .chezmoi.homedir template variable
- Tidy up issue templates
New in chezmoi 2.1.1 (Jul 11, 2021)
- Changelog:
- Fix config file code snippet in HOWTO
- Fix panic when destination directory is /
- Improve shell completions
- Tidy up onepassword template functions
- Update doc on how to migrate away from chezmoi
- Use fs.WalkDir function
- Use script extension to determine interpreter
New in chezmoi 2.1.0 (Jul 3, 2021)
- Changelog:
- Add .literal suffix to make all filenames representable
- Add gopassRaw template function
- Add literal_ attribute to make more filenames representable
- Add mozillaInstallHash template function
- Add optional account arg to onepassword template functions
- Add passRaw template function
- Bump assets/chezmoi.io/themes/book from 4540d66 to e939f40
- Tweak Go modules check
New in chezmoi 2.0.16 (Jun 28, 2021)
- Add --config-path option to init command
- Fix FreeBSD install instructions
- Improve documentation of chezmoi edit
- Include FreeBSD build in tests
- Make osRelease and kernelInfo template vars available on all systems where present
- Prioritize /etc/hosts over /etc/hostname for FQDN hostname
- Tweak FAQ on chezmoi edit
- Update dependencies
- Update dependencies
- Update docs so that oh-my-zsh tarball goes to TMPDIR instead of HOME
- Update golangci-lint to v1.41.0
New in chezmoi 2.0.15 (Jun 17, 2021)
- Update GoReleaser GitHub token
New in chezmoi 2.0.13 (May 28, 2021)
- Add --ssh option to init command to guess SSH repo URLs
- Add .chezmoi.sourceFile template variable
- Add age howto
- Add findtypos check
- Add forgotten --include option to add command
- Add how to for managing part of a file
- Add how to for using chezmoi with brew bundle
- Add how to on running a script when another file's contents changes
- Add link to github.com/hussainweb/ansible-role-chezmoi
- Add maximum width to docs output
- Add more media links
- Add re-add command
- Add test for template data in chezmoi init --apply
- Add writeToStdout init template function
- Bump age version to 1.0.0-rc.2 in tests
- Bump golangci-lint to v1.40.1
- Disable exhaustive linter
- Ensure that parent directory exists in import examples
- Fix security table of contents
- Fix typos
- Fix typos and receiver names
- Format code blocks in documentation
- Improve code documentation
- Improve consistency
- Improve consistency of reference documentation
- Include Linux OS release name and version in doctor output, if available
- Make how to section on ignoring files easier to find
- Move cmd package to internal/cmd
- Move internal/cmd to internal/cmds
- Move security policy into docs
- Move security policy into docs
- Only create templates with chezmoi add --autotemplate if a replacement occurred
- Reference .chezmoidata in template data documentation
- Remove stale FAQ entry
- Remove stale docs on diff.format
- Remove unnecessary SourceRelPaths type
- Rename function argument for clarity
- Reword intro commands
- Tidy up how to
- Tidy up symlink documentation
- Tidy up tests
- Tweak documentation
- Tweak examples and docs a little more
- Update Go to 1.16.4
- Update Windows Subsystem for Linux detection how to
- Update dependencies
- Update golangci-lint to 1.40.0
- Update link to path matching function
- Use io/fs package instead of os
- Use neutral names in docs and tests
- Use pager for docs and make pagers more configurable
- Use quote function instead of literal quotes in docs
- Use stringSets for known filenames
- Use temporary files, instead of stdin/stdout, when calling gpg
New in chezmoi 2.0.12 (May 11, 2021)
- Add Architecture guide
- Add another method of detecting OS architecture for robustness
- Bump chezmoi.io/themes/book from 1e4bcc2 to 6200450
- Correct and template example in How To guide
- Don't atempt to use reverse DNS to determine FQDN hostname
- Handle EINTR from syscall
- Improve error message when persistent state is locked
- Improve reliability of Powershell installer
- Increase verbosity of tests in CI
- Make chezmoi forget also remove entry from state
- Move VIM tip from reference to how-to
- Remove debug code
- Remove unnecessary AbsPaths type
- Remove unnecessary RelPaths type
- Remove unnecessary typecasts
- Simplify EINTR handling
- Sort unexported variables after exported ones
- Suppress warnings in tests about git default branch name
- Tidy up flag parsing and help output
- Update dependencies
- Update last written state when target and actual states are equivalent
- Update rpm zsh completion directory to match recent Fedora versions.
- Use /etc/hostname to determine hostname, if available
- Use c.errorf instead of cmd.Printf
- Validate generate config before writing it in init command
New in chezmoi 2.0.11 (Apr 27, 2021)
- Add Makefile targets for coverage
- Add import --exclude option
- Add related software documentation
- Add wget one line install instructions
- Bump Go version to 1.16.3 on Cirrus CI
- Do not follow symlinks if the file will be ignored anyway
- Explicitly document need for data in template action
- Extend include template function to handle absolute paths
- Fix checksums.txt upload step
- Fix panic when using diff --exclude
- Fix typos in comments
- Fix typos in docs
- Fix typos in test comments
- Ignore whitespace errors in .vscode/settings.json
- Improve parsing of auto bools
- Minor tidy-ups
- Tidy up path handling
- Update dependencies
- Warn user when add command would remove encrypted, private, or template attribute
- Write prompts to stdout, even when --no-tty is specified
- Fix typo
New in chezmoi 2.0.10 (Apr 15, 2021)
- Add add.templateSymlinks configuration variable
- Add diff.exclude configuration variable
- Add editor config for PowerShell scripts
- Add infrastructure to read entry type sets from config
- Add init --data option
- Add mitigation for when actual state does not match persistent state
- Add state data, delete, get, and set subcommands
- Add test for re-adding file with and without --encrypt
- Add tests with different umask values
- Added --template-symlinks-home and --template-symlinks-source
- Consolidate symlink tests
- Document one-line chezmoi and dotfiles install
- Don't assume that gpg is installed in tests
- Make --exclude option per command instead of global
- Make --template-symlinks option a bool that checks source dir and home dir
- Make chezmoi init --one-shot also include --purge-binary
- Only install glibc/musl-specific binaries when they are available
- Re-enable passing test
- Release both checksums.txt and chezmoi_${VERSION}_checksums.txt
- Replace --template-symlinks-home and --template-symlinks-source with --template-symlinks=value
- Revert to standard actions/cache
- Store actual umasks in state file
- Tidy up table of configuration variables
- Tweak documentation
- Update Go module version to match tag
- Update dependencies
- Update prefix documentation
- Use default checksums file in install scripts
New in chezmoi 2.0.9 (Apr 5, 2021)
- Fix import command when destination already exists
- Update dependencies
New in chezmoi 2.0.8 (Apr 4, 2021)
- Changelog:
- Add tests for symmetric GPG encryption
- Build with Go 1.16.3
- Bump chezmoi.io/themes/book from 60dfd9a to 1e4bcc2
- Bump ludeeus/action-shellcheck from 1.0.0 to 1.1.0
- Fix absolute path check
- Fix typo
- Fix typos
- Tidy up comparison doc
- Update PowerShell install script to use checksums.txt
- Update install script to use checksums.txt
- fix: gpg symmetric passing wrong arguments
New in chezmoi 2.0.7 (Mar 31, 2021)
- Restore original checksums filename
New in chezmoi 2.0.5 (Mar 30, 2021)
- Changelog:
- Add -Force option to Move-Item command.
- Add darwin/arm64 to install script
- Add link to blog post
- Add stdinIsATTY template function
- Correct function name in documentation
- Fix issue in example for trying to use existing boolean vars first in How To section: First arg of get doesn't have to be in quotes.
- Improve install script error handling
- Make .chezmoi.sourceDir template variable a string
- Make install script install glibc or musl libc version as appropriate
- Only evaluate target states when needed
- Reduce severity of doctor warning if gpg is not installed
- Simplfy managed test
- Split large functions into smaller functions
- Tidy up handling of script working directories
- Tidy up make generate target
- Unlock state when running editor or merge command
- Update dependencies
- Update golangci-lint to 1.39.0
- Use the first existing parent directory for a script's working directory.
New in chezmoi 2.0.4 (Mar 25, 2021)
- Changelog:
- Add age binary check to doctor command
- Build libc-specific archives
- Fix noupgrade build tags
- Make doctor command more friendly about missing binaries
- Only update state if target was actually changed
- Remove stale reference to go generate
- Update howto to use main instead of master
New in chezmoi 2.0.3 (Mar 22, 2021)
- Document empty_ for file target types
- Factor out GitHub client
- Fix editing of encrypted files in subdirectories
- Internal tidy-up
- Remove noembeddocs and nodocs build tags
- Remove symlinks whose targets are empty
- Restore upgrade command
New in chezmoi 2.0.2 (Mar 19, 2021)
- Changelog:
- Add new attributes to chattr reference documentation.
- Add removeline test function
- Add tests for --exclude=encrypted option
- Connect stderr when invoking encryption tools
- Detect encryption if group set in config file
- Extend cat command to print scripts
- Improve encryption integration tests
- Remove temporary version override
New in chezmoi 2.0.1 (Mar 18, 2021)
- Changelog:
- Fix panic when displaying scripts in diffs
- Include scripts to be run in diffs by default
- Use notepad.exe, not vi, as the default editor on Windows
New in chezmoi 1.8.9 (Nov 20, 2020)
- Merge pull request #936 from zb140/1password-cache-arg
New in chezmoi 1.8.8 (Nov 3, 2020)
- Merge pull request #924 from twpayne/templating-docs