Contributing

Welcome to Onepanel CE Project! We are excited to have you as part of the community and welcome all contributions.

Getting started as a contributor

This document outlines project structure, guidelines and serves as a single source of truth for contributions. Our goal is to make it as easy for everyone to contribute to the code base, documentation, and components.

Code of conduct

Make sure to read and observe our Code of Conduct.

Coding conventions

All code should be written in the languages and frameworks listed below and follow that language's conventions. SDKs for different languages are an exception and should follow the best practices for that language.

Go

TypeScript and Angular

SDKs

All SDKs should be generated with OpenAPI Generator using our generated API specification file. See our Python SDK's Makefile for reference.

Documentation style guide

We welcome all contributions and follow these highlights from Google developer documentation style guide.

Our documentation site is built on Docusaurus.

Making pull requests

When making a pull request, prefix the name with one of the following Conventional Commits types:

  • fix - fixing something
  • feature - adding a feature
  • clean - cleaning up code
  • chore - something mundane like updating a version number
  • docs - updating documents
  • tests - adding tests

An example is:

fix: issue where workspace page crashed upon three refreshes

Project repositories

Onepanel consists of the following repositories. For more information on making contributions, see CONTRIBUTING.md in each repository.

Platform

  • Core API - Code base for backend (Go)
  • Core UI - Code base for UI (Angular + TypeScript)
  • CLI - Code base for Go CLI for installation and management (Go)
  • Manifests - Kustomize manifests used by CLI for installation and management (YAML)

SDKs

Templates

  • Templates - Various Workspace and Workflow Templates

Documentation