From fd2d4cef2e194b5d979e10c8efdd20522fefafea Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:08:32 +0200 Subject: [PATCH 01/15] add cicd workflow for checking nomads dependencies --- .github/workflows/nomad-requirements.yml | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/nomad-requirements.yml diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml new file mode 100644 index 000000000..ac67f613e --- /dev/null +++ b/.github/workflows/nomad-requirements.yml @@ -0,0 +1,58 @@ +name: validate NOMAD dependencies compatibility + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + validate_nomad_dependencies: + runs-on: ubuntu-latest + + steps: + - name: Checkout pynxtools + uses: actions/checkout@v2 + + - name: Checkout NOMAD from GitLab + run: | + git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad + cd nomad-FAIR + git checkout develop + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' # or any other version you need + + - name: Parse pynxtools pyproject.toml + id: parse_pyproject + run: | + python -c " + import toml + import json# Load the pyproject.toml + + with open('pyproject.toml', 'r') as file: + pyproject = toml.load(file) + + dependencies = pyproject.get('project', {}).get('dependencies', []) + + # Convert to requirements format and save + with open('pyproject-requirements.txt', 'w') as f: + for dep in dependencies: + f.write(f'{dep}\n')" + + - name: Combine and Check Dependencies + run: | + # Combine repo1's requirements with repo2's dependencies from pyproject.toml + cat nomad/requirements-dev > combined-requirements.txt + echo "" >> combined-requirements.txt + cat pyproject-requirements.txt >> combined-requirements.txt + + # Upgrade pip and install the combined dependencies + python -m pip install --upgrade pip + pip install -r combined-requirements.txt + env: + PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test \ No newline at end of file From f2301362a5c772bcfdd3ff36497f922b615c2261 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:09:55 +0200 Subject: [PATCH 02/15] use master branch for checking deps --- .github/workflows/nomad-requirements.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index ac67f613e..9ee49bd1b 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -3,10 +3,10 @@ name: validate NOMAD dependencies compatibility on: push: branches: - - main + - master pull_request: branches: - - main + - master jobs: validate_nomad_dependencies: From 3b14428599a53629d97d4e1aad04c79383713030 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:11:16 +0200 Subject: [PATCH 03/15] use correct nomad path --- .github/workflows/nomad-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 9ee49bd1b..46b30aa5d 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout NOMAD from GitLab run: | git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad - cd nomad-FAIR + cd nomad git checkout develop - name: Set up Python From e2ac1bd513cfdb330aa655facee0d2b7749b0f61 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:19:40 +0200 Subject: [PATCH 04/15] use pip-compil --- .github/workflows/nomad-requirements.yml | 106 +++++++++++------------ 1 file changed, 49 insertions(+), 57 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 46b30aa5d..1fcd7e8f4 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -1,58 +1,50 @@ -name: validate NOMAD dependencies compatibility - -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - validate_nomad_dependencies: - runs-on: ubuntu-latest - - steps: - - name: Checkout pynxtools - uses: actions/checkout@v2 - - - name: Checkout NOMAD from GitLab - run: | - git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad - cd nomad - git checkout develop - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' # or any other version you need - - - name: Parse pynxtools pyproject.toml - id: parse_pyproject - run: | - python -c " - import toml - import json# Load the pyproject.toml - - with open('pyproject.toml', 'r') as file: - pyproject = toml.load(file) - - dependencies = pyproject.get('project', {}).get('dependencies', []) - - # Convert to requirements format and save - with open('pyproject-requirements.txt', 'w') as f: - for dep in dependencies: - f.write(f'{dep}\n')" - - - name: Combine and Check Dependencies - run: | - # Combine repo1's requirements with repo2's dependencies from pyproject.toml - cat nomad/requirements-dev > combined-requirements.txt - echo "" >> combined-requirements.txt - cat pyproject-requirements.txt >> combined-requirements.txt - - # Upgrade pip and install the combined dependencies - python -m pip install --upgrade pip - pip install -r combined-requirements.txt - env: +name: validate NOMAD dependencies compatibility + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + validate_nomad_dependencies: + runs-on: ubuntu-latest + + steps: + - name: Checkout pynxtools + uses: actions/checkout@v2 + + - name: Checkout NOMAD from GitLab + run: | + git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad + cd nomad + git checkout develop + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' # or any other version you need + + - name: Install pip-tools + run: | + python -m pip install --upgrade pip + pip install pip-tools + + - name: Compile pyproject.toml to requirements.txt + run: | + # Use pip-compile to generate requirements.txt from pyproject.toml + pip-compile pyproject.toml --output-file=pyproject-requirements.txt + + - name: Combine and Check Dependencies + run: | + # Combine NOMADS requirements with pynxtools dependencies from pyproject.toml + cat nomad/requirements-dev > combined-requirements.txt + echo "" >> combined-requirements.txt + cat pyproject-requirements.txt >> combined-requirements.txt + + # Install the combined dependencies + pip install -r combined-requirements.txt + env: PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test \ No newline at end of file From 98a014858ab315b4b448ce9d20a234d4d683a43a Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:21:19 +0200 Subject: [PATCH 05/15] use correct nomad dev-requirements --- .github/workflows/nomad-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 1fcd7e8f4..1e0c0163b 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -40,7 +40,7 @@ jobs: - name: Combine and Check Dependencies run: | # Combine NOMADS requirements with pynxtools dependencies from pyproject.toml - cat nomad/requirements-dev > combined-requirements.txt + cat nomad/requirements-dev.txt > combined-requirements.txt echo "" >> combined-requirements.txt cat pyproject-requirements.txt >> combined-requirements.txt From 85c79a39c56c78c429b7e34a5367beb9cc58cf53 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 22:42:44 +0200 Subject: [PATCH 06/15] use NOMAD uv compile with current pynx branch --- .github/workflows/nomad-requirements.yml | 45 +++++++++++++----------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 1e0c0163b..805fab097 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -1,4 +1,4 @@ -name: validate NOMAD dependencies compatibility +name: Validate Dependencies Compatibility on: push: @@ -9,42 +9,45 @@ on: - master jobs: - validate_nomad_dependencies: + validate_dependencies: runs-on: ubuntu-latest steps: - - name: Checkout pynxtools + - name: Checkout pynxtools (current repository) uses: actions/checkout@v2 - name: Checkout NOMAD from GitLab + env: + GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }} run: | git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad cd nomad - git checkout develop + git checkout develop - name: Set up Python uses: actions/setup-python@v2 with: - python-version: '3.9' # or any other version you need + python-version: '3.9' - - name: Install pip-tools + - name: Install uv run: | - python -m pip install --upgrade pip - pip install pip-tools - - - name: Compile pyproject.toml to requirements.txt + curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Replace pynxtools dependency in NOMAD pyproject.toml run: | - # Use pip-compile to generate requirements.txt from pyproject.toml - pip-compile pyproject.toml --output-file=pyproject-requirements.txt - - - name: Combine and Check Dependencies + sed -i 's|pynxtools\[convert\]==0.3.1|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml + + - name: Generate requirements.txt from pyproject.toml run: | - # Combine NOMADS requirements with pynxtools dependencies from pyproject.toml - cat nomad/requirements-dev.txt > combined-requirements.txt - echo "" >> combined-requirements.txt - cat pyproject-requirements.txt >> combined-requirements.txt + uv pip compile -p 3.9 --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/nomad-dos-fingerprints/pyproject.toml dependencies/parsers/eelsdb/pyproject.toml pyproject.toml + uv pip compile -p 3.9 --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-dev.txt requirements.txt pyproject.toml - # Install the combined dependencies - pip install -r combined-requirements.txt + - name: Install NOMAD dependencies with pynxtools from current branch + run: | + uv pip install --system -r requirements.txt + uv pip install --system -r requirements-dev.txt env: - PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test \ No newline at end of file + PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test + + - name: Run Tests + run: | + pytest \ No newline at end of file From d1d586edae10968d004d2e7d8022ec42b9dcec59 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 22:45:15 +0200 Subject: [PATCH 07/15] init nomad submodules --- .github/workflows/nomad-requirements.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 805fab097..ab1896f14 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -24,6 +24,10 @@ jobs: cd nomad git checkout develop + - name: Init NOMAD submodules + run: + git submodule update --init --recursive + - name: Set up Python uses: actions/setup-python@v2 with: From ce1588d5486473e96a0a5675fdaea4dbd2dbbf67 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 22:57:34 +0200 Subject: [PATCH 08/15] restructure cicd code --- .github/workflows/nomad-requirements.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index ab1896f14..bc4f6ab45 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -13,20 +13,20 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout pynxtools (current repository) + - name: Checkout pynxtools uses: actions/checkout@v2 - name: Checkout NOMAD from GitLab - env: - GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }} + with: + submodules: 'recursive' run: | git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad cd nomad git checkout develop - - - name: Init NOMAD submodules - run: - git submodule update --init --recursive + + - name: Replace pynxtools dependency in NOMAD pyproject.toml + run: | + sed -i 's|pynxtools\[convert\]==0.3.1|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml - name: Set up Python uses: actions/setup-python@v2 @@ -35,12 +35,9 @@ jobs: - name: Install uv run: | - curl -LsSf https://astral.sh/uv/install.sh | sh - - name: Replace pynxtools dependency in NOMAD pyproject.toml - run: | - sed -i 's|pynxtools\[convert\]==0.3.1|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml + curl -LsSf https://astral.sh/uv/install.sh | sh - - name: Generate requirements.txt from pyproject.toml + - name: Generate (dev-)requirements.txt from modified pyproject.toml run: | uv pip compile -p 3.9 --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/nomad-dos-fingerprints/pyproject.toml dependencies/parsers/eelsdb/pyproject.toml pyproject.toml uv pip compile -p 3.9 --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-dev.txt requirements.txt pyproject.toml From e72b8ab48cba5f92c1201f536ccd8f0664fe19a7 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 23:00:16 +0200 Subject: [PATCH 09/15] checkout nomad submodules --- .github/workflows/nomad-requirements.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index bc4f6ab45..54630c583 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -17,12 +17,11 @@ jobs: uses: actions/checkout@v2 - name: Checkout NOMAD from GitLab - with: - submodules: 'recursive' run: | git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad cd nomad git checkout develop + git submodule update --init --recursive - name: Replace pynxtools dependency in NOMAD pyproject.toml run: | From b3d41519c28cedcfd336f1bd3a7ee7e72363cb42 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 23:08:10 +0200 Subject: [PATCH 10/15] run all steps with workdir=nomad --- .github/workflows/nomad-requirements.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 54630c583..88b541ad2 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -7,6 +7,10 @@ on: pull_request: branches: - master + # Run workflow only when there are changes in pyproject.toml or dev-requirements.txt + # paths: + # - 'pyproject.toml' + # - 'dev-requirements.txt' jobs: validate_dependencies: @@ -24,6 +28,7 @@ jobs: git submodule update --init --recursive - name: Replace pynxtools dependency in NOMAD pyproject.toml + working-directory: ./nomad run: | sed -i 's|pynxtools\[convert\]==0.3.1|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml @@ -37,17 +42,15 @@ jobs: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Generate (dev-)requirements.txt from modified pyproject.toml + working-directory: ./nomad run: | uv pip compile -p 3.9 --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/nomad-dos-fingerprints/pyproject.toml dependencies/parsers/eelsdb/pyproject.toml pyproject.toml uv pip compile -p 3.9 --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-dev.txt requirements.txt pyproject.toml - name: Install NOMAD dependencies with pynxtools from current branch + working-directory: ./nomad run: | uv pip install --system -r requirements.txt uv pip install --system -r requirements-dev.txt env: - PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test - - - name: Run Tests - run: | - pytest \ No newline at end of file + PYTHONPATH: "" # Ensure no pre-installed packages interfere with the test \ No newline at end of file From 0137a73aa0d66ed519841b83cf33812b60096c3b Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 23:15:59 +0200 Subject: [PATCH 11/15] replace any pynxtools version in NOMAD pyproject --- .github/workflows/nomad-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 88b541ad2..3def9d907 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -30,7 +30,7 @@ jobs: - name: Replace pynxtools dependency in NOMAD pyproject.toml working-directory: ./nomad run: | - sed -i 's|pynxtools\[convert\]==0.3.1|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml + sed -i "s|pynxtools\\\[convert\\\].*|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|" pyproject.toml - name: Set up Python uses: actions/setup-python@v2 From e76216fff96bd5f80b9249cba7166b952d3cf6d0 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Sat, 8 Jun 2024 23:38:03 +0200 Subject: [PATCH 12/15] use different regex to replace pynx version --- .github/workflows/nomad-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 3def9d907..2a777bd3c 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -30,7 +30,7 @@ jobs: - name: Replace pynxtools dependency in NOMAD pyproject.toml working-directory: ./nomad run: | - sed -i "s|pynxtools\\\[convert\\\].*|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|" pyproject.toml + sed -i 's|pynxtools\[convert\]==[0-9]\+\(\.[0-9]\+\)\{0,2\}|pynxtools\[convert\]@git+https://github.com/FAIRmat-NFDI/pynxtools.git@${{ github.head_ref }}|' pyproject.toml - name: Set up Python uses: actions/setup-python@v2 From 61d8f2b4384e46b5796de79866663d0ca7dbec32 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Tue, 11 Jun 2024 23:45:42 +0200 Subject: [PATCH 13/15] clean up nomad workflow --- .github/workflows/nomad-requirements.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 2a777bd3c..586c8a1ea 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -22,10 +22,8 @@ jobs: - name: Checkout NOMAD from GitLab run: | - git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad - cd nomad - git checkout develop - git submodule update --init --recursive + git clone --depth 1 --branch develop --recurse-submodules https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git nomad + git submodule update --init --recursive --depth 1 - name: Replace pynxtools dependency in NOMAD pyproject.toml working-directory: ./nomad From f386411c3fc18700e024345115e01c661d736dcf Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Tue, 11 Jun 2024 23:47:10 +0200 Subject: [PATCH 14/15] rename workflow --- .github/workflows/nomad-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index 586c8a1ea..dc4151dcb 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -1,4 +1,4 @@ -name: Validate Dependencies Compatibility +name: validate Dependencies compatibility on: push: From 65714b2ec66c6bfa71cb5e6c6151a03ed73f10a0 Mon Sep 17 00:00:00 2001 From: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Date: Tue, 11 Jun 2024 23:56:25 +0200 Subject: [PATCH 15/15] run nomad dependency check only on changes to the dependencies --- .github/workflows/nomad-requirements.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/nomad-requirements.yml b/.github/workflows/nomad-requirements.yml index dc4151dcb..5536c756e 100644 --- a/.github/workflows/nomad-requirements.yml +++ b/.github/workflows/nomad-requirements.yml @@ -1,4 +1,4 @@ -name: validate Dependencies compatibility +name: NOMAD dependencies compatibility on: push: @@ -8,9 +8,9 @@ on: branches: - master # Run workflow only when there are changes in pyproject.toml or dev-requirements.txt - # paths: - # - 'pyproject.toml' - # - 'dev-requirements.txt' + paths: + - 'pyproject.toml' + - 'dev-requirements.txt' jobs: validate_dependencies: