Skip to content

cytechmobile/radicle-jetbrains-plugin

Repository files navigation

radicle-jetbrains-plugin

Build Version Downloads

This plugin allows you to start using Radicle (the decentralized Code Collaboration protocol) directly from your Jetbrains IDE.

Radicle is an open source, peer-to-peer code collaboration stack. It leverages Git’s architecture combined with cryptography and a gossip protocol to enable a fully sovereign developer stack.

Radicle enables developers to securely collaborate on software over a peer-to-peer network, built on top of Git, that provides GitHub/GitLab-like functionality (think Pull/Merge Requests, Issues, etc.).

This plugin requires the rad Command Line Interface (CLI) tool to be installed. Installation instructions for rad are available here: https://docs.radicle.xyz/guides/user

This plugin is available under Apache License, Version 2.0

Known issue: Due to latest changes in private repos, we are aware of issues working with private repos in the plugin. Please reach out to us in #integrations for assistance, if you are facing this issue.


Installation

  • Using IDE built-in plugin system:

    Settings/Preferences > Plugins > Marketplace > Search for "radicle-jetbrains-plugin" > Install Plugin

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...


Usage

Prerequisites

  • The rad Command Line Interface (CLI) tool installed. Please check here for installation details.

  • A Radicle identity (create with rad auth. Check here for examples.)

  • 2 running background processes:

    • radicle-node: In order to sync your changes with the network. Please check here for instructions on operating your radicle node.
    • radicle-httpd: In order to browse project issues and patches and also be able to make changes to them, such as write comments, leave in-line code reviews, merge patches, etc.
      • IMPORTANT: Please note that we are currently in the process of removing this dependency and moving everything to just the rad CLI, as part of our v0.11 release. In the meantime, this plugin won't work with the latest official version of radicle-httpd. You can use a forked version we have released here. Once you download the corresponding binary for your platform, you can run it with, e.g.: radicle-httpd --listen 0.0.0.0:8080.
  • On Windows:

    • Windows Subsystem for Linux (WSL) 2 (The following steps are required in the default WSL2 distribution)
    • Keychain 2.8.5 (e.g. with sudo apt-get install keychain or sudo dnf install keychain )
    • Add the following line to your bash shell configuration ~/.bashrc. Even if you are using a different shell, such as zsh, these need to exist in your bash shell configuration.
    eval `keychain --quiet --eval --agents ssh id_rsa`;
    export WSLENV=$WSLENV:SSH_AGENT_PID:SSH_AUTH_SOCK;
    • Open a window terminal and start Intellij from wsl (e.g wsl bash -lic "path-to-intellij" )
    • Open Intellij settings and set the Git executable to be the one installed in Windows Subsystem for linux
    • Run rad auth in your project directory

Contribute changes (Creating a patch)

  • Create a branch and commit your changes
  • Open the Radicle Tool Window appearing on the left, or click View > Tool Windows > Radicle
  • In the Patches tab, click on + on the top right of the Radicle Tool Window.
  • Fill in your patch's title, description and labels
  • Click on Create Patch.

Your new patch is now created and you can view it in the Patches tab!

Accepting Contributed Changes (Merging a patch)

  • Open a Radicle-initialised repo in your Jetbrains IDE.
  • Use Git -> Fetch (or explicitly Git -> Radicle -> Sync) to fetch changes from the seed node.
  • Open the Radicle Tool Window appearing on the left, or click View > Tool Windows > Radicle
  • In the Patches tab, you can view all available patches and filter them by State / Project / Author / Label.
  • Select one of the Open patches, by double-clicking on it.
  • Now you can view the patch information, including Patch ID, Author, Title, Description, as well as the patch's Timeline in the editor. You can also Checkout the patch and create a local git branch from it.
  • While reviewing the patch changes, you can click on the + sign appearing in the gutter in the editor screen to add review comments.
  • Once you feel the patch is ready to be merged, you can click on the Merge button from the patch info tab. This will merge the patch to your repository's default branch and push the changes to the radicle remote (rad).

The patch is now merged!