airshipctl/CONTRIBUTING.md

4.7 KiB

Contributing Guidelines

The airshipctl project accepts contributions via Gerrit reviews. For help getting started with Gerrit, see the official OpenDev documentation. This document outlines the process to help get your contribution accepted.

Support Channels

Whether you are a user or contributor, official support channels are available here.

You can also request features or report bugs here.

Before opening a new issue or submitting a change, it's helpful to search the bug reports above - it's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of. It is also worth asking on the IRC channels.

Story Lifecycle

The airshipctl project uses GitHub Issues to track all efforts, whether those are contributions to this repository or other community projects. The GitHub Issues are a combination of epics, issues, bugs, and milestones. We use epics to define large deliverables that need to be broken down into more manageable chunks. Milestones act as human readable goals for the sprint they are assigned to.

Coding Conventions

Airship has a set of coding conventions that are meant to cover all Airship subprojects.

However, airshipctl also has its own specific coding conventions and standards in the official airshipctl developer guide.

Submitting Changes

All changes to airshipctl should be submitted to OpenDev's Gerrit. Do not try to fork the repository on GitHub to submit changes to the code base.

All issues are tracked via GitHub Issues and are tagged with a variety of helpful labels. If you are new to the project, we suggest starting with issues tagged with "good first issue" to help get familiar with the codebase and best practices for the project.

When you find an issue you would like to work on, please comment on the issue that you would like to have it assigned to you. A project admin will then make sure that it is not currently being addressed and will assign it to you.

As you work on an issue, please be sure to update the labels on it as you work. When you start work on an issue, use the "wip" label to indicate that you have begun on a change for the issue. When your work is completed, submit a comment to the issue with a link to your change on Gerrit and change the "wip" label to a "ready for review" label to indicate to the community that you are seeking reviews.

In your commit message, be sure to include a reference for the issue you are addressing from GitHub Issues. There are three ways of doing this:

  1. Add a statement in your commit message in the format of Relates-To: #X. This will add a link on issue "#X" to your change.
  2. Add a statement in your commit message in the format of Closes: #X. This will add a link on issue "#X" to your change and will close the issue when your change merges.
  3. Add a bracketed tag at the beginning of your commit message in the format of [#X] <begin commit message>. This will add a link on issue "#X" to your change. This method is considered a fallback in lieu of the other two methods.

Any issue references should be evaluated within 15 minutes of being uploaded.

NOTE Make sure to carefully divide the work into logical chunks to avoid creating changes that are too large. Such practices are discouraged and make code review very difficult. Break down the work into components and create a separate change for each component. Keep a design document or README to track the overall progress when making a large contribution. See OSF Guidelines for more information.

Reviewing Changes

Another great way to contribute to the project is to review changes made by others in the community. To find changes to review, you can filter by ready for review on GitHub Issues or you can search Gerrit for open changes. Links to both of these can be found below: