First off, thank you for your interest in helping with the plugin ❤️
Our community looks forward to your contributions 🎉
You can help make documentation clearer, help fellow users, report bugs, suggest enhancements or contribute code.
As a user, you know how to make the Cloudinary Source Plugin developer experience better for a user like you 👊
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
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 community@cloudinary.com.
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. 🥳
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.
- 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.
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.
- 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.
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.
- If you provide code snippets, use Markdown code blocks.
- Include screenshots and/or animated GIFs if you can.
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.
- 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
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.
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".
- 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 the repository
- Clone the fork to your local machine:
git clone /git@Github.com:<username>/gatsby-plugin-starter.git
- Move into the repository folder:
cd gatsby-plugin-starter
- Install packages:
yarn install
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
or 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
- 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 demoyarn watch
run the tests in watch mode
Your local repository folder's root is where you run both scripts.
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>
- Select
- 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.
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.
- Edit the README.md directly on Github
- Edit the CONTRIBUTING.md (this text) directly on Github
Our plugin use conventional commits and semantic versioning to automate releases by using the semantic-release.
This guide is based on the contributing-gen. Make your own CONTRIBUTING.md today!