Project Contributions

Contributing to Open Horizon

"If you can't describe what you are doing as a process, you don't know what you are doing."

  • W. Edwards Deming

Updates

  • v0.1 - @Joseph Pearson, initial creation

  • v0.2 - @Joseph Pearson, pointed to developer documentation site

  • v0.3 - @Joseph Pearson, added Feature Request Lifecycle section

Introduction

This is a living document, intended to be updated periodically as needed by a majority of the TSC or designees as specified.

Working on issues

Thank you for expressing an interest in learning more about our community. The following steps will help you understand how we work together. Each person wishing to join us should:

Our tool of choice for tracking work is GitHub, and this is where all of our code, artwork, and documentation live.  Tasks to be worked on are created as GitHub issues, and you can view open issues in each repository to see what tasks are available to be worked on.  Issues that are labelled "good first issue" are most suitable for those learning how to contribute to an open source project.

Reporting issues

If you have noticed a problem or bug with the code, or problem with the documentation, please create a new issue in the right repository.  If you have a question about which repository to use, feel free to ask on the #open-horizon-help chat room at https://chat.lfx.linuxfoundation.org/.

Requesting new features

If you'd like to propose a new product feature read about our Feature Request Lifecycle processes.  These processes will show you how requests move from Feature Candidate through the requirements design process, and ultimately become supported.

Submitting ideas

If you have a thought or idea for something we should be working on, create a new discussion in our GitHub project's Project Summary repo.  This will allow you to specify as much about the idea as you can, and then allow others to give feedback and to flesh it out into something actionable.  If possible, add descriptive labels to your discussion topic.

Large Code Contributions **DRAFT**

If you would like to contribute a large amount of code, it should be self-contained, complete, functioning, and compatible with the existing project codebase.  To begin the process, please reach out to the TSC Chair to discuss.  Any persons involved in this contribution would ideally already be active stakeholders in the project.

The high-level process for accepting the code is as follows:

Notify TSC Chair
Complete discussions with a successful outcome, including identifying what Working Group the product would fall under, and if this contribution is tied to a TSC voting seat.
Have a name for the code contribution (hereinafter, product)
Have or create a GitHub project for the product containing at least one repository with the code and a compatible license (Apache 2, MPL 2, MIT, etc.)
Successfully complete code acceptance process (license scanning, code quality including test coverage, documentation/tutorials/training, and so on)
TSC vote to accept the code contribution and related obligations agreed to in the second step above, if any.
Notify LF Edge GM, Marketing, LF new projects team as a courtesy
Transfer "ownership" of GitHub project to LFX DevOps team and implement LF automation (DCO checks, etc.)
Implement Open Horizon repo best practices (CONTRIBUTING, MAINTAINERS, etc.)

TSC ... are these the correct steps, in the right order, and is anything missing?