# Open Source Contribution Standards

**URL:** <https://forum.opencyphal.org/t/open-source-contribution-standards/1128>\
**Category:** Development & Maintenance\
**Created:** [February 16, 2021, 7:18pm UTC](https://forum.opencyphal.org/t/open-source-contribution-standards/1128 "2021-02-16T19:18:22Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![scottdixon](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scottdixon/32/39_2.png) [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Post date:** [February 16, 2021, 7:18pm UTC](https://forum.opencyphal.org/t/open-source-contribution-standards/1128/1 "2021-02-16T19:18:22Z")

</div>

I’d like to start a discussion that yields a standard set of contribution standards for the UAVCAN reference implementations. These standards would be prepended to all CONTRIBUTING.md files in our repositories. I’ll open the conversation in this thread and we’ll see if we can forge the text here otherwise we’ll digress to a collaborative tool like googledocs.

I’ll start with starting points. There are several templates out there we can look at:

## Code of Conduct

- **[github](https://github.com/github/opensource.guide/blob/main/CODE_OF_CONDUCT.md)**
- **[Indy web code of conduct](https://indieweb.org/code-of-conduct)**
- **[Amazon](https://aws.github.io/code-of-conduct)** (based on [TODO](https://todogroup.org/))

## Contribution Standards

- **[github](https://github.com/github/opensource.guide/blob/main/CONTRIBUTING.md)**
- **[FreeRTOS (Amazon)](https://github.com/aws/amazon-freertos/blob/master/CONTRIBUTING.md)**
- **[Apache](https://infra.apache.org/contributors)**

My initial proposal is the have a CODE\_OF\_CONDUCT.md and a standardized CONTRIBUTING.md preamble that we add to all of our reference implementation repositories (i.e. not the standard repo nor the public datatypes).

For CONTRIBUTING here’s a strawman outline:

# Contributing Guidelines

_(welcome text)_

## Ground rules & expectations

This project has adopted the _(insert decision here and link to CODE\_OF\_CONDUCT.md)_.

## Security issue notifications

If you discover a potential security issue in this project we ask that you _(do something here)_

## Community

_(blurb about forums and the consortium)_

## How to contribute

### How to get started as a regular contributor

_(todo: how to find good first issues, submit your first PR, and generally participate in ongoing development)_

### Reporting Bugs/Feature Requests

_(our standards for using github issues)_

### Contributing via Pull Requests

_(our PR procedures and standards)_

### How to contribute a project or become a maintainer

_(todo: our process for interning and electing maintainers)_  
_(todo: our process for accepting a new project)_

### Coding Style

_(let the style wars begin!)_

# Setting up your environment

_This is the end of the preamble. Each project would then append the project-specific developer environment text. Most of our projects already have this text._

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [February 23, 2021, 9:40am UTC](https://forum.opencyphal.org/t/open-source-contribution-standards/1128/2 "2021-02-23T09:40:11Z")

</div>

This is a sensible initiative but I would narrow the scope a bit.

> Ground rules & expectations

Let’s omit this section for now and focus on more tangible issues at hand.

> Security issue notifications  
> If you discover a potential security issue in this project we ask that you …

…email [maintainers@uavcan.org](mailto:maintainers@uavcan.org) (which is an alias for [consortium@uavcan.org](mailto:consortium@uavcan.org)).

> Coding Style

- For Python projects we could limit ourselves to two rules: follow PEP8 and use Black with `line-length = 120`.

- For C++ we could copy the prior Zubax syle doc somewhere (like this forum) and call it the UAVCAN style. Would that be acceptable?

As for the other items, I agree with the general direction, let’s discuss the specifics as we go.
