Skip to content

chore: update GitHub Actions versions and replace archived ruff action#118

Merged
KenyaOtsuka merged 8 commits into
devfrom
chore/update-gha-version
May 13, 2026
Merged

chore: update GitHub Actions versions and replace archived ruff action#118
KenyaOtsuka merged 8 commits into
devfrom
chore/update-gha-version

Conversation

@ganow
Copy link
Copy Markdown
Contributor

@ganow ganow commented May 12, 2026

Summary

  • Updated actions/checkout from v3/v4 → v6 and actions/setup-python from v4 → v6 across all workflows (ci.yml, lint.yml, test_old.yml)
  • Replaced the archived chartboost/ruff-action@v1 with the official astral-sh/ruff-action@v3 in lint.yml
  • Updated MishaKav/pytest-coverage-comment from v1.1.47 → v1.7.2 and unpinned pytest-github-actions-annotate-failures to always use the latest version

Background

chartboost/ruff-action is now a public archive and no longer maintained. Continuing to use it risks breakage as the repo will not receive security patches or updates.

Test plan

  • CI workflow runs successfully on Python 3.8–3.11
  • Lint job uses astral-sh/ruff-action@v3 without errors → The lint job fails, but this is not due to a configuration error in the workflow; it is simply the result of a lint error, so there is no issue.
  • Type-check job completes with updated action versions → The type-check job also fails, but this is intended as same as above

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 12, 2026

Coverage

Coverage Report
FileStmtsMissCoverMissing
bdpy/bdata
   bdata.py39919551%79, 104, 109, 113, 118, 122, 132–134, 190, 233–239, 252–262, 276–277, 310, 314, 318–356, 405–411, 419–420, 425–426, 443–450, 468–469, 475, 508, 539, 548, 560, 589–598, 610, 625, 661, 683–691, 696–729, 738, 750–757, 761–767, 771–799, 803–824, 828–862, 866–868, 872–874, 878–887
   featureselector.py641281%62–67, 69–74
   metadata.py67199%84
   utils.py1133767%71, 82, 85–86, 95, 127–173, 201, 246, 258, 263
bdpy/dataform
   datastore.py1078521%59–75, 90–93, 97–98, 102–113, 116–119, 122–127, 131–132, 137–158, 190–197, 222–259, 262–265
   features.py29816545%31–32, 43–46, 90–92, 101–103, 107, 111, 115, 119, 152–153, 157–161, 168–197, 214–215, 224–225, 232–236, 274, 288, 305–319, 323, 327, 331, 335, 339, 343, 347, 351, 355, 359, 364–394, 398–418, 422–462, 465, 470–477, 491–493, 496–499, 502–505, 508–512, 515–516, 536–549
   kvs.py1771393%21, 24, 114, 118, 127–131, 171, 173, 185, 254, 282
   pd.py9544%25–27, 43–44
   sparse.py67790%29, 52–58, 74, 109, 123
   utils.py12120%3–18
bdpy/dataset
   utils.py45450%3–98
bdpy/distcomp
   distcomp.py921880%33, 35, 49, 53, 55, 66–70, 74, 76, 81–82, 89–93, 97
bdpy/dl
   caffe.py60600%4–129
bdpy/dl/torch
   base.py432444%31–41, 48, 54, 60, 63, 73–83, 90, 96, 102, 105
   dataset.py74740%1–195
   models.py33322632%148–169, 297–316, 327–331, 345–350, 442–494, 515–517, 528–587, 611–614, 625–684, 708–711, 722–771, 790–793, 804–853, 872–875
   torch.py1215555%188–225, 228, 231–243, 246–281
bdpy/dl/torch/domain
   core.py46296%47, 63
   feature_domain.py24196%30
   image_domain.py81396%91, 94, 257
bdpy/evals
   metrics.py954553%49–53, 82–112, 130–142, 151–152, 157, 172–179
bdpy/feature
   feature.py30293%69–70
bdpy/fig
   __init__.py550%6–10
   draw_group_image_set.py90900%3–182
   fig.py88880%16–164
   makeplots2.py2632630%1–608
   makeplots.py3363360%1–729
   tile_images.py59590%1–193
bdpy/ml
   crossvalidation.py592754%47–48, 113–114, 117–118, 138, 164–196
   learning.py3159769%9, 47–48, 52, 56, 63, 95–108, 113–129, 132, 162–174, 188–213, 297, 313, 317–319, 322–323, 333, 343–344, 349–350, 360–368, 371–372, 380, 415–422, 443, 456, 464, 473, 505–507, 546, 559, 562, 571, 580, 585, 606
   model.py14012014%29–39, 54–70, 86–144, 156–169, 184–222, 225, 230–250, 254–258, 271–285
   searchlight.py161319%32–51
bdpy/mri
   fmriprep.py4974519%25–34, 38, 44–62, 65–75, 78–89, 92–160, 163–194, 230–360, 367–380, 384, 388–390, 394, 398–400, 410–434, 437–454, 457–464, 471–472, 475–491, 494, 498, 502–815, 819–831, 842–862
   glm.py403610%46–95
   image.py241921%29–54
   load_epi.py281836%36–50, 56–63, 82–88
   load_mri.py191616%16–36
   roi.py24821712%37–100, 165–235, 241–314, 320–387, 399–466, 473–499
   spm.py15813912%26–155, 162–166, 170, 174–179, 183–300
bdpy/opendata
   __init__.py110%1
   openneuro.py2102100%1–329
bdpy/pipeline
   config.py36294%37–38
bdpy/preproc
   interface.py521669%111–123, 148–157
   preprocessor.py1296947%35, 44, 112–114, 121–128, 138–189, 196–227
   select_top.py23196%55
bdpy/recon
   utils.py55550%4–146
bdpy/recon/torch
   icnn.py1611610%15–478
bdpy/recon/torch/modules
   critic.py44295%58, 132
   encoder.py29197%29
   generator.py72593%47, 52, 68, 128, 309
   latent.py34391%16, 21, 32
   optimizer.py22959%8–26
bdpy/recon/torch/task
   inversion.py881583%11–16, 22, 40, 45, 50, 57, 62, 67, 72, 96, 210, 225
bdpy/stats
   corr.py43393%57, 68, 102
bdpy/task
   callback.py71494%114, 161, 166, 234
   core.py16194%50
bdpy/util
   info.py473623%19–79
   utils.py36878%60, 116–121, 140–142
TOTAL5998368339% 

Tests Skipped Failures Errors Time
209 0 💤 1 ❌ 0 🔥 16.470s ⏱️

@ganow ganow requested a review from KenyaOtsuka May 12, 2026 10:41
Copy link
Copy Markdown

@KenyaOtsuka KenyaOtsuka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed the PR and left a couple of comments. Could you please update the PR accordingly?

Comment thread .github/workflows/lint.yml Outdated
- uses: actions/checkout@v6
- name: Lint with ruff
uses: chartboost/ruff-action@v1
uses: astral-sh/ruff-action@v3
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

astral-sh/ruff-action@v3 runs on Node.js 20, and the current GitHub Actions lint job shows a Node.js 20 deprecation warning.
astral-sh/ruff-action@v4 is already available and runs on Node.js 24, so I think we should use v4 instead of v3.

Copy link
Copy Markdown
Contributor Author

@ganow ganow May 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the suggestion. Updated to astral-sh/ruff-action@v4 in cba6698. → changed the version specification to v4.0.0 in bd5a1ea since the major version tag still does not exist

Comment thread .github/workflows/test_old.yml Outdated
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test_old.yml does not seem to be exercised by the current PR checks.

Could you confirm that this workflow still works as intended after this change?

I am particularly concerned that it still uses ubuntu-20.04, since the GitHub-hosted Ubuntu 20.04 runner image has been retired:
https://github.blog/changelog/2025-01-15-github-actions-ubuntu-20-runner-image-brownout-dates-and-other-breaking-changes/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the suggestion. Addressed in fc17758:

  • Replaced ubuntu-20.04 with ubuntu-22.04 to avoid the retired runner image.
  • Also renamed the trigger branch from test_old to maintenance/legacy. The prefix clarifies that this branch is for maintaining legacy Python support, and decouples the branch name from specific version numbers (e.g., feat/py36+ looked like a feature branch, and the supported version range may change over time).

The workflow itself has not been run in this PR since it only fires on pushes to the trigger branch. I will verify it works as intended after this PR is merged.

ganow and others added 2 commits May 13, 2026 20:22
…on warning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… to maintenance/legacy

- Replace retired ubuntu-20.04 runner with ubuntu-22.04
- Change trigger branch from test_old to maintenance/legacy to clarify
  intent with a prefix and decouple from specific Python version names

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ganow ganow added the bug label May 13, 2026
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@KenyaOtsuka KenyaOtsuka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing my comments.
The updates look good to me.

Python 3.8 test is currently failing, but this is not caused by this PR, so I think it is fine.

@KenyaOtsuka KenyaOtsuka merged commit 337e057 into dev May 13, 2026
3 of 6 checks passed
@ganow ganow deleted the chore/update-gha-version branch May 13, 2026 13:47
@ganow
Copy link
Copy Markdown
Contributor Author

ganow commented May 13, 2026

@KenyaOtsuka I confirmed that test_old CI works appropriately in https://github.com/KamitaniLab/bdpy/actions/runs/25806577703

Note that, actions/setup-python does not support Python 3.6.x on runners from ubuntu-22.04 onward, so I split the 3.6.x tests into a separate job and changed the workflow so that those tests are run inside a Docker container. In any case, we plan to drop support for 3.6.x and 3.7.x themselves in the near future, so this is only a temporary action.

Please see commit a770e6e for the actual changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants