ok/jj
1
0
Fork 0
forked from mirrors/jj

release: release version 0.17.0

Thanks to everyone who's contributed!

Unlike previous releases, I went through the changelog entries and
reorganized them a bit.

We didn't have anything under "Deprecations" this time, but I moved
the heading after "Breaking changes" for next release. I think
breaking changes are more important because deprecations are just
about giving a heads up before it actually breaks.
This commit is contained in:
Martin von Zweigbergk 2024-05-01 07:28:16 -07:00 committed by Martin von Zweigbergk
parent 28e3751250
commit 19563fee74
3 changed files with 59 additions and 26 deletions

View file

@ -7,8 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Breaking changes
### Deprecations ### Deprecations
### New features
### Fixed bugs
## [0.17.0] - 2024-05-01
### Breaking changes ### Breaking changes
* The default template aliases were replaced as follows: * The default template aliases were replaced as follows:
@ -27,29 +35,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* The list of conflicted paths is printed whenever the working copy changes. * The list of conflicted paths is printed whenever the working copy changes.
This can be disabled with the `--quiet` option. This can be disabled with the `--quiet` option.
* Commit objects in templates now have a `mine() -> Boolean` method analog to the same function in revsets. * Commit objects in templates now have a `mine() -> Boolean` method analog to
It evaluates to true if the email of the commit author matches the current `user.email`. the same function in revsets. It evaluates to true if the email of the commit
author matches the current `user.email`.
* Commit objects in templates now have a `contained_in(revset: String) ->
Boolean` method.
* Operation objects in templates now have a `snapshot() -> Boolean` method that
evaluates to true if the operation was a snapshot created by a non-mutating
command (e.g. `jj log`).
* Revsets and templates now support single-quoted raw string literals.
* A new config option `ui.always-allow-large-revsets` has been added to * A new config option `ui.always-allow-large-revsets` has been added to
allow large revsets expressions in some commands, without the `all:` prefix. allow large revsets expressions in some commands, without the `all:` prefix.
* A new config option `ui.allow-filesets` has been added to enable ["fileset"
expressions](docs/filesets.md). Note that filesets are currently experimental,
but will be enabled by default in a future release.
* A new global flag `--ignore-immutable` lets you rewrite immutable commits.
* New command `jj parallelize` that rebases a set of revisions into siblings. * New command `jj parallelize` that rebases a set of revisions into siblings.
* `jj status` now supports filtering by paths. For example, `jj status .` will * `jj status` now supports filtering by paths. For example, `jj status .` will
only list changed files that are descendants of the current directory. only list changed files that are descendants of the current directory.
* A new config option `ui.allow-filesets` has been added to enable ["fileset"
expressions](docs/filesets.md). Note that filesets are currently experimental,
but will be enabled by default in a future release.
* Revsets and templates now support single-quoted raw string literals.
* `jj prev` and `jj next` now work when the working copy revision is a merge. * `jj prev` and `jj next` now work when the working copy revision is a merge.
* Operation objects in templates now have a `snapshot() -> Boolean` method that
evaluates to true if the operation was a snapshot created by a non-mutating
command (e.g. `jj log`).
* `jj squash` now accepts a `--use-destination-message/-u` option that uses the * `jj squash` now accepts a `--use-destination-message/-u` option that uses the
description of the destination for the new squashed revision and discards the description of the destination for the new squashed revision and discards the
descriptions of the source revisions. descriptions of the source revisions.
@ -57,17 +71,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* You can check whether Watchman fsmonitor is enabled or installed with the new * You can check whether Watchman fsmonitor is enabled or installed with the new
`jj debug watchman status` command. `jj debug watchman status` command.
* A new global flag `--ignore-immutable` lets you rewrite immutable commits.
* `jj rebase` now accepts revsets resolving to multiple revisions with the * `jj rebase` now accepts revsets resolving to multiple revisions with the
`--revisions`/`-r` option. `--revisions`/`-r` option.
* `jj rebase -r` now accepts `--insert-after` and `--insert-before` options to * `jj rebase -r` now accepts `--insert-after` and `--insert-before` options to
customize the location of the rebased revisions. customize the location of the rebased revisions.
* Commit objects in templates now have a `contained_in(revset: String) ->
Boolean` method.
### Fixed bugs ### Fixed bugs
* Revsets now support `\`-escapes in string literal. * Revsets now support `\`-escapes in string literal.
@ -88,6 +97,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
(it used to create new commits with bumped timestamp). (it used to create new commits with bumped timestamp).
[#3334](https://github.com/martinvonz/jj/issues/3334) [#3334](https://github.com/martinvonz/jj/issues/3334)
### Contributors
Thanks to the people who made this release happen!
* Anton Älgmyr (@algmyr)
* Anton Bulakh (@necauqua)
* Austin Seipp (@thoughtpolice)
* Benjamin Tan (@bnjmnt4n)
* Cretezy (@Cretezy)
* Daniel Ploch (@torquestomp)
* Evan Mesterhazy (@emesterhazy)
* Ilya Grigoriev (@ilyagr)
* Martin von Zweigbergk (@martinvonz)
* Noah Mayr (@noahmayr)
* Jeremy O'Brien (@neutralinsomniac)
* Jonathan Lorimer (@JonathanLorimer)
* Philip Metzger (@PhilipMetzger)
* Poliorcetics (@poliorcetics)
* Rowan Walsh (@rowan-walsh)
* Scott Olson (@solson)
* Théo Daron (@Kaporos)
* Yuya Nishihara (@yuja)
## [0.16.0] - 2024-04-03 ## [0.16.0] - 2024-04-03
### Deprecations ### Deprecations
@ -149,7 +182,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* `jj split` now supports a `--siblings/-s` option that splits the target * `jj split` now supports a `--siblings/-s` option that splits the target
revision into siblings with the same parents and children. revision into siblings with the same parents and children.
* new function `working_copies()` for revsets to show the working copy commits of all workspaces. * New function `working_copies()` for revsets to show the working copy commits of all workspaces.
### Fixed bugs ### Fixed bugs

10
Cargo.lock generated
View file

@ -896,7 +896,7 @@ dependencies = [
[[package]] [[package]]
name = "gen-protos" name = "gen-protos"
version = "0.16.0" version = "0.17.0"
dependencies = [ dependencies = [
"prost-build", "prost-build",
] ]
@ -1665,7 +1665,7 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
[[package]] [[package]]
name = "jj-cli" name = "jj-cli"
version = "0.16.0" version = "0.17.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"assert_cmd", "assert_cmd",
@ -1721,7 +1721,7 @@ dependencies = [
[[package]] [[package]]
name = "jj-lib" name = "jj-lib"
version = "0.16.0" version = "0.17.0"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"async-trait", "async-trait",
@ -1777,7 +1777,7 @@ dependencies = [
[[package]] [[package]]
name = "jj-lib-proc-macros" name = "jj-lib-proc-macros"
version = "0.16.0" version = "0.17.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2887,7 +2887,7 @@ dependencies = [
[[package]] [[package]]
name = "testutils" name = "testutils"
version = "0.16.0" version = "0.17.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"config", "config",

View file

@ -5,7 +5,7 @@ resolver = "2"
members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"] members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"]
[workspace.package] [workspace.package]
version = "0.16.0" version = "0.17.0"
license = "Apache-2.0" license = "Apache-2.0"
rust-version = "1.76" # NOTE: remember to update CI, contributing.md, changelog.md, and flake.nix rust-version = "1.76" # NOTE: remember to update CI, contributing.md, changelog.md, and flake.nix
edition = "2021" edition = "2021"
@ -116,8 +116,8 @@ zstd = "0.12.4"
# put all inter-workspace libraries, i.e. those that use 'path = ...' here in # put all inter-workspace libraries, i.e. those that use 'path = ...' here in
# their own (alphabetically sorted) block # their own (alphabetically sorted) block
jj-lib = { path = "lib", version = "0.16.0" } jj-lib = { path = "lib", version = "0.17.0" }
jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.16.0" } jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.17.0" }
testutils = { path = "lib/testutils" } testutils = { path = "lib/testutils" }
# Insta suggests compiling these packages in opt mode for faster testing. # Insta suggests compiling these packages in opt mode for faster testing.