Skip to content

jj-update: fix commands to work with breaking changes in jj-0.36.0#407

Merged
idursun merged 1 commit intoidursun:mainfrom
baggiiiie:yc/jj-breaking-change
Jan 9, 2026
Merged

jj-update: fix commands to work with breaking changes in jj-0.36.0#407
idursun merged 1 commit intoidursun:mainfrom
baggiiiie:yc/jj-breaking-change

Conversation

@baggiiiie
Copy link
Copy Markdown
Collaborator

in Release v0.36.0 - jj-vcs/jj, jj has breaking changes which breaks jjui.

Below is the fixes for:

  • deprecation of --destination flag: changed to --onto
  • deprecation of --edit flag: changed to --editor
  • deprecation of --allow-new flag for git push: removed all commands calling git push with --allow-new

@baggiiiie baggiiiie force-pushed the yc/jj-breaking-change branch from a0a5a72 to 61f3e7d Compare December 4, 2025 15:47
Comment on lines -27 to -30
func (b Bookmark) IsPushable() bool {
return b.Local != nil && len(b.Remotes) == 0
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bookmark.Pushable now becomes used in the codebase 😔

@idursun
Copy link
Copy Markdown
Owner

idursun commented Dec 5, 2025

Hey, thanks!

If we merge this now, we will force everybody to be on 0.36, otherwise jjui won't work for them. Since 0.36 just came out, I would like to take advantage of the deprecation period for a little longer so that when this lands majority of the users would be on that version. I hope you don't mind this PR staying open for some time.

Additionally, we need to update the minimum jj version in the README.md to 0.36.

@nickchomey
Copy link
Copy Markdown
Contributor

I'm not sure anyone wins if this is merged or if you wait an arbitrary while.

Perhaps the fixes can be put behind some sort of flag/version check?

@idursun
Copy link
Copy Markdown
Owner

idursun commented Dec 6, 2025

I'm not sure anyone wins if this is merged or if you wait an arbitrary while.

jj has been released just yesterday. I still want to keep my option to release another version of jjui that doesn't break for folks who are still on 0.35 or before. I sometimes update to the latest jj version a few weeks after its release.

Perhaps the fixes can be put behind some sort of flag/version check?

Yes, but it's only worthwhile if implementing a version check and branching the code per jj version takes less than a couple of weeks.

@baggiiiie baggiiiie force-pushed the yc/jj-breaking-change branch from 61f3e7d to 275998c Compare December 6, 2025 06:42
@baggiiiie
Copy link
Copy Markdown
Collaborator Author

I hope you don't mind this PR staying open for some time.

@idursun hey it's fine, let's wait for a while
also i have updated the readme to have minimum requirement of jj 0.36

some sort of flag/version check?
handling backward compatibility is always a pain, since jj already has breaking changes, i think it's reasonable that jj's breaking changes propagate and become jjui's breaking changes

@baggiiiie baggiiiie force-pushed the yc/jj-breaking-change branch 2 times, most recently from 4b0e7c4 to b2daa9e Compare December 11, 2025 06:07
@doprz
Copy link
Copy Markdown
Contributor

doprz commented Dec 18, 2025

I'm not sure anyone wins if this is merged or if you wait an arbitrary while.

jj has been released just yesterday. I still want to keep my option to release another version of jjui that doesn't break for folks who are still on 0.35 or before. I sometimes update to the latest jj version a few weeks after its release.

Perhaps the fixes can be put behind some sort of flag/version check?

Yes, but it's only worthwhile if implementing a version check and branching the code per jj version takes less than a couple of weeks.

I'm using jj v0.36.0 and although these commands are deprecated they still work albeit with a warning and what the correct syntax is moving forward. We could add a backwards compatibility flag or simply wait until jj makes a new release that removes these warnings/compatabilty layer in which then we would up jjui's minimum jj version to v0.36.0+.

@baggiiiie baggiiiie force-pushed the yc/jj-breaking-change branch from b2daa9e to 8f0686a Compare December 19, 2025 11:13
@baggiiiie baggiiiie requested a review from idursun as a code owner December 19, 2025 11:13
in [Release v0.36.0 - jj-vcs/jj](https://github.com/jj-vcs/jj/releases/tag/v0.36.0),
jj has breaking changes which breaks jjui. 

This commit includes the fixes for:
- deprecation of `--destination` flag: changed to `--onto`
- deprecation of `--edit` flag: changed to `--editor`
- deprecation of `--allow-new` flag for `git push`: removed all commands
  calling `git push` with `--allow-new`

Additionally, to replace `d` for `--destination`, `o` is used for the
new `--onto` flag in related modes, which conflicts with OpLog.Mode.
Hence, a `IsNormalMode` check is added to ui.
@baggiiiie baggiiiie force-pushed the yc/jj-breaking-change branch from 8f0686a to 9a2d64a Compare January 4, 2026 11:49
@nickchomey
Copy link
Copy Markdown
Contributor

0.37.0 is now out. Looking through the changelog, not sure what affects jjui but there's a lot of welcomed changes.

https://github.com/jj-vcs/jj/releases/tag/v0.37.0

@baggiiiie
Copy link
Copy Markdown
Collaborator Author

@nickchomey yeap didn't see anything that might affect jjui
i have upgraded to 0.37.0 and been using it for the whole day, didn't have any issue

@nickchomey
Copy link
Copy Markdown
Contributor

Are you running this PR branch then? Because not being able to use destination affects rebasing etc

@baggiiiie
Copy link
Copy Markdown
Collaborator Author

Because not being able to use destination affects rebasing etc

@nickchomey ah this should have been brought up in this PR, my bad!
since --destination is now --onto in jj 0.36.0+, i updated the keybinding for -d from d to o

@idursun please be aware of this behavior change, and advise if any changes needed

Copy link
Copy Markdown
Owner

@idursun idursun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @baggiiiie I think this is good to go in.

@idursun idursun merged commit 2809358 into idursun:main Jan 9, 2026
4 checks passed
@baggiiiie baggiiiie deleted the yc/jj-breaking-change branch January 12, 2026 01:10
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jan 18, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [idursun/jjui](https://github.com/idursun/jjui) | patch | `v0.9.9` → `v0.9.10` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>idursun/jjui (idursun/jjui)</summary>

### [`v0.9.10`](https://github.com/idursun/jjui/releases/tag/v0.9.10)

[Compare Source](idursun/jjui@v0.9.9...v0.9.10)

### Release Notes

#### 🆕 Features

##### Lua Scripting Enhancements

- **Lua Context Module** ([#&#8203;465](idursun/jjui#465)): Added context module to Lua scripting API, exposing methods for accessing selected item metadata and checked items:
  - `context.change_id()` - Get the change ID of selected revision or file
  - `context.commit_id()` - Get the commit ID of selected revision, file, or commit
  - `context.file()` - Get the file path of selected file
  - `context.operation_id()` - Get the operation ID of selected operation
  - `context.checked_files()` - Get array of checked file paths
  - `context.checked_change_ids()` - Get array of change IDs from checked items
  - `context.checked_commit_ids()` - Get array of commit IDs from checked items
- **Shell Execution in Lua** ([#&#8203;471](idursun/jjui#471)): Exposed `exec_shell()` function to Lua scripts, enabling interactive commands like opening files in external editors directly from jjui. This enables custom commands such as:
  ```toml
  [custom_commands.open_file]
  key = ["O"]
  lua = '''
  local file = context.file()
  if not file then
      flash("No file selected")
      return
  end
  exec_shell("vim " .. file)
  '''
  ```

#### ✨ Improvements

- **Abandon Workflow**: Removed confirmation dialog; users can now use Space to add/remove revisions from the abandon list

#### 🐛 Bug Fixes

- **Preview Pane Scrolling** ([#&#8203;472](idursun/jjui#472)): Fixed broken Ctrl-U/Ctrl-D scrolling in the preview pane that was introduced by earlier input routing changes. Preview commands are now properly grouped and always handled.
- **Parser**: Fixed handling of divergent change ID format
- **Bookmarks**: Fixed tracking of new bookmarks (currently tracks all remotes)

#### 🔧 Compatibility

- **Jujutsu 0.36.0 Support** ([#&#8203;407](idursun/jjui#407)): Updated commands to work with breaking changes in Jujutsu 0.36.0:
  - Changed `--destination` flag to `--onto`
  - Changed `--edit` flag to `--editor`
  - Removed deprecated `--allow-new` flag from `git push` commands
  - Updated keybinding from `d` to `o` for `--onto` flag in related modes

#### 📝 Documentation

- **README Updates** ([#&#8203;470](idursun/jjui#470)):
  - Added missing op log revert item to help menu
  - Fixed redo documentation
  - Updated custom command examples

#### What's Changed

- jj-update: fix commands to work with breaking changes in jj-0.36.0 by [@&#8203;baggiiiie](https://github.com/baggiiiie) in [#&#8203;407](idursun/jjui#407)
- refactor(abandon): remove confirmation dialog by [@&#8203;idursun](https://github.com/idursun) in [#&#8203;462](idursun/jjui#462)
- fix(bookmarks): track new bookmarks by [@&#8203;idursun](https://github.com/idursun) in [#&#8203;463](idursun/jjui#463)
- feat(lua): add context module by [@&#8203;idursun](https://github.com/idursun) in [#&#8203;465](idursun/jjui#465)
- lua: expose exec\_shell to lua script by [@&#8203;baggiiiie](https://github.com/baggiiiie) in [#&#8203;471](idursun/jjui#471)
- README improvements and help menu missing item by [@&#8203;baggiiiie](https://github.com/baggiiiie) in [#&#8203;470](idursun/jjui#470)
- ui,preview: fix preview pane ctrl-u/d scrolling by [@&#8203;baggiiiie](https://github.com/baggiiiie) in [#&#8203;472](idursun/jjui#472)

**Full Changelog**: <idursun/jjui@v0.9.9...v0.9.10>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4wIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6OnBhdGNoIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants