Repository: oncoray/mirp (language: python)

Issue:
dependencies specification
Your dependencies are clear to see in the pyproject.toml, but I would put a max on all of them. I'm hoping the package is around for a while, and if you have a whole full version number up i.e. 1.2.3 to 2.0.0, then it will potentially break things. It may sound theoretical, but as it has happened to me, it is a pet peeve. There should be a max version in the dependency.




Discussion / hints:
I see you point. Major version increases can introduces breaking changes in `mirp`. However, I don't think setting a max version for dependencies is the best solution for this issue, as in the past also minor version increments have produced breaking changes and errors (looking at you `numpy` 👀).

I think the better solution would be to have a biweekly or monthly action on the main branch to see if any errors (or deprecation warnings) pop up: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule

What do you think?
I think this can be a solution. I'll check to see if it is implemented before I sign off my review ;)

Fix patch:
diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md
new file mode 100644
index 00000000..16a0232f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation.md
@@ -0,0 +1,25 @@
+---
+name: Documentation
+about: Template for suggesting documentation changes
+title: ''
+labels: documentation
+assignees: ''
+
+---
+
+Please use the below template to submit your issue:
+
+# Documentation changes
+
+What new addition or change to the documentation would you like to see?
+Where should this addition or change be made? If relevant, provide the name of the method, class or function.
+
+# Specifications
+
+- MIRP version: 
+
+*Hint*: the installed version of MIRP can be found using `importlib_metadata`:
+```
+import importlib_metadata
+importlib_metadata.version("mirp")
+```


Test patch:
diff --git a/.github/workflows/auto-test-dependencies_timed.yml b/.github/workflows/auto-test-dependencies_timed.yml
new file mode 100644
index 00000000..61acd87b
--- /dev/null
+++ b/.github/workflows/auto-test-dependencies_timed.yml
@@ -0,0 +1,36 @@
+# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
+
+# Automated tests are run at 6:30 UTC on the first and fifteenth day of each month.
+
+name: Run automated tests on multiple platforms to detect dependency issues
+
+on:
+  workflow_dispatch:
+  schedule:
+    - cron: '30 6 1,15 * *'
+
+jobs:
+  build:
+
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: [ "3.10", "3.11"]
+        os: [ ubuntu-latest, macos-latest, windows-latest ]
+
+    steps:
+    - uses: actions/checkout@v4
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v5
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        python -m pip install .
+        python -m pip install .[test]
+    - name: Test with pytest
+      run: |
+        python -m pytest -m ci test