General Announcements & Updates
The highlights of our work this quarter include:
-
Berlin Face-to-Face
- amazing to be together with most of the Radicle core team ! Great opportunity to discuss, learn from each other and align on the road ahead!
-
Run Radicle in containers !
- bring up all Radicle components on your machine with
docker-compose up
/podman compose up
. Check out the radicle-in-containers repo! - This came up after user request on Zulip and will help more potential users try out Radicle on their machine, if they have docker/podman installed.
- bring up all Radicle components on your machine with
-
Automation & CI/CD goodness
- GitHub Actions and self-hosted Concourse CI are automating testing and releases from our Radicle repos.
- For example, here’s an exposed pipeline that published the 1.0.0-rc.13 radicle-node container image.
-
Code reviews with Radicle Patches for IntelliJ / Jetbrains IDE users:
- Fully decentralised collaboration now possible! Check out the video!
-
Editing Radicle Patches is now possible in VS Code:
-
Planning made easier, with Radicle Planning Boards:
- if you prefer to plan your work on a board, it is now so much easier to work with your issues and patches by quickly filtering for text in patch titles, labels or IDs.
- Check out the video!
Quarterly Objectives Updates
User Research
We have taken our first steps towards establishing a process for collecting feedback / conducting user interviews that use Radicle Integrations & Tooling we develop. @vanton has taken the lead in this area and will be driving more work on this in Q3 / Q4.
To ensure consistency in our results, we first established a methodology to guide our efforts. This approach will enable us to refine our tools and their documentation, ultimately providing a better experience for users. Our initial focus is on the CI Integration toolset, with the first tool undergoing user testing. We have identified three distinct user groups within the Radicle ecosystem: Open-Source Software (OSS) Contributors, OSS Project Maintainers, and Node Operators. While all three groups are important to our community, we are primarily targeting the latter two, as they are more closely tied to our CI Integration Tooling.
Our methodology involves the following key steps:
- We develop a Value Proposition Canvas for each user group, focusing on their everyday jobs, pain points, and gains to better understand their needs.
- We create an initial scenario that helps us gather insights about the effectiveness and ease of use of our tools.
- Next, we design a small questionnaire to facilitate user interviews and encourage participation.
- To refine our approach, we conduct internal user interviews (2) with team members to evolve our scenario and streamline the interview process for external users.
- We then conduct additional interviews with Radicle community users, recording their feedback and insights.
- Once we complete user testing, we will channel feedback to the relevant teams (RIT, Core and RSN, when available) and share feature requests, bug reports, or improvement proposals.
Development Roadmap
In this section we provide details on all the new features developed in Q2 2024. Please feel free to expand each section for details.
Planning Boards:
- advanced filtering functionality now makes it easier to create different views on the board:
- view issues/patches with a specific label, or specific text included in the title,
- quickly find issues with a specific ID.
- check out the video!
- new container image for the boards app, so you can painlessly run it on your machine as part of the radicle-in-containers podman/docker compose!
- Detailed changelog.
- the Planning Boards app is the most heavily affected app after the core team’s decision to drop write functionality from radicle-httpd and the radicle-explorer - in which we were envisaging the boards app to be embedded. A lot of work has gone into discussions with the core team and keeping up-to-date with these changes and planning for the future steps for this app.
CI Integrations:
Concourse CI Integration
- UX improvements based on user feedback:
- formatting and content included in updates to patches
- Write just one comment in each patch (instead of multiple, every time there is an update) and update it periodically with workflows’ progress and results
- Added support for CI broker protocol version and support for version 1
- Documentation fixes and improvements
- Appended error details in the patch’s comment in case an error occurs
- Pipeline name is now generated from repository’s name and the last 6 characters of the repo ID
- Fixed failed pipelines that were not recognised correctly in case of cancellation
- Use of concourse CI to automate generation of container images for radicle. Check out the pipelines used for that.
- Detailed changelog.
Github Actions Integration
- UX improvements based on user feedback:
- formatting and content included in updates to patches
- Write just one comment in each patch (instead of multiple, every time there is an update) and update it periodically with workflows’ progress and results
- Added support for CI broker protocol version and support for version 1
- Documentation fixes and improvements.
- Detailed changelog.
Webhooks Integration
- Mainly stabilisation and keeping up-to-date with CI Broker:
- Added support for CI broker protocol version and support for version 1
- Documentation fixes and improvements
- Fixed webhook signature hash generation when payload contains special characters
- Detailed changelog.
Contributions to Radicle CI Broker
IDE Tooling:
- VS Code Highlights:
- first mutations are here! Edit your patch title, description and status, at your heart’s will and let us know what you thought of the UX (we think it’s pretty smooth ) !
- reactive state shared between extension and webviews
- significant hardening and polishing of existing features and their UX
- security and performance improvements
- research and groundwork for future operation without requiring Radicle HTTP API Daemon a.k.a. httpd
- Detailed v0.5.0 changelog.
- Jetbrains IDEs:
- Several improvements made to code reviews using Radicle Patches, specifically around inline comments, reactions and replies to inline comments, and discussions across several revisions of the patch.
- the Jetbrains plugin currently offers the most integrated experience to do code reviews on Radicle. Check out a demo!
- you can now quickly check the status of radicle-node / radicle-httpd inside the IDE.
- For more details, check out the detailed changelog covering all the features and fixes that went into v0.9.1, v0.9.2 and v0.10.0 releases.
Timeline & Budget Update
We are just 8K USDC over budget.
During Q2 we spent 126K USDC and our budget was 118K USDC.
Due to our grant being split between USDC and RAD, with the significant price fluctuation in RAD, we anticipate facing financial challenges within the next couple of months. Currently, we use USDC, which is converted to fiat, to compensate our contributors. This development may impact our ability to sustain our operations as planned.
Upcoming
The Radicle core team’s decision to remove write functionality from radicle-httpd means we will have some unplanned migration work back to the Command Line Interface in Q3, across our IDE tooling and Radicle Planning Boards. For the latter, as it is a client-side web app that can’t rely on a CLI tool, we are still evaluating what the best way forward will be now that radicle-httpd will only be used for read functionality.
With regards to running our public seed node, we have open sourced our deployment scripts in the Radicle Ansible playbook. We are planning to do more work in this area, in order to help more users onboard and stay on Radicle:
- migrate our node deployment to the more versatile container-based deployment using the radicle-in-containers repo,
- make our grafana-based monitoring and alerting solution for our own public seed node more reusable by other seed node operators,
- now that container images are being automatically published with new releases, explore more container-based deployment solutions, such as Kubernetes.
With regards to our CI Integrations, we are primarily want to focus on getting more pipelines running to support automation in repositories already published on Radicle. To that end, we need to explore Dependabot / depfu / renovatebot integrations for automated dependency updates, which we are using in some of our own repos - these are currently a blocker in moving completely away from GitHub. We are working closely with the core team in this area and will be incorporating the planned CI Broker improvements.