Version: Next

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

  • Backend - Code base for backend (Go)
  • Frontend - Code base for frontend (Angular + TypeScript)
  • CLI - Code base for installation and management CLI (Go)
  • Manifests - Kustomize manifests used by installation and management CLI (YAML)

SDKs

  • Python SDK - Python SDK code and documentation (Python)

Templates

  • Templates - Various Workspace, Workflow, Task and Sidecar Templates

Documentation