-
Notifications
You must be signed in to change notification settings - Fork 749
wb | workbench improvements #6380
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
Merged
Merged
+4,453
−1,886
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
815801b to
5a21ac6
Compare
c5ba59a to
3ca72fa
Compare
3ca72fa to
b8776de
Compare
a6b23db to
1aa9083
Compare
41ba44d to
1f14d89
Compare
00798c0 to
7e5224a
Compare
mgmeier
approved these changes
Jan 9, 2026
Contributor
mgmeier
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - impressive and very thorough. Thank you @fmaste
bdf6c6f to
1ee7f1f
Compare
114929a to
9e27c40
Compare
9e27c40 to
ff1f3f2
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR enhances the workbench profiling capabilities, streamlines Haskell dependency management, and introduces support for LSM-tree benchmarking profiles.
Key Changes
Multi-Dimensional Profiling Configuration
WB_PROFILINGSyntax: TheWB_PROFILINGenvironment variable now supports a new syntax:MAIN_PARAM+MODIFIER.-hc,-hi,-hT, or-p.eventlogandinfo-table.WB_PROFILING="space-heap" make ci-test,WB_PROFILING="space-heap" make ci-test-prof,WB_PROFILING="space-info+eventlog+info-table" make ci-test,WB_PROFILING="space-heap+eventlog" make value-volt-lsmt-nomadperf.Enhanced Profiling Support
useCabalRunmode, profiling support is now explicitly scoped tocardano-node,cardano-tracer,tx-generatorandlocli. For*-nixprofiles, the configuration will default to the settings defined in the haskell.nix project.Workbench Cleanup & Nix Integration
start.shscript to pass RTS parameters, ensuring a more consistent environment across different execution modes (see how the different variables used to behave with the different combinations)..passthru.noGitRevto avoid "cache miss on every commit" issue caused by executables being patched with the GitHub commit hash. Now justhaskellProject.exes.tx-generator.pkgsandlibas separate arguments. Sincelibis a standard attribute of thepkgsset, functions now consumepkgsand accesspkgs.libinternally. This reduces boilerplate and improves the consistency of the workbench Nix API.workbench-ci-test. This logic, which dates back to early 2022 (PR, commit), was originally implemented to prevent timeouts during long-running tests. After tracing its history and evaluating current CI behavior, it has been determined that this workaround is no longer necessary and was removed to simplify the test entry point.New Benchmarking Profiles (LSM-Tree)
LedgerDB.V2LSMConfiguration: Introducedutxo_lsmtattributes tocardano-profile. This provides the necessary configuration parameters forLedgerDB.V2LSM, enabling the node to correctly initialize and test the LSM-based ledger database.How
makebehaved with and without profiling:-hT-machine-readable-tcardano-node.stats-pocardano-node-hT-machine-readable-tcardano-node.stats-pocardano-nodeChecklist
See Runnings tests for more details
CHANGELOG.mdfor affected package.cabalfiles are updatedhlint. See.github/workflows/check-hlint.ymlto get thehlintversionstylish-haskell. See.github/workflows/stylish-haskell.ymlto get thestylish-haskellversionghc-9.6andghc-9.12Note on CI
If your PR is from a fork, the necessary CI jobs won't trigger automatically for security reasons.
You will need to get someone with write privileges. Please contact IOG node developers to do this
for you.