Contributing
Thank you for your interest in contributing to carefree-learn
! Before you begin writing code, it is important that you share your intention to contribute with the team, based on the type of contribution:
- You want to propose a new feature and implement it.
- Post about your intended feature in an issue, and we shall discuss the design and implementation. Once we agree that the plan looks good, go ahead and implement it.
- You want to implement a feature or bug-fix for an outstanding issue.
- Search for your issue in the
carefree-learn
issue list. - Pick an issue and comment that you'd like to work on the feature or bug-fix.
- If you need more context on a particular issue, please ask and we shall provide.
- Search for your issue in the
Once you implement and test your feature or bug-fix, please include some unittests and submit a Pull Request to https://github.com/carefree0910/carefree-learn.
Developing
To develop carefree-learn
on your machine, here are some tips:
- Uninstall all existing
carefree-learn
installs:
Follow Installation Guide to install
carefree-learn
. Remember to choose theGitHub
tab in the pip installation section.Follow Style Guide and happy coding!
Style Guide
carefree-learn
adopted black
and mypy
to stylize its codes, so you may need to check the format, coding style and type hint with them before your codes could actually be merged.
Besides, there are a few more principles that I'm using for sorting imports:
- From short to long (for both naming and path).
- From a to z (alphabetically).
- Divided into four sections:
import ...
import ... as ...
from ... import ...
- relative imports
- From general to specific (a
*
will always appear at the top of each section)
Here's an example to illustrate these (source code):
But after all, this is not a strict constraint so everything will be fine as long as it 'looks good'๐คฃ
Creating a Pull Request
When you are ready to create a pull request, please try to keep the following in mind.
Title
The title of your pull request should
- briefly describe and reflect the changes
- wrap any code with backticks
Description
The description of your pull request should
- describe the motivation
- describe the changes
- if still work-in-progress, describe remaining tasks