From 4787b53b1e85d8052744fc77e4160e4d90e46d0f Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Mon, 29 Sep 2025 17:16:52 +0100 Subject: [PATCH] CHANGELOG: Radicle 1.5.0 --- CHANGELOG.md | 102 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41078df6..e4ff9841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,11 +11,94 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Deprecations -- The option `rad self --nid` was deprecated in favor of `rad status --only nid` +## New Features + +- `rad issue` now uses `clap` to parse its command-line arguments. + This affects error reporting as well as help output. + +## Fixed Bugs + +## 1.5.0 + +## Release Highlights + +### Better Support for Bare Repositories + +[gitrepostiory-layout]: https://git-scm.com/docs/gitrepository-layout/2.49.0 + +Some improvements to supporting bare repositories have been made for `rad` and +`git-remote-rad`. For `rad`, the `rad clone` command has learned a new flag +`--bare`, which clones the repository into a bare repository, as opposed to +having a working tree (see [gitrepository-layout]). + +`git-remote-rad` (our Git remote helper), also learned to better handle bare +repositories, when using `git push` and `git fetch` with a `rad://` remote. + +For `jj` users, this begins to unlock being able to use `jj` without co-location +of the Git repository. Further improvements to interoperability with `jj` are +in progress and will be released in future versions. + +### Introducing the `patch.branch` Option + +Continuing on the theme of making `jj` users happy, `git-remote-rad` can now +handle the option `-o patch.branch[=]`. When the option is passed without +a name, i.e. `-o patch.branch`, an upstream branch will be created which is +named after the patch being created – `patches/`. Alternatively, the +`` value is used if supplied. + +This allows you to specify if you want a tracking branch (or bookmark in `jj`) +for the patch. This means that you can avoid using `rad patch checkout`. + +### Improved `rad patch show` + +The `rad patch show` command has received some love by improving its output. The +`Base` of the patch is now always output, where before it was behind the +`--verbose` flag. + +The previous output would differentiate "updates", where the original author +creates a new revision, and "revisions", where another author creates a +revision. This could be confusing since updates are also revisions. Instead, the +output shows a timeline of the root of the patch and each new revision, without +any differentiation. The revision identifiers, head commit of the revision, and +author are still printed as per usual. + +### Structured Logging + +The `radicle-node` has learned to output structure logging using the new +`--log-logger structured` and `--log-format json` option pairs. If they are not +specified, then the logging will remain the same as per usual. + +### Deprecations in `rad` + +It is important to note that we are now emitting deprecation and obsoletion +warnings for several `rad` commands and options. + +For `rad diff`, the whole command is deprecated, and `git diff` should be used +instead. It is better to use the tools that already exist in this case. + +The option `rad self --nid` was deprecated in favor of `rad node status --only nid`. +The reason for this is that we will be making efforts to separate the cryptographic +identity of user and node. +For this case, the node will – in a future version – read the location of the +secret key to use from configuration or arguments at runtime. This means that a +running node is required to report the correct Node ID – and the command cannot +rely on the default location, which is shared with the user. + +The options `rad patch review [--patch | --delete]` are marked as obsolete, +since their functionality never worked as intended. Reviews are something that +requires more research and time to implement. These commands will likely be +removed before a next major release, since their lack of functionality is +confusing. + +## Deprecations + +- The option `rad self --nid` was deprecated in favor of `rad node status --only nid` - `rad diff` was deprecated in favor of using `git diff` - `rad patch review --patch` and `rad patch review --delete` are made obsolete. This functionality never worked as intended, and may be removed before the next major release. +- The option `radicle-node --log` was deprecated in favor of + `radicle-node --log-level` to be in line with `--log-logger` and `--log-format`. ## New Features @@ -29,11 +112,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `git-remote-rad` now correctly reports the default branch to Git by listing the symbolic reference `HEAD`. - `rad status` learned a new option `--only nid` for printing the Node ID. -- `rad issue` now uses `clap` to parse its command-line arguments. - This affects error reporting as well as help output. +- The remote helper has learned a new server option `patch.branch[=]`. + This will create an upstream branch when creating the branch. This upstream + can then be used for updating the patch, post creation. +- `radicle-node` has learned `--log-logger structured` and `--log-format json` + options. The node will output its logs in a structured, JSON format when + specified. ## Fixed Bugs +- The `rad` CLI now uses [indicatif](https://crates.io/crates/indicatif) for + emitting progress spinners. This fixes an issue when the terminal size was + too small for the spinner line. It also fixes when there is a user interrupt, + the cursor would disappear. +- The remote helper will no longer attempt to verify Git hooks twice, when + performing a `git push`. +- The default Git remote options, when using `rad remote`, now set `pruneTags` + to prevent canonical tags from being pruned from the working copy of the + repository's `refs/tags`. - `rad init --setup-signing` now works in combination with `--existing`. ## 1.4.0