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

Release script changes & changelog 0.14.0 #1181

Merged
merged 11 commits into from
Dec 4, 2023
Merged

Conversation

ch1bo
Copy link
Collaborator

@ch1bo ch1bo commented Nov 28, 2023

  • Fixed and refined release.sh script to work for 0.14.0

  • Also cleaned up the changelog and added links to issues


  • CHANGELOG updated or not needed
  • Documentation updated or not needed
  • Haddocks updated or not needed
  • No new TODOs introduced or explained herafter

Copy link

github-actions bot commented Nov 28, 2023

Test Results

372 tests  ±0   367 ✔️ ±0   22m 12s ⏱️ +58s
126 suites ±0       5 💤 ±0 
    5 files   ±0       0 ±0 

Results for commit 22e91bc. ± Comparison against base commit ec342cc.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Nov 28, 2023

Transactions Costs

Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.

Metadata
Generated at 2023-12-04 14:52:10.767623297 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial 4868d5365af5120ae0b3c93b819d3452a3cbdcc98595da2a7ae765b5 4069
νCommit 171a1e6bdbc8aa96d957a65b3f505517386af06ba265e3f784741f67 2050
νHead e89b0c4a6155bac2434d1e500bd49c155b2b56744ccf5a0efa72a82e 9092
μHead 6849328242b5912ad218f134378e6baff11f3e74f7e36dcf8e13d53e* 4062
  • The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per Head.

Cost of Init Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 4583 10.80 4.28 0.47
2 4791 13.09 5.16 0.50
3 4989 15.19 5.96 0.54
5 5391 19.74 7.70 0.60
10 6395 30.81 11.92 0.77
41 12628 99.61 38.18 1.79

Cost of Commit Transaction

This is using ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 534 12.22 4.81 0.31
2 720 15.93 6.48 0.36
3 909 19.77 8.20 0.41
5 1280 27.87 11.80 0.52
10 2214 50.58 21.69 0.81
18 3725 94.20 40.16 1.36

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 480 22.88 9.12 0.42
2 114 590 35.64 14.32 0.57
3 170 700 48.98 19.85 0.72
4 227 810 64.23 26.22 0.89
5 283 920 81.28 33.35 1.09

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 469 16.20 7.05 0.35
2 726 19.52 9.98 0.41
3 923 21.22 11.59 0.45
5 1305 24.55 14.80 0.51
10 2201 32.87 22.75 0.68
50 8888 97.14 83.56 1.93

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 592 21.37 9.74 0.42
2 798 23.22 11.42 0.46
3 920 25.11 13.05 0.49
5 1297 28.88 16.40 0.56
10 2141 37.45 24.11 0.72
44 7860 98.01 78.33 1.85

Cost of Abort Transaction

Some variation because of random mixture of still initial and already committed outputs.

Parties Tx size % max Mem % max CPU Min fee ₳
1 4540 20.14 8.77 0.58
2 4705 33.90 14.93 0.74
3 4788 44.92 19.66 0.87
4 5072 70.31 31.24 1.17
5 5125 85.25 37.73 1.34

Cost of FanOut Transaction

Involves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.

Parties UTxO UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
5 0 0 4417 9.21 3.88 0.45
5 1 57 4452 10.51 4.67 0.46
5 5 284 4596 15.70 7.84 0.54
5 10 569 4776 21.95 11.72 0.62
5 20 1137 5133 34.92 19.66 0.80
5 30 1706 5494 48.00 27.64 0.98
5 40 2274 5853 61.12 35.65 1.16
5 50 2848 6216 74.11 43.60 1.34
5 69 3930 6899 98.67 58.67 1.67

End-To-End Benchmark Results

This page is intended to collect the latest end-to-end benchmarks results produced by Hydra's Continuous Integration system from the latest master code.

Please take those results with a grain of salt as they are currently produced from very limited cloud VMs and not controlled hardware. Instead of focusing on the absolute results, the emphasis should be on relative results, eg. how the timings for a scenario evolve as the code changes.

Generated at 2023-12-04 14:46:01.933811217 UTC

Baseline Scenario

Number of nodes 3
Number of txs 9000
Avg. Confirmation Time (ms) 25.238028288
P99 115.06197502000006ms
P95 34.7433985ms
P50 22.4590955ms
Number of Invalid txs 0

Baseline Scenario

Number of nodes 1
Number of txs 3000
Avg. Confirmation Time (ms) 4.960846431
P99 8.16757237999999ms
P95 6.49277565ms
P50 4.7479245ms
Number of Invalid txs 0

@abailly-iohk abailly-iohk requested a review from a team November 30, 2023 10:39
@abailly-iohk abailly-iohk force-pushed the prepare-release-0.14.0 branch 2 times, most recently from 31c723e to e5f514a Compare December 1, 2023 14:16
Copy link
Contributor

@abailly-iohk abailly-iohk left a comment

Choose a reason for hiding this comment

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

I have left some suggested changes as it seems the script fail on my machine because of discrepancies in extensions handling in sed.
Rather than an interactive script, I think I would prefer a script that can run automatically given arguments, with a pre-flight checks logic ensuring no changes are made if arguments are invalid. this would make it easier to port it to a CI workflow.

@@ -117,28 +147,28 @@ update_cabal_version() {

for file in $cabal_files
do
sed -i.bak -e "s,\(^version: *\)[^ ]*,\1$version," $file
sed -i"" -e "s,\(^version: *\)[^ ]*,\1$version," $file
Copy link
Contributor

Choose a reason for hiding this comment

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

-i"" is expanded into -i, eg. a single argument and not -i "" eg. passing empty string to -i which leads to backup files named xxx-e :)

Suggested change
sed -i"" -e "s,\(^version: *\)[^ ]*,\1$version," $file
sed -i "" -e "s,\(^version: *\)[^ ]*,\1$version," $file

Copy link
Contributor

Choose a reason for hiding this comment

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

My man sed says -i is a FreeBSD extension so not sure if it works the same in GNU version.

done
}

update_api_version() {
local version="$1" ; shift
local api_file=hydra-node/json-schemas/api.yaml

sed -i.bak -e "s,\(version: *\)'.*',\1'$version'," $api_file
sed -i"" -e "s,\(version: *\)'.*',\1'$version'," $api_file
Copy link
Contributor

Choose a reason for hiding this comment

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

ditto

Suggested change
sed -i"" -e "s,\(version: *\)'.*',\1'$version'," $api_file
sed -i "" -e "s,\(version: *\)'.*',\1'$version'," $api_file

release.sh Outdated
}

update_tutorial_version() {
local version="$1"
local tutorial_file=docs/docs/tutorial/index.md
sed -i.bak -e "s,\(hydra/releases/download/)[^/]*,\1$version," $tutorial_file
sed -i"" -e "s,\(hydra/releases/download/\)[^/]*,\1$version," $tutorial_file
Copy link
Contributor

Choose a reason for hiding this comment

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

ditto

Suggested change
sed -i"" -e "s,\(hydra/releases/download/\)[^/]*,\1$version," $tutorial_file
sed -i "" -e "s,\(hydra/releases/download/\)[^/]*,\1$version," $tutorial_file

}

update_demo_version() {
local version="$1"
(
cd demo
sed -i.bak -e "s,\(ghcr.io/input-output-hk/hydra-[^:]*\):[^[:space:]]*,\1:$version," docker-compose.yaml seed-devnet.sh
sed -i"" -e "s,\(ghcr.io/input-output-hk/hydra-[^:]*\):[^[:space:]]*,\1:$version," docker-compose.yaml seed-devnet.sh
Copy link
Contributor

Choose a reason for hiding this comment

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

ditto

Suggested change
sed -i"" -e "s,\(ghcr.io/input-output-hk/hydra-[^:]*\):[^[:space:]]*,\1:$version," docker-compose.yaml seed-devnet.sh
sed -i "" -e "s,\(ghcr.io/input-output-hk/hydra-[^:]*\):[^[:space:]]*,\1:$version," docker-compose.yaml seed-devnet.sh

Copy link
Contributor

@v0d1ch v0d1ch left a comment

Choose a reason for hiding this comment

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

I tested the release script on my machine and it works 👍

@ch1bo ch1bo force-pushed the prepare-release-0.14.0 branch 6 times, most recently from b500377 to 300b12d Compare December 1, 2023 18:39
@ch1bo ch1bo merged commit b0908c6 into master Dec 4, 2023
21 of 23 checks passed
@ch1bo ch1bo deleted the prepare-release-0.14.0 branch December 4, 2023 15:32
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.

None yet

3 participants