Merge pull request #553 from deezer/contribution

📝  update CONTRIBUTING rules
This commit is contained in:
Félix Voituret
2021-01-08 19:21:59 +01:00
committed by GitHub
6 changed files with 61 additions and 13 deletions

View File

@@ -11,15 +11,31 @@ Those are the main contributing guidelines for contributing to this project:
## Get started ## Get started
In order to contribute, the safest is to create your [own fork of spleeter](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) first. The following set of commands will clone this new repository, create a virtual environment provisioned with the dependencies and run the tests (will take a few minutes): This project is managed using [Poetry](https://python-poetry.org/docs/basic-usage/),
in order to contribute, the safest is to create your
[own fork of spleeter](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) first and then setup your development environment:
```bash ```bash
# Clone spleeter repository fork
git clone https://github.com/<your_name>/spleeter && cd spleeter git clone https://github.com/<your_name>/spleeter && cd spleeter
python -m venv spleeterenv && source spleeterenv/bin/activate # Install poetry
pip install -r requirements.txt && pip install pytest pytest-xdist pip install poetry
make test # Install spleeter dependencies
poetry install
# Run unit test suite
poetry run pytest tests/
``` ```
You can then make your changes and experiment freely. Once you're done, remember to check that the tests still run. If you've added a new feature, add tests! You can then make your changes and experiment freely. Once you're done, remember to check that the tests still run. If you've added a new feature, add tests!
Then finally, you're more than welcome to create a [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) in **Spleeter** main repo. We will look at it as soon as possible and eventually integrate your changes in the project. Then finally, you're more than welcome to create a [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) in **Spleeter** main repo. We will look at it as soon as possible and eventually integrate your changes in the project.
## PR requirements
Following command should be ran successfully before to consider a PR for merging:
```bash
poetry run pytest tests/
poetry run black spleeter
poetry run isort spleeter
```

View File

@@ -5,10 +5,10 @@ title: "[Bug] name your bug"
labels: bug, invalid labels: bug, invalid
--- ---
<!-- PLEASE READ THIS CAREFULLY : - [ ] I didn't find a similar issue already open.
- Any issue which does not respect following template or lack of information will be considered as invalid and automatically closed - [ ] I read the documentation (README AND Wiki)
- First check FAQ from wiki to see if your problem is not already known - [ ] I have installed FFMpeg
--> - [ ] My problem is related to Spleeter only, not a derivative product (such as Webapplication, or GUI provided by others)
## Description ## Description

View File

@@ -1,4 +1,6 @@
# [Spleeter-XXXX] - pull request title # Pull request title
- [ ] I read [contributing guideline](.github/CONTRIBUTING.md)
## Description ## Description
@@ -8,6 +10,10 @@ A few sentences describing the overall goals of the pull request's commits.
You tested it, right? You tested it, right?
- [ ] I implemented unit test whicn ran successfully using `poetry run pytest tests/`
- [ ] Code has been formatted using `poetry run black spleeter`
- [ ] Imports has been formatted using `poetry run isort spleeter``
## Documentation link and external references ## Documentation link and external references
Please provide any info that may help us better understand your code. Please provide any info that may help us better understand your code.

21
poetry.lock generated
View File

@@ -360,6 +360,21 @@ zipp = ">=0.5"
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
[[package]]
name = "importlib-resources"
version = "4.1.1"
description = "Read resources from Python packages"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
zipp = {version = ">=0.4", markers = "python_version < \"3.8\""}
[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "pytest-black (>=0.3.7)", "pytest-mypy"]
[[package]] [[package]]
name = "iniconfig" name = "iniconfig"
version = "1.1.1" version = "1.1.1"
@@ -1151,7 +1166,7 @@ evaluation = ["musdb", "museval"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = ">=3.6.1,<3.9" python-versions = ">=3.6.1,<3.9"
content-hash = "428642b824d3b5804f1939efcb60aa0fe892ff4a5a11180c2e48d0cfbb3b21c3" content-hash = "68d74d7fe62255b9aa3744c6d4612705f06649864c04209346c6da52e2234cd1"
[metadata.files] [metadata.files]
absl-py = [ absl-py = [
@@ -1398,6 +1413,10 @@ importlib-metadata = [
{file = "importlib_metadata-3.3.0-py3-none-any.whl", hash = "sha256:bf792d480abbd5eda85794e4afb09dd538393f7d6e6ffef6e9f03d2014cf9450"}, {file = "importlib_metadata-3.3.0-py3-none-any.whl", hash = "sha256:bf792d480abbd5eda85794e4afb09dd538393f7d6e6ffef6e9f03d2014cf9450"},
{file = "importlib_metadata-3.3.0.tar.gz", hash = "sha256:5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed"}, {file = "importlib_metadata-3.3.0.tar.gz", hash = "sha256:5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed"},
] ]
importlib-resources = [
{file = "importlib_resources-4.1.1-py3-none-any.whl", hash = "sha256:0a948d0c8c3f9344de62997e3f73444dbba233b1eaf24352933c2d264b9e4182"},
{file = "importlib_resources-4.1.1.tar.gz", hash = "sha256:6b45007a479c4ec21165ae3ffbe37faf35404e2041fac6ae1da684f38530ca73"},
]
iniconfig = [ iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "spleeter" name = "spleeter"
version = "2.1.1" version = "2.1.2"
description = "The Deezer source separation library with pretrained models based on tensorflow." description = "The Deezer source separation library with pretrained models based on tensorflow."
authors = ["Deezer Research <spleeter@deezer.com>"] authors = ["Deezer Research <spleeter@deezer.com>"]
license = "MIT License" license = "MIT License"
@@ -55,6 +55,7 @@ museval = {version = "0.3.0", optional = true}
tensorflow = "2.3.0" tensorflow = "2.3.0"
pandas = "1.1.2" pandas = "1.1.2"
numpy = "<1.19.0,>=1.16.0" numpy = "<1.19.0,>=1.16.0"
importlib-resources = {version = "^4.1.1", python = "<3.7"}
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
pytest = "^6.2.1" pytest = "^6.2.1"

View File

@@ -3,11 +3,17 @@
""" Module that provides configuration loading function. """ """ Module that provides configuration loading function. """
import importlib.resources as loader
import json import json
from os.path import exists from os.path import exists
from typing import Dict from typing import Dict
try:
import importlib.resources as loader
except ImportError:
# Try backported to PY<37 `importlib_resources`.
# pyright: reportMissingImports=false
import importlib_resources as loader
from .. import SpleeterError, resources from .. import SpleeterError, resources
__email__ = "spleeter@deezer.com" __email__ = "spleeter@deezer.com"