Skip to content

Latest commit

 

History

History
126 lines (87 loc) · 6.44 KB

CONTRIBUTING.md

File metadata and controls

126 lines (87 loc) · 6.44 KB

Contributing to ayx-blackbird

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

The following is a set of guidelines for contributing to ayx-blackbird and its packages, which are hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

Table Of Contents

Code of Conduct

How Can I Contribute?

Styleguides

Additional Notes

Code of Conduct

This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to dme722@gmail.com.

Package Conventions

This is primarily a Python package and therefore follows the following Python coding standards:

  • Linting:

Design Decisions

Many design decisions made in this library are based on the Gang of Four book. For an overview of the designs in this book, please see this reference.

The key design patterns used in this library are:

Additionally, this library is based on the concept of inheritance. A user is intended to install this library, and inherit from ayx_blackbird.core.BasePlugin. From there, any custom behviour can be specified by overriding methods/properties of the base class.

How Can I Contribute?

Reporting Bugs

This section guides you through submitting a bug report for ayx_blackbird. Following these guidelines helps maintainers and the community understand your report 📝, reproduce the behavior 💻 💻, and find related reports 🔎.

Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.

Submitting A Bug Report/Enhancement Suggestion

  • Make sure it's a problem. You might be able to find the cause of the problem and fix things yourself. Most importantly, check if you can reproduce the problem in the latest version of ayx_blackbird..
  • Check the issues board — you might discover that the bug/enhancement is already listed. Most importantly, check if you're using the latest version of ayx_blackbird.

Your First Code Contribution

Unsure where to begin contributing to ayx_blackbird? You can start by looking through the issues:

  • Have a question about how to add a feature, or want to know if it's a good idea?

Local development

  • Clone the repo.
  • Make sure to have the requirements-dev.txt pip installed.
  • Make any changes you want.
  • From the root of the repo (with the conda environment of the tool you're testing activated) pip install . to update the version of ayx_blackbird for the desired tool.
  • Run doit at the command line from the root of the repo to run linting checks and tests.

Pull Requests

The process described here has several goals:

  • Maintain ayx-blackbird's quality
  • Fix problems that are important to users
  • Engage the community in working toward the best possible package
  • Enable a sustainable system for maintainers to review contributions

Please follow these steps to have your contribution considered by the maintainers:

  1. Follow all instructions in the template
  2. Follow the styleguides
  3. After you submit your pull request, verify that all status checks are passing
    What if the status checks are failing?If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.

While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.

Styleguides

Git Commit Messages

  • Use the present tense ("Add feature" not "Added feature")
  • Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
  • Limit the first line to 72 characters or less
  • Reference issues and pull requests liberally after the first line
  • When only changing documentation, include [ci skip] in the commit title
  • Consider starting the commit message with an applicable emoji:
    • 🎨 :art: when improving the format/structure of the code
    • 🐎 :racehorse: when improving performance
    • 🚱 :non-potable_water: when plugging memory leaks
    • 📝 :memo: when writing docs
    • 🐧 :penguin: when fixing something on Linux
    • 🍎 :apple: when fixing something on macOS
    • 🏁 :checkered_flag: when fixing something on Windows
    • 🐛 :bug: when fixing a bug
    • 🔥 :fire: when removing code or files
    • 💚 :green_heart: when fixing the CI build
    • :white_check_mark: when adding tests
    • 🔒 :lock: when dealing with security
    • ⬆️ :arrow_up: when upgrading dependencies
    • ⬇️ :arrow_down: when downgrading dependencies
    • 👕 :shirt: when removing linter warnings