From 08a66edc8d7c8d01e807ed79a812aa9cc409ca68 Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 29 Jul 2023 15:32:42 +0900 Subject: [PATCH 1/5] Add configuration for coverage --- .coveragerc | 3 ++ .github/workflows/python-coverage.yml | 43 +++++++++++++++++++++++++++ .gitignore | 5 ++++ pyproject.toml | 6 ++++ 4 files changed, 57 insertions(+) create mode 100644 .coveragerc create mode 100644 .github/workflows/python-coverage.yml diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 00000000..26e44f99 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,3 @@ +[run] +concurrency = multiprocessing,thread +source = optuna_dashboard/ diff --git a/.github/workflows/python-coverage.yml b/.github/workflows/python-coverage.yml new file mode 100644 index 00000000..290c6826 --- /dev/null +++ b/.github/workflows/python-coverage.yml @@ -0,0 +1,43 @@ +name: python coverage + +on: + push: + branches: + - master + pull_request: {} + +jobs: + coverage: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + architecture: x64 + + - name: Install dependencies + # python_tests requires optuna>=3.0.0 since it imports FloatDistribution + run: | + python -m pip install --progress-bar off --upgrade pip setuptools + pip install --progress-bar off "optuna>=3.0.0" + pip install --progress-bar off . + echo 'import coverage; coverage.process_startup()' > sitecustomize.py + + - name: Tests + env: + PYTHONPATH: . # To invoke sitecutomize.py + COVERAGE_PROCESS_START: .coveragerc # https://coverage.readthedocs.io/en/6.4.1/subprocess.html + COVERAGE_COVERAGE: yes # https://github.com/nedbat/coveragepy/blob/65bf33fc03209ffb01bbbc0d900017614645ee7a/coverage/control.py#L255-L261 + run: | + coverage run --source=optuna -m pytest tests -m "not skip_coverage and not slow" + coverage combine + coverage xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml diff --git a/.gitignore b/.gitignore index dde468fc..d530dc27 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,11 @@ docs/_generated/ rustlib/target/ rustlib/pkg/ +# Test +.coverage +.coverage.* +coverage.xml + # Others .envrc .idea/ diff --git a/pyproject.toml b/pyproject.toml index be4a18e0..93d24743 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,12 @@ dependencies = [ ] dynamic = ["version"] +[project.optional-dependencies] +test = [ + "coverage", + "pytest", +] + [project.scripts] optuna-dashboard = "optuna_dashboard._cli:main" From 188647718f75c256da7158e3f89762df75607efd Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 29 Jul 2023 15:48:33 +0900 Subject: [PATCH 2/5] Update coverage command --- .github/workflows/python-coverage.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/python-coverage.yml b/.github/workflows/python-coverage.yml index 290c6826..e1511ab5 100644 --- a/.github/workflows/python-coverage.yml +++ b/.github/workflows/python-coverage.yml @@ -20,7 +20,6 @@ jobs: architecture: x64 - name: Install dependencies - # python_tests requires optuna>=3.0.0 since it imports FloatDistribution run: | python -m pip install --progress-bar off --upgrade pip setuptools pip install --progress-bar off "optuna>=3.0.0" @@ -33,7 +32,7 @@ jobs: COVERAGE_PROCESS_START: .coveragerc # https://coverage.readthedocs.io/en/6.4.1/subprocess.html COVERAGE_COVERAGE: yes # https://github.com/nedbat/coveragepy/blob/65bf33fc03209ffb01bbbc0d900017614645ee7a/coverage/control.py#L255-L261 run: | - coverage run --source=optuna -m pytest tests -m "not skip_coverage and not slow" + coverage run --source=optuna_dashboard -m pytest python_tests coverage combine coverage xml From 8da437fc1e3eacb59e2b693b8808fbecf4e75aeb Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 29 Jul 2023 15:55:22 +0900 Subject: [PATCH 3/5] Use .[test] in workflow --- .github/workflows/python-coverage.yml | 1 + .github/workflows/python-tests.yml | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-coverage.yml b/.github/workflows/python-coverage.yml index e1511ab5..d8aca48f 100644 --- a/.github/workflows/python-coverage.yml +++ b/.github/workflows/python-coverage.yml @@ -22,6 +22,7 @@ jobs: - name: Install dependencies run: | python -m pip install --progress-bar off --upgrade pip setuptools + pip install --progress-bar off .[test] pip install --progress-bar off "optuna>=3.0.0" pip install --progress-bar off . echo 'import coverage; coverage.process_startup()' > sitecustomize.py diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 612ddb59..1b5f9989 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -45,7 +45,8 @@ jobs: # python_tests requires optuna>=3.0.0 since it imports FloatDistribution run: | python -m pip install --progress-bar off --upgrade pip setuptools - pip install streamlit boto3 moto[s3] pytest + pip install streamlit boto3 moto[s3] + pip install --progress-bar off .[test] pip install --progress-bar off "optuna>=3.0.0" pip install --progress-bar off . - run: pytest python_tests @@ -61,7 +62,8 @@ jobs: - name: Install dependencies run: | python -m pip install --progress-bar off --upgrade pip setuptools - pip install streamlit boto3 moto[s3] pytest + pip install streamlit boto3 moto[s3] + pip install --progress-bar off .[test] pip install --progress-bar off . python -m pip install --progress-bar off --upgrade git+https://github.com/optuna/optuna.git - run: pytest python_tests From 822a004c487abced010656fb6e3607a85bf93860 Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 29 Jul 2023 16:02:28 +0900 Subject: [PATCH 4/5] Define .[optional] and use it in workflows --- .github/workflows/python-coverage.yml | 1 + .github/workflows/python-tests.yml | 4 ++-- pyproject.toml | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-coverage.yml b/.github/workflows/python-coverage.yml index d8aca48f..729c6f65 100644 --- a/.github/workflows/python-coverage.yml +++ b/.github/workflows/python-coverage.yml @@ -22,6 +22,7 @@ jobs: - name: Install dependencies run: | python -m pip install --progress-bar off --upgrade pip setuptools + pip install --progress-bar off .[optional] pip install --progress-bar off .[test] pip install --progress-bar off "optuna>=3.0.0" pip install --progress-bar off . diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 1b5f9989..8fee4e44 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -45,7 +45,7 @@ jobs: # python_tests requires optuna>=3.0.0 since it imports FloatDistribution run: | python -m pip install --progress-bar off --upgrade pip setuptools - pip install streamlit boto3 moto[s3] + pip install --progress-bar off .[optional] pip install --progress-bar off .[test] pip install --progress-bar off "optuna>=3.0.0" pip install --progress-bar off . @@ -62,7 +62,7 @@ jobs: - name: Install dependencies run: | python -m pip install --progress-bar off --upgrade pip setuptools - pip install streamlit boto3 moto[s3] + pip install --progress-bar off .[optional] pip install --progress-bar off .[test] pip install --progress-bar off . python -m pip install --progress-bar off --upgrade git+https://github.com/optuna/optuna.git diff --git a/pyproject.toml b/pyproject.toml index 93d24743..1dcb9a19 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,12 @@ test = [ "pytest", ] +optional = [ + "streamlit", + "boto3", + "moto[s3]", +] + [project.scripts] optuna-dashboard = "optuna_dashboard._cli:main" From 94930c295b12e4a592d88f208737596f369d544b Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 5 Aug 2023 14:39:45 +0900 Subject: [PATCH 5/5] Move moto[s3] into test --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1dcb9a19..b65597b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,12 +37,12 @@ dynamic = ["version"] test = [ "coverage", "pytest", + "moto[s3]", ] optional = [ "streamlit", "boto3", - "moto[s3]", ] [project.scripts]