Skip to content

Latest commit

 

History

History
107 lines (67 loc) · 5.14 KB

CONTRIBUTING.md

File metadata and controls

107 lines (67 loc) · 5.14 KB

Contributing to CloudQuery

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

The following is a set of guidelines for contributing to this repository.

Table of Contents

Code of Conduct

I don't want to read this whole thing, I just have a question

What should I know before I get started?

How Can I Contribute?

Code of Conduct

This project and everyone participating in it is governed by the CloudQuery Code of Conduct. By participating, you are expected to uphold this code. To report inappropriate behavior in violation of the code, please start by reaching out to us on our Discord channel.

I don't want to read this whole thing, I just have a question

Note: Please don't file an issue to ask a question. You'll get faster results by reaching out to the community on our Discord channel

What To Know Before Getting Started

CloudQuery Architecture

CloudQuery has a pluggable architecture and is using the go-plugin to load, run, and communicate between providers via gRPC. To develop a new provider for CloudQuery, you don’t need to understand the inner workings of go-plugin as those are abstracted away via the provider-sdk.

architecture overview

Breakdown of Responsibilities and Repositories

CQ CLI Directory:

  • Main entry point and CLI for the user
  • Reading CloudQuery configuration
  • Downloading, verifying, and running plugins

CQ Provider SDK Repository:

  • Interacting with CQ CLI for initialization and configuration
  • Helper functions for defining table schemas
  • Methods for testing resources
  • Framework for running and building a plugin locally

CQ Plugins

  • Officially-supported Plugins and Community plugins
  • Previously known as Providers
  • Executed by CQ CLI via gRPC
  • Interaction with remote data sources:
    • Initialization of clients
    • Authentication
    • Fetching of configuration information
  • More information about developing your own plugin can be found here

How Can I Contribute?

Reporting Bugs and Suggesting Enhancements

See issue_reporting.md for more details on how to do this.

Your First Code Contribution

Unsure where to begin contributing to CloudQuery? You can start by looking through these beginner and help-wanted issues:

  • [Beginner issues][beginner] - issues which should only require a few lines of code, and a test or two
  • [Help wanted issues][help-wanted] - issues which should be a bit more involved than beginner issues

If you don't see any issues that you think you can help with reach out to the community on Discord. We would be happy to work with you!

Local Development

CloudQuery has the ability to be run locally with a corresponding local Postgres database. To get it up and running follow the following instructions:

Further guides

Commit Messages

We make use of the Conventional Commits specification for pull request titles. This allows us to categorize contributions and automate versioning for releases. Pull request titles should start with one of the prefixes specified in the table below:

Title Message Action
chore: <Message> <String> patch release
fix: <Message> <String> patch release
feat: <Message> <String> patch release
refactor: <Message> <String> patch release
test: <Message> <String> patch release

Additional context can be provided in parentheses, e.g. fix(docs): Fix typo. Breaking changes should be suffixed with !, e.g. feat!: Drop support for X. This will always result in a minor release.