Repository: OceanParcels/Parcels (language: python)

Issue:
Separate dev dependencies
I am looking to include a variety of dev dependencies to improve the quality of this codebase. Eg:

- sphinx (+ related packages)
- pre-commit
- coverage
...

It would be good to isolate these dependencies so that they are not shipped to individual users' installation.
Separate dev dependencies
I am looking to include a variety of dev dependencies to improve the quality of this codebase. Eg:

- sphinx (+ related packages)
- pre-commit
- coverage
...

It would be good to isolate these dependencies so that they are not shipped to individual users' installation.


Discussion / hints:
Good idea to create a separate requirements file for developers. I see you've now already moved pytest and flake there; what about sphinx? Or that will come later? Is this ready to merge now?
Sphinx will come later. I dont think mixing pip and conda will cause issues, but happy to investigate more into a pure conda install if you'd like me to.
@erikvansebille I've refactored to use Conda forge. I found surprisingly little online about specifying dev dependencies in Conda, so this is a bit of my own doing.

They can be installed by running `conda env update -f requirements-dev.yml` with the parcels environment activated.
Good idea to create a separate requirements file for developers. I see you've now already moved pytest and flake there; what about sphinx? Or that will come later? Is this ready to merge now?
Sphinx will come later. I dont think mixing pip and conda will cause issues, but happy to investigate more into a pure conda install if you'd like me to.
@erikvansebille I've refactored to use Conda forge. I found surprisingly little online about specifying dev dependencies in Conda, so this is a bit of my own doing.

They can be installed by running `conda env update -f requirements-dev.yml` with the parcels environment activated.

Fix patch:
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 7ea06463b..848da76ea 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -9,11 +9,10 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@master
-      - name: Setup Python
-        uses: actions/setup-python@v3
-        with:
-          python-version: 3.8
-      - run: pip install flake8
+      - name: Python setup
+        run: |
+          pip install wheel
+          pip install flake8
       - name: flake8
         run: |
           python -m flake8 parcels
diff --git a/environment_py3_linux.yml b/environment_py3_linux.yml
index ee7784d33..81808fb6b 100644
--- a/environment_py3_linux.yml
+++ b/environment_py3_linux.yml
@@ -5,9 +5,7 @@ channels:
 dependencies:
   - python>=3.8
   - cgen
-  - coverage
   - ffmpeg>=3.2.3
-  - flake8>=2.1.0
   - git
   - gcc_linux-64
   - mpi4py>=3.0.1
@@ -28,3 +26,14 @@ dependencies:
   - scikit-learn
   - pykdtree
   - zarr
+
+  # Testing
+  - pytest
+  - pytest-html
+  - coverage
+
+  # Linting
+  - flake8>=2.1.0
+
+  # Docs
+  - sphinx<6
diff --git a/environment_py3_osx.yml b/environment_py3_osx.yml
index f90330536..68db93502 100644
--- a/environment_py3_osx.yml
+++ b/environment_py3_osx.yml
@@ -6,9 +6,7 @@ dependencies:
   - python>=3.8
   - cgen
   - clang_osx-64
-  - coverage
   - ffmpeg>=3.2.3
-  - flake8>=2.1.0
   - git
   - mpi4py>=3.0.1
   - mpich>=3.2.1
@@ -28,3 +26,14 @@ dependencies:
   - scikit-learn
   - pykdtree
   - zarr
+
+  # Testing
+  - pytest
+  - pytest-html
+  - coverage
+
+  # Linting
+  - flake8>=2.1.0
+
+  # Docs
+  - sphinx<6
diff --git a/environment_py3_win.yml b/environment_py3_win.yml
index c247b0213..2843e67f3 100644
--- a/environment_py3_win.yml
+++ b/environment_py3_win.yml
@@ -4,9 +4,7 @@ channels:
 dependencies:
   - python>=3.8
   - cgen>=2020.1
-  - coverage
   - ffmpeg>=3.2.3
-  - flake8>=2.1.0
   - git
   - jupyter
   - m2w64-toolchain
@@ -25,3 +23,14 @@ dependencies:
   - nbval
   - pykdtree
   - zarr
+
+  # Testing
+  - pytest
+  - pytest-html
+  - coverage
+
+  # Linting
+  - flake8>=2.1.0
+
+  # Docs
+  - sphinx<6
diff --git a/requirements-dev.yml b/requirements-dev.yml
deleted file mode 100644
index c0967f692..000000000
--- a/requirements-dev.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# To be run after environment installation and activation
-# with `conda env update -f requirements-dev.yml`
-dependencies:
-  - pytest
-  - pytest-html
-  - flake8
-  - coverage
-  - sphinx<6


Test patch:
diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml
index a67730ad3..87c6cd3c6 100644
--- a/.github/workflows/integration-tests.yml
+++ b/.github/workflows/integration-tests.yml
@@ -38,7 +38,6 @@ jobs:
         with:
           environment-file: environment_py3_${{ matrix.os-short }}.yml
           environment-name: py3_parcels
-      - run: conda env update -f requirements-dev.yml
       - name: Integration test
         run: |
           parcels_get_examples examples
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 3aaf7ff0d..e8625cecb 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -37,7 +37,6 @@ jobs:
         with:
           environment-file: environment_py3_${{ matrix.os-short }}.yml
           environment-name: py3_parcels
-      - run: conda env update -f requirements-dev.yml
       - name: Unit test
         run: |
           coverage run -m pytest -v -s --html=${{ matrix.os }}_unit_test_report.html --self-contained-html tests