Update dependency max-sixty/worktrunk to v0.74.0 - #131
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.72.0→0.74.0Release Notes
max-sixty/worktrunk (max-sixty/worktrunk)
v0.74.0: 0.74.0Compare Source
Release Notes
Improved
A JSON bool or null nested in a
varsvalue renders asTrue,False, orNone: minijinja 2.22 adopted Jinja2's spelling for all three, so{{ vars.<key>.<field> }}into an object set bywt config state vars setprints those words. A var whose whole value istruestays a string. (Breaking: the old spellings weretrue,false, andnone.) (#3795)wt config approvals add --yesrecords approvals without a terminal: the command refused every non-interactive run, so a container or CI job could not pre-approve a project it had just cloned.--yesnow lists what it trusts and writes it, and a save it cannot make fails the command rather than warning and exiting 0. (#3819)remote_reponames the repository as the remote spells it:repois the directory on disk, so a renamed clone reports the new name.{{ remote_repo }}takes it from the primary remote's URL, available everywhereowneris and unset when no remote parses. (#3745, thanks @canac)Fixed
wt remove --forcedeleted a live worktree moved onto another's registered path: the ownership gate asked which repository the occupant belonged to, which a sibling worktree of this repo satisfies, so the directory went to trash with its uncommitted work. The directory and the registration must now name each other, asgit worktree removerequires. Also reacheswt merge,wt step prune, and picker removal, and refuses a bare repository's path that--forcepreviously deleted. (#3808)wt step copy-ignoredskips a source file that vanishes mid-copy: the walk collects leaves, then copies them in parallel, so a file removed in between — a concurrent build rewritingtarget/, say — aborted the batch, under--forceafter deleting the destination. The source is stat'd before anything is removed now. (#3744, fixes #3743, thanks @dataders for reporting and fixing)wt step promoterefuses to delete a source it did not fully copy: across filesystems the move copies then deletes, and an entry with no copy — a socket or FIFO, or a file a concurrent build rewrote mid-walk — was deleted anyway. The copy now reports what it skipped, and a non-zero count fails the move. (#3820)An
ssh://remote's host comes from the authority, not a later path segment: the search for the userinfo@covered the whole remainder, sossh://git@attacker.example/owner/repo@github.com/org/repo.gitresolved togithub.comand borrowed that repository's approvals while git dialed the attacker. Every URL form now splits the authority first, so@in a namespace parses instead of being rejected. (#3813)WORKTRUNK_*env vars and--config-setoutrank a[projects."…"]entry: layer and specificity resolved separately, so a project entry answered for the global key whichever layer set it —WORKTRUNK_WORKTREE_PATHcould not override a project'sworktree-path. Both invocation layers now apply at either scope, and the help text gained a precedence section. (#3790, fixes #3788, thanks @jeremy0dell for reporting)Shell completions register under the
--cmdname:wt config shell init zsh --cmd wotrenamed the wrapper, but clap emitted the registration underwt. Bash and zsh completed nothing and regenerated the script on every TAB, PowerShell registered the wrong command, and zsh'scompdefhanded worktrunk's completer to the otherwt. (#3817, fixes #3816, thanks @sbarre for reporting)Documentation
Alt-xnever forces: the keybinding table readRemove selected worktree/branch, which sent a reader looking for a force-remove that isn't there. (#3811, raised in #3809, thanks @josh-burton)Internal
GitError::WorktreePathNotOursgained anoccupant_registered_atfield, andWorkingTree::ensure_belongs_to_repois nowensure_holds_this_worktree. (#3808)Install worktrunk 0.74.0
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
Install prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.74.0
Install via Cargo
cargo install worktrunk && wt config shell installInstall via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell installInstall via AUR (Arch Linux)
paru worktrunk-bin && wt config shell installv0.73.0: 0.73.0Compare Source
Release Notes
Fixed
wt removerefuses a registered path that now holds a different repository: A clone made at a stale registration's path was removed whole, uncommitted work included — and wt routed the user there, since the dirty gate read the occupant's files as this worktree's and offered--forceas the cure. Removal now compares the directory's git dir against this repository's;--forcewaives uncommitted changes, not the check for whose directory it is. (#3785)The Nix flake names three systems, dropping Intel macOS: nixpkgs drops
x86_64-darwinin 26.11, so the flake would stop evaluating there onceflake.lockadvances past it. (Breaking:nix build,nix run, and the home-manager module no longer resolve on Intel macOS. Release binaries are unaffected and still ship for it.) (#3776)NO_COLORand a redirected stream reach every surface: Escapes still landed in progressivewt list,-vdiagnostics, clap's error tips, and parts of stderr — the deprecation warning, thewt config updatepreview, the[y/N]prompt — so a redirected log carried escapes on one line and not the next. Color now resolves in one place. (#3777, #3771)A trailing separator no longer hides the branch: Git's ref format forbids a name ending in
/, and shell completion produces exactly that spelling whenever adocsdirectory sits beside the branch, sowt switch docs/never had a candidate. Selectors are normalized before resolution now —wt remove, merge targets,--base, and thepre-switchhook'stargetalike. (#3785)A path holding no worktree is reported as a path:
wt remove ../repo.ghostansweredNo branch named …and pointed at a listing it could never appear in;wt switchandwt mergeoffered--create <path>, which git rejects; andwt config state marker set --branch <path>silently stored state keyed by a path. (#3773, thanks @judewang for reporting)A failed GitLab project lookup carries
glab's own verdict:wt switch mr:<n>on a fork MR answered a 401, a 404, and a network failure with the sameFailed to fetch project 456, swallowing the output every otherremote_reffailure path forwards. A non-project response body now says so too. (#3799)A deleted-and-recreated worktree directory is reported, not leaked as git's exit 128: An
rm -rffollowed by amkdirpasses thePath::exists()probe, sowt switch,wt merge,wt step push, andwt removewalked into a raw git failure. All four now name the missing worktree and thegit worktree prunethat clears it. (#3785)Internal
Library API rework (Breaking library API):
cargo-semver-checksfails four lints —GitErrorgainedWorktreeNotFoundAtPathandWorktreePathNotOurs, shifting seven later discriminants, itsDetachedHeadvariant gained aworktreefield,ResolvedWorktreegainedNoWorktreeAtPath, andRepository::resolve_worktree_namewas removed. (#3785, #3773)Tests and benches spawn a pinned
wtbinary: a concurrentcargoremoves and recreatestarget/debug/wtas it uplifts, so spawns hit a one-offNotFound; every spawn now routes through a hardlinked pin. (#3784, #3792)The nix devShell and
task setup-webinstall what the test suite drives: both were missingnushell,pwsh, andjq, which--features shell-integration-testsshells out to. (#3768, #3776)Benchmark fixtures reduced to two provenance-based bases:
Generatedbuilds a repository locally andImportedcopies the pinnedrust-lang/rustcorpus, with worktree, branch, and remote-ref populations as parameters. (#3761)Install worktrunk 0.73.0
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
Install prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.73.0
Install via Cargo
cargo install worktrunk && wt config shell installInstall via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell installInstall via AUR (Arch Linux)
paru worktrunk-bin && wt config shell installConfiguration
📅 Schedule: (in timezone America/Chicago)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.