-
Notifications
You must be signed in to change notification settings - Fork 32
STF Vectors #28
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
Open
davxy
wants to merge
242
commits into
w3f:master
Choose a base branch
from
davxy:polkajam-vectors
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
STF Vectors #28
Changes from all commits
Commits
Show all changes
242 commits
Select commit
Hold shift + click to select a range
d94bdc8
Blinding factor used to compute blinding nonce
davxy b954edf
Introduce offenders to the STF inputs
davxy 02bf209
Disputes STF test vectors
davxy d5c1c39
Leave safrole alone here
davxy 926e6c0
ASN.1 schema for disputes
davxy 4dd16f4
Sequence of U8 are just OCTET STRING(s)
davxy 921413c
Check constraints
davxy 2a04e2c
Nit
davxy 2f32cc2
Use OCTET STRING instead of SEQUENCE OF U8
davxy edc6a08
Use greek letters as per GP
davxy fb50df3
Add missing bits to state for signatures verification
davxy 7fc4038
Rename vectors
davxy 3008118
README
davxy 8f7e9b5
README completed
davxy 0c6c282
Improve README
davxy b2e2713
On error pre-state matches post-state
davxy 2c8fb6b
Fix validation after vector name change
davxy a7ea6b9
For test vectors, set zk-rows to 0, as per spec
davxy 673df81
Remove verdicts mark from output
davxy 80d8be2
Test vectors
davxy e47b0df
Twak sequence of options for ASN.1 compliance
davxy 04c2c14
Fix ASN.1 validation of case including sequence of options
davxy cac43c2
Use Keccak-256 for MMR
davxy bcc43b7
Fix doc
davxy ac7e31f
Fix MMR hash
davxy 142fbf4
WorkReport requires at least one result
davxy 2d71c3f
Add test for padded ring commitment
davxy 53ab147
Add vectors with JAM compact codec
davxy 695567a
Update ASN schema
davxy 284ef4b
Fix link
davxy 78f74a4
Add vectors with JAM compact integer codec
davxy 6ef5ff8
Add vectors with JAM compact integer codec
davxy 9e6aa03
Rename vector
davxy ed65fac
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy ff5a107
Merge branch 'disputes' into polkajam-vectors
davxy 30638fa
Merge branch 'blocks-history' into polkajam-vectors
davxy 9bab1f7
README
davxy b9ba221
Merge branch 'blocks-history' into polkajam-vectors
davxy c2ab5c7
Remove old SCALE vectors
davxy aebb223
Remove old SCALE vectors
davxy 58869d2
Reported work packages comes with the exported segment root
davxy f791dff
Remove old SCALE vectors
davxy 205517f
Signatures change after alteration of opaque work dummy-work-report
davxy 1fa652f
Update binary encoded files
davxy df36605
Update binary encoded files
davxy fdf9e9c
Merge branch 'blocks-history' into polkajam-vectors
davxy c1d27e6
Merge branch 'disputes' into polkajam-vectors
davxy 1c80e4a
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 2340a11
Tiny vectors
davxy cf9b936
README and vectors update
davxy fe16aad
README update
davxy 2faa306
WARN
davxy c72baad
Update to 0.5
davxy b7a706f
Update
davxy 7bf321f
Merge branch 'disputes' into polkajam-vectors
davxy b51a4e7
Merge branch 'blocks-history' into polkajam-vectors
davxy b9c8b4e
Merge branch 'codec-vectors-update' into polkajam-vectors
davxy 54b3f0c
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy df0c355
Merge branch 'work-reports' into polkajam-vectors
davxy 0ee6d82
Full vectors
davxy ccc431e
Merge branch 'work-reports' into polkajam-vectors
davxy c86d442
Begin shared ASN.1 schema
davxy 7744558
Codecs and history using common schema and utils
davxy a74939d
Use common code for history
davxy 078db06
safrole is using shared asn.1 code
davxy 22485a9
Allow for invalid attempt number
davxy af6e913
Begin reports schema definition
davxy 132d7a2
General overhaul
davxy 7dc0f5c
Reports ASN1 schema
davxy 9f99153
Use common JAM ASN.1 types
davxy 20c4809
Use common JAM ASN.1 types
davxy fb0c8ef
Use common JAM ASN.1 types
davxy 643cb1d
Use common JAM ASN.1 types
davxy c30506c
All in one asn1 syntax file
davxy 96666aa
All in one asn1 syntax file
davxy 26e882b
All in one asn1 syntax file
davxy 95b73ca
All in one asn1 syntax file
davxy e7ecc70
Add tickets entropy to epoch marker
davxy 5191709
Add tickets entropy to epoch marker
davxy 9ffd698
Add tickets entropy to epoch marker
davxy df18b31
Add tickets entropy to epoch marker
davxy fde23dd
Fix reported issues
davxy 7e2c61d
Fix ASN.1
davxy e091053
Merge branch 'master' into safrole-ring-signatures-update
davxy 1df9896
Remove dead code
davxy 99fb959
Merge branch 'master' into blocks-history
davxy 10f5122
Nit
davxy f44aefb
Merge branch 'master' into disputes
davxy bfd9cf3
Merge branch 'master' into work-reports
davxy eddd7f9
Pick jam-types-asn from master
davxy bcfcce4
Merge branch 'master' into polkajam-vectors
davxy fe46d60
Merge branch 'blocks-history' into polkajam-vectors
davxy 8303360
Merge branch 'disputes' into polkajam-vectors
davxy 43561e3
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 43bc4b4
Merge branch 'work-reports' into polkajam-vectors
davxy de1d5aa
Update README
davxy 01b3f9d
Explicit GP symbols in ASN1 schema
davxy 4a14a19
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 5b9e74e
Explicit GP symbols in ASN1 schema
davxy b40d625
Merge branch 'disputes' into polkajam-vectors
davxy db2bb40
Explicit GP symbols in ASN1 schema
davxy 4cd28a9
Merge branch 'blocks-history' into polkajam-vectors
davxy be4b014
Improve ASN1 schema
davxy d10987d
README
davxy bd352a1
Move entropy and offenders to state
davxy 686a850
Merge branch 'work-reports' into polkajam-vectors
davxy aeb976f
Move posterior offenders list to state
davxy d4a7c87
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 379c503
- Rotation period for full set to 10 (was 4)
davxy 318c737
README update with explicit rotation period
davxy ae8c5b0
Merge branch 'work-reports' into polkajam-vectors
davxy 2d4e4f4
Update safrole.asn
xDimon 0fa0840
Increase attempts per validator to 3 for tiny
davxy 0867291
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 86106e8
Schema
davxy 9cae0a6
Tiny
davxy 39cff81
Full
davxy d089a64
Fix
davxy 3b76ab7
ASN1 validation works
davxy 835560c
Update README
davxy d47eeea
Fix docs
davxy 973f041
Merge branch 'assurances' into polkajam-vectors
davxy 730f919
README update
davxy f399076
Merge branch 'work-reports' into polkajam-vectors
davxy e5ab869
Merge pull request #2 from xDimon/patch-1
davxy 287862b
Update safrole.asn
xDimon a4b431b
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 4690180
Post offenders sequence must match prior one
davxy dfd0d0e
Same for full
davxy f2b9511
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 9407a72
Update ark-ec-vrfs rev
davxy 25aaedc
Tiny tickets limit set to 3
davxy 5385316
Full tickets fix
davxy b06f7cd
Align asn1 syntax
davxy 610b742
Statistics vectors
davxy 8fc8404
Merge branch 'safrole-ring-signatures-update' into polkajam-vectors
davxy 3f7ffac
Merge branch 'statistics' into polkajam-vectors
davxy a3ccb8d
Statistics STF vectors
davxy b789300
Update README
davxy 67bd2f9
Missing Statistics definition in ASN1 types
davxy eb8e2db
Merge branch 'statistics' into polkajam-vectors
davxy c08d0ff
Not sorted or unique assurances
davxy 64a7117
Merge branch 'assurances' into polkajam-vectors
davxy 1fce96e
Merge branch 'codec-update' into polkajam-vectors
davxy 86b1e00
GP 0.5.2 - Assurances STF vectors update
davxy 2ce0576
Merge branch 'master' into polkajam-vectors
davxy 2737ae4
Include protocol version
davxy 78ef799
reports: fix beefy root
davxy 82b5418
assurances: proactive removal of stale reports (GP 0.5.2)
davxy 88bec12
disputes: align new gas naming
davxy 8a6c01c
reports: add missing test to readme
davxy 1db626e
README update
davxy 2028209
Be more explicit about state items semantics
davxy e821f29
Big work report output vectors
davxy 729592c
Auth pools are not mutated by reports STF
davxy 1c5211f
Auth pools are not mutated (full)
davxy b059bc7
reports: add new error code to asn1
davxy e6238ba
Add tickets_per_validator constant
xDimon a1a8490
Merge pull request #4 from xDimon/tickets_per_validator
davxy ba4293c
Authorizations STF vectors
davxy 79389b5
ASN.1 schema and validation
davxy 86cdcdd
README update
davxy 71471d7
README update
davxy 0e78675
Merge pull request #5 from davxy/authorizations-stf-vectors
davxy 12505a1
statistics: remove reporters from input
davxy 2a58a11
safrole: restore tickets order
davxy 4456b9c
First pass
davxy ae7bedf
Add bad-export variant to WorkError
davxy 2e0c424
Merge pull request #8 from davxy/preimages-vectors
davxy a53c74e
Skeleton
davxy 00ca6c5
Tiny
davxy c7d8dbe
Full
davxy 54225ea
README
davxy d516c43
Add test service
davxy 5883752
Nit
davxy caecad8
Update GP revision
davxy cbaa3fc
Regen
davxy b7ba390
Reports vectors update after mmr root token fix
davxy bcf7ecb
Available work reports sorted by core index
davxy 1564dcf
Bump GP version to 0.6.1
davxy a503a63
Merge branch 'polkajam-vectors' into accumulate-stf
davxy 0069ef1
Merge pull request #10 from davxy/accumulate-stf
davxy c4ab447
Consistent accounts data
davxy 58e1124
Preimages ASN1
davxy 0c987a6
Reports ASN1 fix
davxy 267c0f6
Accumulate ASN1 schema
davxy 20061d4
Merge pull request #12 from davxy/consistent-accounts-data
davxy af94b95
Fix self referential test case
davxy 562f11d
Align to jam-pvm-common 0.1.12
davxy 875a98a
Accumulate README
davxy ac013b0
Merge pull request #13 from davxy/fix-accumulate-vectors
davxy dd92193
README improvements
davxy 123218c
Preimages vectors brief description
davxy 553ba30
Merge pull request #14 from davxy/improve-readme
davxy 529f0ed
Explicit reports note about auth-pools management
davxy f346074
Preimages order check vectors
davxy 4c37026
Fix ASN1
davxy 01e036c
Merge pull request #20 from davxy/preimages-order-check
davxy e3cc45e
New vectors
davxy e607618
README
davxy 9204d09
Merge pull request #26 from davxy/accumulate-new-vectors
davxy 6e56c75
Update tiny
davxy 14c057c
Merge branch 'w3f:master' into polkajam-vectors
davxy 23c2337
Update full
davxy 9fa0333
README
davxy 960728f
ASN1 update
davxy 038bd89
Merge pull request #27 from davxy/gp-0.6.3
davxy 39c40dc
Update codec vectors
davxy 280f060
Update accumulate tiny
davxy 2bde128
Update assurances tiny
davxy 1b0b1b0
Update disputes tiny
davxy faf0742
Update safrole tiny
davxy 5290a37
Reports tiny
davxy acde36b
Statistics tiny
davxy 3cf5bb2
Align full vectors
davxy a5e75f6
Bump version
davxy 776f16c
Codec
davxy ea29b2e
Include ed25519 in epoch marker
davxy 24758cc
Align ASN.1 types for codec
davxy d157968
Statistics ASN1
davxy 6e162b4
Reports ASN1
davxy 0b841c1
Reports ASN1 update
davxy dea7eef
Merge pull request #30 from davxy/gp-0.6.4
davxy 3bcccba
Update Safrole README.md
davxy fb3ce3f
Nit
davxy 55b5950
Fix: Validator stats are not compact
davxy b2478c4
Update Safrole README
davxy 40589ba
Scale gas for tiny
davxy 615bf6a
Fix stats items order
davxy 1794bbd
ASN1 update
davxy bf97f6f
Use gas alias consistently
davxy 6db01a5
Merge pull request #36 from davxy/use-gas-alias
davxy a8696a8
Merge branch 'polkajam-vectors' into fix-stats-order
davxy c19e139
Merge pull request #35 from davxy/fix-stats-order
davxy 1c6f27b
Remove error ambiguity from bad signature vectors
davxy 211aae5
Invalid keys vectors
davxy 5d05b62
Align ASN.1 to new error variants
davxy 3356ab0
README
davxy 26df4cc
Merge pull request #38 from davxy/improve-disputes-vectors
davxy 5e772bb
Update vectors
davxy 394a155
One extra vector
davxy 5236b05
Merge pull request #6 from davxy/fix-state-to-build-prev-reported-pac…
davxy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,51 @@ | ||
# Test Vectors for the JAM Protocol | ||
|
||
## Index | ||
JAM protocol version 0.6.4 | ||
|
||
## Codec | ||
|
||
- [Codec](./codec/README.md) | ||
|
||
## State Transition Functions | ||
|
||
We offer two types of test vectors: | ||
|
||
- **Tiny**: designed for quick adjustments and prototyping, with reduced | ||
- validators count: 6 | ||
- cores count: 2 | ||
- epoch period: 12 | ||
- core assignment rotation period: 4 | ||
- ticket attempts: 3 | ||
|
||
- **Full**: vectors with production specs | ||
- validators count: 1023 | ||
- cores count: 341 | ||
- epoch period: 600 | ||
- core assignment rotation period: 10 | ||
- ticket attempts: 2 | ||
|
||
### STF Output | ||
|
||
Technically, the STF execution process does not inherently produce auxiliary | ||
outputs beyond the success or failure result. In this context, we propose | ||
an extension to include additional information that may be beneficial for | ||
implementors or useful for executing other subsystems reliant on values | ||
generated post-STF execution. | ||
|
||
When the error or success values are not pertinent to your test vector | ||
processing procedures, you may disregard them as necessary. | ||
|
||
A mapping of error code semantics is provided within the ASN.1 schema for each | ||
specific subsystem. | ||
|
||
### Vectors | ||
|
||
- [Safrole](./safrole/README.md) | ||
- [Disputes](./disputes/README.md) | ||
- [History](./history/README.md) | ||
- [Assurances](./assurances/README.md) | ||
- [Reports](./reports/README.md) | ||
- [Statistics](./statistics/README.md) | ||
- [Authorizations](./authorizations/README.md) | ||
- [Preimages](./preimages/README.md) | ||
- [Accumulate](./accumulate/README.md) |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Accumulate STF Test Vectors | ||
|
||
Both JSON and SCALE formats conform to the JAM ASN.1 [schema](../jam-types-asn/jam-types.asn) | ||
and this subsystem STF specific [schema](./accumulate.asn). | ||
|
||
## Test Service Code | ||
|
||
Test vectors invoke the `accumulate` method of the provided [test-service](./test-service). | ||
|
||
The PVM binary, which refers to the compiled version of the `test-service`, is | ||
generated using the [`jam-pvm-build`](https://crates.io/crates/jam-pvm-build) | ||
tool. | ||
|
||
Due to differences in dependencies and compiler versions, the resulting binary | ||
artifact frequently varies, even when generated from identical source code. As | ||
a result, you can just rely on the code blob embedded in the test vectors, which | ||
is available within the `accounts` map. | ||
|
||
## Tiny Vectors | ||
|
||
- [no_available_reports-1](./tiny/no_available_reports-1.json) | ||
- No reports. | ||
- [process_one_immediate_report-1](./tiny/process_one_immediate_report-1.json) | ||
- Report with no dependencies. | ||
- [enqueue_and_unlock_simple-1](./tiny/enqueue_and_unlock_simple-1.json) | ||
- Report with unsatisfied dependency added to the ready-queue. | ||
- [enqueue_and_unlock_simple-2](./tiny/enqueue_and_unlock_simple-2.json) | ||
- Report with no dependencies that resolves previous dependency. | ||
- [enqueue_and_unlock_with_sr_lookup-1](./tiny/enqueue_and_unlock_with_sr_lookup-1.json) | ||
- Report with unsatisfied segment tree root dependency added to the ready-queue. | ||
- [enqueue_and_unlock_with_sr_lookup-2](./tiny/enqueue_and_unlock_with_sr_lookup-2.json) | ||
- Report with no dependencies that resolves previous dependency. | ||
- [enqueue_and_unlock_chain-1](./tiny/enqueue_and_unlock_chain-1.json) | ||
- Two reports with unsatisfied dependencies added to the ready-queue. | ||
- [enqueue_and_unlock_chain-2](./tiny/enqueue_and_unlock_chain-2.json) | ||
- Two additional reports with unsatisfied dependencies added to the ready-queue. | ||
- [enqueue_and_unlock_chain-3](./tiny/enqueue_and_unlock_chain-3.json) | ||
- Two additional reports. One with unsatisfied dependencies, thus added to the ready-queue. | ||
- One report is accumulated and resolves two previously enqueued reports. | ||
- [enqueue_and_unlock_chain-4](./tiny/enqueue_and_unlock_chain-4.json) | ||
- Report that resolves all remaining queued dependencies. | ||
- [enqueue_and_unlock_chain_wraps-1](./tiny/enqueue_and_unlock_chain_wraps-1.json) | ||
- Two reports with unsatisfied dependencies added to the ready-queue. | ||
- [enqueue_and_unlock_chain_wraps-2](./tiny/enqueue_and_unlock_chain_wraps-2.json) | ||
- Two additional reports, one with no dependencies and thus immediately accumulated. | ||
- The other is pushed to the ready-queue which fills up and wraps around | ||
(ready-queue is a ring buffer). | ||
- [enqueue_and_unlock_chain_wraps-3](./tiny/enqueue_and_unlock_chain_wraps-3.json) | ||
- Two additional reports with unsatisfied dependencies pushed to the ready-queue. | ||
- [enqueue_and_unlock_chain_wraps-4](./tiny/enqueue_and_unlock_chain_wraps-4.json) | ||
- Two additional reports, one with no dependencies and thus immediately accumulated. | ||
- Three old entries in the ready-queue are removed. | ||
- [enqueue_and_unlock_chain_wraps-5](./tiny/enqueue_and_unlock_chain_wraps-5.json) | ||
- Report with no dependencies resolves all previous enqueued reports. | ||
- [enqueue_self_referential-1](./tiny/enqueue_self_referential-1.json) | ||
- Report with direct dependency on itself. | ||
- This makes the report stale, but pushed to the ready-queue anyway. | ||
- [enqueue_self_referential-2](./tiny/enqueue_self_referential-2.json) | ||
- Two reports with indirect circular dependency. | ||
- This makes the reports stale, but pushed to the ready-queue anyway. | ||
- [enqueue_self_referential-3](./tiny/enqueue_self_referential-3.json) | ||
- Two reports. First depends on second, which depends on unseen report. | ||
- [enqueue_self_referential-4](./tiny/enqueue_self_referential-4.json) | ||
- New report creates a cycle with the previously queued reports. | ||
- This makes the reports stale, but pushed to the ready-queue anyway. | ||
- [accumulate_ready_queued_reports-1](./tiny/accumulate_ready_queued_reports-1.json) | ||
- There are some reports in the ready-queue ready to be accumulated. | ||
- Even though we don't supply any new available work report these are processed. | ||
- This condition may result because of gas exhausition during previous block execution. | ||
- [queues_are_shifted-1](./tiny/queues_are_shifted-1.json) | ||
- Check that ready-queue and accumulated-reports queues are shifted. | ||
- A new available report is supplied. | ||
- [queues_are_shifted-2](./tiny/queues_are_shifted-2.json) | ||
- Check that ready-queue and accumulated-reports queues are shifted. | ||
- No new report is supplied. | ||
- [ready_queue_editing-1](./tiny/ready_queue_editing-1.json) | ||
- Two reports with unsatisfied dependencies added to the ready-queue. | ||
- [ready_queue_editing-2](./tiny/ready_queue_editing-2.json) | ||
- Two reports, one with unsatisfied dependency added to the ready-queue. | ||
- One accumulated. Ready queue items dependencies are edited. | ||
- [ready_queue_editing-3](./tiny/ready_queue_editing-3.json) | ||
- One report unlocks reports in the ready-queue. | ||
|
||
## Full Vectors | ||
|
||
Currently, the same test cases as tiny vectors but at a larger scale. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
-- Accumulate STF test vectors schema | ||
|
||
AccumulateModule DEFINITIONS ::= BEGIN | ||
|
||
IMPORTS | ||
TimeSlot, ServiceId, ServiceInfo, WorkReport, OpaqueHash, ByteSequence, | ||
Entropy, ReadyQueue, AccumulatedQueue, Privileges, AccumulateRoot | ||
FROM JamTypes; | ||
|
||
|
||
PreimagesMapEntry ::= SEQUENCE { | ||
hash OpaqueHash, | ||
blob ByteSequence | ||
} | ||
|
||
-- Service account information relevant for this STF. | ||
Account ::= SEQUENCE { | ||
-- [a_c, a_b, a_g, a_m, a_o, a_i] Service metadata. | ||
service ServiceInfo, | ||
--[a_p] Preimages blobs. | ||
preimages SEQUENCE OF PreimagesMapEntry | ||
} | ||
|
||
AccountsMapEntry ::= SEQUENCE { | ||
id ServiceId, | ||
data Account | ||
} | ||
|
||
State ::= SEQUENCE { | ||
slot TimeSlot, | ||
entropy Entropy, | ||
ready-queue ReadyQueue, | ||
accumulated AccumulatedQueue, | ||
privileges Privileges, | ||
-- [δ] Relevant services account data. Refer to T(σ) in GP Appendix D. | ||
accounts SEQUENCE OF AccountsMapEntry | ||
} | ||
|
||
Input ::= SEQUENCE { | ||
-- [H_t] Block's timeslot. | ||
slot TimeSlot, | ||
reports SEQUENCE OF WorkReport | ||
} | ||
|
||
Output ::= CHOICE { | ||
ok AccumulateRoot, | ||
err NULL | ||
} | ||
|
||
TestCase ::= SEQUENCE { | ||
input Input, | ||
pre-state State, | ||
output Output, | ||
post-state State | ||
} | ||
|
||
END |
Binary file not shown.
Oops, something went wrong.
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.
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.
Can we use version locking here for reproducible builds?