Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
190 commits
Select commit Hold shift + click to select a range
eba7dba
Fix `cmd label` (#10623)
bkchr Dec 11, 2025
72874f1
fix: ensure metadata v15 is generated by frame-metadata (#10592)
carlosala Dec 11, 2025
632a3b1
add ai review workflow (#10394)
xlc Dec 11, 2025
8b4abfe
[pallet-revive] remove unstable host function set_code_hash (#10517)
0xRVE Dec 12, 2025
82276b8
[cmd-bot] Sync changes (#10632)
alvicsam Dec 12, 2025
d4c1240
Align Common Functions between Bulletin and SDK (#10593)
raymondkfcheung Dec 12, 2025
30791a3
Snowbridge V2: Generic inbound message processing (#8175)
Agusrodri Dec 12, 2025
6792d05
Fix eth-rpc publish (#10580)
pgherveou Dec 12, 2025
7b99b02
revive eth-rpc Add polkadot_postDispatchWeight rpc methods (#10612)
pgherveou Dec 15, 2025
cd6704c
Bump the ci_dependencies group across 1 directory with 15 updates (#1…
dependabot[bot] Dec 15, 2025
310625d
Added Validator to WarpSyncProvider (#10223)
Klapeyron Dec 15, 2025
1bce43e
Fix typo in handling_parachain_forks documentation (#10523)
RomarQ Dec 15, 2025
6504dbd
Remove unused Rococo parachains runtimes (#10648)
acatangiu Dec 15, 2025
ec03705
relay-sproof-builder/test: Fix num of descendants (#10616)
lexnv Dec 15, 2025
974c690
Remove pallet::getter usage from sassafras pallet (#10460)
naijauser Dec 15, 2025
ce4e695
Disable failing tests after removing `rococo-parachain` (#10654)
pepoviola Dec 16, 2025
1781983
[Release|CI/CD] Revert using larger runners only for the polkadot-par…
BDevParity Dec 16, 2025
5165ea2
Omninode instant seal: Support relay parent offset (#10658)
bkchr Dec 16, 2025
c5c4734
cmd-label: Do not require `GITHUB_TOKEN` inside of `cmd.py` (#10649)
bkchr Dec 16, 2025
9c73758
Add comprehensive test data for Ethereum trie root validation (#9452)
lrubasze Dec 16, 2025
4581cab
Add retry logic to artifact download action (#10588)
DenzelPenzel Dec 16, 2025
a12ec9c
cargo: Update litep2p to v0.12.3 (#10665)
lexnv Dec 17, 2025
2ead0e4
[pallet-revive] remove unstable host function sr25519_verify (#10635)
0xRVE Dec 17, 2025
db7d6d1
[cmd-bot] Use cmd-bot branch for script execution (#10672)
alvicsam Dec 17, 2025
95b300f
revive: fix revive post_upgrade assert (#10680)
pgherveou Dec 17, 2025
b4cbc83
Weight: Put `must_use` above some of the functions (#10686)
bkchr Dec 18, 2025
e82044e
Remove pallet::getter usage from merkel mountain range pallet (#10437)
naijauser Dec 18, 2025
92b7dd5
Statement: Fix `TypeInfo` (#10692)
bkchr Dec 18, 2025
7357c84
frame-session: Introduce a proper proof of key ownership (#1739)
bkchr Dec 19, 2025
665b6c0
add must_use attributes (#10682)
pgherveou Dec 20, 2025
2b80119
try state check for pallet authority discovery (#10475)
dharjeezy Dec 20, 2025
5e3ab32
[pallet-revive] replaced binary erc20 fixtures with solidity fixtures…
0xRVE Dec 22, 2025
62f2553
[pallet-revive] remove unstable host function ecdsa_to_eth_address (#…
0xRVE Dec 22, 2025
f7b3d18
Version bumps and prdocs reordering from stable2509-3 (#10676)
BDevParity Dec 22, 2025
c964883
Version bumps and prdocs reordering from stable2512 (#10705)
EgorPopelyaev Dec 22, 2025
89db02d
[frame-support] remove error reporting in `remote_transfer_xcm` for p…
clangenb Dec 23, 2025
87844e6
Bump the ci_dependencies group with 3 updates (#10703)
dependabot[bot] Dec 24, 2025
b2bcb74
Bulletin as parachain missing features (#10662)
bkontur Dec 24, 2025
781c777
Remove remaining uses of `sp-debug-derive/force-debug` feature (#10634)
RomarQ Dec 30, 2025
83c142a
Fix off-by-one error in child bounty limit validation (fixes #10652) …
kunal-drall Jan 5, 2026
7139c64
[Release|CI/CD] Fix combined flow release tag on RPM and Debian publi…
BDevParity Jan 5, 2026
3bfc6ec
Improve Warp Sync Logging (#10196)
runcomet Jan 5, 2026
fd72017
Adding polkadot parachain bootnodes, removing westend. (#10723)
stakeworld Jan 5, 2026
7e0fb49
[CI] remove rococo runtimes from CI checks (#10725)
acatangiu Jan 6, 2026
0310b46
Fix benchmarking for pallet-assets::set_reserves() (#10711)
acatangiu Jan 6, 2026
e1d01a0
refund deposit_eth_extrinsic_revert_event on the base_weight (#10693)
pgherveou Jan 6, 2026
f569daa
Update asset-conversion validation to use strict withdrawal checks (#…
dhirajs0 Jan 6, 2026
806709f
statement-store: add networking bench (#10661)
AndreiEres Jan 6, 2026
39ff0c1
Fix Differential Testing CI Flakiness (#10524)
0xOmarA Jan 6, 2026
2601ee3
Remove flaky error log checking from parachain extrinsic test (#10710)
mchristou Jan 6, 2026
0241d9b
Allow for "Nick's Method" Style Transactions & Contract Deployments i…
0xOmarA Jan 7, 2026
2194773
Add support for asset V3 to V5 conversion to match_asset of localPay …
naijauser Jan 7, 2026
8d6ccfd
Make BlockRatioFee no longer require pallet_revive (#10740)
athei Jan 7, 2026
3a49084
[pallet-revive] remove code related to stable and unstable_hostfn (#1…
0xRVE Jan 7, 2026
664643b
build & deploy eth-rpc docker image for stable release (#10739)
pgherveou Jan 7, 2026
85b9ae1
Integrate asset test utilities for asset hub westend (#10721)
PanGan21 Jan 8, 2026
a51ad43
[pallet-revive] fixtures compilation fix for rust 1.92.0 (#10749)
0xRVE Jan 8, 2026
61578bd
Introduce a "jemalloc-shim" crate (#10709)
bkchr Jan 8, 2026
73f653f
Omni-node: Calculate `relay_blocks_per_para_block` properly for mock …
skunert Jan 9, 2026
9426936
Statement-store: Propagate all statements to newly connected peers (#…
bkchr Jan 9, 2026
a56ad58
Introduce the first version of pallet-dap and collect staking slashe…
sigurpol Jan 9, 2026
91a9b31
ci: handle error in subsystem-benchmark (#10761)
alvicsam Jan 9, 2026
4b934d0
Improve `charge_transaction_payment benchmark` ergonomics (#10444)
manuelmauro Jan 9, 2026
62fa27d
remote-externalities: Use `WsClient` (#10258)
bkchr Jan 12, 2026
0c70641
Use the revive-differential-tests reusable action (#10732)
0xOmarA Jan 12, 2026
0130e98
[Release|CI/CD] Handling RPM staging distribution as input for testin…
BDevParity Jan 12, 2026
fb8ca00
Statement-store: Follow-up improvements from PR #10718 review (#10770)
AndreiEres Jan 13, 2026
dca3da2
Missing sign_with forward call (#10784)
Klapeyron Jan 13, 2026
80a438e
Fix pallet-revive-fixtures (#10780)
athei Jan 13, 2026
9f407c3
fix inneficient do_propagate_statements (#10785)
alexggh Jan 13, 2026
1ea05e1
Fix auto-renew core tracking on immediate renew (#10767)
aurexav Jan 13, 2026
ac672e9
statement-store: fix size limit mismatch in process_initial_sync_burs…
alexggh Jan 14, 2026
84064c9
pallet-broker: Fix `force_reserve` (#10792)
bkchr Jan 14, 2026
b3bfba6
[Staking] Allow nominators to be non-slashable and fast unbondable (#…
Ank4n Jan 14, 2026
2b8cd8b
Add CLAUDE.md (#10805)
athei Jan 14, 2026
b583ea2
statement-store: Add latency bench (#10542)
AndreiEres Jan 15, 2026
aeab77e
Omni-node: Move timestamps closer to now (#10807)
skunert Jan 15, 2026
95b6ca3
[FRAME] Closed Bounties Return Balance And Assets (#10729)
ggwpez Jan 16, 2026
46d4223
Add `genesis-patch` support to frame-omni-bencher (#10735)
runcomet Jan 17, 2026
b34ecf1
Fix fee handling of pay-over-xcm trait(s) (#10831)
acatangiu Jan 17, 2026
83cf79c
Add more buckets to histogram for bitfields sent (#10827)
AndreiEres Jan 18, 2026
202ea02
Fix flaky test `zombienet-polkadot-elastic-scaling-slot-based-3cores`…
pepoviola Jan 19, 2026
64dc021
benchmarking: fix timing leak from bulk setup operations (#10802)
sigurpol Jan 19, 2026
22b70a5
Forbid invisible characters (#10838)
bkchr Jan 19, 2026
11be995
remote-externalities: Support downloading from multiple RPC servers i…
bkchr Jan 19, 2026
588b087
Bump the ci_dependencies group with 2 updates (#10835)
dependabot[bot] Jan 20, 2026
ebcee82
Update retester CI to check expectations (#10808)
0xOmarA Jan 20, 2026
6f4c6c0
Cleanup HRMP channels that were force removed from RC state (#10324)
ggwpez Jan 20, 2026
e30ff0d
Make HRMP advancement rule more restrictive (#9086)
serban300 Jan 20, 2026
92aeeb3
rpc-spec-v2: Fix flaky tests (#10848)
bkchr Jan 20, 2026
841c77b
Migrate pallet-example-offchain-worker to TransactionExtension API (#…
RomarQ Jan 21, 2026
97e54c5
[CI|Release] Improve post crates action (#10803)
BDevParity Jan 21, 2026
0a38650
Upgrade litep2p to v0.13.0 (#10859)
dmitry-markin Jan 21, 2026
81a3af9
parachain-system: Ensure left-over message budget fits into the PoV (…
bkchr Jan 21, 2026
38e4741
[pallet-broker] add extrinsic to forcefully remove the potential rene…
mertwole Jan 22, 2026
298cbb9
Expose Migrating Keys (#9461)
Doordashcon Jan 22, 2026
2eb4350
[pallet-revive] weight charge in `sr25519_verify` and `ecdsa_to_eth_a…
xermicus Jan 22, 2026
896b603
statement-store: use many workers for network statements processing (…
AndreiEres Jan 23, 2026
5a27459
net/metrics: Add metrics for inbound/outbound traffic (#10846)
lexnv Jan 23, 2026
f134881
[Release|CI/CD] Bump Zepter version in post crates action (#10885)
BDevParity Jan 23, 2026
f154a34
staking-async: allow session keys handling on AssetHub (#10666)
sigurpol Jan 26, 2026
2da3987
Snowbridge Ethereum client spec fix (#10793)
claravanstaden Jan 26, 2026
51d25de
[pallet-revive] Execution tracer (#9722)
pgherveou Jan 26, 2026
aa2d3ae
net: Spawn network backend as essential task (#10847)
lexnv Jan 26, 2026
5fd7bb5
Version bumps 2512-1 (#10904)
EgorPopelyaev Jan 26, 2026
c7b9c08
[Release| CI/CD] Add missing permissions to the docker publishing job…
EgorPopelyaev Jan 28, 2026
df0500a
Remove failing assertion related to VoterList count mismatch (#10880)
cirko33 Jan 28, 2026
21df44e
statement-store: make encode/hash faster (#10882)
alexggh Jan 28, 2026
ed9375f
Update the resolc and retester versions (#10907)
0xOmarA Jan 29, 2026
f87563a
[Release|CI/CD] Add `eth-rpc` binary to release draft artifacts (#10934)
EgorPopelyaev Jan 29, 2026
a6082b3
Make some BEEFY keystore logic more generic (#10763)
serban300 Jan 29, 2026
03ae1a7
Bump pallet-staking-reward-fn (#10905)
sigurpol Jan 30, 2026
6125890
collator-protocol: Remove stale pending collations from the waiting q…
lexnv Jan 30, 2026
02f16b7
[pallet-revive] added trybuild test for precompile compile-time check…
0xRVE Jan 30, 2026
c3487a5
Enforce stricter rustfmt rules to prevent style ambiguity (#10939)
pgherveou Jan 30, 2026
c5168ca
collator-protocol: Readvertise collations after peer disconnects (#10…
lexnv Jan 30, 2026
8807c22
telemtry: Downgrade spam log to debug (#10201)
lexnv Jan 30, 2026
81bdc42
notifications/tests: Fix flaky libp2p_disconnects_libp2p_substream te…
lexnv Jan 30, 2026
a9c09b0
collator-protocol: Re-advertise collations when peer authority IDs ar…
lexnv Jan 30, 2026
684c79c
fix(revive): handle transaction hash conflicts during re-org (#10950)
pgherveou Jan 30, 2026
a78b18a
benchmarking: fix DB read/write counts (#10947)
sigurpol Feb 3, 2026
ce86fea
cumulus: Remove `max_depth` for the parent search (#10973)
bkchr Feb 3, 2026
4c1bfa7
[pallet-revive] Enforce weight limit on dry-run RPC calls (#10902)
pgherveou Feb 3, 2026
4535807
auth-discovery: Ensure DHT published addresses have ports (#10954)
lexnv Feb 3, 2026
eeee11e
Expand multisig pallet tests (#10843)
rockbmb Feb 4, 2026
6c01d65
ci: improve try-runtime snapshot caching strategy (#10972)
sigurpol Feb 4, 2026
a40ab3c
collator-protocol-revamp: CollationManager and subsystem impl (#8541)
alindima Feb 4, 2026
9b59733
Warn when dropping an out of view candidate (#10960)
bkchr Feb 4, 2026
7570f8e
statement-store: implement new rpc api (#10690)
alexggh Feb 4, 2026
89669b3
Remove unused code in staking-async (#10842)
kianenigma Feb 4, 2026
3e53570
Add StakingOperator proxy type to Westend AssetHub (#10980)
sigurpol Feb 4, 2026
30b2aeb
pallet-dap: mark funds as inactive + expect buffer account to be pre…
sigurpol Feb 4, 2026
a21dbd5
fatxpool: Do not remove listener for finalized view (#10965)
skunert Feb 4, 2026
aaf8ab1
[Pool] Use active era for withdrawals (#10986)
Ank4n Feb 4, 2026
fb9b815
add external transient_storage to pallet_revive::ExecConfig (#10493)
pkhry Feb 4, 2026
a09c18f
statement-store: validation without runtime (#10787)
AndreiEres Feb 4, 2026
0be9d3a
FixedPoint: Support parsing `x.y` format (#9184)
bkchr Feb 4, 2026
cac11f4
Take the header size into account for the total block size (#10804)
bkchr Feb 4, 2026
567e35b
[pallet-revive] Fix EXTCODESIZE and EXTCODEHASH for mocked addresses …
smiasojed Feb 5, 2026
4e2597d
Rework experimental EC hostcalls (#10830)
davxy Feb 5, 2026
4d53dff
Fix test for remote externality's selective child key retrieval mecha…
rockbmb Feb 5, 2026
298bf2c
Enforce match_arm_blocks = true for consistent formatting (#10958)
pgherveou Feb 6, 2026
21d020f
[Release|CI/CD] Update solidity and resolc installation (#11006)
EgorPopelyaev Feb 6, 2026
b47d3b2
[pallet-revive] Fix gas_cost and weight_cost for nested calls in exec…
mokita-j Feb 6, 2026
b4a1f75
revive-eth-rpc: Use pending block for estimate_gas in dev mode (#10963)
marian-radu Feb 6, 2026
9972470
sync-templates: consider workspace lints (#11007)
iulianbarbu Feb 6, 2026
3ecda3c
slot_timer: Downgrade spammy log to debug (#10974)
lexnv Feb 6, 2026
3a87610
sync-templates: install clang (#11009)
iulianbarbu Feb 6, 2026
8e911a6
ah-westend: Elastic Scaling with 3 cores on AssetHub Westend (#9880)
lexnv Feb 6, 2026
51c34ff
Snowbridge: Describe the token location with the length field include…
yrong Feb 9, 2026
3a747b0
Omni-node: Support asset-hub-polkadot and simplify resolver logic (#1…
skunert Feb 9, 2026
93edfeb
Block Response Handler: Take protocol overhead better into account (#…
bkchr Feb 9, 2026
cdb5b14
[pallet-revive] small improvements (#10922)
0xRVE Feb 9, 2026
ba0839d
implement `IERC20Metadata` for pallet-assets-precompiles (#10971)
seunlanlege Feb 9, 2026
1b9ea1c
[pallet-revive] Fix storage deposit refunds in nested contract calls …
0xRVE Feb 10, 2026
a20ac9b
xcm-emulator: advance relay block number by relay_blocks_per_para_blo…
sigurpol Feb 10, 2026
fbddee8
Add `DecodeWithMemTracking` derive to `CompactProof` (#11028)
snowmead Feb 10, 2026
b5de070
Fix link-checker CI job (#11038)
skunert Feb 10, 2026
9c44781
Snowbridge: Remove unused proof fields (#10955)
yrong Feb 11, 2026
822c6f6
[FRAME] Omni bencher run each benchmark at least 10 secs (#10794)
ggwpez Feb 11, 2026
b44a93e
[Release|CI/CD] Automate publishing crates (#10913)
BDevParity Feb 11, 2026
1e793fe
Fix link-checker job: I am not giving up (#11049)
skunert Feb 12, 2026
890e5eb
tracing-subscriber: Pin version to prevent ANSI colour code issues (#…
bkchr Feb 12, 2026
3512a73
staking-async/ah-client: emit event when session key update from Asse…
sigurpol Feb 12, 2026
3d6768b
Feat: Add API and mechanism to retrieve additional top-level and chil…
metricaez Feb 12, 2026
b2a4296
Block import improvements (#10373)
lrubasze Feb 13, 2026
bab8ed7
Consolidate pallet-assets metadata benchmarks into single get_metadat…
0xRVE Feb 13, 2026
744acf5
Implement persistent reputation database for collator protocol (#7751…
AlexandruCihodaru Feb 13, 2026
e23e645
Gap Sync: Skip Body Requests for Non-Archive Nodes (#10752)
lrubasze Feb 13, 2026
e9b9f74
Fix delegatecall callTracer addresses (#10918)
pgherveou Feb 13, 2026
6ed9519
pallet-revive: minor cleanups and fixes (#11054)
pgherveou Feb 13, 2026
b66e7a7
westend-coretime: Bump some max values (#11062)
bkchr Feb 15, 2026
dfb5c4b
Statementstore: Forward statements to light clients (#11004)
bkchr Feb 15, 2026
bc42349
frame-omni-bencher: enable jemalloc-allocator (#11069)
sigurpol Feb 15, 2026
1323611
XCM executor keeps track and resolves all imbalances created by XCM o…
acatangiu Feb 16, 2026
f1b3e87
bump zombienet version and change deprecated methods (#11061)
pepoviola Feb 16, 2026
1897ae0
Add revive substrate runtime-api integration tests for call & instant…
pgherveou Feb 16, 2026
b1b1139
build(deps): bump the ci_dependencies group across 1 directory with 1…
dependabot[bot] Feb 17, 2026
3ee8c82
Do not prune blocks with Grandpa justifications (#10893)
skunert Feb 18, 2026
8c106ff
Improve crates publishing flow (#11056)
BDevParity Feb 18, 2026
65cdbb2
fix warp test (#11101)
pepoviola Feb 18, 2026
37c9bed
Cumulus: Simplify parent search for block-building (#10998)
skunert Feb 18, 2026
00fb736
`prefix_logs_with`: Ensure the macro works correctly for futures (#11…
bkchr Feb 18, 2026
6adb6c2
polkadot-runtime-api-cache: Only cache validation code that exists (#…
bkchr Feb 19, 2026
0455281
polkadot-omni-node-lib: emit warnings for aura authority id type assu…
dotandev Feb 19, 2026
13aca01
statement-store: add prometheus metrics for observability (#10976)
DenzelPenzel Feb 19, 2026
d774715
Force the linker not to drop jemalloc shim on Linux (#11114)
sigurpol Feb 19, 2026
cf88f8c
[Release|CI/CD] Replace direct use of inputs with ENVs (#11116)
EgorPopelyaev Feb 19, 2026
5049801
Remove MaxSessionKeysLength and MaxSessionKeysProofLength (#11115)
cirko33 Feb 19, 2026
dc18933
statement-store: fix benchmark EMFILE by pooling RPC connections (#11…
DenzelPenzel Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .config/lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ exclude = [
"http://visitme/",
"https://visitme/",
# TODO meta issue: <https://github.com/paritytech/polkadot-sdk/issues/134>
"http://try-runtime.polkadot.io:443",
"https://docs.substrate.io/main-docs/build/custom-rpc/#public-rpcs",
"https://docs.substrate.io/rustdocs/latest/sp_api/macro.decl_runtime_apis.html",
"https://github.com/ipfs/js-ipfs-bitswap/blob/",
Expand Down
10 changes: 10 additions & 0 deletions .config/review.polkacodes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
rules:
- repo: polka-codes/prompts
path: review/preamble.md
branch: master
- repo: polka-codes/prompts
path: review/rust.md
branch: master
- repo: polka-codes/prompts
path: review/polkadot-sdk.md
branch: master
44 changes: 37 additions & 7 deletions .github/actions/download-artifact-extract/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,45 @@ inputs:
runs:
using: "composite"
steps:
- name: Download artifact
- name: Download artifact (attempt 1)
id: download_attempt_1
continue-on-error: true
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ inputs.artifact-name }}
github-token: ${{ inputs.gh-token }}
run-id: ${{ inputs.run-id }}
path: ${{ inputs.extract-path }}

- name: Wait before retry 1
if: steps.download_attempt_1.outcome == 'failure'
shell: bash
run: |
echo "::group::πŸ“¦ Downloading ${{ inputs.artifact-name }}"
echo "Artifact: ${{ inputs.artifact-name }}"
echo "Run ID: ${{ inputs.run-id }}"
echo "::endgroup::"

- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
echo "::warning::Attempt 1 failed, retrying in 10s..."
sleep 10

- name: Download artifact (attempt 2)
id: download_attempt_2
if: steps.download_attempt_1.outcome == 'failure'
continue-on-error: true
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ inputs.artifact-name }}
github-token: ${{ inputs.gh-token }}
run-id: ${{ inputs.run-id }}
path: ${{ inputs.extract-path }}

- name: Wait before retry 2
if: steps.download_attempt_2.outcome == 'failure'
shell: bash
run: |
echo "::warning::Attempt 2 failed, retrying in 20s..."
sleep 20

- name: Download artifact (attempt 3)
id: download_attempt_3
if: steps.download_attempt_2.outcome == 'failure'
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ inputs.artifact-name }}
github-token: ${{ inputs.gh-token }}
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/get-solc/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ runs:
run: |
echo "$(pwd)/solc" >> $GITHUB_PATH
chmod +x solc/solc
xattr -x solc/solc
xattr -x solc/solc
1 change: 1 addition & 0 deletions .github/assets/revive-dev-node-polkavm-resolc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions .github/assets/revive-dev-node-revm-solc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
21 changes: 11 additions & 10 deletions .github/scripts/check-zombienet-flaky-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ line_num=0

while IFS= read -r line || [[ -n "$line" ]]; do
line_num=$((line_num + 1))

if [[ -z "$line" ]]; then
continue
fi

# Parse format: test-name:issue-number
if [[ ! "$line" =~ ^([^:]+):([0-9]+)$ ]]; then
echo "❌ Line $line_num: Missing required issue number" >&2
Expand All @@ -42,26 +42,26 @@ while IFS= read -r line || [[ -n "$line" ]]; do
has_errors=true
continue
fi

test_name="${BASH_REMATCH[1]}"
issue_number="${BASH_REMATCH[2]}"

set +e
issue_data=$(gh issue view "$issue_number" --json state,title,url 2>&1)
gh_exit_code=$?
set -e

if [[ $gh_exit_code -ne 0 ]]; then
echo "❌ Line $line_num: Issue #$issue_number does not exist" >&2
echo " Test: $test_name" >&2
has_errors=true
continue
fi

url=$(echo "$issue_data" | jq -r '.url')
state=$(echo "$issue_data" | jq -r '.state')
title=$(echo "$issue_data" | jq -r '.title')

# Check if it's an issue (not a PR) by verifying the URL contains '/issues/'
if [[ ! "$url" =~ /issues/ ]]; then
echo "❌ Line $line_num: #$issue_number is a Pull Request, not an Issue" >&2
Expand All @@ -71,16 +71,17 @@ while IFS= read -r line || [[ -n "$line" ]]; do
has_errors=true
continue
fi

if [[ "$state" == "OPEN" ]]; then
echo "βœ… Line $line_num: $test_name -> Issue #$issue_number (open)"
else
echo "⚠️ Line $line_num: Issue #$issue_number is closed: '$title'" >&2
echo " Test: $test_name" >&2
echo " Consider removing this entry if the issue is resolved." >&2
fi

done < "$FLAKY_TESTS_FILE"

# exclude empty lines and comments
done < <(grep -vE '^\s*(#|$)' "$FLAKY_TESTS_FILE")

echo

Expand Down
107 changes: 33 additions & 74 deletions .github/scripts/cmd/cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import _help
import importlib.util
import re
import urllib.request
import urllib.parse
import difflib

_HelpAction = _help._HelpAction
Expand All @@ -35,80 +33,40 @@ def setup_logging():
open('/tmp/cmd/command_output.log', 'w')

def fetch_repo_labels():
"""Fetch current labels from the GitHub repository"""
try:
# Use GitHub API to get current labels
repo_owner = os.environ.get('GITHUB_REPOSITORY_OWNER', 'paritytech')
repo_name = os.environ.get('GITHUB_REPOSITORY', 'paritytech/polkadot-sdk').split('/')[-1]

api_url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/labels?per_page=100"

# Add GitHub token if available for higher rate limits
headers = {'User-Agent': 'polkadot-sdk-cmd-bot'}
github_token = os.environ.get('GITHUB_TOKEN')
if github_token:
headers['Authorization'] = f'token {github_token}'

req = urllib.request.Request(api_url, headers=headers)

with urllib.request.urlopen(req) as response:
if response.getcode() == 200:
labels_data = json.loads(response.read().decode())
label_names = [label['name'] for label in labels_data]
print_and_log(f"Fetched {len(label_names)} labels from repository")
return label_names
else:
print_and_log(f"Failed to fetch labels: HTTP {response.getcode()}")
return None
except Exception as e:
print_and_log(f"Error fetching labels from repository: {e}")
"""Fetch labels from environment (pre-fetched by workflow)"""
labels_json = os.environ.get('REPO_LABELS')
if labels_json:
try:
labels = json.loads(labels_json)
print_and_log(f"Loaded {len(labels)} labels from environment")
return labels
except json.JSONDecodeError as e:
print_and_log(f"Error parsing REPO_LABELS: {e}")
return None
else:
print_and_log("REPO_LABELS not set in environment")
return None


def check_pr_status(pr_number):
"""Check if PR is merged or in merge queue"""
try:
# Get GitHub token from environment
github_token = os.environ.get('GITHUB_TOKEN')
if not github_token:
print_and_log("Error: GITHUB_TOKEN not set, cannot verify PR status")
return False # Prevent labeling if we can't check status

repo_owner = os.environ.get('GITHUB_REPOSITORY_OWNER', 'paritytech')
repo_name = os.environ.get('GITHUB_REPOSITORY', 'paritytech/polkadot-sdk').split('/')[-1]
api_url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/pulls/{pr_number}"

headers = {
'User-Agent': 'polkadot-sdk-cmd-bot',
'Authorization': f'token {github_token}',
'Accept': 'application/vnd.github.v3+json'
}
"""Check PR status from environment (pre-fetched by workflow)"""
status_json = os.environ.get('PR_STATUS')
if not status_json:
print_and_log("Error: PR_STATUS not set, cannot verify PR status")
return False

req = urllib.request.Request(api_url, headers=headers)

with urllib.request.urlopen(req) as response:
if response.getcode() == 200:
data = json.loads(response.read().decode())

# Check if PR is merged
if data.get('merged', False):
return False

# Check if PR is closed
if data.get('state') == 'closed':
return False

# Check if PR is in merge queue (auto_merge enabled)
if data.get('auto_merge') is not None:
return False

return True # PR is open and not in merge queue
else:
print_and_log(f"Failed to fetch PR status: HTTP {response.getcode()}")
return False # Prevent labeling if we can't check status
except Exception as e:
print_and_log(f"Error checking PR status: {e}")
return False # Prevent labeling if we can't check status
try:
data = json.loads(status_json)
if data.get('merged', False):
return False
if data.get('state') == 'closed':
return False
if data.get('auto_merge', False):
return False
return True
except json.JSONDecodeError as e:
print_and_log(f"Error parsing PR_STATUS: {e}")
return False


def find_closest_labels(invalid_label, valid_labels, max_suggestions=3, cutoff=0.6):
Expand Down Expand Up @@ -195,7 +153,7 @@ def auto_correct_labels(invalid_labels, valid_labels, auto_correct_threshold=0.8
%(prog)s --runtime westend --fail-fast

Does not output anything and cleans up the previous bot's & author command triggering comments in PR
%(prog)s --runtime westend rococo --pallet pallet_balances pallet_multisig --quiet --clean
%(prog)s --runtime westend --pallet pallet_balances pallet_multisig --quiet --clean
'''

parser_bench = subparsers.add_parser('bench', aliases=['bench-omni'], help='Runs benchmarks (frame omni bencher)', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter)
Expand Down Expand Up @@ -310,7 +268,7 @@ def validate_and_auto_correct_labels(input_labels, valid_labels):
%(prog)s T1-FRAME A2-substantial D3-involved

Labels are fetched dynamically from the repository.
Typos are auto-corrected when confidence is high (>80% similarity).
Typos are auto-corrected when confidence is high (>80%% similarity).
For label meanings, see: https://paritytech.github.io/labels/doc_polkadot-sdk.html
'''

Expand Down Expand Up @@ -462,6 +420,7 @@ def main():
f"--no-storage-info --no-min-squares --no-median-slopes " \
f"{config['bench_flags']}"
print(f'-- Running: {cmd} \n')
os.environ['RUNTIME_LOG'] = 'off' # Turn off annoying logs during benchmarking
status = os.system(cmd)

if status != 0 and args.fail_fast:
Expand Down Expand Up @@ -545,7 +504,7 @@ def main():
# Output labels as JSON for GitHub Action
import json
labels_output = {"labels": final_labels}
print(f"LABELS_JSON: {json.dumps(labels_output)}")
print_and_log(f"LABELS_JSON: {json.dumps(labels_output)}")
except ValueError as e:
print_and_log(f'❌ {e}')

Expand Down
31 changes: 1 addition & 30 deletions .github/scripts/cmd/test_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,6 @@
"bench_features": "runtime-benchmarks",
"bench_flags": "--flag3 --flag4"
},
{
"name": "rococo",
"package": "rococo-runtime",
"path": "polkadot/runtime/rococo",
"header": "polkadot/file_header.txt",
"template": "polkadot/xcm/pallet-xcm-benchmarks/template.hbs",
"bench_features": "runtime-benchmarks",
"bench_flags": ""
},
{
"name": "asset-hub-westend",
"package": "asset-hub-westend-runtime",
Expand Down Expand Up @@ -105,7 +96,6 @@ def test_bench_command_normal_execution_all_runtimes(self):
self.mock_popen.return_value.read.side_effect = [
"pallet_balances\npallet_staking\npallet_something\n", # Output for dev runtime
"pallet_balances\npallet_staking\npallet_something\n", # Output for westend runtime
"pallet_staking\npallet_something\n", # Output for rococo runtime - no pallet here
"pallet_balances\npallet_staking\npallet_something\n", # Output for asset-hub-westend runtime
"./substrate/frame/balances/Cargo.toml\n", # Mock manifest path for dev -> pallet_balances
]
Expand All @@ -119,7 +109,6 @@ def test_bench_command_normal_execution_all_runtimes(self):
# Build calls
call("forklift cargo build -q -p kitchensink-runtime --profile production --features=runtime-benchmarks"),
call("forklift cargo build -q -p westend-runtime --profile production --features=runtime-benchmarks"),
call("forklift cargo build -q -p rococo-runtime --profile production --features=runtime-benchmarks"),
call("forklift cargo build -q -p asset-hub-westend-runtime --profile production --features=runtime-benchmarks"),

call(get_mock_bench_output(
Expand All @@ -137,7 +126,6 @@ def test_bench_command_normal_execution_all_runtimes(self):
header=os.path.abspath('polkadot/file_header.txt'),
bench_flags='--flag3 --flag4'
)),
# skips rococo benchmark
call(get_mock_bench_output(
runtime='asset-hub-westend',
pallets='pallet_balances',
Expand Down Expand Up @@ -230,7 +218,7 @@ def test_bench_command_normal_execution_xcm(self):
def test_bench_command_two_runtimes_two_pallets(self):
self.mock_parse_args.return_value = (argparse.Namespace(
command='bench-omni',
runtime=['westend', 'rococo'],
runtime=['westend'],
pallet=['pallet_balances', 'pallet_staking'],
fail_fast=True,
quiet=False,
Expand All @@ -239,7 +227,6 @@ def test_bench_command_two_runtimes_two_pallets(self):
), [])
self.mock_popen.return_value.read.side_effect = [
"pallet_staking\npallet_balances\n", # Output for westend runtime
"pallet_staking\npallet_balances\n", # Output for rococo runtime
]

with patch('sys.exit') as mock_exit:
Expand All @@ -251,7 +238,6 @@ def test_bench_command_two_runtimes_two_pallets(self):
expected_calls = [
# Build calls
call("forklift cargo build -q -p westend-runtime --profile production --features=runtime-benchmarks"),
call("forklift cargo build -q -p rococo-runtime --profile production --features=runtime-benchmarks"),
# Westend runtime calls
call(get_mock_bench_output(
runtime='westend',
Expand All @@ -267,21 +253,6 @@ def test_bench_command_two_runtimes_two_pallets(self):
header=header_path,
bench_flags='--flag3 --flag4'
)),
# Rococo runtime calls
call(get_mock_bench_output(
runtime='rococo',
pallets='pallet_staking',
output_path='./polkadot/runtime/rococo/src/weights',
header=header_path,
bench_flags=''
)),
call(get_mock_bench_output(
runtime='rococo',
pallets='pallet_balances',
output_path='./polkadot/runtime/rococo/src/weights',
header=header_path,
bench_flags=''
)),
]
self.mock_system.assert_has_calls(expected_calls, any_order=True)

Expand Down
Loading
Loading