Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
CHANGELOG: Radicle 1.5.0
Merged fintohaps opened 7 months ago
1 file changed +99 -3 8bc578bf 4787b53b
modified 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[=<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