Skip to content

Latest commit

 

History

History
50 lines (36 loc) · 1.94 KB

CONTRIBUTING.md

File metadata and controls

50 lines (36 loc) · 1.94 KB

Contributing

If you have ideas on how to improve maintenance or improve its performance, do not hesitate to fork and send pull requests.

Issue Reporting

  • Check that the issue has not already been reported.
  • Check that the issue has not already been fixed in the latest code.
  • Open an issue with a clear title and description.

Pull Requests

  • Use a topic branch to easily amend a pull request later, if necessary.
  • Write good commit messages.
  • Use the same coding style and spacing.
  • Keep pull requests to one feature and include a clear title and description.

Code Style

This project follows the Google Shell Style Guide when possible. However, there are a number of additional things to keep in mind.

  • Local variables should be used whenever possible.
  • Prefer (( ... )) over [[ ... ]] for arithmetic expression.
  • Use the function keyword to define functions.
  • The 80 character hard limit can be waived for readability.

Plugins

  • Large functions must be placed in a functions directory
  • All plugins and features must be documented in PLUGINS.md (this means they need to be simple enough to explain in a sentence or two)
  • Plugins must be in the oh-my-zsh format ({plugin-name}/{plugin-name}.plugin.zsh) for compatibility reasons

Sections

Each plugin can have multiple sections and must be in the proper order.

  • Requirements - checks for any environment requirements
  • Options - any options which need to be configured using setopt
  • Styles - any options which need to be configured using zstyle
  • Variables - any options which need to be configured using envars
  • Init - any code that needs to be run for the module to work
  • Aliases - any shell aliases
  • Cleanup - unset/remove any temporary variables, functions, files, etc