Skip to content

[MAINTENANCE] Upgrade Python version and dependencies in repo workflows #370

Description

@adambuttrick

Service/repository

GitHub Actions workflows in dev-ror-records, ror-records, and ror-updates, plus the validation-suite and curation_ops requirements they consume.

Describe the current state/issue

Our Github Action workflows and the repos the pull in are pinned to old/EOL Python versions, deprecated action versions, and pin stale dependencies.

Describe the desired state/solution

Standardize on a current Python version (e.g. 3.12), bump actions to current major versions, updated pinned dependencies, and re-validate against a test-release in dev-ror-records.

Tasks:

  • Pick the target Python version and document in our developer docs.
  • Bump python-version in all dev-ror-records workflows to the target.
  • Bump python-version in all ror-records workflows to the target.
  • Bump python-version in all ror-updates workflows to the target (including those currently on 3.13).
  • Upgrade actions/checkout to @v4+ and actions/setup-python to @v5+ across all three repos.
  • Replace inline requests==2.23.0 pins in ror-updates/update_addresses.yml and ror-updates/generate_relationships.yml.
  • Refresh validation-suite/requirements.txt to current majors and confirm validation passes against a test-release in dev-ror-records.
  • Reconcile curation_ops requirements.txt files consumed by workflows and pin a consistent dependency set across them.
  • Point workflows that curl requirements from non-main branches of curation_ops to main.
  • Re-run the dev release path end-to-end on dev-ror-records: PR validation, merge, dev index, dump generation, validate-dump, Zenodo publish (dry run), update_addresses, update_labels, update_last_mod, generate/remove_relationships.
  • Mirror the upgrades to ror-records and verifying working as part of the staging then prod release paths.
  • Mirror the upgrades to ror-updates and re-run curation/validation workflows.
  • Add a guard (workflow-level env or reusable workflow) to enforce a single python-version across workflows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceWork needed to maintain long-term health/performance of code and infrastructure

    Type

    Fields

    No fields configured for Task.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions