arrayvec 0.7.6 fails to compile on wasm32v1-none (Rust 1.87+):
- E0223: Self::Target/Self::IntoIter ambiguous due to Receiver trait
- char.rs: Ok/Err/Result not in scope (prelude not injected on target_os=none)
Fork at git.pezkuwichain.io/pezkuwichain/arrayvec fixes both issues.
The wasm-builder creates an inner workspace (wbuild/) without a Cargo.lock,
causing it to resolve to latest alloy-eips 1.8.3 (requires Rust 1.91) and
ruint 1.18.0 (requires Rust 1.90). Pin to the same exact versions already
in Cargo.lock (alloy-eips/alloy-tx-macros =1.5.2, ruint =1.17.2).
- Add tags: [pezkuwi-runner] to .test-base, wasm-check, test-doc
- Set CARGO_TARGET_DIR to /var/cache/cargo-target/<hash>/<job-name> on VPS2
- Hash is md5(Cargo.lock + rust-toolchain.toml) — auto-deletes old keys
- Set CARGO_HOME: /root/.cargo (persistent volume, skip GitLab cache upload)
- Disable GitLab registry cache for self-hosted jobs (cache: [])
- Fix basic-authorship doc test: mark as no_run (requires compiled WASM at runtime)
wasm32-unknown-unknown with build-std=core,alloc on Rust >=1.88 now ships
a pre-built std in the sysroot, causing E0152 duplicate core lang items when
serde_core is compiled. Switching to wasm32v1-none (target_os=none, no sysroot
std) eliminates the conflict. Also fixes wasm-check getrandom compile_error
which only triggers on wasm*-unknown-unknown, not wasm32v1-none.
target-main cache key doesn't invalidate on Cargo.lock changes, so
pre-fix serde_core compiled artifacts were restored into test builds,
reintroducing duplicate alloc lang items after the serde fork fix.
clippy runs with --all-features (includes runtime-benchmarks) so the
#[cfg(not(feature = "runtime-benchmarks"))] block is excluded and the
imports appeared unused. check-try-runtime runs without runtime-benchmarks
so the block is included and the imports are required.
EnsureRoot::Success = () but presale pallet requires Success = AccountId.
Switch to EnsureSigned<AccountId> so the transaction signer becomes
the presale owner — consistent with mock.rs and pallet semantics.
check-zepter: CARGO_HOME=$CI_PROJECT_DIR/.cargo but export used $HOME/.cargo/bin;
switched to $CARGO_HOME/bin so installed zepter 1.82.1 takes precedence.
cargo-audit: set -o pipefail caused the pipe to fail with cargo-audit's exit
code (1 when vulns exist) even when python check passed; redirect to file first.
taplo.toml and deny.toml were using 2-space indent; taplo requires tabs.
check-workspace.py now skips .cargo the same way it skips target/ —
prevents 1000+ registry crates from being flagged as missing from workspace
when GitLab cache restores .cargo into the project directory.
- deny.toml: add all-features=true to [graph] — prevents krates 0.20+ panic
on workspace crates that have std feature but don't enable it by default
- deny.toml: allow pezkuwichain/serde.git in [sources] (our wasm32v1-none fork)
- deny.toml: remove stale RUSTSEC ignores (2023-0071, 2024-0428, 2025-0055)
- deny.toml: add new wasmtime/rand/webpki advisories to ignore list
- ci: remove --exclude flag from cargo-deny jobs (flag removed in new versions)
- ci: rewrite cargo-audit to use JSON + python summary (prevents 4MB log overflow)
and add all current advisories to ignore set with documented rationale
- ci: fix check-zepter to use --force (not --locked) so 1.82.1 actually installs
- Cargo.toml: add default=[std] to bizinikiwi-test-runtime-transaction-pool
(std crate that was missing default feature, confusing krates graph builder)
- Remove stale root files: chain_spec.json, pezkuwi.gbp, publish.log,
test-asset-hub.toml (moved to .claude/)
- Move publish_batch.sh and publish_crates.sh to scripts/
- Remove hardcoded /home/mamostehp/res/ paths from scripts and comments
(WALLETS_FILE env var now required, no silent fallback)
- Update .gitignore: add protection entries for regenerable artifacts
and .claude/ experience files
- Add LICENSE-APACHE (Apache License 2.0 full text)
- Add LICENSE-GPL3 (GNU GPL 3.0 full text)
- Add NOTICE file with full attribution to original Polkadot SDK,
Parity Technologies (UK) Ltd., and Web3 Foundation, documenting
all significant changes made as required by Apache-2.0 Section 4(b)
- Update README License section to accurately reflect dual licensing
and link to NOTICE file
Re-add RUSTSEC-2023-0071 (rsa) and RUSTSEC-2025-0055 (tracing-subscriber)
which were incorrectly removed — they are still in transitive deps.
Add new advisories:
- RUSTSEC-2026-0067 (tar symlink traversal) — no 0.4.x patch available
- RUSTSEC-2026-0068 (tar link following) — no 0.4.x patch available
- Fix refund_cancelled_presale benchmark: add missing start_index and
batch_size arguments (0, 100) to match the 3-param extrinsic signature
- Remove 3 stale RUSTSEC advisories from deny.toml and security-audit.yml
(RUSTSEC-2023-0071, RUSTSEC-2025-0055, RUSTSEC-2026-0002 no longer in deps)
- Add RUSTSEC-2026-0049 (rustls-webpki) to ignore lists (upstream kube/jsonrpsee
haven't released compatible versions yet)