Radicle Upstream v0.2.3 is out! 🎉

Welcome to the v0.2.3 release of Upstream :tada:

This release has been a long time coming and we’re glad to finally ship it! This release includes some key improvements to network replication, but introduces some changes as well. Read on for what you need to know when updating to v0.2.3 :point_down:

What to expect when updating to v0.2.3

If you update you Upstream client, you’ll have to create a new profile. Don’t worry! Your data still exists, but it will be incompatible with the new data layout.

The changeover involved moving to the Identities specification. This means that the format of Radicle IDs has changed. Any interaction with an “old” (i.e. v0.1.x) Radicle ID will be rejected. While other migration strategies were possible, we decided that our desire to keep moving forward with network upgrades greatly outweighed the time that would be required to migrate old Radicle IDs.

The good news is that all you have to do after updating to v0.2.3 is republish your projects and share the new Radicle IDs.

Republish your projects

With the new data layout, Radicle IDs of projects will have to be updated as well. To ensure availability of your project on newer versions of Upstream, republish your project to your new profile via the Upstream client.

Republishing a project renames the old remote entry to old_rad and creates a fresh rad remote using the new URL. If there are particular branches living in old_rad that you want to keep, be sure to checkout those branches and push them to the new rad remote.

Share your new Radicle IDs

In v0.2.3, searching for a project that hasn’t been been updated will throw an error:

To avoid this issue, it’s important to update your project’s Radicle ID wherever you’ve shared it (i.e. READMEs, websites, twitter). This will ensure consistent availability across the network as everybody transitions to v0.2.3

Say :wave: to your new seed node!

You may be wondering about seedling.radicle.xyz. Well, the new version of Upstream will no longer point to this seed because it harbors projects based on the old Radicle IDs. We’ve planted the latest seed node into v.0.2.3, so we’re pleased to introduce to you sprout.radicle.xyz. The old seed node will stick around for a while as we wait for people migrate over to the latest version.

If you’re running a seed node, you’ll want to consider migrating over to the latest seed node code as well. The setup remains the same, but a few new (optional) parameters were added for tuning it.

How can I access my old data?

With this release, we’ve allowed a separation of “profiles” in radicle-link.

In the XDG_ directories of your radicle-link monorepo, you can find sub-directories that are keyed by a random UUID. The UUID of your “active profile” is specified in the active_profile file. You can switch between your profiles by changing the UUID specified in the active_profile file.

# On macOS
/Users/rudolfs/Library/Application Support/xyz.radicle.radicle-link/

# On Linux

├── 7bf6d21b-9b74-41c2-b9a3-cae0a3cf400e
│   ├── git
│   ├── git-includes
│   └── keys
└── active_profile

Your data from Upstream v0.1.13 and below can still be found in the radicle monorepo. Note that the new storage location is radicle-link, whereas the old one was radicle. You can remove the old data in this directory - but that’s up to you!

# On macOS
/Users/rudolfs/Library/Application Support/xyz.radicle.radicle

# On Linux

├── git
│   ├── HEAD
│   ├── config
│   ├── description
│   ├── hooks
│   ├── info
│   ├── objects
│   └── refs
├── git-includes
│   └── hwd1yreybi45xgmpdi7zsj8339dnwrh41tdg7d8mi7miwd6axwibo5hbkmh.inc
└── keys
    └── librad.key

Changelog and Binaries

You can find all the changes for this release here.

Here are packages for all our supported platforms:

For more information on how to use Radicle, check out our documentation.

For support, you can reach us in the #support channel of our Matrix chat or in the #help category of this forum.

If you encounter a bug, please open an issue.

What’s next?

There’s still improvements to be made here, we’re still in β after all :wink:

Moving forward we plan on building out some better test infrastructure around radicle-link. This will give us and you a better quality of life using Radicle as we make it easier to test networking between peers and track down any oddities that we come across. As always, we appreciate that you’re digging into our software and helping us iron out these kinks!

Stay Radicle :seedling: