As I mentioned above, I'm converting <#C04NLA7QHH9...
# nf-test
d
As I mentioned above, I'm converting #C04NLA7QHH9 to nf-test pipeline tests. When making the PR, linting fails:
Copy code
actions_ci: Minimum pipeline NF version '23.04.0' is not tested in '.github/workflows/ci.yml'
I had copied and modified the file from #CEA7TBJGJ and I also checked the corresponding file in some other pipelines. #C02K5GX2W93 is very similar, with the Nextflow version only mentioned in this block:
Copy code
jobs:
  define_nxf_versions:
    name: Choose nextflow versions to test against depending on target branch
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.nxf_versions.outputs.matrix }}
    steps:
      - id: nxf_versions
        run: |
          if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "dev" && "${{ matrix.NXF_VER }}" != "latest-everything" ]]; then
            echo matrix='["latest-everything"]' | tee -a $GITHUB_OUTPUT
          else
            echo matrix='["latest-everything", "23.04.0"]' | tee -a $GITHUB_OUTPUT
          fi
(The above is #C04NLA7QHH9, #C02K5GX2W93 differs only in having "23.10.0".) #CE9MS66BS and #CE8SSJV3N have quite different files, at least superficially. My questions: 1) How and where should the NF version be tested? 2) Which pipeline (and branch) is good to use as a template for nf-test conversion?
m
I'd say #CE8SSJV3N dev branch is the one to go for, since we're about to release
I'm going a bit over the board with https://github.com/nf-core/rnaseq/pull/1360, but I want to see it through and see what we can ask to nf-test devs for making this task easier
d
And you're passing linting? 🙂
m
of course
Having ✅ all over is what makes me happy
👍 1
d
You have this:
Copy code
NXF_VER:
          - "latest-everything"
          - "23.04"
where I (and #CEA7TBJGJ and #C02K5GX2W93) have:
Copy code
NXF_VER: ${{ fromJson(needs.define_nxf_versions.outputs.matrix) }}
This is the only mention of NF version I see in your file. Changing mine to your version, doesn't pass linting anyway.
NXF_VER
is referenced in three identical places in mine and yours. (I suppose I should copy yours and do the whole conversion to that, but it would be interesting to know what I'm missing.)
m
interesting
cc @Adam Talbot any idea why we have explicit versions in the GHA?
a
I think the reason is we want to make sure nf-core pipelines are backwards compatible to 23.04.0 for now. Sadly, it's just matching the string and not doing any clever semantic version checking. I've been disabling the CI checks recently (non nf-core pipelines) because they were changing too fast.
d
Those files are in tools, not in the pipelines it seems? This block in my
ci.yml
is maybe disabling the version test in some cases?
Copy code
run: |
          if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "dev" && "${{ matrix.NXF_VER }}" != "latest-everything" ]]; then
            echo matrix='["latest-everything"]' | tee -a $GITHUB_OUTPUT
          else
            echo matrix='["latest-everything", "23.04.0"]' | tee -a $GITHUB_OUTPUT
          fi
It's part of
define_nxf_versions
which is referred to in my version of setting
NXF_VER
(see above). Still doesn't help me with linting, since changing to the #CE8SSJV3N version didn't help. (Sorry for my poor understanding of json.)
a
Those files are in tools, not in the pipelines it seems?
Correct, the linting error comes from tools
So the tools is fairly simple, it just looks for the value 23.04.0 is in`jobs: test: strategy: matrix: NXF_VER:` , that's where your linting error comes from
d
Right. Replacing the dynamic code I had with:
Copy code
NXF_VER:
          - "23.04.0"
          - "latest-everything"
actually did the trick now that I tested again. Thanks. Is this because tools is somewhat behind and does a check that is a bit too hard-coded?
a
yup
👍 1