Skip to content

Conversation

@dannywillems
Copy link
Member

@dannywillems dannywillems commented Nov 4, 2025

This PR implements a centralized version management system for CI workflows by introducing a single YAML configuration file (.github/config/versions.yaml) that serves as the source of truth for all dependency versions. This eliminates hardcoded version numbers scattered across multiple workflow files and significantly simplifies version updates.

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

OCaml Reference Validation Results

Repository: https://github.com/MinaProtocol/mina.git
Branch: compatible
Status: ❌ Validation failed

Click to see full validation output
Checking OCaml references against https://github.com/MinaProtocol/mina.git (branch: compatible)
Fetching current commit from compatible...

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

✓ Code Reference Verification Passed

All code references in the documentation have been verified successfully!

Total references checked: 1
Valid references: 1

The documentation is in sync with the codebase on the develop branch.

@dannywillems dannywillems force-pushed the dw/build-use-rust-env-var branch from 6f50a2d to 2013198 Compare November 4, 2025 16:59
@dannywillems dannywillems changed the title CI: Centralize Rust version management using RUST_STABLE_VERSION CI: Centralize version management, including Rust (stable and nightly) and OCaml Nov 4, 2025
@dannywillems dannywillems force-pushed the dw/build-use-rust-env-var branch from 2013198 to cba5dc4 Compare November 4, 2025 17:05
Implement a centralized version management system using a single YAML
config file (.github/config/versions.yaml) as the source of truth for
all dependency versions across CI workflows. This eliminates hardcoded
version numbers and simplifies maintenance.

Implementation:
- Created .github/config/versions.yaml with Rust and OCaml versions
- Added load-versions composite action to parse config and set env vars
- Updated all workflows to use the load-versions action
- Removed hardcoded RUST_STABLE_VERSION, RUST_NIGHTLY_VERSION, and
  OCAML_VERSION from workflow-level env declarations
- Simplified rust-toolchain.toml comments to reference config file

Benefits:
- Single source of truth for all dependency versions
- Automatic environment variable injection via composite action
- Reduced maintenance burden when updating versions
- Improved consistency across all CI workflows
- Clear documentation of where versions are defined

Changes to workflows:
- build-reusable.yaml: Added load-versions to all 5 jobs
- tests.yaml: Added load-versions to all test jobs
- lint.yaml: Added load-versions to lint jobs
- doc-commands.yaml: Added load-versions action

Future version updates only require changing versions.yaml.
@dannywillems dannywillems force-pushed the dw/build-use-rust-env-var branch from cba5dc4 to d094461 Compare November 4, 2025 18:46
@dannywillems dannywillems merged commit 8f9a1af into develop Nov 5, 2025
71 of 72 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants