Skip to content

Latest commit

 

History

History
120 lines (83 loc) · 6.96 KB

CONTRIBUTING.md

File metadata and controls

120 lines (83 loc) · 6.96 KB

Contributing

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

The following is a set of guidelines for contributing to svg-to-excalidraw. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

Table of contents

I just have a question

If the Readme file wasn't enough to answer your question, feel free to join the Excalidraw's Discord (ping Nicolas Goudry or BROCHINGTON there).

But, please, don't file an issue to ask a question.

How can I contribute?

Reporting bugs

This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report 📝, reproduce the behavior 💻 💻, and find related reports 🔎.

Before creating bug reports, please check this list as you might find out that you don't need to create one:

  • Most importantly, check if you're using the latest version of svg-to-excalidraw.
  • Search for an already existing bug report in issues. If it already exists and the issue is still open, add a comment to the existing issue instead of opening a new one.

When you are creating a bug report, please include as many details as possible. Fill in the template, the information it asks for helps us resolve issues faster.

Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.

Suggesting enhancements

This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.

Before creating enhancement suggestions, please check this list as you might find out that you don't need to create one:

  • Check the Readme file. You might discover that the enhancement is already available. Most importantly, check if you're using the latest version of svg-to-excalidraw.
  • Search for an already existing feature request in issues. If it already exists and the issue is still open, add a comment to the existing issue instead of opening a new one.

When you are creating an enhancement suggestion, please include as many details as possible. Fill in the template, including the steps that you imagine you would take if the feature you're requesting existed.

Your first code contribution

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

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

Both issue lists are sorted by total number of comments. While not perfect, number of comments is a reasonable proxy for impact a given change will have.

Pull Requests

Please follow these steps to have your contribution considered by the maintainers:

  1. Follow the styleguides
  2. Run tests locally
  3. After you submit your pull request, verify that all status checks are passing
    What if the status checks are failing?If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, we will take needed actions to solve the problem.

While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.

Styleguides

Git commit messages

  • Use the present tense ("add this" not "added this")
  • Use the imperative mood ("move cursor to..." not "moves cursor to...")
  • Start the commit message with the type of change you're committing

This project uses commitlint with the conventional commit config. Git hooks are defined with husky to enforce this commit-style.

If you're not familiar with this commit-style, you can run the following convenience package script that will guide you through the process of authoring your commits:

yarn commit

JavaScript styleguide

All JavaScript code is linted with eslint and formatted with prettier.

  • Place requires in the following order:
    • Built in Node Modules (such as path)
    • Local Modules (using relative paths)
  • Place class properties in the following order:
    • Class methods and properties (methods starting with static)
    • Instance methods and properties
  • Avoid platform-dependent code