Files
pezkuwi-sdk/.claude/WORKFLOW_PLAN.md
T
pezkuwichain cf23fed9c5 fix(ci): remove wasm32v1-none target to fix serde_core compilation (#346)
* docs: update workflow plan with completed CI fixes

* fix(ci): remove wasm32v1-none target installation to fix serde_core compilation

This removes the explicit `rustup target add wasm32v1-none` step from CI
workflows. When wasm32v1-none is installed, the wasm-builder uses it instead
of wasm32-unknown-unknown, which causes serde_core 1.0.228 to fail compilation
with "relaxing a default bound only does something for ?Sized" errors.

By not installing wasm32v1-none, the wasm-builder automatically falls back to
wasm32-unknown-unknown which compiles successfully.

This aligns with Polkadot SDK's CI configuration which also does not explicitly
install wasm32v1-none.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 09:41:10 +03:00

283 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pezkuwi SDK - CI Workflow Mühendislik Planı
> **KURAL:** Bu dosyadaki komutları birebir çalıştır. Kendi komutunu uydurma.
## Lokal Test Durumu (development branch)
| Durum | Sayı |
|-------|------|
| ✅ Lokal Geçti | 34 |
| ⏳ CI'da Test Edilecek | 8 |
| ❌ Başarısız | 0 |
---
## SON CI DÜZELTMELERİ (2025-12-26)
### PR #344 - solc version fix (MERGED)
- solc 0.8.30 pinlendi (revive uyumluluğu için)
### PR #345 - WASM build + macOS pip fix (MERGED)
**Düzeltilen hatalar:**
1. **macOS pip externally-managed-environment**: `--break-system-packages` flag eklendi
2. **WASM getrandom/duplicate lang item**: `rustup target add wasm32v1-none` eklendi
**Güncellenen workflow dosyaları:**
- tests-misc.yml (macOS pip + wasm32v1-none)
- tests.yml (wasm32v1-none)
- tests-linux-stable.yml (wasm32v1-none)
- build-publish-images.yml (wasm32v1-none)
- check-pezframe-omni-bencher.yml (wasm32v1-none)
---
## FAZ 1: Başarısız Workflow'lar (10 workflow, ~30 job)
### 1.1 quick-checks.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `check-toml-format` | ✅ | `taplo format --check --config .config/taplo.toml` |
| `check-markdown` | ✅ | `markdownlint --config .github/.markdownlint.yaml --ignore target --ignore vendor .` |
| `fmt` | ✅ | `cargo fmt --all -- --check` |
| `check-zepter` | ✅ | `zepter run check` |
| `check-workspace` | ✅ | `python3 .github/scripts/check-workspace.py .` |
| `check-dependency-rules` | ✅ | `python3 .github/scripts/deny-git-deps.py .` |
| `check-umbrella` | ✅ | `python3 scripts/generate-umbrella.py --check` |
| `test-rust-features` | ✅ | `.gitlab/rust-features.sh .` |
| `check-fail-ci` | ✅ | `! grep -r "FAIL-CI" --include="*.rs" . --exclude-dir=target` |
| `check-readme` | ✅ | `.github/scripts/check-missing-readme-generation.sh` |
**Düzeltme:**
```bash
# TOML format düzelt
taplo format --config .config/taplo.toml
# Markdown düzelt
markdownlint --config .github/.markdownlint.yaml --ignore target --ignore vendor . --fix
```
---
### 1.2 checks.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `cargo-clippy` | ✅ | `RUSTFLAGS="-D warnings" SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet` |
| `check-try-runtime` | ✅ | Aşağıdaki 3 komut sırayla çalıştırılmalı |
| `check-core-crypto-features` | ✅ | Aşağıdaki 3 script çalıştırılmalı |
**check-try-runtime komutları:**
```bash
cargo check --locked --all --features try-runtime --quiet
cargo check --locked -p teyrchain-template-node --features try-runtime
cargo check --locked --all --features try-runtime,experimental --quiet
```
**check-core-crypto-features komutları:**
```bash
./bizinikiwi/primitives/core/check-features-variants.sh
./bizinikiwi/primitives/application-crypto/check-features-variants.sh
./bizinikiwi/primitives/keyring/check-features-variants.sh
```
---
### 1.3 docs.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `test-doc` | ✅ | `cargo test --doc --workspace --locked --all-features` (ss58-registry rebrand düzeltildi, DefensiveMin/Max debug modda geçiyor) |
| `build-rustdoc` | ✅ | `SKIP_WASM_BUILD=1 cargo doc --workspace --all-features --no-deps` |
---
### 1.4 tests.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `cargo-check-all-benches` | ✅ | `SKIP_WASM_BUILD=1 cargo check --workspace --benches --features runtime-benchmarks --quiet` |
| `test-syscalls` | ⏳ | CI-specific (syscall binary testi, lokal test edilemez) |
| `quick-benchmarks` | ✅ | `cargo run --release -p pezstaging-node-cli --bin bizinikiwi-node --features runtime-benchmarks -- benchmark pezpallet --chain dev --pezpallet "*" --extrinsic "*" --steps 2 --repeat 1` |
---
### 1.5 tests-linux-stable.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `test-linux-stable` | ⏳ | `cargo nextest run --workspace --locked --release --features try-runtime,experimental,ci-only-tests` (CI'da çalışacak) |
| `test-linux-stable-int` | ⏳ | `cargo test -p pezstaging-node-cli --release --locked -- --ignored` (CI'da çalışacak) |
| `test-linux-stable-no-try-runtime` | ⏳ | `cargo nextest run --workspace --locked --release --features experimental,ci-only-tests` (CI'da çalışacak) |
| `test-linux-stable-runtime-benchmarks` | ⏳ | `cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet` (CI'da çalışacak) |
---
### 1.6 tests-misc.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `test-node-metrics` | ✅ | `cargo test --profile testnet --locked --features=runtime-metrics -p pezkuwi-node-metrics` |
| `test-pezframe-ui` | ✅ | Aşağıdaki 6 komut çalıştırılmalı (179 stderr dosyası güncellendi) |
| `cargo-check-each-crate` | ⏳ | `python3 .github/scripts/check-each-crate.py 1 7` (606 crate, 7 paralel grup, CI'da çalışacak) |
| `cargo-check-all-crate-macos` | ⏳ | macOS runner gerekli (CI'da çalışacak) |
| `test-deterministic-wasm` | ✅ | `cargo build -q --locked --release -p zagros-runtime -p pezkuwichain-runtime` (2x + checksum, deterministik doğrulandı) |
| `check-tracing` | ✅ | `cargo test --locked --manifest-path ./bizinikiwi/primitives/tracing/Cargo.toml` |
**test-pezframe-ui komutları:**
```bash
cargo test --locked -q --profile testnet -p pezframe-support-test --features=frame-feature-testing,no-metadata-docs,try-runtime,experimental ui
cargo test --locked -q --profile testnet -p pezframe-support-test --features=frame-feature-testing,frame-feature-testing-2,no-metadata-docs,try-runtime,experimental ui
cargo test --locked -q --profile testnet -p xcm-pez-procedural ui
cargo test --locked -q --profile testnet -p pezframe-election-provider-solution-type ui
cargo test --locked -q --profile testnet -p pezsp-api-test ui
cargo test --locked -q --profile testnet --manifest-path bizinikiwi/primitives/runtime-interface/Cargo.toml ui
```
---
### 1.7 tests-evm.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `evm-test-suite (test:pvm)` | ✅ | Binary'ler derlendi: `cargo build --release -p pezpallet-revive-eth-rpc -p pez-revive-dev-node` |
| `differential-tests` | ✅ | Binary'ler derlendi, resolc GitHub releases'ten indirilir |
---
### 1.8 build-misc.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `build-runtimes-polkavm` | ✅ | `BIZINIKIWI_RUNTIME_TARGET=riscv cargo check -p pez-minimal-template-runtime -p zagros-runtime -p pezkuwichain-runtime -p pezkuwi-test-runtime` |
| `check-revive-stable-uapi-polkavm` | ✅ | `cargo +nightly check -p pezpallet-revive-uapi --no-default-features --target riscv64imac-unknown-none-elf -Zbuild-std=core` |
| `build-pez-subkey` | ✅ | `cd bizinikiwi/bin/utils/pez-subkey && SKIP_WASM_BUILD=1 cargo build --locked --release` |
---
### 1.9 build-publish-images.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| `build-linux-stable` | ✅ | `cargo build --locked --release -p pezkuwi` |
| `build-linux-stable-pezcumulus` | ✅ | `cargo build --locked --release -p pezkuwi-teyrchain-bin` |
| `build-linux-bizinikiwi` | ✅ | `cargo build --locked --release -p pezstaging-node-cli` |
| `build-templates-node` | ✅ | `cargo build --locked --release -p teyrchain-template-node` |
| `build-malus` | ✅ | `cargo build --locked --release -p pezkuwi-test-malus` |
| `build-test-collators` | ✅ | `cargo build --locked --release -p test-teyrchain-adder-collator -p test-teyrchain-undying-collator` |
| `prepare-bridges-zombienet-artifacts` | ✅ | `cargo build --profile testnet -p pezkuwi-test-malus --bin malus --bin pezkuwi-prepare-worker --bin pezkuwi-execute-worker` |
| `build-push-image-test-teyrchain` | ⏳ | Docker image build (CI'da çalışacak) |
---
### 1.10 check-getting-started.yml
| Job | Durum | Lokal Test Komutu |
|-----|-------|-------------------|
| Tüm distro testleri | ✅ | Template repo'ları mevcut, script doğru |
**Template Repo'ları (GitHub'da mevcut):**
-`github.com/pezkuwichain/pezkuwi-sdk-minimal-template`
-`github.com/pezkuwichain/pezkuwi-sdk-solochain-template`
-`github.com/pezkuwichain/pezkuwi-sdk-teyrchain-template`
-`github.com/pezkuwichain/pezkuwi-runtime-templates`
---
## FAZ 2: Düzeltme Sırası
```
AŞAMA 1 - Kritik (PR merge için ZORUNLU):
├── quick-checks.yml
│ ├── taplo format --config .config/taplo.toml
│ └── markdownlint --fix
└── checks.yml
├── cargo clippy düzeltmeleri
└── try-runtime feature düzeltmeleri
AŞAMA 2 - Derleme Hataları:
├── build-publish-images.yml binary build'ler
├── build-misc.yml PolkaVM build
└── tests.yml benchmark compile
AŞAMA 3 - Test Hataları:
├── tests-linux-stable.yml unit/integration tests
├── tests-misc.yml çeşitli testler
└── docs.yml doc tests
AŞAMA 4 - EVM/PolkaVM:
├── tests-evm.yml PolkaVM toolchain
└── resolc compiler kurulumu
```
---
## Tamamlanan Düzeltmeler
| Tarih | Düzeltme | Etki |
|-------|----------|------|
| 2025-12-25 | check-revive-stable-uapi-polkavm: nightly + -Zbuild-std=core ile geçti | check-revive-stable-uapi-polkavm |
| 2025-12-25 | test-deterministic-wasm: zagros-runtime, pezkuwichain-runtime deterministik build doğrulandı | test-deterministic-wasm |
| 2025-12-25 | PolkaVM runtime build: pez-minimal-template-runtime BIZINIKIWI_RUNTIME_TARGET=riscv | build-runtimes-polkavm |
| 2025-12-25 | ss58-registry doc tests: pezkuwi_ss58_registry import, TokenRegistry::Hez | test-doc |
| 2025-12-25 | Rustdoc link düzeltmeleri: zombienet-sdk, subxt, ss58-registry, pezframe-support, pezpallet-presale, revive README | build-rustdoc |
| 2025-12-25 | CLI argüman rebrand: --pallet → --pezpallet, benchmark pallet → benchmark pezpallet | quick-benchmarks, scripts |
| 2025-12-25 | pezpallet-welati EnsureOrigin try_successful_origin düzeltmeleri (3 fix) | pezkuwi-teyrchain-bin build |
| 2025-12-25 | asset-hub-zagros governance origins macro düzeltmeleri (2 macro) | pezkuwi-teyrchain-bin build |
| 2025-12-25 | Binary build'ler test edildi: pezkuwi, pezkuwi-teyrchain-bin, pezstaging-node-cli, teyrchain-template-node | build-publish-images |
| 2025-12-24 | Bench check'e --features runtime-benchmarks eklendi, yanlış exclusion'lar kaldırıldı | cargo-check-all-benches |
| 2024-12-24 | Workflow'larda pezstaging-node-cli paket adı düzeltildi | build-publish-images, tests |
| 2024-12-24 | Umbrella node feature'ına subxt native propagation eklendi | check-try-runtime |
| 2024-12-24 | Vendor crate rebrand düzeltmeleri (sp_* -> pezsp_*) | cargo-clippy |
| 2024-12-24 | Subxt examples artifact paths düzeltildi | cargo-clippy |
| 2024-12-24 | Subxt examples type conversion düzeltmeleri | cargo-clippy |
| 2024-12-24 | Zombienet-sdk test type düzeltmeleri | cargo-clippy |
| 2024-12-24 | TOML format düzeltildi (umbrella/Cargo.toml) | check-toml-format |
| 2024-12-23 | Umbrella'ya pezpallet-root-testing eklendi | check-try-runtime |
| 2024-12-23 | Umbrella'ya pezpallet-xcm-benchmarks eklendi | Runtime build |
| 2024-12-23 | Subxt runtime-full'dan çıkarıldı | getrandom WASM fix |
| 2024-12-23 | Template URL'leri düzeltildi | check-getting-started |
| 2024-12-22 | rustfmt.toml stable-only | fmt job |
| 2024-12-22 | Zepter feature propagation | check-zepter |
| 2025-12-26 | solc 0.8.30 pinlendi (PR #344) | tests-evm, tests-misc |
| 2025-12-26 | macOS pip --break-system-packages (PR #345) | cargo-check-all-crate-macos |
| 2025-12-26 | wasm32v1-none target kurulumu (PR #345) | quick-benchmarks, test-linux-stable-int, test-linux-stable-runtime-benchmarks, test-deterministic-wasm, build-linux-stable, build-linux-bizinikiwi |
---
## Şu An Yapılması Gereken
1.`taplo format --config .config/taplo.toml` - TAMAMLANDI
2.`cargo clippy` düzeltmeleri - TAMAMLANDI
3.`check-try-runtime` komutları - TAMAMLANDI (subxt native feature propagation eklendi)
4.`cargo-check-all-benches` - TAMAMLANDI (--features runtime-benchmarks eklendi)
5. ✅ Build-publish-images temel binary'ler - TAMAMLANDI
- ✅ pezkuwi
- ✅ pezkuwi-teyrchain-bin
- ✅ pezstaging-node-cli
- ✅ teyrchain-template-node
- ✅ pezkuwi-test-malus
- ✅ test-teyrchain-adder-collator
- ✅ test-teyrchain-undying-collator
6. ✅ Template repo'ları - MEVCUT (GitHub'da kontrol edildi)
7. ✅ Kalan binary build'leri - TAMAMLANDI
8. ✅ Commit ve push yap - TAMAMLANDI (PR #344, PR #345)
9. ⏳ CI'da test et - PR #345 merge edildi, CI çalışıyor
10. ⏳ Tüm workflow'lar yeşil olduktan sonra → crates.io publish
---
*Son Güncelleme: 2025-12-26*
---
## GELECEK: Crate Publish Aşaması
### TODO : polkavm → pezkavm Rebrand
`polkavm-linker` external crate olduğu için (crates.io), rebrand için fork gerekli:
- polkavm → pezkavm olarak fork edilecek
- `polkavm_linker::target_json_path``pezkavm_linker::target_json_path`
- wasm-builder ve revive fixtures güncellenecek
- Tüm işler bitip crate publish aşamasına geçildiğinde yapılacak