Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: prover version compatibility matrix #3618

Open
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

ischasny
Copy link
Collaborator

@ischasny ischasny commented Feb 17, 2025

This pull request enhances our CI pipeline to ensure compatibility between the core and prover components. Specifically, it introduces the following verification steps:

  • Core Tag vs. Prover Tag: Confirms that the latest tagged release of the core is compatible with the latest tagged release of the prover.
  • Prover Tag vs. Core HEAD: Verifies that the latest tagged release of the prover is compatible with the current development head of the core.
  • Core Tag vs. Prover HEAD: Validates that the latest tagged release of the core is compatible with the current development head of the prover.

Additionally, this PR:

Introduces a version compatibility matrix between prover and core and enforces its correctness in a separate GitHub workflow.

@ischasny ischasny marked this pull request as ready for review February 17, 2025 13:42
@ischasny ischasny requested a review from a team as a code owner February 17, 2025 13:42
@ischasny ischasny changed the title DRAFT: prover version compatibility matrix feat: prover version compatibility matrix Mar 5, 2025
@EmilLuta
Copy link
Contributor

EmilLuta commented Mar 7, 2025

All in all, this is already looking pretty reasonable. Left a bunch of comments, mostly aimed at maintainability. Looking forward to hear more!

P.S. We might need someone with more knowledge in github actions to review it as well.

@@ -0,0 +1,6 @@
{
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this automatically generated? I assume so. The version it matches to, is that core version or protocol version?

@@ -30,6 +32,30 @@ jobs:

mkdir -p prover_logs_${{matrix.compressor-mode}}

- name: Identify prover and core versions to run
Copy link
Contributor

Choose a reason for hiding this comment

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

How many jobs will this cause now? 8? And are they parallel or sequential? I think this kind of changes should be ran only on tag cutting mode. WDYT?

- name: Verify compatibility matrix
run: |
MATRIX_FILE="prover/compatibility_matrix.json"
CORE_RANGE_START=24
Copy link
Contributor

Choose a reason for hiding this comment

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

Who is going to keep those updated? AFAIU, we're already out of sync (v25 is in mainnet, but correct me if I'm wrong).

fi
done

for ((ver=$CORE_RANGE_START; ver<=$CORE_RANGE_END; ver++)); do
Copy link
Contributor

Choose a reason for hiding this comment

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

Some comments on what's going on in here wouldn't hurt. Applies across the entire set of bashery.

echo "Found core versions outside allowed range ($CORE_RANGE_START-$CORE_RANGE_END)"
jq "[.[]] | flatten | map(tonumber) | map(select(. < $CORE_RANGE_START or . > $CORE_RANGE_END))" "$MATRIX_FILE"
exit 1
fi
Copy link
Contributor

Choose a reason for hiding this comment

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

End of line (here & in matrix)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants