diff --git a/.github/workflows/actions/prepare-distribution/action.yml b/.github/workflows/actions/prepare-distribution/action.yml index 3536f0c540c..22dfdb9dc2b 100644 --- a/.github/workflows/actions/prepare-distribution/action.yml +++ b/.github/workflows/actions/prepare-distribution/action.yml @@ -94,7 +94,7 @@ runs: jq -r '.packages | sort_by(.name) | .[] | select([.name] | inside(["mithril-stm", "mithril-aggregator", "mithril-client", "mithril-client-cli", "mithril-client-wasm", "mithril-signer", "mithril-common"])) | "| \(.name) | `\(.version)` |"' \ >> ./release-notes-addon.txt - - name: Add compatibility table + - name: Add network compatibility table shell: bash run: | cat >> ./release-notes-addon.txt << EOF @@ -108,6 +108,12 @@ runs: | jq -r 'keys_unsorted[] as $network | "| \($network) | \(.[$network]) |"' \ >> ./release-notes-addon.txt + - name: Add Cardano node compatibility table + shell: bash + run: | + ./.github/workflows/scripts/compute-cardano-compatibility.sh ./networks.json \ + >> ./release-notes-addon.txt + - name: Add platform support table shell: bash run: | diff --git a/.github/workflows/scripts/compute-cardano-compatibility.sh b/.github/workflows/scripts/compute-cardano-compatibility.sh new file mode 100755 index 00000000000..cbbe703fc26 --- /dev/null +++ b/.github/workflows/scripts/compute-cardano-compatibility.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -e + +JSON_FILE=$1 + +if [[ ! -f "$JSON_FILE" ]]; then + echo "Error: $JSON_FILE not found!" + exit 1 +fi + +# Get all unique keys from 'cardano-minimum-version' +MITHRIL_NODES=$(jq -r '[.[] | .["cardano-minimum-version"] | keys[]] | unique | .[]' "$JSON_FILE") + +# Create header of the markdown table +header="| Network" +separator="|----------" + +for key in $MITHRIL_NODES; do + title=$(echo "$key" | sed 's/-/ /g' | sed 's/\b\w/\U&/g') + header="$header | $title" + separator="$separator |:-------------:" +done + +header="$header |" +separator="$separator |" + +echo "" +echo "## Cardano Node Compatibility" +echo "" +echo "$header" +echo "$separator" + +# Process each top-level network (mainnet, preprod, preview) +for MITHRIL_NETWORK in $(jq -r 'keys[]' "$JSON_FILE"); do + # Get all mithril-networks for this top-level network + jq -r ".\"$MITHRIL_NETWORK\".\"mithril-networks\"[] | keys[]" "$JSON_FILE" | while read -r MITHRIL_NETWORK_NAME; do + row="| $MITHRIL_NETWORK_NAME" + + # For each cardano-minimum-version key, get the value + for MITHRIL_NODE in $MITHRIL_NODES; do + version=$(jq -r ".\"$MITHRIL_NETWORK\".\"cardano-minimum-version\".\"$MITHRIL_NODE\" // \"N/A\"" "$JSON_FILE") + if [[ "$version" != "N/A" ]]; then + row="$row | Cardano \`$version+\`(*)" + else + row="$row | N/A" + fi + done + + row="$row |" + echo "$row" + done +done + +echo "" +echo "*: Up to the latest Cardano node version released at the time of this release." \ No newline at end of file diff --git a/networks.json b/networks.json index c5fe7f7735d..2368dbb2d5f 100644 --- a/networks.json +++ b/networks.json @@ -1,7 +1,8 @@ { "mainnet": { "cardano-minimum-version": { - "mithril-signer": "10.4.1" + "mithril-signer": "10.4.1", + "mithril-aggregator": "10.4.1" }, "mithril-networks": [ { @@ -36,7 +37,8 @@ }, "preprod": { "cardano-minimum-version": { - "mithril-signer": "10.4.1" + "mithril-signer": "10.4.1", + "mithril-aggregator": "10.4.1" }, "mithril-networks": [ { @@ -71,7 +73,8 @@ }, "preview": { "cardano-minimum-version": { - "mithril-signer": "10.4.1" + "mithril-signer": "10.4.1", + "mithril-aggregator": "10.4.1" }, "mithril-networks": [ {