contributing.mdx 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # Contributing
  2. Pull requests are welcome. For major changes, please [open an issue](https://github.com/excalidraw/excalidraw/issues/new) first to discuss what you would like to change.
  3. ## Setup
  4. ### Option 1 - Manual
  5. 1. Fork and clone the repo
  6. 1. Run `yarn` to install dependencies
  7. 1. Create a branch for your PR with `git checkout -b your-branch-name`
  8. > To keep `master` branch pointing to remote repository and make pull requests from branches on your fork. To do this, run:
  9. >
  10. > ```bash
  11. > git remote add upstream https://github.com/excalidraw/excalidraw.git
  12. > git fetch upstream
  13. > git branch --set-upstream-to=upstream/master master
  14. > ```
  15. ### Option 2 - CodeSandbox
  16. 1. Go to https://codesandbox.io/p/github/excalidraw/excalidraw
  17. 1. Connect your GitHub account
  18. 1. Go to Git tab on left side
  19. 1. Tap on `Fork Sandbox`
  20. 1. Write your code
  21. 1. Commit and PR automatically
  22. ## Pull Request Guidelines
  23. Don't worry if you get any of the below wrong, or if you don't know how. We'll gladly help out.
  24. ### Title
  25. Make sure the title starts with a semantic prefix:
  26. - **feat**: A new feature
  27. - **fix**: A bug fix
  28. - **docs**: Documentation only changes
  29. - **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  30. - **refactor**: A code change that neither fixes a bug nor adds a feature
  31. - **perf**: A code change that improves performance
  32. - **test**: Adding missing tests or correcting existing tests
  33. - **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  34. - **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
  35. - **chore**: Other changes that don't modify src or test files
  36. - **revert**: Reverts a previous commit
  37. ### Changelog
  38. Add a brief description of your pull request to the changelog located here: [changelog](https://github.com/excalidraw/excalidraw/blob/master/CHANGELOG.md)
  39. Notes:
  40. - Make sure to prepend to the section corresponding with the semantic prefix you selected in the title
  41. - Link to your pull request - this will require updating the CHANGELOG _after_ creating the pull request
  42. ### Testing
  43. Once you submit your pull request it will automatically be tested. Be sure to check the results of the test and fix any issues that arise.
  44. It's also a good idea to consider if your change should include additional tests. This is highly recommended for new features or bug-fixes. For example, it's good practice to create a test for each bug you fix which ensures that we don't regress the code in the future.
  45. Finally - always manually test your changes using the convenient staging environment deployed for each pull request. As much as local development attempts to replicate production, there can still be subtle differences in behavior. For larger features consider testing your change in multiple browsers as well.
  46. ## Translating
  47. To translate Excalidraw into other languages, please visit [our Crowdin page](https://crowdin.com/project/excalidraw). To add a new language, [open an issue](https://github.com/excalidraw/excalidraw/issues/new) so we can get things set up on our end first.
  48. Translations will be available on the app if they exceed a certain threshold of completion (currently **85%**).