diff --git a/CHANGELOG.md b/CHANGELOG.md index 683b81a6f8..642eb46baf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - ## [Unreleased] ### Breaking changes +### Deprecations + +### New features + +### Fixed bugs + +## [0.23.0] - 2024-11-06 + +### Security fixes + +* Fixed path traversal by cloning/checking out crafted Git repository containing + `..`, `.jj`, `.git` paths. + ([GHSA-88h5-6w7m-5w56](https://github.com/martinvonz/jj/security/advisories/GHSA-88h5-6w7m-5w56);CVE-2024-51990) + +### Breaking changes + * Revset function names can no longer start with a number. * Evaluation error of `revsets.short-prefixes` configuration is now reported. @@ -42,52 +57,52 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). * New command `jj simplify-parents` will remove redundant parent edges. -* New `at_operation(op, expr)` revset can be used in order to query revisions - based on historical state. - * `jj squash` now supports `-f/-t` shorthands for `--from/--[in]to`. -* String literals in filesets, revsets and templates now support hex bytes - (with `\e` as escape / shorthand for `\x1b`). - -* New template function `raw_escape_sequence(...)` preserves escape sequences. - -* Initial support for shallow git repositories has been implemented. However +* Initial support for shallow Git repositories has been implemented. However, deepening the history of a shallow repository is not yet supported. * `jj git clone` now accepts a `--depth ` option, which allows to clone the repository with a given depth. * New command `jj file annotate` that annotates files line by line. This is similar - in functionality to git's blame. Invoke the command with `jj file annotate `. + in functionality to `git blame`. Invoke the command with `jj file annotate `. The output can be customized via the `templates.annotate_commit_summary` config variable. +* `jj bookmark list` gained a `--remote REMOTE` option to display bookmarks + belonging to a remote. This option can be combined with `--tracked` or + `--conflicted`. + +* New command `jj config unset` that unsets config values. For example, + `jj config unset --user user.name`. + +* `jj help` now has the flag `--keyword` (shorthand `-k`), which can give help + for some keywords (e.g. `jj help -k revsets`). To see a list of the available + keywords you can do `jj help --help`. + +* New `at_operation(op, expr)` revset can be used in order to query revisions + based on historical state. + +* String literals in filesets, revsets and templates now support hex bytes + (with `\e` as escape / shorthand for `\x1b`). + * New `coalesce(revsets...)` revset which returns commits in the first revset in the `revsets` list that does not evaluate to `none()`. +* New template function `raw_escape_sequence(...)` preserves escape sequences. + * Timestamp objects in templates now have `after(date) -> Boolean` and `before(date) -> Boolean` methods for comparing timestamps to other dates. * New template functions `pad_start()`, `pad_end()`, `truncate_start()`, and `truncate_end()` are added. -* `jj bookmark list` gained a `--remote REMOTE` option to display bookmarks - belonging to a remote. This option can be combined with `--tracked` or - `--conflicted`. +* Add a new template alias `bultin_log_compact_full_description()`. * Added the config settings `diff.color-words.context` and `diff.git.context` to control the default number of lines of context shown. -* Add a new template alias `bultin_log_compact_full_description()`. - -* New command `jj config unset` that unsets config values. For example, - `jj config unset --user user.name`. - -* `jj help` now has the flag `--keyword` (shorthand `-k`), which can give help - for some keywords (e.g. `jj help -k revsets`). To see a list of the available - keywords you can do `jj help --help`. - ### Fixed bugs * Error on `trunk()` revset resolution is now handled gracefully. @@ -97,8 +112,39 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). [0.4.0](https://github.com/arxanas/scm-record/releases/tag/v0.4.0), which includes multiple fixes. -* Fixed path traversal by cloning/checking out crafted Git repository containing - `..`, `.jj`, `.git` paths. +### Contributors + +Thanks to the people who made this release happen! + +* Alec Snyder (@allonsy) +* Arthur Grillo (Grillo-0) +* Austin Seipp (@thoughtpolice) +* Benjamin Tan (@bnjmnt4n) +* Dave Townsend (@Mossop) +* Daniel Ploch (@torquestomp) +* Emily (@neongreen) +* Essien Ita Essien (@essiene) +* Fedor Sheremetyev (@sheremetyev) +* Ilya Grigoriev (@ilyagr) +* Jakub Okoński (@farnoy) +* Jcparkyn (@Jcparkyn) +* Joaquín Triñanes (@JoaquinTrinanes) +* Lukas Wirth (@Veykril) +* Marco Neumann (@crepererum) +* Martin von Zweigbergk (@martinvonz) +* Matt Stark (@matts1) +* Philip Metzger (@PhilipMetzger) +* Philipp Albrecht (@pylbrecht) +* Remo Senekowitsch (@senekor) +* Richard Macklin (@rmacklin) +* Robin Stocker (@robinst) +* Samuel Tardieu (@samueltardieu) +* Sora (@SoraTenshi) +* Stephen Jennings (@jennings) +* Theodore Ehrenborg (@TheodoreEhrenborg) +* Vamsi Avula (@avamsi) +* Vincent Ging Ho Yim (@cenviity) +* Yuya Nishihara (@yuja) ## [0.22.0] - 2024-10-02 diff --git a/Cargo.lock b/Cargo.lock index 7cba36cdfa..bdb23df846 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -890,7 +890,7 @@ dependencies = [ [[package]] name = "gen-protos" -version = "0.22.0" +version = "0.23.0" dependencies = [ "prost-build", ] @@ -1820,7 +1820,7 @@ dependencies = [ [[package]] name = "jj-cli" -version = "0.22.0" +version = "0.23.0" dependencies = [ "anyhow", "assert_cmd", @@ -1877,7 +1877,7 @@ dependencies = [ [[package]] name = "jj-lib" -version = "0.22.0" +version = "0.23.0" dependencies = [ "assert_matches", "async-trait", @@ -1939,7 +1939,7 @@ dependencies = [ [[package]] name = "jj-lib-proc-macros" -version = "0.22.0" +version = "0.23.0" dependencies = [ "proc-macro2", "quote", @@ -3101,7 +3101,7 @@ dependencies = [ [[package]] name = "testutils" -version = "0.22.0" +version = "0.23.0" dependencies = [ "async-trait", "config", diff --git a/Cargo.toml b/Cargo.toml index 6c26d1d691..979527b01a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ resolver = "2" members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"] [workspace.package] -version = "0.22.0" +version = "0.23.0" license = "Apache-2.0" rust-version = "1.76" # NOTE: remember to update CI, contributing.md, changelog.md, install-and-setup.md, and flake.nix edition = "2021" @@ -130,8 +130,8 @@ zstd = "0.12.4" # put all inter-workspace libraries, i.e. those that use 'path = ...' here in # their own (alphabetically sorted) block -jj-lib = { path = "lib", version = "0.22.0" } -jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.22.0" } +jj-lib = { path = "lib", version = "0.23.0" } +jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.23.0" } testutils = { path = "lib/testutils" } [workspace.lints.clippy]