Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add github issue templates and update repo artifacts #30

Merged
merged 7 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Bug Report
description: Report broken functionality within Radius Dashboard
title: '<BUG TITLE>'
labels: ['bug']
body:
- type: markdown
attributes:
value: '## Bug information'
- type: textarea
attributes:
label: Steps to reproduce
description: How can we recreate this bug? Be specific.
validations:
required: true
- type: textarea
attributes:
label: Observed behavior
description: What you're experiencing that you believe is a bug.
placeholder: |
If applicable, add screenshots to help explain your problem.

Tip: You can attach images or files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: textarea
attributes:
label: Desired behavior
description: What you're expecting to happen.
validations:
required: true
- type: textarea
attributes:
label: Workaround
description: Have you found a workaround to get you unblocked?
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
placeholder: |
Links? References? Anything that will give us more context about the issue you are encountering!

What browser (Chrome, Firefox, Edge, etc.) are you using to access the dashboard? For example: Chrome Version 121.0.6167.85 (Official Build) (arm64)

What rad cli version are you running? You can run `rad version` and past the output here.

Tip: You can attach images or files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: checkboxes
attributes:
label: Would you like to support us?
description: Would you like to support us in fixing this bug?
options:
- label: Yes, I would like to support you
required: false
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Discord Support
url: https://discord.gg/SRG3ePMKNy
about: Please ask any questions you may have here
57 changes: 57 additions & 0 deletions .github/ISSUE_TEMPLATE/engineering.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Engineering Improvement
description: Report problems or suggestions to improve the Radius Dashboard engineering processes and/or pipelines
title: '<TITLE>'
labels: ['maintenance']
body:
- type: markdown
attributes:
value: '## Engineering Improvement'
- type: textarea
attributes:
label: Area for Improvement
description: What engineering process or tools can be improved? Build? Testing? ...? Be specific.
validations:
required: true
- type: textarea
attributes:
label: Observed behavior
description: What you're experiencing that you believe could be improved.
placeholder: |
If applicable, add screenshots to help explain your problem.

Tip: You can attach images or files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: textarea
attributes:
label: Desired behavior
description: What you'd like to happen.
validations:
required: true
- type: textarea
attributes:
label: Proposed Fix
description: Have you found a way to implement or fix the issue?
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
placeholder: |
Links? References? Anything that will give us more context about the issue you are encountering!

What browser (Chrome, Firefox, Edge, etc.) are you using to access the dashboard? For example: Chrome Version 121.0.6167.85 (Official Build) (arm64)

What rad cli version are you running? You can run `rad version` and past the output here.

Tip: You can attach images or files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: checkboxes
attributes:
label: Would you like to support us?
description: Would you like to support us in improving Radius engineering processes and/or pipelines?
options:
- label: Yes, I would like to support you
required: false
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Feature Request
description: Request a feature in Radius Dashboard
title: '<FEATURE TITLE>'
labels: ['feature']
body:
- type: textarea
attributes:
label: Overview of feature request
description: What are you proposing Radius Dashboard add/update/remove?
validations:
required: true
- type: textarea
attributes:
label: Acceptance criteria
description: What will need to be completed/working for this feature to be marked "Done"?
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here
placeholder: |
Links? References? Anything that will give us more context about the feature you are looking for!

Tip: You can attach images or files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: checkboxes
attributes:
label: Would you like to support us?
description: Would you like to support us in implementing the feature?
options:
- label: Yes, I would like to support you
required: false
47 changes: 47 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Contributing

Radius is in an early phase of development right now. We welcome feedback in the form of issues that comes from usage and is aligned with the current scope and goals of the project.

## Table of contents

You can find our full **contributor documentation** including instructions at the following links:

- [Code organization](docs/contributing/contributing-code/contributing-code-organization/)
- [Code building](docs/contributing/contributing-code/contributing-code-building/)
- [Code developing](docs/contributing/contributing-code/contributing-code-developing/)
- [Code testing](docs/contributing/contributing-code/contributing-code-testing/)
- [Contributing issues](docs/contributing/contributing-issues/)

## Current status

We welcome small pull request contributions from anyone (docs improvements, bug fixes, minor features.) as long as they follow a few guidelines:

- For very minor changes like correcting a typo feel free to send a pull request. Otherwise ...
- Please start by [choosing an existing issue](https://github.com/radius-project/dashboard/issues), or [opening an issue](https://github.com/radius-project/dashboard/issues/new/choose) to work on.
- The maintainers will respond to your issue, please work with the maintainers to ensure that what you're doing is in scope for the project before writing any code.
- If you have any doubt whether a contribution would be valuable, feel free to ask.

## Developer Certificate of Origin

The Radius project follows the [Developer Certificate of Origin](https://developercertificate.org/). This is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project.

Contributors sign-off that they adhere to these requirements by adding a Signed-off-by line to commit messages.

```
This is my commit message

Signed-off-by: Random J Developer <[email protected]>
```

Git even has a -s command line option to append this automatically to your commit message:

```
$ git commit -s -m 'This is my commit message'
```

Visual Studio Code has a setting, `git.alwaysSignOff` to automatically add a Signed-off-by line to commit messages. Search for "sign-off" in VS Code settings to find it and enable it.

## Code of conduct

This project has adopted the [Contributor Covenant](http://contributor-covenant.org/).
For more information see [CODE_OF_CONDUCT.md](https://github.com/radius-project/community/blob/main/CODE-OF-CONDUCT.md)
158 changes: 30 additions & 128 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,147 +1,49 @@
# Radius Dashboard

Frontend experience for Project Radius
Radius Dashboard is the frontend experience for [Radius](https://github.com/radius-project/radius), a cloud-native application platform that enables developers and the platform engineers that support them to collaborate on delivering and managing cloud-native applications that follow organizational best practices for cost, operations and security, by default. Radius is an open-source project that supports deploying applications across private cloud, Microsoft Azure, and Amazon Web Services, with more cloud providers to come.

willtsai marked this conversation as resolved.
Show resolved Hide resolved
## Organization
> NOTE: Radius Dashboard is currently in a prototype stage and thus is not yet packaged into Radius and its releases, though we are planning to add it to the Radius installation soon. The best way to use Radius Dashboard right now is to clone the repo and run it locally, see the [contribution guide](./CONTRIBUTING.md) for instructions on how to build and run the code.

This repo uses [corepack](https://nodejs.org/api/corepack.html) and [yarn workspaces](https://classic.yarnpkg.com/lang/en/docs/workspaces/).
The Radius Dashboard is built on [Backstage](https://backstage.io/), an open-source platform for building developer portals that provides a rich set of components to accelerate UI development. The Radius Dashboard is a skinned deployment of Backstage that includes a set of plugins that provide the Radius experience. The components that make up the dashboard are built with extensibility in mind so that they can be used in other contexts beyond Backstage in the future.

willtsai marked this conversation as resolved.
Show resolved Hide resolved
It is organized as a mono-repo, and contains the following packages.
Key features of the Radius Dashboard currently include:

| Package | Path | Description |
| ---------------------------------- | --------------------------------- | ------------------------------------------------------------------------------- |
| `<root>` | `.` | The root `package.json` for the repo. Used as the entrypoint for most commands. |
| `@internal/app` | `./packages/app` | The frontend (React) part of the Dashboard. |
| `@internal/backend` | `./packages/backend` | The backend (Node.js) part of the Dashboard. |
| `@radapp.io/rad-components` | `./packages/rad-components` | A library of reusable React components for Radius (no dependency on Backstage). |
| `@radapp.io/plugin-radius` | `./plugins/plugin-radius` | The Radius frontend (React) plugin for Backstage. |
| `@radapp.io/plugin-radius-backend` | `./plugins/plugin-radius-backend` | The Radius backend (Node.js) plugin for Backstage. |
- _Application graph visualization_: A visualization of the application graph that shows how resources within an application are connected to each other and the underlying infrastructure.
- _Resource overview and details_: Detailed information about resources within Radius, including applications, environments, and infrastructure.
- _Recipes directory_: A listing of all the Radius Recipes available to the user for a given environment.

### Understanding the organization
## Getting help

Our repo builds three primary outputs:
- ❓ **Have a question?** - Visit our [Discord server](https://discord.gg/SRG3ePMKNy) to post your question and we'll get back to you ASAP
- ⚠️ **Found an issue?** - Refer to our [Issues guide](docs/contributing/contributing-issues) for instructions on filing a bug report
- 💡 **Have a proposal?** - Refer to our [Issues guide](docs/contributing/contributing-issues) for instructions on filing a feature request

- The Radius Dashboard: this is a skinned deployment of Backstage with the layout, and set of plugins optimized for Radius.
- The Radius Backstage plugin: our plugin is available standalone (outside of the Dashboard) so users can add our functionality to Backstage.
- The `@radapp.io/rad-components` library: contains reusable UI like the Radius App Graph visualization. This is a separate package so we can use it in other contexts besides Backstage.
## Contributing to Radius Dashboard

The Radius Backstage plugin and `@radapp.io/rad-components` are published to NPM under the `@radapp.io` organization. The `@internal` organization prefix is used with our other packages to avoid conflicts with other public NPM packages.
Visit [Contributing](./CONTRIBUTING.md) for more information on how to contribute to Radius Dashboard.

## Prerequisites
## Community

- Install a modern version of [Node.js](https://nodejs.org/en/download). We use v21.X.X but other versions are ok.
- Enable corepack with `corepack enable`.
We welcome your contributions and suggestions! One of the easiest ways to contribute is to participate in Issue discussions, chat on [Discord server](https://discord.gg/SRG3ePMKNy) or the monthly [community calls](#community-calls). For more information on the community engagement, developer and contributing guidelines and more, head over to the [Radius community repo](https://github.com/radius-project/community).

You'll also want an environment where you can experiment with Radius.
## Repositories

For development, we recommend VS Code. This repo is configured with recommended extensions that can automate parts of the development process when installed.
[Dashboard](https://github.com/radius-project/dashboard) is the Radius Dashboard repository. It contains all of Dashboard code and documentation. In addition, the Radius project has the below repositories:

## Building
| Repo | Description |
| :------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |
| [Radius](https://github.com/radius-project/radius) | This is the main Radius repository that contains the source code for core Radius. |
| [Docs](https://github.com/radius-project/docs) | This repository contains the Radius documentation source for Radius. |
| [Samples](https://github.com/radius-project/samples) | This repository contains the source code for quickstarts, reference apps, and tutorials for Radius. |
| [Recipes](https://github.com/radius-project/recipes) | This repo contains commonly used Recipe templates for Radius Environments. |
| [Website](https://github.com/radius-project/website) | This repository contains the source code for the Radius website. |
| [Bicep](https://github.com/radius-project/bicep) | This repository contains source code for Bicep, which is a DSL for deploying cloud resources types. |
| [AWS Bicep Types](https://github.com/radius-project/bicep-types-aws) | This repository contains the tooling for Bicep support for AWS resource types. |

**Install dependencies:**
## Security

```bash
yarn install
```
Please refer to our guide on [Reporting security vulnerabilities](https://github.com/radius-project/radius/blob/main/SECURITY.md).

**Build all packages:**
## Code of conduct

```bash
yarn workspaces foreach -A run build:all
```

**Build a specific package**

```bash
# Substitute rad-components with any package name
yarn workspace @radapp.io/rad-components run build
```

**Build the dashboard container**

```bash
yarn install
yarn tsc
yarn build:backend --config ../../app-config.yaml --config ../../app-config.dashboard.yaml
yarn build-image
```

The current `Dockerfile` is set up to build the container using state from the repo like the `node_modules/` folder. This is why the set of steps described above is required.

## Scripts

**Run a specific script in a specific package**

```bash
# Substitute rad-components with any package name
# Substitute link with any script name
yarn workspace @radapp.io/rad-components run lint
```

## Developing: Dashboard

**Launch the Dashboard:**

```bash
yarn dev
```

This will launch the Dashboard at `http://localhost:3000`.

### Configuration

The configuration for local development (`yarn dev`) is stored in `app-config.local.yaml`. This file is a set of overrides for development that will be combined with `app-config.yaml`. See the configuration file comments for links to relevant documentation.

This file is checked in but `.gitignored`'d. Feel free to make changes as needed.

The `app-config.dashboard.yaml` configuration is used when deployed as part of a Radius installation.

## Developing: rad-components

**Launch Storybook to experiment with rad-components:**

```bash
yarn workspace @radapp.io/rad-components run storybook
```

This will launch Storybook at `http://localhost:6006`.

## Testing

**Run tests:**

```
yarn run test:all
```

**Run E2E tests:**

```
yarn run test:e2e
```

## Linting

This project is configured to use `eslint` for linting, along with recommended rules for React and TypeScript. This is checked as part of the pull-request process.

**Run the linter manually:**

```
yarn run lint:all
```

## Formatting

This project is configured to use `prettier` for code formatting. This is checked as part of the pull-request process.

**Run the formatter to find violations:**

```
yarn run format:check
```

**Run the formatter to automatically fix violations:**

```
yarn run format:write
```
Please refer to our [Radius Community Code of Conduct](https://github.com/radius-project/community/blob/main/CODE-OF-CONDUCT.md)
Loading