RSS

Learn how to fork, build, and contribute to Radius

Hello future Radius contributor! This blog post will guide you through the process of contributing to the Radius project. Contributions can come in many forms, such as code contributions, documentation updates, bug reports, feature requests, and more. We welcome contributions from users of all skill levels, so don’t hesitate to get involved!

Getting started

Here are a few tips and things you’ll need to get started with contributing to Radius.

  • Radius has adopted the Contributor Covenant as its code of conduct. For more information see CODE_OF_CONDUCT.md in the main Radius repository.

  • Radius is composed of multiple components and repositories. You can find the main Radius repository here and the other repositories in the radius-project GitHub organization. It may help to consult our contributing guide to understand the different components of the project and how to contribute to each.

  • If you want to contribute but don’t know where to start, feel free to reach out to the community on the Radius Discord or look for issues labeled as good first issue. We are happy to help and we appreciate your interest in contributing to the project, so no question is too small!

Non-code contributions

We welcome contributions of all kinds to Radius, not just code! Here are a few ways you can contribute to the project without writing a single line of code.

  • Radius Roadmap: Help shape the future of Radius by upvoting or commenting on the features in our public roadmap.

  • Documentation: Help improve the Radius documentation by fixing typos, adding examples, or suggesting new content. If you see anything that can be improved, check out the menu on the right side of the page and use the New docs issue link to suggest changes or Edit this page link to create a pull request with your changes.

  • Bug reports: If you encounter a bug while using Radius, please report it on the Radius GitHub repository.

  • Feature requests: If you have an idea for a new feature or improvement, please share it with the community by opening a feature request.

  • Everything else: Any questions, comments, or feedback? Feel free to reach out to us on the Radius Discord!

Code contributions

We also welcome contributions to our codebase. The following sections will guide you through the process of contributing to the Radius CLI, Dashboard, Recipes, and control plane.

General prerequisites

Before you start contributing code to Radius, there are a few general prerequisites that you should be aware of.

  • Radius leverages the Developer Certificate of Origin to certify that you have the right to submit the code you are contributing to the project. Make sure to include the Signed-off-by line in your commit message, or use the -s flag when committing.

  • Radius uses GitHub forks for contributions. This means that you will need to fork the repository you’re interested in to your GitHub account before making any changes. Please see the documentation for instructions and best practices for using forks with Radius.

What to expect

When you submit a pull request to the one of the Radius repositories, the Radius community will review your changes and provide feedback. One or more of the Radius maintainers will take a look within a day or two and provide feedback as well. Please keep an eye on your pull request for any comments or requests for changes.

Once the changes are approved, the maintainers will merge your pull request into the main branch. Congratulations, you are now a Radius contributor!

Here is a more detailed guide on what to expect when you submit a pull request to Radius.

Contributing to the Radius codebase

Since Radius encompasses multiple components, we’ll cover how to contribute to the Radius control plane, CLI, dashboard, and recipes. If you are interested in one of these areas specifically, feel free to jump to the corresponding section!

Contributing to the Radius CLI

Contributing to the Radius CLI is a great way to get started with the project, and we recommend it for anyone starting out with Radius.

Prerequisites
Getting started

We have authored a guide to help you get started with contributing to the Radius CLI. You can find it here. This guide will walk you through the process of setting up your development environment, building the CLI, running tests, and submitting a pull request to the Radius repo.

Here is a list of good first issues to get you started. Look for the issues that specify commands (rad <command>) or the CLI in general.

Contributing to the Radius Dashboard

If you’re interested in front-end development, contributing to the Radius Dashboard is a great way to get involved with the project. The Radius Dashboard is built on Backstage, an open-source platform for building developer portals.

Prerequisites
  • General knowledge of front-end development with React
  • A fork and local clone of the radius-project/dashboard repository
Getting started

The Radius Dashboard is a new part of Radius, and as a result, there is lots to do! We have authored a guide to help you get started with contributing to the Radius Dashboard. You can find it here.

Here is a list of good first issues to get you started.

Contributing to Radius Recipes

If you or your organization have authored custom Radius Recipes, we would love to see what you have built! So far, we have authored some recipes for our supported resources, but we are always looking for more contributions and examples for our community.

Prerequisites
Getting started

We have authored a guide to help you get started with contributing to Radius Recipes. You can find it here. In the radius-project/recipes repo, there are many examples of recipes that you can use as a starting point for your own contributions. For example, a custom Azure Service Bus recipe or an AWS Redis recipe that leverages AWS MemoryDB.

Contributing to the Radius control plane

Most of the Radius functionality exists within the control plane, which is a set of services that exist as part of your Radius installation.

Prerequisites
Getting started

To get started with contributing to the Radius control plane, the general flow is as follows:

  1. Install Radius onto your Kubernetes cluster
  2. Make changes to the control plane code
  3. Build the control plane images (applications-rp, ucp)
  4. Push the images to a registry that you own
  5. Update the installed Radius control plane to use the new images

We have written a more detailed guide to help you get started with contributing to the Radius control plane. You can find it here.

Advanced inner-loop development

If you want to run the control plane locally, we have a guide for that as well. You can find it here. This is useful for debugging and testing changes to the control plane, but comes with some additional setup requirements.

What’s next?

Thanks for reading this guide on how to contribute to Radius! We hope you found it helpful and that you are excited to get started. If you have any questions or need help, please don’t hesitate to reach out to the community on the Radius Discord. We are here to help and we look forward to your contributions!