Skip to content

Latest commit

 

History

History
216 lines (133 loc) · 11.9 KB

CONTRIBUTING.md

File metadata and controls

216 lines (133 loc) · 11.9 KB

Contributing to Gatsby Source Cloudinary Plugin

First off, thank you for your interest in helping with the plugin ❤️

Our community looks forward to your contributions 🎉

How can you help?

You can help make documentation clearer, help fellow users, report bugs, suggest enhancements or contribute code.

Why do we need your help?

As a user, you know how to make the Cloudinary Source Plugin developer experience better for a user like you 👊

You can support the plugin in other ways

If you like the plugin but don't have much time to spare, there are quick ways to support the plugin and show your appreciation:

⭐️ Star the GitHub repository
🐦 Write a tweet and mention the plugin and tag @cloudinary
👩‍💻 Create content and let @cloudinary know on Twitter
✍️ Refer to the plugin in your project's readme
👩‍🏫 Mention the plugin when you attend local meetups and tell your friends and colleagues

 

📖 Table of Contents

 

Code of Conduct

To make people feel welcome, we as contributors pledge to not harass anybody for their body size, skill level, experience level, education, socio-economic status, visible or invisible disability, ethnicity, age, gender identity and expression, nationality, the way they look, race, caste, colour, religion, or sexual identity and orientation. We pledge to make our community open, welcoming, diverse, inclusive and healthy by the way we interact.

Read the complete code of conduct.

👉 Please report abusive, harassing, or otherwise unacceptable behavior to [email protected].

 

I Have a Question

The guide for submitting a question. If you follow this guide, you help our maintainers and the community to answer your question as fast as possible. Or you can answer a question if you like, that would be suuuper helpful. 🥳

Before you ask a question

Read the documentation. Both for the plugin and Cloudinary in general. Look through existing questions both on the plugin's discussion board and in the Cloudinary Community.

How Do I Submit a Good Question?

  • Start a discussion in the repo for plugin-specific questions or start a thread in the Cloudinary Community for other Cloudinary questions.
  • Use a clear and descriptive title to identify your question.
  • Describe your question including as many details as you can.
  • Include screenshots and/or animated GIFs if you can.

 

I Want To Contribute

Reporting Bugs

The guide for submitting a bug report. If you follow this guide, you help our maintainers and the community to understand the problem and come up with a fix.

Before Submitting a Bug Report

  • Use the latest version.
  • Reread the readme and review your plugin configuration to make sure it's correct.
  • Check the bug tracker and see if somebody has already reported your bug or error.
    • If so, commenting on the existing issue is better than opening a new issue

Jump to "I Have a Question" if you need help or support.

How Do I Submit a Good Bug Report?

We track bug reports as Github issues.

  • Open an Issue.
  • Use a clear and descriptive title to identify the bug.
  • Describe step-by-step how to reproduce the bug. Include as many details as you can. Don't just say what you did, but explain how you did it.
  • Describe the current behavior and explain the behavior you expected instead and why.
  • If possible provide an example to reproduce the bug. Include links to files, GitHub projects, or include copy/pasteable snippets.
  • Include screenshots and/or animated GIFs if you can.

⚠️ Do NOT include your Cloudinary API Secret or other sensitive information.

Suggesting Enhancements

The guide for submitting an enhancement suggestion, both new feature and minor improvement ideas. If you follow this guide, you help our maintainers and the community to understand your suggestion and follow up on it.

Before Submitting an Enhancement

  • Use the latest version of the plugin.
  • Reread the readme. Maybe your idea is already possible with a different configuration?
  • Perform a search and see if someone has already suggested your idea. If so, commenting on the existing issue is better than opening a new issue

How Do I Submit a Good Enhancement Suggestion?

We track enhancement ideas as Github issues.

  • Open an Issue.
  • Use a clear and descriptive title to identify your idea.
  • Describe your idea including as many details as you can.
  • Describe the current behavior and explain the behavior you would like instead and why.
  • Include screenshots and/or animated GIFs if you can.
  • Explain why your idea is useful to most plugin users.

Your Code Contribution

The guide for submitting your code contribution. If you follow this guide, you increase the chance of getting your code released.

If you are new to open-source code contributions, start with these links:

Unsure where you can best start contributing code? Look through these "good first issues".

Before You Start Contributing

  • Add a comment to an existing issue, indicating your interest,
  • or create a new issue, describing what you'd like to contribute.

In both cases, outline your action plan and wait for feedback before spending too much time coding your solution in case your action plan is not within the scope/goals of this plugin.

Fork, Clone, and Install

  1. Fork the repository
  2. Clone the fork to your local machine: git clone /[email protected]:<username>/gatsby-plugin-starter.git
  3. Move into the repository folder: cd gatsby-plugin-starter
  4. Install packages: yarn install
A note on Yarn Workspaces

The project uses Yarn Workspaces, hosting the plugin and demo code in one repository. You may manually test your changes while developing because the included demo will use the code in the plugin workspace (not the one published to the NPM registry).

Install in the correct workspace by including workspace plugin oder workspace demo in the command. Example: yarn workspace plugin add lodash.

Be careful when publishing packages in a workspace. If you are preparing your next release and you use a new dependency, but forgot to declare it in the package.json file, your tests might still pass locally if another package already downloaded that dependency into the workspace root. However, it will be broken for consumers that pull it from a registry, since the dependency list is now incomplete so they have no way to download the new dependency. Currently, this scenario will not let you throw a warning. Yarn Workspaces Docs

Develop

  • Create a new branch and use the issue number when naming your branch: git checkout -b -<issue number>-<something descriptive>.
  • Commit your changes often: git commit -a -m <your message>.

✨ Remember to update the demo and add tests when relevant. ✨

You'll find the plugin code in the plugin folder and the demo code in the demo folder.

  • yarn develop runs the demo
  • yarn watch run the tests in watch mode

Your local repository folder's root is where you run both scripts.

Pull Request

Before making a Pull Request, make sure you:

  • Run yarn test and no tests fail.
  • Update the readme describing your contribution.
  • The files have the right format run yarn format.

Then you may:

  • Create a Pull Request.
    • Select base repository: cloudinary-devs/gatsby-source-cloudinary > base: main
    • and head repository: <your fork> > compare: <your branch>
  • Write your title and description following the conventional commit standard.
    • If unsure, use a clear title, and a maintainer will help you follow the conventional commit standard

ℹ️ We will squash all your commits into one with the Pull Request title and description as the commit message, so do not worry about every single commit message being perfect.

A maintainer will review your Pull Request in the style of Conventional Comments.

  • If changes are requested, make those changes.

When a maintainer accepts and merges your Pull Request, a new version of the plugin is auto-released.

Improving The Documentation

There are two main documentation files:

  • The project README.md = "How to use the plugin"
  • The project CONTRIBUTING.md = "How to contribute to the plugin" = this text

Improvements to both are very much encouraged 🙏

You may follow the guide for Your First Code Contribution or make changes directly from Github.

 

Release Process

Our plugin use conventional commits and semantic versioning to automate releases by using the semantic-release.

 

Credit

This guide is based on the contributing-gen. Make your own CONTRIBUTING.md today!