- **Status:** Open - **Proposer:** [@gsaslis](https://github.com/gsaslis) - **Your Project(s):** [optional]: - https://github.com/cytechmobile/radicle-jetbrains-plugin/ - https://github.com/cytechmobile/radicle-vscode-extension/ - **Projects you think this work could be useful for** [optional]: smoother onboarding and day-to-day operations with Radicle ## Overview :telescope: Following on from the [grant](https://radicle.community/t/radicle-ide-plugins-vs-code-jetbrains-ide-april-june-2023/3292) that funded: a. the work for the addition of Patch Proposals and Issues in the Jetbrains IDE plugin and b. initial Heartwood support in the Visual Studio Code extension for Radicle, we are submitting a follow-up proposal to cover: * all development work, on both plugins, from **1 July - 30 September** We feel this quarterly model better matches the current needs and reduces friction on both sides (Grantee - Radicle Grants Program team). ## Description :page_facing_up: Here is an overview of the progress so far and future development goals for each plugin, for the next 3 months: ### VS Code Extension At the moment of writing this, version 0.2 of the VS Code extension is in the final phases of development - targeted to be shipped next week (end of June). v0.2 brings the first Heartwood support: - adapting the extension for changes around identity and node storage introduced in Heartwood, - Secure storage and automatic re-use on reboot for Passphrases (per identity) - adding support for using the HTTP API (as opposed to just wrapping the `rad` command-line interface (CLI)) and - introducing the ability to clone radicle projects (your radicle-node knows about) by: - browsing the list of projects, or - by simply using the unique radicle project id. For the next quarter, the main goal for the VS Code extension is pretty clear, as it will follow on pretty much the same path as the Jetbrains IDE plugin. First, we will move to introduce support for Radicle Patches (v0.3), so we can enable developers to exchange code changes and discuss about them, on Radicle, from their IDE. Next, and as time allows, we will move to incorporate Issues (v0.4), so that Radicle experience in VS Code becomes richer and more substantial: there's a certain magic in not having to switch to the browser (and finding the right tab!!) just to see comments from your peers about the code you're working on and information about the issue describing the work ahead of you. Less context switching greatly enhances focus and helps maintain the state of "flow" that we all feel so content in. Along the way, we'll also need to take the time to put a better testing strategy in place and incorporate that in our CI pipeline, as well as better architect some parts of the extension related to HTTP API calls (where we will work together with the `radicle-interface` team, as needed). This is all to serve the - rather more ambitious, for Q3, it has to be said - goals of: - moving the extension development to Radicle (from GitHub) - moving the extension development to use the extension itself as the necessary Radicle-related tooling, finally allowing us to "drink our own champagne" - also commonly called "dogfooding". For the time being, the roadmap for the VS Code Extension lives [here](https://github.com/orgs/cytechmobile/projects/9/views/1) and our plans for future development will be organized using GitHub Milestones. :/ ### Jetbrains IDE plugin On the Jetbrains IDE plugin (where development started much earlier and moved faster in the early stages), we've now already shipped v0.5 - which supports viewing and interacting with Radicle Patches from your IDE - and are planning to ship v0.6 at the end of June - bringing support the initial set of support for Radicle Issues. In the following months, included in this Grant proposal, our main goal is to: - move development of the plugin away from GitHub and onto Radicle - stop using GitHub Pull Requests (PRs) and **use Patches - trough the IDE plugin itself** - stop using GitHub Issues and **switch to Radicle Issues - trough the IDE plugin itself** - assumes current blocker issues (planning milestones + screenshot/attachments) are resolved We are setting this as our main and earliest goal, because now that the initial set of functionality is there (i.e. you can view patches / issues in your IDE and comment on them), we want the development of the next features to be guided by our own pains and experience as we use the plugin itself (where possible) to accomplish our day-to-day work. This is also in-line with the overall "dogfooding first" approach adopted by the Heartwood core team and we feel will also help Heartwood itself. We have already highlighted 2 areas that we feel we will need to put specific emphasis on: - **Patch Reviews** - focus on making our own experience around **reviewing** patches as smooth as possible: add support for inline comments, approvals / requested changes, smooth **merging** of Patches, UX improvements to address **"unread" content** (e.g. comments that were written before the latest ones we've seen - but that our node *only just found out about*), etc. - **Issue integration with IDE** - the Jetbrains IDE already provides specific UX improvements around working with "Tasks" (handling e.g. automatic branch creation with the task id in the branch name / auto-switching branches when switching to a different "task context" / automated opening of PR for the "Task" and so on). We want to investigate this area in more detail, in order to understand the potential it creates for Radicle, in terms of a superior Development Experience, compared to existing tools. Rather than committing on a specific order for working on these, we would like to allow our own *tasting* of "our own champagne" to dictate priorities. By the end of the 3rd Quarter 2023 we want this plugin to be entirely off GitHub (save for, perhaps, a mirror - for discoverability) and not only "on Radicle", but also taking our first steps towards an improved Developer eXperience. The detailed roadmap for the Jetbrains IDE plugin also lives in [GitHub Issues](https://github.com/orgs/cytechmobile/projects/4/views/1) for the time being. ### Closing the "gap" For this quarter, we will be ramping up the efforts on the VS Code side, spending about 45% more development hours on that, and reduce the number of hours on the Jetbrains IDE plugin (by around 25%), so we can start closing the gap - in terms of functionality - between the two IDE plugins. ## Budget :briefcase: .. ### Drips-Powered Payments The first experience receiving a Radicle Grant payment through Drips has worked great so far (and has already created real-world usage feedback for the Drips team), so we propose to continue using Drips, in order to continue "drinking our own champagne" and reusing another product from the same stack. ## Team :busts_in_silhouette: ### Team members - Yorgos Saslis - Ioannis Christodoulou - Stelios Mavrommatakis - Kostis Maninakis The **same team** that's worked in the previous IDE plugin grants. ### Contact - **Contact Name:** Yorgos Saslis - **Contact Email:** I can share this privately on discord. - **Website:** https://gsaslis.github.io/ ### 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](https://devstaff.gr), [Heraklion Software Crafters](https://www.meetup.com/Heraklion-Software-Craftsmanship-Community/), [Web3 Greece](https://www.meetup.com/web3-greece/)) and co-organizer of open space unconferences ([Software Crafters Crete](https://socrates-crete.org), [JCrete](https://jcrete.org)) on the (paradise!🏝) 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](https://github.com/JChrist/gitextender), [marketplace](https://plugins.jetbrains.com/plugin/7835) ) 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 - https://github.com/gsaslis - https://github.com/jchrist - https://github.com/maninak - https://github.com/Stelios123 ### Team LinkedIn Profiles (if available) - https://www.linkedin.com/in/gsaslis - https://www.linkedin.com/in/jchrist7 - https://www.linkedin.com/in/stelios-mavrommatakis ## Additional Information :heavy_plus_sign: **How did you hear about the Grants Program?** Radicle Discord