Skip to content

Latest commit

 

History

History
81 lines (56 loc) · 3.09 KB

CONTRIBUTING.md

File metadata and controls

81 lines (56 loc) · 3.09 KB

Contribute to MarieAI(🦊)

Thanks for your interest in contributing to MarieAi. We're grateful for your initiative! ❤️

In this guide, we're going to go through the steps for each kind of contribution, and good and bad examples of what to do. We look forward to your contributions!

🐞 Bugs and Issues

Submitting Issues

We love to get issue reports. But we love it even more if they're in the right format. For any bugs you encounter, we need you to:

  • Describe your problem: What exactly is the bug. Be as clear and concise as possible
  • Why do you think it's happening? If you have any insight, here's where to share it

There are also a couple of nice to haves:

  • Environment: You can find this with marie -vf
  • Screenshots: If they're relevant

Coding standards

To ensure the readability of our code, we stick to a few conventions:

  • We format python files using black.
  • For linting, we use flake81.
  • For sorting imports, we use isort.

The setup.cfg and pyproject.toml already contain the proper configuration for these tools. If you are working in a modern IDE (such a VSCode), which integrates these tools, the options will be picked up. If you are working from the command line, you should use these tools form the root of this repository or via a make file.

We also provide a .pre-commit-config.yaml file, which enables you to use pre-commit to automatically perform the required linting/formatting actions before you commit your changes. You can install it using

pip install pre-commit
pre-commit install

☑️ Naming Conventions

For branches, commits, and PRs we follow some basic naming conventions:

  • Be descriptive
  • Use all lower-case
  • Limit punctuation
  • Include one of our specified types
  • Short (under 70 characters is best)
  • In general, follow the Conventional Commit guidelines

Note: If you don't follow naming conventions, your commit will be automatically flagged to be fixed.

Specify the correct types

Type is an important prefix in PR, commit message. For each branch, commit, or PR, we need you to specify the type to help us keep things organized. For example,

feat: add hat wobble
^--^  ^------------^
|     |
|     +-> Summary in present tense.
|
+-------> Type: build, ci, chore, docs, feat, fix, refactor, style, or test.
  • build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
  • test: Adding missing tests or correcting existing tests
  • chore: updating grunt tasks etc; no production code change