diff --git a/.github/workflows/annotate_python.yml b/.github/workflows/annotate_python.yml index 51ca2bdeea8..0cc87c4283d 100644 --- a/.github/workflows/annotate_python.yml +++ b/.github/workflows/annotate_python.yml @@ -20,9 +20,7 @@ jobs: - name: Install flake8 run: pip install flake8 flake8-bugbear flake8-simplify flake8-debugger flake8-pep3101 - name: install project - run: pip install . - - name: install dev requirements - run: pip install -r dev-requirements.txt + run: pip install ".[dev]" - name: install typing requirements run: pip install -r types-requirements.txt - name: find changed files diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 17252f1b2e0..bc13c7b2b21 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -36,8 +36,7 @@ jobs: - name: Install with dependencies run: | - pip install . - pip install -r dev-requirements.txt + pip install ".[dev]" - name: Test GUI if: matrix.test-type == 'gui-tests' diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml index 1bb29c70392..4eb43a4404a 100644 --- a/.github/workflows/doctest.yml +++ b/.github/workflows/doctest.yml @@ -31,11 +31,7 @@ jobs: setup.py pyproject.toml dev-requirements.txt - - run: pip install -e . - - - name: Install with dependencies - run: | - pip install -r dev-requirements.txt + - run: pip install -e ".[dev]" - name: Test doctest run: | diff --git a/.github/workflows/test_ert.yml b/.github/workflows/test_ert.yml index 2bfb6946b79..fa292c8a68e 100644 --- a/.github/workflows/test_ert.yml +++ b/.github/workflows/test_ert.yml @@ -38,10 +38,7 @@ jobs: - name: Install wheel run: | - find . -name "*.whl" -exec pip install {} \; - - - name: Install dependencies - run: pip install -r dev-requirements.txt + find . -name "*.whl" -exec pip install "{}[dev]" \; - name: Test GUI if: inputs.test-type == 'gui-test' diff --git a/.github/workflows/typing.yml b/.github/workflows/typing.yml index a1a87912fd2..f1cfe4f6668 100644 --- a/.github/workflows/typing.yml +++ b/.github/workflows/typing.yml @@ -30,13 +30,12 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install ERT and dependencies run: | - pip install . + pip install ".[dev]" - name: Install dependencies # type checking requires protobuf stubs run: | python -m pip install --upgrade pip python -m pip install -r types-requirements.txt - python -m pip install -r dev-requirements.txt python -m pip install grpcio-tools python -m grpc_tools.protoc -I src/_ert_com_protocol --mypy_out=src/_ert_com_protocol src/_ert_com_protocol/_schema.proto - run: echo ::add-matcher::.github/mypy-matcher.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b943e44e225..f0bd4d53390 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -69,7 +69,7 @@ noise in the review process. You can build the documentation after installation by running ```bash -pip install -r dev-requirements.txt +pip install ".[dev]" sphinx-build -n -v -E -W ./docs ./tmp/ert_docs ``` and then open the generated `./tmp/ert_docs/index.html` in a browser. diff --git a/README.md b/README.md index d39c7b06d28..a3f24948e41 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ pip install --editable . Additional development packages must be installed to run the test suite: ```sh -pip install -r dev-requirements.txt +pip install ".[dev]" pytest tests/ ``` diff --git a/ci/jenkins/Jenkinsfile-performance b/ci/jenkins/Jenkinsfile-performance index d79cee8172c..f4495a13b08 100644 --- a/ci/jenkins/Jenkinsfile-performance +++ b/ci/jenkins/Jenkinsfile-performance @@ -26,8 +26,7 @@ pipeline { source env/bin/activate source /opt/rh/devtoolset-9/enable pip install --upgrade pip - pip install . - pip install -r dev-requirements.txt + pip install ".[dev]" """ } } diff --git a/pyproject.toml b/pyproject.toml index 0359f64e633..f052c26fc8d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,6 +94,44 @@ ert = "ert.__main__:main" [project.urls] Repository = "https://github.com/equinor/ert" +[project.optional-dependencies] +dev = [ + "click", + "decorator", + "ecl_data_io", + "furo", + "flaky", + "grpcio-tools", + "hypothesis<=6.83.0; python_version=='3.8'", # ipython pinned to 8.12.2 for python 3.8 support + "hypothesis; python_version>='3.9'", + "jsonpath_ng", + "jupytext", + "oil_reservoir_synthesizer", + "pytest-asyncio", + "pytest-benchmark", + "pytest-cov", + "pytest-memray", + "pytest-mock", + "pytest-mpl", + "pytest-qt", + "pytest-raises", + "pytest-snapshot", + "pytest-timeout", + "pytest-xdist", + "pytest>6", + "requests", + "scikit-build", + "setuptools_scm", + "sortedcontainers", + "sphinx<7.2", + "sphinx-argparse", + "sphinx-autoapi", + "sphinx-copybutton", + "sphinxcontrib-plantuml", + "sphinxcontrib.datatemplates", + "testpath", +] + [tool.setuptools] platforms = ["all"]