Skip to content

Latest commit

 

History

History
85 lines (65 loc) · 4.32 KB

CONTRIBUTING.md

File metadata and controls

85 lines (65 loc) · 4.32 KB

Contributing to PlexPy

Issues

In case you read this because you are posting an issue, please take a minute and conside the things below. The issue tracker is not a support forum. It is primarily intended to submit bugs. However, we are glad to help you, and make sure the problem is not caused by PlexPy, but don't expect step-by-step answers.

Many issues can simply be solved by:
  • Making sure you update to the latest version.
  • Turning your device off and on again.
  • Analyzing your logs, you just might find the solution yourself!
  • Using the search function to see if this issue has already been reported/solved.
  • Checking the Wiki for [Installation] and [FAQs] .
  • For basic questions try asking on Gitter or the Plex Forums first before opening an issue.
If nothing has worked:
  1. Open a new issue on the GitHub issue tracker.
  2. Provide a clear title to easily help identify your problem.
  3. Use proper markdown syntax to structure your post (i.e. code/log in code blocks).
  4. Make sure you provide the following information:
    • Version
    • Branch
    • Commit hash
    • Operating system
    • Python version
    • What you did?
    • What happened?
    • What you expected?
    • How can we reproduce your issue?
    • What are your (relevant) settings?
    • Include a link to your FULL (not just a few lines!) log file that has the error. Please use Gist or Pastebin.
  5. Close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it.

Feature Requests

Feature requests are handled on FeatHub.

  1. Search the existing requests to see if your suggestion has already been submitted.
  2. If a similar request exists, give it a thumbs up (+1), or add additional comments to the request.
  3. If no similar requests exist, you can create a new one. Make sure to provide a clear title to easily identify the feature request.

Pull Requests

If you think you can contribute code to the PlexPy repository, do not hesitate to submit a pull request.

Branches

All pull requests should be based on the dev branch, to minimize cross merges. When you want to develop a new feature, clone the repository with git clone origin/dev -b FEATURE_NAME. Use meaningful commit messages.

Python Code

Compatibility

The code should work with Python 2.6 and 2.7. Note that PlexPy runs on different platforms, including Network Attached Storage devices such as Synology.

Re-use existing code. Do not hesitate to add logging in your code. You can the logger module plexpy.logger.* for this. Web requests are invoked via plexpy.request.* and derived ones. Use these methods to automatically add proper and meaningful error handling.

Code conventions

Although PlexPy did not adapt a code convention in the past, we try to follow the PEP8 conventions for future code. A short summary to remind you (copied from http://wiki.ros.org/PyStyleGuide):

  • 4 space indentation
  • 80 characters per line
  • package_name
  • ClassName
  • method_name
  • field_name
  • _private_something
  • self.__really_private_field
  • _global

Documentation

Document your code. Use docstrings See PEP-257 for more information.

Continuous Integration

PlexPy has a configuration file for travis-ci. You can add your forked repo to Travis to have it check your code against PEP8, PyLint, and PyFlakes for you. Your pull request will show a green check mark or a red cross on each tested commit, depending on if linting passes.

HTML/Template code

Compatibility

HTML5 compatible browsers are targetted. There is no specific mobile version of PlexPy yet.

Conventions

  • 4 space indentation
  • methodName
  • variableName
  • ClassName