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
- 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 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[=<name>]`.
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