Skip to content

Latest commit

 

History

History
86 lines (53 loc) · 4.87 KB

CONTRIBUTING.md

File metadata and controls

86 lines (53 loc) · 4.87 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.

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

Open-core vs Open-source

The CloudQuery framework, SDK and CLI are open source while plugins available under plugins are open core, hence not all contributions to plugins directory will be accepted if they are part of the commercial plugin offering - please file an issue before opening a PR.

CloudQuery Architecture

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

Breakdown of Responsibilities and Repositories

CloudQuery CLI Directory

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

CloudQuery Plugin SDK Repository

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

CloudQuery Plugins

  • Officially-supported Plugins and Community plugins
  • Previously known as Providers
  • Executed by CloudQuery 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 Requesting Feature Requests

Follow our bug reporting template or feature request template to ensure you provide all the necessary information for us to either reproduce and fix the bug or implement the feature.

Your First Code Contribution

Unsure where to begin contributing to CloudQuery? You can start by looking through these good first issue issues. If you don't see any issues that you think you can help with reach out to the community on Discord and 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 following prefixes fix, feat, chore, refactor, test or doc followed by a colon and a short description of the change. For example: feat: Add support for AWS S3 buckets.

  • fix PRs result in a patch version bump (e.g. 1.0.0 -> 1.0.1).
  • feat PRs result in a minor version bump (e.g. 1.0.0 -> 1.1.0).
  • chore, refactor, test and doc do not result in a version bump.

To create a major version bump, add ! after the prefix (e.g. feat!: Drop support for PostgreSQL versions lower than 11).