Radicle IDE Plugins (VS Code + Jetbrains IDE): April - June 2023

Overview :telescope:

Continuing on from the grant structure proposed here, we are hereby proposing using the same model for the continued development of both the Jetbrains IDE plugin (once the current - at time of writing this - grant is completed), as well as the VS Code extension. This should bring less overhead for both ourselves, as grantees, as well as the Radicle Grants Committee.

This grant proposal will cover all the development work that will extend:

  • for the VS Code extension, from 6 April - 30 June
  • for the Jetbrains IDE plugin, from 20 April - 30 June

In the future, this can bring a more streamlined quarterly funding process and there will be no separation in the dates. It only happens this first time.

Description :page_facing_up:

Here is an overview of the progress so far and future development goals for each plugin:

VS Code Extension

Version 0.1 of the VS Code extension is now finally published and includes the first, pre-heartwood, functionality, adding support for the most common actions: Radicle Push, Pull and Sync.

With Heartwood slowly heading for a more generally available release, it is time to shift our focus there. We need to migrate the existing actions to work with heartwood nodes and add support for cloning (in our v0.2 release) and then continue further by adding the necessary User Interface to start working on Radicle Patch Proposals (coming up in v0.3).

The roadmap for the VS Code Extension is available here and our plans for future development have been organized in these Milestones.

Jetbrains IDE plugin

In the Jetbrains IDE plugin, we’ve just shipped the first round of Heartwood support! In v0.4 of the plugin, which has just been released, we migrated the pre-heartwood functionality for Auth, Push, Pull, Sync and Clone to Heartwood. We are already continuing work on v0.5 with support for Radicle Patch Proposals on Heartwood.

The roadmap for the Jetbrains IDE plugin is available here and our plans for future have been organized in these Milestones.

Budget :briefcase:

  • Total Duration: 128.25 FTE days
  • Software Engineer Full-time equivalent (FTE): 39 FTE days
  • Senior Software Engineer Full-time equivalent (FTE): 58.25 FTE days
  • Team Lead / Product Owner Full-time equivalent (FTE): 31 FTE days
  • Total Costs: 92 280 EUR ( 101 095 USDC)
  • Recipient Wallet: 0x445717316388f1d1fb1730D3f6f9Bf59e0b03f4f

Option 1: Drips-Powered Payments

In terms of a proposed payment sctructure, we would be prefer to be onboarded to Drips, as a way to “drink our own champagne” and reuse another Radicle stack product.

Option 2: Traditional Payments Schedule

In case it is not possible to onboard to Drips (v2) (e.g. because of a delayed launch), we propose a more traditional schedule, as per below:

  • 20% advance payment upon approval of the grant,
  • 40% payment after 6 calendar weeks,
  • 40% payment after 6 calendar weeks.

Team :busts_in_silhouette:

Team members

  • Yorgos Saslis
  • Ioannis Christodoulou
  • Stelios Mavrommatakis
  • Kostis Maninakis

Contact

Team’s experience

  • [Yorgos] 15+ years of experience in various roles of the full Software Development Lifecycle: writing code, agreeing on specs with clients, architecting systems, establishing product priorities, designing testing and CI strategies, and co-creating department-wide processes - with an itch for driving “waste” out the door. Co-founder of developer communities (DevStaff, Heraklion Software Crafters, Web3 Greece) and co-organizer of open space unconferences (AgileCrete, JCrete) on the (paradise!:desert_island:) island of Crete!
  • [Ioannis] is a Software Architect with 10 years of professional experience in Web and Mobile applications, such as Greek Passenger Locator Form (a web application that all travelers coming to Greece were required to fill-in) and Covid Free GR (the mobile application used throughout Greece to verify COVID-19 vaccination, recovery and test certificates). He is also the creator and maintainer of an IntelliJ plugin (GitExtender - github, marketplace ) for managing and updating multiple git repositories in the same IntelliJ project.
  • [Kostis] After many years of international professional experience, Kostis has grown into a frontend-oriented software crafter with a passion for web technologies, developer tools, and refined user experiences. With occasional contributions to local dev communities and open-source software, including publishing the popular TypeScript library ts-xor, Kostis has always been looking for opportunities to become increasingly active in open-source software development. Moreover, he was there during Bitcoin’s early rise in 2011, actively partaking in the cipher-punk community’s radical discussions while mining his first Bitcoin with his desktop CPU, which he subsequently day-traded for many sleepless months. :slightly_smiling_face:
  • [Stelios] is a young Full Stack Software Engineer focused on web applications development. He had participated in large software projects like the EU-DPLF (https://euplf.eu/) a paneuropean application for covid19 contact tracing for tavelers to the EU. He is a passionate software engineer and is currently working on a web3 project expanding his knowledge and experience in new and challenging sectors.

Team Code Repos

Team LinkedIn Profiles (if available)

Additional Information :heavy_plus_sign:

How did you hear about the Grants Program? Radicle Discord

UPDATE:

Due to some holidays and people taking time off, there is actually less budget required to cover the above development interval. The total budget is 84 270 EUR (92 543 USDC) as opposed to 92 280 EUR (101 095 USDC).

With regards to the payment method, it looks like Drips v2 has been deployed on mainnet, so we would prefer to try that out, if possible and if you agree, when you are ready to move forward with this grant.

Spoke off-line with @yorgos about testing Drips V2 for this grant.

The payout will be as follows:

  • 20%: initial one-off payment directly from Gnosis Safe
  • 50%: Drips V2 stream of funds over the course of the grant
  • 30%: final one-off payment directly from Gnosis Safe

As such, I’ve started the 20% (18,508.60 USDC out of 92,543 USDC) at Nonce 62 below

Note: as a reminder, all tax compliance for the grant is the responsibility of the grantees

1 Like

Friendly reminder that the 50% is being streamed via Drips below:

Thanks @bordumb !

From our side, here is an overview of the progress on IDE plugins that was made as part of this grant:

Jetbrains IDE Plugin

v0.5 - Introducing: Radicle Patches in your IDE

When this grant started, With v0.5, the Radicle Jetbrains IDE plugin introduced support for working with Radicle Patches inside your IDE :tada: :spiral_notepad:

While work was already underway on v0.5 from a previous grant, it was this grant that made it possible to conclude that work and ship :ship: the v0.5 release, that built on the existing :heart: :wood: support and brought the ability to collaborate by exchanging patches from within the IDE!

Release Highlights

  • Radicle Patch listing migrated to Heartwood
    • with search / filtering
  • Radicle Patch Activity overview migrated to Heartwood
  • Radicle Patch Details migrated to Heartwood
  • New “Radicle → Track” action was added!
    • You can now track both Radicle projects and peers
  • Moved passphrase storage to CredentialsStore, provided by the Jetbrains IDE Plugin Software Development Kit (SDK)

(Please note you’ll need to upgrade to the Jetbrains IDEs 2023.1 to have access to this latest version of the plugin :wink: )

More details here! :tada:

v0.6 - Introducing: Radicle Issues in your IDE

This version brings the final major missing feature to the Jetbrains IDE plugin. With support for Radicle Issues we will have all the necessary pieces for decentralized code collaboration in place!

Release Highlights

This release will focus on enabling the main, basic, functionality around issues:

  • Radicle Issues [NEW] :new:

    • Add list of Radicle Issues in Radicle Tool Window,
    • Add filters & search functionality in Issues panel,
    • Viewing specific Issue details and activity (e.g. previous comments),
    • Adding new comments to Issues
  • Radicle Patches [IMPROVEMENTS] :hammer_and_wrench:

    • Add support for authenticating and using radicle-httpd API when write access is required, initially for changing Patch title
    • Add comment to Patch via HTTP API
    • Refactor Patches panel to bring on par with Issues panel

More details on the v0.6 release here! :rocket:

With this minimum set of functionality, in place, we feel we will be in a position to now start “drinking our own champaign” (a.k.a. “dogfooding”), on two fronts:

  • moving from GitHub to Radicle, :wave:
  • using the Jetbrains IDE plugin itself to write the next versions of the Jetbrains IDE plugin ! :arrows_clockwise:

This goal has been set in place in the subsequent grant proposal that will fund the next development iterations. For more details on the work planned ahead, please refer to the v0.7 Milestone (still work-in-progress, at the time of writing).

Visual Studio Code (VS Code) Extension

The first version (v0.1) of the Radicle VS Code extension that was shipped at the beginning of April, provided support for pre-heartwood functionality and was funded as part of a previous grant.

Our focus since, has been to bring initial support for Heartwood in the extension, so the team has been eating through the Heartwood learning curve, as we also make the important / necessary changes towards Heartwood compatibility.

You can find more details about our progress, below:

v0.1.2 - Teach extension about Radicle repo state

The main feature in this small patch version was to teach the extension about the possible states that a radicle project can be in, in order to allow the extension to adapt its User Interface(UI) accordingly, essentially preventing the user from clicking buttons that would never work.

In more detail:

  • (feat) commands: hide Radicle commands from UI when they are not applicable
  • (chore) git: define known scopes for conventionalCommits extension
  • readme: add missing reference to integrated logging feature
  • readme: fix link to Radicle homepage
  • readme: fix broken reference to image showcasing integrated logging feature
  • changelog: prefix changes with context and remove quotations formatting

Complete changelog

v0.2 - Initial support for Heartwood

This version (which has just been shipped) provides the initial set of necessary changes for Heartwood:

  • Adopting latest identity and node storage changes - #28, #33
  • Cloning radicle repos
    • browsing projects your node knows about and cloning a working copy - #29
    • cloning a radicle project, using its unique repository ID - #27

Our next release (v0.3) will start focusing on bringing support for Radicle Patches, as well as several additional fixes and improvements. For more details please refer to the relevant Milestone (still work-in-progress, at the time of writing).

Conclusion

The releases of Radicle Jetbrains IDE Plugin v0.6 and Radicle VS Code Extension v0.2 conclude the work undertaken as part of this grant. We look forward to continuing the work on the Radicle IDE plugins soon!

1 Like

@yorgos

Thanks a bunch for this Yorgos and team!

I’ve got things working on my end.

I’m really happy to see how well these 2 plug-ins are keeping in step with Heartwood development. Also awesome how you guys are starting to keep these two IDE plug-ins more in-line with each other, given the Jetbrains work started earlier.

I’ve started the final transaction for 30% at Nonce 70 below:

Note: grantees are responsible for tax and compliance in their respective region.

1 Like

Amazing work @yorgos !