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": [
{