CHANGELOG: Radicle 1.5.0

This commit is contained in:
Fintan Halpenny 2025-09-29 17:16:52 +01:00 committed by Lorenz Leutgeb
parent 8bc578bfa8
commit 4787b53b1e
1 changed files with 99 additions and 3 deletions

View File

@ -11,11 +11,94 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Deprecations ## 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[=<name>]`. 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/<PATCH ID>`. Alternatively, the
`<name>` 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 diff` was deprecated in favor of using `git diff`
- `rad patch review --patch` and `rad patch review --delete` are made obsolete. - `rad patch review --patch` and `rad patch review --delete` are made obsolete.
This functionality never worked as intended, and may be removed before the This functionality never worked as intended, and may be removed before the
next major release. 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 ## 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 - `git-remote-rad` now correctly reports the default branch to Git by listing
the symbolic reference `HEAD`. the symbolic reference `HEAD`.
- `rad status` learned a new option `--only nid` for printing the Node ID. - `rad status` learned a new option `--only nid` for printing the Node ID.
- `rad issue` now uses `clap` to parse its command-line arguments. - The remote helper has learned a new server option `patch.branch[=<name>]`.
This affects error reporting as well as help output. 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 ## 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`. - `rad init --setup-signing` now works in combination with `--existing`.
## 1.4.0 ## 1.4.0