There are many ways to contribute to Devo. Here are some of them:
- Report bugs or request features in the issue tracker.
- Submit patches for bug fixes and/or new features.
Well-written bug reports are very helpful, keep in mind this guideline when reporting a new bug.
- Check the open issues to see if it has already been reported.
- Write complete, reproducible, specific bug reports: the smaller the test case, better.
- Includes the output of the library with all the error information
To be able to make a fork and the corresponding MR you have to accept Devo's CLA The process to modify one package or script is the next:
- Create your fork from main
- Create a branch that determines the change. The branch name determines the versioning, if it starts with:
- BREAK or MAJOR ⟶ MAJOR (1.2.3 ⟶ 2.0.0)
- FEAT or MINOR ⟶ MINOR (1.2.3 ⟶ 1.3.0)
- Anything else ⟶ PATCH (1.2.3 ⟶ 1.2.4)
- Add to the
CHANGELOG.md
, inUnreleased
the tasks that you are going to take or are carrying out to be able to review at a quick glance the objective of the branch - Make your awesome code
- Never forget to change the changelog.
5.1 Keep a Changelog - Create a Pull Request to master with correct version and tests passed
- After reviewed, if everything goes fine it will be merged by one of the admins of the repository, if not back to step 4
- It is a task for the admin to generate a Release so that the project gets updated in PyPi
A change log is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.
To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.
Because software tools are for people. If you don’t care, why are you contributing? Right, Devo pay you for it, but surely, there must be a kernel (ha!) of care somewhere in that lovely little brain of yours.
A good change log sticks to these principles:
- It’s made for humans, not machines, so legibility is crucial.
- Easy to link to any section (hence Markdown over plain text).
- One sub-section per version.
- List releases in reverse-chronological order (newest on top).
- Write all dates in
YYYY-MM-DD
format. (Example:2012-06-02
forJune 2nd, 2012
.) It’s international, sensible, and language-independent. - Explicitly mention whether the project follows Semantic Versioning.
- Each version should:
- List its release date in the above format.
- Group changes to describe their impact on the project, as follows:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for once-stable features removed in upcoming releases.Removed
for deprecated features removed in this release.Fixed
for any bug fixes.Security
to invite users to upgrade in case of vulnerabilities.
Always have an Unreleased
section at the top for keeping track of any changes.
This serves two purposes:
- People can see what changes they might expect in upcoming releases
- At release time, you just have to change "Unreleased" to the version number and add a new "Unreleased" header at the top.
Feel free for update and improve this document content or format.
This package is built and managed using Poetry. It can be downloaded and installed following the guides here Python-Poetry.org.
Once installed git clone this repository and run poetry install
in the project root. This will install dependencies and devdependencies and you will then be ready to work on the project.
-
Type linting:
poetry run mypy <packages>
,poetry run mypy devo_ml
poetry run mypy --namespace-packages tests
-
Style linting:
poetry run flake8 <packages>
,poetry run flake8 devo_ml
-
Testing:
poetry run pytest
Install tox with pip.
Run tox
to run all tests
Run tox -e lint
to run all linting