hiero-ledger / hiero-ledger/hiero-consensus-node
HAPI XTS Review and Speedup
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
### Background
We would like to reduce the time it takes to complete the XTS run. This epic will track the progress on each of the initiatives, required for the XTS speedup.
The objective of this effort is to enable parallel test execution where supported and migrate the majority of tests from XTS to PR checks / MATS. This shift allows us to detect issues earlier - directly within pull requests - before changes are merged to main.
The new execution model, along with changes introduced across the PRs associated with this epic, ensures that each modified test tag completes in under 20 minutes during PR checks. Our target is for all checks - at minimum the test execution tasks at this stage - to complete within 20 minutes, while also making more efficient use of CI runners. As a potential follow-up improvement, PR checks could also be configured for manual triggering on a per-PR basis.
During this transition, we have begun surfacing flaky tests that previously occurred only infrequently. Because these tests now run more often and under higher concurrency, existing instabilities are exposed more readily. All such failures are tracked in newly created issues labeled "PR gate failure”. See https://github.com/hiero-ledger/hiero-consensus-node/issues/24396.
Tags for conversion:
- Crypto
- Misc
- Misc Records
- Token
- Time Consuming (split into two tags, with State Throttling added)
- Simple Fees
- Smart Contracts
- Atomic Batch
All converted tags are intended to be disabled in XTS and enabled in MATS without relying on different subsets. Should there be a need to also run them in XTS (which would introduce duplication) - this can be achieved by toggling the configuration flag to re-enable them.
No changes have been made to any "required" configurations. The new State Throttling tag diverges from Time Consuming and should inherit the same required status.
### Acceptance Criteria
Sub issues completed
### Dependencies
_No response_
### Definition of Ready (DoR) Checklist
- [ ] Clear acceptance criteria
- [ ] Clear and detailed description
- [ ] Dependencies identified
- [ ] Links to documentation
- [ ] Should be completable in 2-3 Days
- [ ] Initial draft of Low-level design document
- [ ] At least high level test plan
- [ ] Groomed/Estimated
### Definition of Done (DoD) Checklist
- [ ] Acceptance Criteria complete
- [ ] No Codacy issues greater than minor (in new code)
- [ ] JavaDocs updated/created
- [ ] Code commented
- [ ] Unit tests created/updated
- [ ] 80% test code coverage (in new code)
- [ ] Happy Path and major negative cases in HAPI tests as applicable
Contributor guide
Research direction
Start by reviewing the XTS and MATS test execution setup, the listed tags for conversion, and the associated sub-issues. Confirm which tags can run in PR checks or MATS, how the configuration flag controls XTS duplication, and how State Throttling inherits the required status. Done means all sub-issues are completed and the stated execution-time and migration goals are met.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- ci-cd, performance, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100