Closed tcompa closed 4 months ago
We are fixing this as part of #793, with a workaround (see full diff below)
python -m pip install -e ./fractal-tasks-core
We cannot have a perfectly clean workflow here, because an external package should depend on some specific released versions of fractal-tasks-core, and never on a development git branch.
This strategy works, overall, but it can obviously introduce false positive where the errors are due to different-version features rather than to manifest issues.
diff --git a/.github/workflows/manifest_external_packages.yml b/.github/workflows/manifest_external_packages.yml
index e4a471d7..d3b26c56 100644
--- a/.github/workflows/manifest_external_packages.yml
+++ b/.github/workflows/manifest_external_packages.yml
@@ -23,36 +23,46 @@ jobs:
package: [skip]
github_repo: [skip]
+ github_branch: [skip]
manifest_path: [skip]
cmd_install: [skip]
cmd_create_manifest: [skip]
+ custom_dependencies: [skip]
include:
- package: scMultipleX
github_repo: fmi-basel/gliberal-scMultipleX
+ github_branch: main
manifest_path: src/scmultiplex/__FRACTAL_MANIFEST__.json
cmd_install: 'python -m pip install -e .[fractal-tasks]'
cmd_create_manifest: 'python src/scmultiplex/dev/create_manifest.py'
+ custom_dependencies: 'image_registration'
- package: fractal-helper-tasks
github_repo: jluethi/fractal-helper-tasks
+ github_branch: main
manifest_path: src/fractal_helper_tasks/__FRACTAL_MANIFEST__.json
cmd_install: 'python -m pip install -e .'
cmd_create_manifest: 'python src/fractal_helper_tasks/dev/create_manifest.py'
+ custom_dependencies: ''
- package: APx_fractal_task_collection
github_repo: Apricot-Therapeutics/APx_fractal_task_collection
+ github_branch: pydantic_v2
manifest_path: src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json
cmd_install: 'python -m pip install -e .'
cmd_create_manifest: 'python src/apx_fractal_task_collection/dev/update_manifest.py'
+ custom_dependencies: ''
exclude:
- package: skip
github_repo: skip
+ github_branch: skip
manifest_path: skip
cmd_install: skip
cmd_create_manifest: skip
+ custom_dependencies: skip
steps:
@@ -63,6 +73,7 @@ jobs:
uses: actions/checkout@v4
with:
repository: ${{ matrix.github_repo }}
+ ref: ${{ matrix.github_branch }}
- uses: actions/setup-python@v5
with:
@@ -75,11 +86,29 @@ jobs:
- name: Install package
run: ${{ matrix.cmd_install }}
+ - name: Get current branch of `fractal-tasks-core`
+ uses: actions/checkout@v4
+ with:
+ path: fractal-tasks-core
+
+ - name: Install current fractal-tasks-core (this may fail)
+ run: python -m pip install -e ./fractal-tasks-core
+
+ - name: Install custom additional dependencies (see issue 803)
+ if: ${{ matrix.custom_dependencies != '' }}
+ run: python -m pip install ${{ matrix.custom_dependencies }}
+
- name: Create manifest
run: ${{ matrix.cmd_create_manifest }}
+ - name: Setup friendly diff style
+ run: echo "*.json diff=json" >> .gitattributes && git config diff.json.textconv "jq --sort-keys '.' \$1"
+
- name: Run git diff for manifest
run: git diff ${{ matrix.manifest_path }}
+ - name: Clean up before checking repo status
+ run: rm -rf fractal-tasks-core .gitattributes
+
- name: Check repo status
run: if [[ -z $(git status -s) ]]; then echo "Clean status"; else echo "Dirty status"; git status; exit 1; fi
We should review #763 (ref #757).
The current GHA is somewhat useful, but it does not fulfill its stated goal.
Current behavior: re-run manifest creation with the fractal-tasks-core version specified within the package Expected behavior: run manifest creation with the fractal-tasks-core version from the current git branch (e.g. from a PR)