release: 0.30.0

This commit is contained in:
Yuya Nishihara 2025-06-04 16:37:10 +09:00
parent 04ba49f083
commit 34b0961c94
3 changed files with 83 additions and 27 deletions

View file

@ -10,6 +10,20 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### Release highlights
### Breaking changes
### Deprecations
### New features
### Fixed bugs
### Packaging changes
## [0.30.0] - 2025-06-04
### Release highlights
* The experimental support from release 0.29.0 for transferring the change ID
to/from Git remotes has been enabled by default. The change ID is stored in
the Git commit itself (in a commit header called `change-id`), which means
@ -19,6 +33,16 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
some Git commands (e.g. `git rebase`) do not preserve the change ids when
they rewrite commits.
* `jj rebase` now automatically abandons divergent commits if another commit
with the same change ID is already present in the destination with identical
changes.
* `jj split` has gained `--message`, `--insert-before`, `--insert-after`, and
`--destination` options.
* `jj evolog` can show associated operations for commits created by new jj
versions.
### Breaking changes
* The old `libgit2` code path for fetches and pushes has been removed,
@ -29,20 +53,20 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
`bookmark.remote() == "foo"` still works, but `bookmark.remote().<method>()`
might need `if(bookmark.remote(), ..)` to suppress error.
* The deprecated `jj branch` subcommands have been removed. Use the `jj bookmark`
subcommands instead.
* `jj rebase` now automatically abandons divergent commits if another commit
with the same change ID is already present in the destination with identical
changes. To keep these divergent commits, use the `--keep-divergent` flag.
* `jj util completion` now requires the name of the shell as a positional argument and
no longer produces Bash completions by default. The deprecated optional arguments for
different shells have been removed.
* The deprecated `--skip-empty` flag for `jj rebase` has been removed. Use the
`--skip-emptied` flag instead.
* The deprecated `jj branch` subcommands have been removed. Use the `jj
bookmark` subcommands instead.
* `jj util completion` now requires the name of the shell as a positional
argument and no longer produces Bash completions by default. The deprecated
optional arguments for different shells have been removed.
### Deprecations
* The `ui.diff.format` and `ui.diff.tool` config options have been merged as
@ -57,18 +81,18 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* `jj split` has gained a `--message` option to set the description of the
commit with the selected changes.
* `jj split` has gained the ability to place the revision with the selected changes
anywhere in the revision tree with the `--insert-before`, `--insert-after` and
`--destination` command line flags.
* `jj split` has gained the ability to place the revision with the selected
changes anywhere in the revision tree with the `--insert-before`,
`--insert-after` and `--destination` command line flags.
* Added `git.track-default-bookmark-on-clone` setting to control whether to
track the default remote bookmark on `jj git clone`.
* Templates can now do arithmetic on integers with the `+`, `-`, `*`, `/`, and `%`
infix operators.
* Templates can now do arithmetic on integers with the `+`, `-`, `*`, `/`, and
`%` infix operators.
* Evolution history is now stored in the operation log. `jj evolog` can show
associated operations for commits created by new jj.
associated operations for commits created by new jj versions.
### Fixed bugs
@ -82,16 +106,48 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* `jj` will no longer warn about deprecated paths on macOS if the configured
XDG directory is the deprecated one (~/Library/Application Support).
* The builtin diff editor now correctly handles splitting changes where a file is
replaced by a directory of the same name.
* The builtin diff editor now correctly handles splitting changes where a file
is replaced by a directory of the same name.
[#5189](https://github.com/jj-vcs/jj/issues/5189)
### Packaging changes
* Due to the removal of the `libgit2` code path, packagers should
remove any dependencies on `libgit2`, `libssh2`, Zlib, OpenSSL, and
`pkg-config`, and ensure they are not setting the Cargo `git2` or
`vendored-openssl` features.
* Due to the removal of the `libgit2` code path, packagers should remove any
dependencies on `libgit2`, `libssh2`, Zlib, OpenSSL, and `pkg-config`, and
ensure they are not setting the Cargo `git2` or `vendored-openssl` features.
### Contributors
Thanks to the people who made this release happen!
* Alper Cugun (@alper)
* Austin Seipp (@thoughtpolice)
* Benjamin Brittain (@benbrittain)
* Benjamin Tan (@bnjmnt4n)
* Bryce Berger (@bryceberger)
* Colin Nelson (@orthros)
* Doug Stephen (@dljsjr)
* Emily (@emilazy)
* Eyvind Bernhardsen (@eyvind)
* Felix Geisendörfer (@felixge)
* Gaëtan Lehmann (@glehmann)
* Ilya Grigoriev (@ilyagr)
* Isaac Corbrey (@icorbrey)
* Jonas Greitemann (@jgreitemann)
* Josep Mengual (@truita)
* kkoang (@kkoang)
* Manuel Mendez (@mmlb)
* Marshall Bowers (@maxdeviant)
* Martin von Zweigbergk (@martinvonz)
* Mateus Auler (@mateusauler)
* Michael Pratt (@prattmic)
* Nicole Patricia Mazzuca (@strega-nil)
* Philip Metzger (@PhilipMetzger)
* Scott Taylor (@scott2000)
* T6 (@tjjfvi)
* Vincent Ging Ho Yim (@cenviity)
* Winter (@winterqt)
* Yuya Nishihara (@yuja)
## [0.29.0] - 2025-05-07

10
Cargo.lock generated
View file

@ -1087,7 +1087,7 @@ dependencies = [
[[package]]
name = "gen-protos"
version = "0.29.0"
version = "0.30.0"
dependencies = [
"prost-build",
]
@ -2381,7 +2381,7 @@ dependencies = [
[[package]]
name = "jj-cli"
version = "0.29.0"
version = "0.30.0"
dependencies = [
"assert_cmd",
"assert_matches",
@ -2441,7 +2441,7 @@ dependencies = [
[[package]]
name = "jj-lib"
version = "0.29.0"
version = "0.30.0"
dependencies = [
"assert_matches",
"async-trait",
@ -2499,7 +2499,7 @@ dependencies = [
[[package]]
name = "jj-lib-proc-macros"
version = "0.29.0"
version = "0.30.0"
dependencies = [
"proc-macro2",
"quote",
@ -3954,7 +3954,7 @@ dependencies = [
[[package]]
name = "testutils"
version = "0.29.0"
version = "0.30.0"
dependencies = [
"async-trait",
"bstr",

View file

@ -5,7 +5,7 @@ resolver = "3"
members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"]
[workspace.package]
version = "0.29.0"
version = "0.30.0"
license = "Apache-2.0"
rust-version = "1.84" # NOTE: remember to update CI, contributing.md, changelog.md, and install-and-setup.md
edition = "2021"
@ -121,8 +121,8 @@ winreg = "0.52"
# put all inter-workspace libraries, i.e. those that use 'path = ...' here in
# their own (alphabetically sorted) block
jj-lib = { path = "lib", version = "0.29.0", default-features = false }
jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.29.0" }
jj-lib = { path = "lib", version = "0.30.0", default-features = false }
jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.30.0" }
testutils = { path = "lib/testutils" }
[workspace.lints.clippy]