diff --git a/.github/workflows/dependency_checker.yml b/.github/workflows/dependency_checker.yml new file mode 100644 index 00000000..7dbe8703 --- /dev/null +++ b/.github/workflows/dependency_checker.yml @@ -0,0 +1,29 @@ +name: Dependency Checker +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 1-5' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.9 + uses: actions/setup-python@v5 + with: + python-version: 3.9 + - name: Install dependencies + run: | + python -m pip install .[dev] + make check-deps OUTPUT_FILEPATH=latest_requirements.txt + - name: Create pull request + id: cpr + uses: peter-evans/create-pull-request@v4 + with: + token: ${{ secrets.GH_ACCESS_TOKEN }} + commit-message: Update latest dependencies + title: Automated Latest Dependency Updates + body: "This is an auto-generated PR with **latest** dependency updates." + branch: latest-dependency-update + branch-suffix: short-commit-hash + base: main diff --git a/Makefile b/Makefile index b634a918..6fa04057 100644 --- a/Makefile +++ b/Makefile @@ -204,6 +204,11 @@ ifeq ($(CHANGELOG_LINES),0) $(error Please insert the release notes in HISTORY.md before releasing) endif +.PHONY: check-deps +check-deps: # Dependency targets + $(eval allow_list='numpy=|pandas=|scikit-learn=|scipy=|tqdm=|plotly=|copulas=') + pip freeze | grep -v "SDMetrics.git" | grep -E $(allow_list) | sort > $(OUTPUT_FILEPATH) + .PHONY: check-release check-release: check-clean check-main check-history ## Check if the release can be made @echo "A new release can be made" diff --git a/latest_requirements.txt b/latest_requirements.txt new file mode 100644 index 00000000..ce27b336 --- /dev/null +++ b/latest_requirements.txt @@ -0,0 +1,7 @@ +copulas==0.10.1 +numpy==1.23.3 +pandas==1.3.4 +plotly==5.10.0 +scikit-learn==1.4.1.post1 +scipy==1.9.2 +tqdm==4.15.0 diff --git a/pyproject.toml b/pyproject.toml index a4be42f4..20a71629 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,18 +19,18 @@ license = { text = 'MIT license' } requires-python = ">=3.8,<3.12" readme = 'README.md' dependencies = [ - "numpy>=1.20.0,<2;python_version<'3.10'", - "numpy>=1.23.3,<2;python_version>='3.10'", + "numpy>=1.20.0;python_version<'3.10'", + "numpy>=1.23.3;python_version>='3.10'", "pandas>=1.1.3;python_version<'3.10'", "pandas>=1.3.4;python_version>='3.10' and python_version<'3.11'", "pandas>=1.5.0;python_version>='3.11'", - "scikit-learn>=0.24,<2;python_version<'3.10'", - "scikit-learn>=1.1.3,<2;python_version>='3.10'", - "scipy>=1.5.4,<2;python_version<'3.10'", - "scipy>=1.9.2,<2;python_version>='3.10'", - 'copulas>=0.10.0,<0.11', - 'tqdm>=4.15,<5', - 'plotly>=5.10.0,<6', + "scikit-learn>=0.24;python_version<'3.10'", + "scikit-learn>=1.1.3;python_version>='3.10'", + "scipy>=1.5.4;python_version<'3.10'", + "scipy>=1.9.2;python_version>='3.10'", + 'copulas>=0.10.0', + 'tqdm>=4.15', + 'plotly>=5.10.0', ] [project.urls]