Files
atom/CONTRIBUTING.md
2013-12-04 08:55:19 -08:00

1.9 KiB

🎉 Contributing to Atom 🎉

These are just guidelines, not rules, use your best judgement and feel free to propose changes to this document in a pull request.

Issues

  • Include screenshots and animated GIFs whenever possible, they are immensely helpful.
  • Include the behavior you expected to happen and other places you've seen that behavior such as Emacs, vi, Xcode, etc.
  • Check the Console app for stack traces to include if reporting a crash.
  • Check the Dev tools (alt-cmd-i) for errors and stack traces to include.

Pull Requests

  • Include screenshots and animated GIFs whenever possible.
  • Follow the JavaScript and CSS styleguides
  • Include thoughtfully worded Jasmine specs
  • Avoid placing files in vendor. 3rd-party packages should be added as a package.json dependency.
  • Files end with a newline.
  • Requires should be in the following order:
    • Built in Node Modules (such as path)
    • Built in Atom and Atom Shell Modules (such as atom, shell)
    • Local Modules (using relative paths)
  • Class variables and methods should be in the following order:
    • Class methods (methods starting with a @)
    • Instance methods
  • Beware of platform differences
    • Use require('atom').fs.getHomeDirectory() to get the home directory.
    • Use path.join() to concatenate filenames.
    • Temporary directory is not /tmp on Windows, use os.tmpdir() when possible

Git Commit Messages

  • Use the present tense
  • Reference issues and pull requests liberally
  • Consider starting the commit message with an applicable emoji:
    • 💄 when improving the format/structure of the code
    • 🐎 when improving performance
    • 🚱 when plugging memory leaks
    • 📝 when writing docs