Skip to content

Latest commit

 

History

History
85 lines (50 loc) · 6.66 KB

CONTRIBUTING.md

File metadata and controls

85 lines (50 loc) · 6.66 KB

I need help with EventGhost

Then you're in the wrong place. Support requests should be posted on our forum, either in General Support, or, if you need support for a specific plugin, in that plugin's thread in Plugin Support. Be sure to search before posting, as the most timely answer to your question will always be the one that's already there.

I want to report a bug

Great! Bugs are, unfortunately, a fact of software development life, but with your help, we can make EventGhost better for everyone.

Do I need to report this at all?

Before continuing, be sure to:

Things to include in your bug report

  • If your bug report is about a specific plugin, the plugin name enclosed in square brackets (for example, "[Keyboard]") should come first in your title.
  • The exact versions of EventGhost and Windows you're running.
  • A detailed list of steps to reproduce. If we can't reproduce your bug, we probably won't be able to fix it.
  • Any and all tracebacks and error messages.

I want to write a plugin

Great! EventGhost would be nothing without our vibrant community of plugin developers, so we're glad to have you aboard.

Getting started

If you're new to EventGhost plugin development, your first stop should be the "Writing Plugins" section of our user manual, EventGhost.chm. Still stumped? Check out the Coding Corner section of our forum.

Publishing your work

Note that we no longer accept new plugins for inclusion in EventGhost. Long-term, our goal is to remove all non-core plugins from the distribution and make them available in-app, on-demand through an online plugin repository, where you'll one day be able to offer your plugins right alongside ours. Until then, please share your work in the Plugin Support section of our forum.

I want to contribute code

Great! While not every pull request will meet our quality standards or align with our design philosophy, we welcome contributions from the community with open arms.

What's this "Git" thing I keep hearing about?

If you're new to Git, we recommend the following:

  • Install TortoiseGit and read through its Daily Use Guide. TortoiseGit integrates directly into Windows, and you operate it by right-clicking on files and folders in your repo. It's a great Git client for both beginners and experts alike.
  • To get a better feel for Git's command-line tools, run through GitHub's 15-minute interactive Git tutorial.
  • Read the first three chapters of Pro Git. Written by GitHub's co-founder, Pro Git is the gold standard of Git books, and is available free of charge at the link provided.

Setting up your editor

Before you begin working on EventGhost, please install the following plugins in your code editor/IDE:

These plugins will help guide you to producing the highest quality code possible. If you're not using EditorConfig or your code doesn't fully validate with flake8, don't be surprised when your pull request is rejected and you're pointed back to this document.

Still using Notepad or another program without plugin support? Check out Visual Studio Code, which is free, comes with full Git integration, and has a robust Python plugin with debugging(!).

Commits count!

Good commits are just as important as good code. Every developer worth his or her salt should read and internalize the following two articles:

For the good of the project, pull requests containing commits that don't comply with these guidelines may be rejected.

Things to include in your pull request

  • If your pull request is for a specific plugin, the plugin name enclosed in square brackets (for example, "[Keyboard]") should come first in your title. Don't do this for commit titles.
  • If your pull request fixes an issue on our issue tracker, use the closes/fixes/resolves syntax in the body to denote this.
  • If your pull request makes changes pertinent to plugin developers, be sure to outline those changes in the body.

Reasons your pull request might be rejected

  • Your code wasn't up to par. In this case, we'll usually provide a list of changes we want made. Be sure to post a follow-up comment after adding new commits to your pull request, as GitHub doesn't notify us on new commits.
  • Your code didn't align with our design philosophy. Try not to take it personally if this happens -- we're only doing what we think is best for everyone.
  • Your code was too sloppy. Read the Setting up your editor section above and try again.
  • Your commits weren't up to par. Read the Commits count! section above and try again.
  • Your coding style didn't match ours. Read the Coding Style Guidelines section of our manual and try again.
  • Your code didn't work. Setting up a build environment is now easier than ever -- just run python Build.py --make-env from an administrative command prompt -- so there's no excuse for not testing your work.
  • You added yourself to a plugin's author list without doing substantial work on that plugin. Fixing a bug doesn't make you an author.
  • Your pull request contained merge commits. To remove merge commits from an existing branch, run git rebase upstream/master && git push --force. To ensure you don't get merge commits in the future, run git config --global pull.rebase true.