- Fixed is_using_frame_crate() macro to check for pezframe/pezkuwi_sdk - Removed disable_pezframe_system_supertrait_check temporary bypasses - Feature-gated storage-benchmark and teyrchain-benchmarks code - Fixed dead_code warnings with underscore prefix (_Header) - Removed unused imports and shadowing use statements - Version bumps: procedural-tools 10.0.1, benchmarking-cli 32.0.1, docs 0.0.2, minimal-runtime 0.0.1, yet-another-teyrchain 0.6.1, umbrella 0.1.2 - Updated MAINNET_ROADMAP.md with FAZ 1 completion status
23 KiB
Claude Kuralları - Pezkuwi SDK
Bu dosya her oturumda Claude tarafından okunmalı ve kurallara kesinlikle uyulmalıdır.
ANA HEDEF
Rebrand edilmiş Pezkuwi SDK projesinin cargo check komutundan Finished çıktısı alması.
Bu hedef iki parçadan oluşur:
- Rebrand tamamlanmış olmalı (tüm eski terimler yeni terimlerle değiştirilmiş)
- Proje derlenebilir durumda olmalı (cargo check Finished)
HER İKİ KOŞUL DA SAĞLANMALI. BİRİ DİĞERİ İÇİN FEDAKARİLİK EDİLEMEZ.
DEĞİŞMEZ KURALLAR - ASLA YAPMA
1. Rebrand'i Geri Alma Yasağı
- ASLA rebrand edilmiş kodu eski haline döndürme
- ASLA cargo check hataları için isim değişikliklerini geri alma
- ASLA "çalışsın diye" terminolojiyi bozma
- ASLA pezkuwi → polkadot, bizinikiwi → substrate gibi geri dönüşüm yapma
2. Terminoloji Koruma
Aşağıdaki dönüşümler kalıcıdır ve geri alınamaz:
| Eski (KULLANMA) | Yeni (KULLAN) |
|---|---|
| polkadot | pezkuwi |
| Polkadot | Pezkuwi |
| substrate | bizinikiwi |
| Substrate | Bizinikiwi |
| cumulus | pezcumulus |
| Cumulus | Pezcumulus |
| westend | zagros |
| Westend | Zagros |
| rococo | pezkuwichain |
| Rococo | Pezkuwichain |
| parachain | teyrchain |
| Parachain | Teyrchain |
| paritytech | pezkuwichain |
| frame- | pezframe- |
| pallet- | pezpallet- |
| sp- | pezsp- |
| sc- | pezsc- |
3. Hata Çözme Yaklaşımı
Cargo check hatası aldığında:
- DOĞRU: Hatayı rebrand'e uygun şekilde düzelt (yeni terminoloji kullan)
- YANLIŞ: Rebrand'i geri alarak hatayı "çöz"
Örnek:
Hata: pezsp_runtime bulunamadı
DOĞRU: pezsp_runtime modülünü/import'unu düzelt
YANLIŞ: sp_runtime'a geri dön
BRUTAL HONESTY & STRATEGIC DEPTH
Stop being conciliatory and act as my ruthlessly honest, top-tier advisor and mirror.
- Do NOT validate me, soften the truth, or engage in flattery
- Challenge my thinking, question my assumptions, and expose the blind spots I'm avoiding
- Be direct, logical, and unfiltered
- If my reasoning is weak, dissect it and show me why
- If I'm deceiving myself or lying to myself, call it out
- If I'm avoiding something uncomfortable or wasting time, point it out and explain the opportunity cost
- Look at my situation with complete objectivity and strategic depth
- Show me where I'm making excuses, playing small, or underestimating risks/effort
- Then give me a precise, scalable plan on what to change in thought, action, or mindset to reach the next level
- Hold nothing back. Treat me as someone whose growth depends on hearing the truth, not finding comfort
GOAL ACHIEVEMENT PRINCIPLE:
When pursuing a goal, do NOT bypass problems with quick workarounds - solve them genuinely and permanently.
Example: If the goal is to get Finished output from cargo check --workspace --features runtime-benchmarks and an error X occurs in the terminal, success is only achieved by applying a real, permanent fix to that error - NOT by cleverly bypassing it to get the Finished output.
ÇALIŞMA PRENSİPLERİ
1. Checkpoint Sistemi
- Her büyük işlemden önce git commit yap
- Her hata düzeltmesinde "ne yaptım" raporu ver
- Geri dönüşü olmayan değişiklikler için onay iste
2. Audit Trail
- Değişiklik yapılan dosyaları listele
- Her oturum sonunda özet rapor sun
3. Şeffaflık
- Yapılan her değişikliği kullanıcıya bildir
- Varsayımda bulunma, sor
- Kısayol arama, doğru yolu izle
YASAK DAVRANIŞLAR
- Kullanıcının talimatı olmadan rebrand'i geri alma
- "Derleme için gerekli" bahanesiyle terminolojiyi bozma
- Uzun süren hatalar için "kolay çözüm" olarak geri dönüş yapma
- Commit mesajına Claude imzası ekleme
- Test etmeden commit/push yapma
HATA DURUMUNDA
Eğer cargo check 100+ hata veriyorsa:
- Panik yapma
- Hataları kategorize et
- Sistematik olarak düzelt (rebrand'e uygun)
- Her 10-20 hata düzeltmesinde ara commit yap
- İlerlemeyi kullanıcıya bildir
ASLA "çok fazla hata var, rebrand'i geri alayım" deme.
REFERANS: REBRAND_MAP
Tam crate isim değişiklikleri için /home/mamostehp/pezkuwi-sdk/REBRAND_PROGRESS.md dosyasına bak.
Terminoloji kılavuzu için .claude/TERMINOLOGY.md dosyasına bak.
Bu kurallar Kurdistan Tech Institute tarafından belirlenmiştir ve kesinlikle uyulmalıdır.
*eskiden kalan ve baska bir dosyaya yazdigin kurallar
Claude Code Kuralları - Pezkuwi SDK
🚨 GITHUB ACTIONS KURALI - KESİNLİKLE UYULMALI
Workflow hata verdiğinde veya değişiklik yapılacağında:
- ÖNCE tüm mevcut workflow run'larını iptal et (
gh run cancel) - SONRA hepsini sil (
gh run delete) - EN SON tek bir commit/push ile temiz başlat
ASLA eski workflow'ların üzerine yeni workflow bırakma! ASLA kuyrukta onlarca workflow biriktirme!
# Temizlik komutu (her zaman önce bunu çalıştır):
gh run list --limit 100 --json databaseId,status | jq -r '.[] | select(.status == "queued" or .status == "in_progress" or .status == "pending") | .databaseId' | xargs -I{} gh run cancel {} 2>/dev/null
sleep 5
gh run list --limit 100 --json databaseId -q '.[].databaseId' | xargs -I{} gh run delete {} 2>/dev/null
⚠️ PEZKUWI SDK TERMİNOLOJİSİ - KRİTİK
ASLA POLKADOT SDK TERİMLERİ KULLANMA! Bu bağımsız bir blockchain projesi.
Doğru Terminoloji Tablosu:
| YANLIŞ (Polkadot SDK) | DOĞRU (Pezkuwi SDK) |
|---|---|
| parachain | teyrchain |
| rococo | pezkuwichain |
| westend | zagros |
| kusama | zagros |
| polkadot | pezkuwichain |
[[parachains]] |
[[teyrchains]] |
[[parachains.collators]] |
[[teyrchains.collators]] |
-lparachain=debug |
-lteyrchain=debug |
parachain=debug |
teyrchain=debug |
🔄 CRATE REBRAND KURALLARI (76 Crate)
Prefix Dönüşümleri:
| Polkadot SDK Prefix | Pezkuwi SDK Prefix | Örnek |
|---|---|---|
sp- |
pezsp- |
sp-core → pezsp-core |
sc- |
pezsc- |
sc-client → pezsc-client |
frame- |
pezframe- |
frame-support → pezframe-support |
pezpallet- |
pezpallet- |
pezpallet-balances → pezpallet-balances |
cumulus- |
pezcumulus- |
cumulus-client → pezcumulus-client |
bridge-hub- |
pezbridge-hub- |
bridge-hub-runtime → pezbridge-hub-runtime |
bridge-runtime- |
pezbridge-runtime- |
bridge-runtime-common → pezbridge-runtime-common |
mmr- |
pezmmr- |
mmr-gadget → pezmmr-gadget |
snowbridge- |
pezsnowbridge- |
snowbridge-core → pezsnowbridge-core |
snowbridge-pezpallet- Dönüşümü:*
snowbridge-pezpallet-* → pezsnowbridge-pezpallet-*
Örnek: snowbridge-pezpallet-ethereum-client → pezsnowbridge-pezpallet-ethereum-client
Özel Dönüşümler:
| Polkadot SDK | Pezkuwi SDK |
|---|---|
bp-runtime |
pezbp-runtime |
bp-header-chain |
bp-header-pez-chain |
asset-test-utils |
asset-test-pezutils |
test-runtime-constants |
peztest-runtime-constants |
xcm-docs |
xcm-pez-docs |
xcm-emulator |
xcm-pez-emulator |
xcm-procedural |
xcm-pez-procedural |
xcm-runtime-apis |
xcm-runtime-pezapis |
xcm-simulator |
xcm-pez-simulator |
Genel pez- Prefix Eklenen Crate'ler:
| Polkadot SDK | Pezkuwi SDK |
|---|---|
| fork-tree | pez-fork-tree |
| subkey | pez-subkey |
| generate-bags | pez-generate-bags |
| kitchensink-runtime | pez-kitchensink-runtime |
| minimal-template-node | pez-minimal-template-node |
| minimal-template-runtime | pez-minimal-template-runtime |
| node-bench | pez-node-bench |
| node-primitives | pez-node-primitives |
| node-rpc | pez-node-rpc |
| node-testing | pez-node-testing |
| solochain-template-node | pez-solochain-template-node |
| solochain-template-runtime | pez-solochain-template-runtime |
| tracing-gum | pez-tracing-gum |
| tracing-gum-proc-macro | pez-tracing-gum-proc-macro |
| equivocation-detector | pez-equivocation-detector |
| finality-relay | pez-finality-relay |
| messages-relay | pez-messages-relay |
| slot-range-helper | pez-slot-range-helper |
| penpal-emulated-chain | pez-penpal-emulated-chain |
| penpal-runtime | pez-penpal-runtime |
Dosya İsimlendirme Kuralı:
- Cargo.toml
namealanı rebrand edilmeli - Rust dosya isimleri mod bildirimleriyle eşleşmeli
- Örnek:
mod pezsnowbridge_pezpallet_system;→ dosyapezsnowbridge_pezpallet_system.rsolmalı
Token'lar:
- HEZ: Relay chain native token (200M genesis, inflationary)
- PEZ: Asset Hub governance token (5B sabit supply)
- TYR: Base unit (1 HEZ = 10^18 TYR)
System Teyrchains:
- Asset Hub Teyrchain: ID 1000
- People Chain Teyrchain: ID 1004
Zombienet Config Örneği (DOĞRU):
[relaychain]
default_args = ["-lteyrchain=debug"]
chain = "pezkuwichain-dev"
[[teyrchains]]
id = 1000
chain = "asset-hub-pezkuwichain-dev"
[[teyrchains.collators]]
args = ["-lteyrchain=debug"]
🎯 ANA HEDEF VE ÇALIŞMA PRENSİPLERİ
Hedef
Pezkuwi blockchain'i mainnet'e taşımak. Her test aşamasında (dev → local → alpha → beta → staging → mainnet) tüm bug/hataları kalıcı olarak çözmeden bir sonraki aşamaya GEÇİLMEZ.
Mevcut Aşama: DEV NETWORK
Başarı Kriterleri (hepsi sağlanmalı):
- 3 runtime çalışmalı (Relay Chain, Asset Hub, People Chain)
- Birbirini görmeli (peer discovery)
- Bloklar üretilmeli
- Finalized olmalı
- Alice hesabında genesis token'ları görülmeli (HEZ, PEZ)
Test Aşamaları Sırası
- DEV (1 validator - Alice) ← ŞU AN BURADAYIZ
- LOCAL (2 validator - Alice + Bob)
- ALPHA (4 validator)
- BETA (8 validator)
- STAGING (21 validator)
- MAINNET (100 validator)
Çalışma Prensibi
Her aşamada:
1. Planlanan testleri yap
2. Tüm testlerden başarılı sonuç al
3. Hata/bug varsa → düzelt → tekrar test et
4. Başarılı olunca → blockchain upgrade → sonraki aşama
ÖNEMLİ: Ekranda geçici başarı görmek yeterli DEĞİL. Kalıcı çözümler, tam testler, sonra ilerleme.
Dizin Kuralları
| Dizin | Kullanım |
|---|---|
/home/mamostehp/Pezkuwi-SDK |
Tüm işlemler burada yapılır (edit, commit, push) |
Ekran Görüntüleri
Kullanıcı "ekran" veya "ekrana bak" dediğinde:
/home/mamostehp/DKSweb_ekran/Screenshot.png
dosyasını oku.
Gemini ile Koordinasyon
Gemini mesaj gönderdiğinde veya "gemini mesaj" denildiğinde:
/home/mamostehp/Pezkuwi-SDK/.ai-coordination/messages.md
dosyasını oku. Diğer koordinasyon dosyaları:
claude-status.md- Claude'un mevcut durumugemini-status.md- Gemini'nin mevcut durumutask-board.md- Görev tablosu
Commit Kuralları
- Commit mesajlarına
🤖 Generated with [Claude Code]veCo-Authored-By: ClaudeEKLEME - Sadece düz commit mesajı yaz
Proje Bilgileri
- Proje: Pezkuwi SDK - Bağımsız blockchain projesi
- Teknoloji: Polkadot SDK fork'u (ama Polkadot DEĞİL, bağımsız)
- Ana branch:
main - GitHub:
pezkuwichain/pezkuwi-sdk - Discord:
https://discord.gg/Y3VyEC6h8W(Server: 1444335345935057049)
Önemli Notlar
paritytechreferanslarıpezkuwichainolmalıpolkadot-sdkreferanslarıpezkuwi-sdkolmalı- Kaliteyi düşüren "kolay çözümler" yerine doğru çözümü uygula
- Geride iş bırakma - kapsamlı da olsa tamamla
🔗 UPSTREAM ISSUE TRACKING SİSTEMİ
Polkadot SDK'daki issue'ları Pezkuwi SDK'ya nasıl taşıyoruz:
Mantık
Upstream Polkadot SDK'de TODO/issue referansları varsa, bunları tracking issue sistemi ile takip ediyoruz.
Adımlar
1. Upstream'de Kontrol Et:
# Örnek: pezkuwichain/pezkuwi-sdk/issues/133 için
grep -r "pezkuwichain/pezkuwi-sdk/issues/133" /home/mamostehp/polkadot-sdk-check/
2. Tracking Issue Oluştur:
gh issue create --repo pezkuwichain/pezkuwi-sdk --label "upstream-tracking" \
--title "[Upstream Tracking] paritytech/polkadot#2403" \
--body "**Upstream:** https://github.com/pezkuwichain/pezkuwi-sdk/issues/133
**Status Tracking:**
- [x] Pending - Upstream not yet resolved
- [ ] Resolved - Fix merged upstream
- [ ] Evaluated - Assessed if needed for PezkuwiChain
- [ ] Applied - Fix applied to our chain
- [ ] Closed - Upstream issue closed
- [ ] Skipped - Not relevant for us
**Last Check:** 2025-12-06
**Next Check:** 2026-01-06
**Notes:**
ValidatorIndex From<u32> trait implementation issue.
Periodically check upstream and update checkboxes above based on status changes."
3. Koddaki Linki Güncelle:
// ÖNCEKİ:
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/133
// SONRA (bizim tracking issue'ya işaret et):
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/163
Örnek Tamamlanmış Tracking Issue'lar
- #163 → paritytech/polkadot#2403 (ValidatorIndex)
- #164 → paritytech/polkadot#222 (CommittedCandidateReceipt Ord)
- #165 → paritytech/polkadot#7575 (ScheduledCore.collator DEPRECATED)
- #166 → paritytech/polkadot#6586 (SessionInfo frozen)
Neden Böyle Yapıyoruz?
- Broken link olmasın: Upstream issue linklerini kendi repo'muza çeviriyoruz
- Takip: Upstream'de issue çözüldü mü, bizde uygulamamız gerekiyor mu takip ediyoruz
- Workflow:
.github/workflows/upstream-issue-tracker.ymlhaftalık kontrol ediyor
✅ CI/CD QUICK-CHECKS DÜZELTMELERİ TAMAMLANDI
Son güncelleme: 2025-11-29
Tamamlanan İşler
-
check-workspace.py düzeltmesi ✅
polkadot-sdk→pezkuwi-sdkdeğiştirildi- Umbrella crate için hem
pathhemworkspace = truekabul ediliyor
-
Bridge crate workspace inheritance (16 crate) ✅
- Tüm bridge crate'leri
workspace = truekullanıyor
- Tüm bridge crate'leri
-
Markdown lint kuralları ✅
- MD004 (ul-style): Devre dışı - çok fazla legacy dosya
- MD013 (line-length): Devre dışı - URL'ler satırları uzatıyor
-
TOML format (taplo) ✅
.config/taplo.tomlpath'leripolkadot→pezkuwidüzeltildi- 435+ TOML dosyası formatlandı
-
Zepter check ✅
.config/zepter.yaml:-p=polkadot-sdk→-p=pezkuwi-sdkdüzeltildi- Feature propagation: 36+ issue fix edildi
- Duplicate deps:
pezpallet-identity-kycvepezpallet-tikidüzeltildi
-
Umbrella crate ✅
generate-umbrella.pyçalıştırıldıumbrella/Cargo.tomlveumbrella/src/lib.rsyeniden oluşturuldu
Değiştirilen Dosyalar (438 dosya)
- Config dosyaları:
.config/taplo.toml,.config/zepter.yaml,.github/.markdownlint.yaml - Script:
.github/scripts/check-workspace.py - Pezpallet Cargo.toml:
pezpallet-identity-kyc,pezpallet-tiki+ 12 özel pezpallet feature propagation - Tüm Cargo.toml dosyaları (taplo format)
- Umbrella crate dosyaları
Sonraki Adım
Commit atılıp push edilmeli - CI/CD artık geçmeli.
🧪 ZOMBIENET TEST ENVIRONMENT VARIABLES
Zombienet SDK test'leri için gerekli environment variable'lar:
Problem
zombienet_sdk::environment::get_images_from_env() fonksiyonu, test'lerde kullanılacak Docker image'larını environment variable'lardan alır. Pezkuwi SDK için bu variable'lar tanımlanmalı.
Çözüm
Lokal test için:
export ZOMBIENET_IMAGE_PEZKUWI="docker.io/pezkuwichain/pezkuwi:latest"
export ZOMBIENET_IMAGE_CUMULUS="docker.io/pezkuwichain/pezcumulus:latest"
cargo test --workspace --features runtime-benchmarks
CI/CD workflow'larına eklenecek:
Test yapan tüm workflow'lara (.github/workflows/tests*.yml) şu environment variable'lar eklenmelidir:
env:
ZOMBIENET_IMAGE_PEZKUWI: "docker.io/pezkuwichain/pezkuwi:latest"
ZOMBIENET_IMAGE_CUMULUS: "docker.io/pezkuwichain/pezcumulus:latest"
Not: Bu değişkenler compile-time'da image alanlarının doldurulması için gerekli. Gerçek image path'leri production'da güncellenebilir.
İlgili dosyalar:
bizinikiwi/client/transaction-pool/tests/zombienet/yap_test.rs:38- Tüm zombienet SDK test dosyaları
Tarih: 2025-12-09
🛑 SİSTEMATİK ÇALIŞMA KURALLARI - KRİTİK
Son güncelleme: 2025-12-13
Bu kurallar, tekrarlanan hatalardan öğrenilerek oluşturulmuştur. KESİNLİKLE uyulmalı.
1. ÇALIŞAN KODA DOKUNMA
"If it ain't broke, don't fix it"
- Çalışan workflow'lara, test geçen dosyalara gereksiz değişiklik yapma
- Bir şeyi "iyileştirmek" için çalışan kodu değiştirme
- Düzeltme yaparken sadece hatalı olan yere odaklan
2. TEK DEĞİŞİKLİK → TEK TEST
Her seferinde SADECE BİR değişiklik yap
→ Test et
→ Sonucu gör
→ Sonra diğerine geç
- Birden fazla değişikliği aynı anda yapmak = hangi değişikliğin hataya sebep olduğunu anlayamama
- Bir commit'te birden fazla bağımsız fix varsa, sorun çıktığında rollback zor
3. LOKAL TEST ÖNCE
Mümkünse önce lokal test et, sonra push et
cargo check --workspacecargo test -p <crate>cargo clippy --workspace
GitHub'a push edip sonucu beklemek = zaman kaybı + gereksiz workflow kuyruğu
4. GERİ DÖNÜŞ NOKTASI BELİRLE
Her başarılı durumda commit at ve işaretle
- "Bu çalışıyor" diye bilinen commit SHA'sını not al
- Sorun çıkarsa o commit'e dön, karmaşık düzeltmeler deneme
- Git history'si temiz tutulmalı
5. PANİK YAPMA
İlk hata geldiğinde:
1. DURMA
2. Hata mesajını OKU
3. Root cause analizi YAP
4. Sonra düzelt
- Hızlıca "düzeltme" yapmaya çalışmak = durumu daha da kötüleştirmek
- Bir düzeltme işe yaramazsa → geri al → farklı yaklaşım dene
- Aynı şeyi tekrar tekrar deneme
6. ROLLBACK > DEBUG
Düzeltme 2-3 denemede işe yaramazsa → ROLLBACK
- Çalışan versiyona geri dön
- Temiz bir başlangıç noktasından tekrar başla
- Sonsuz debug döngüsüne girme
Örnek Senaryo (YANLIŞ):
1. Clippy hatası var → düzelt
2. Düzeltme sırasında isdraft workflow'una dokundum (gereksiz)
3. isdraft patladı
4. isdraft'ı düzeltmeye çalıştım (5 farklı deneme)
5. Hepsi başarısız
6. Sonunda revert ettim
7. Zaman kaybı: 2 saat
Örnek Senaryo (DOĞRU):
1. Clippy hatası var → düzelt
2. Sadece clippy ile ilgili dosyalara dokun
3. Test et, push et
4. Başka bir şey patlarsa → o dosyalara bak
5. Çalışan koda dokunma
📋 OTURUM GEÇMİŞİ VE NOTLAR
Oturum: 2025-12-20 (Clippy Hatalarını Düzeltme)
Görev: Tüm GitHub Actions workflow'larının geçmesi için clippy hatalarını düzeltme
Tamamlanan Düzeltmeler:
-
referral/benchmarking.rs:
- Duplicated cfg attribute kaldırıldı
use crate::Pezpallet as Referral;benchmarks modülünün içine taşındı
-
referral/lib.rs:
- Deprecated RuntimeEvent → supertrait bound kullanıldı
Config: pezframe_system::Config<RuntimeEvent: From<Event<Self>>>
-
tiki/benchmarking.rs:
- Unused
use alloc::vec;kaldırıldı - Multiple bound locations düzeltildi (T bounds birleştirildi)
- Clone on Copy types düzeltildi (
.clone()→ kopyalama)
- Unused
-
tiki/lib.rs:
- Deprecated RuntimeEvent → supertrait bound kullanıldı
-
presale/lib.rs (bekleyen):
- try_into() → into() dönüşümleri (7 adet)
- too_many_arguments (macro-generated, #[allow] gerekebilir)
Kalan Hatalar (clippy output'tan):
pezpallet-presale: unnecessary_fallible_conversions (7 adet)pezpallet-tiki: bazı clone_on_copy kalmış olabilirpezcumulus-zombienet-sdk-tests: unnecessary parenthesespez-solochain-template-runtime: bir hata varpezpallet-revive-eth-rpc: field never read
Sonraki Claude İçin Talimat:
- Bu dosyayı
/home/mamostehp/pezkuwi-sdk/.claude/CLAUDE_RULES.mdadresinden oku RUSTFLAGS="-D warnings" SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quietçalıştır- Kalan hataları düzelt
- Commit ve push yap
- GitHub Actions'ın geçtiğini doğrula
🖥️ VPS RUNNER INFRASTRUCTURE
Son güncelleme: 2025-12-27
Self-Hosted Runners
| VPS | IP Address | SSH | Runner Label |
|---|---|---|---|
| VPS1 | 37.60.230.9 | ssh root@37.60.230.9 |
ubuntu-large |
| VPS2 | 62.146.235.186 | ssh root@62.146.235.186 |
ubuntu-xlarge |
Her iki runner paralel çalışır. Workflow'lar kuyrukta uzun bekliyorsa her iki VPS'in de aktif olduğunu kontrol et.
⚠️ ÖĞRENILEN DERSLER
serde_core + wasm32v1-none Uyumsuzluğu (2025-12-27)
Problem: serde_core 1.0.228 + Rust 1.88.0 + wasm32v1-none target kombinasyonu derleme hatası veriyor.
Hata:
error: relaxing a default bound only does something for ?Sized
Çözüm: CI'da rustup target add wasm32v1-none adımını kaldır. wasm-builder otomatik olarak wasm32v1-none'dan wasm32-unknown-unknown'a fallback yapar.
Upstream Issue: https://github.com/serde-rs/serde/issues/3021
Kural: Eğer bir dependency'de bug varsa:
- Geçici workaround uygula (wasm32v1-none kaldır)
- Upstream'e issue aç
- Tracking issue oluştur (
.claude/issue_mapping.txt) - Kalıcı fix için upstream'i takip et
🔧 DEVAM EDEN GÖREV: pezpallet-revive-eth-rpc DERLEME
Son güncelleme: 2025-12-19 14:50 UTC
Mevcut Durum
pezpallet-revive-eth-rpc crate'i compile edilemiyor. İlerleme kaydedildi ama henüz tamamlanmadı.
TAMAMLANAN ADIMLAR ✅
- ✅
pez-revive-dev-nodebaşarıyla derlendi - ✅ Dev node çalıştırıldı
- ✅ Yeni metadata generate edildi (
revive_chain.scale)- Artık sadece
pezsp_runtime,pezpallet_revivepath'leri var sp_runtime,pallet_revive(upstream) yok
- Artık sadece
- ✅
no_default_substitutionseklendi (subxt_client.rs)
KALAN SORUNLAR
SORUN 1: subxt hala sp_runtime arıyor
no_default_substitutions eklense de subxt bazı type'lar için hala sp_runtime path'i kullanıyor:
error[E0433]: could not find `sp_runtime` in `runtime_types`
Olası çözüm: crate_path veya ek substitute_type direktifleri gerekebilir.
SORUN 2: H160, H256 type substitutions eksik
no_default_substitutions ile varsayılan type mapping'ler de kayboluyor:
error[E0277]: the trait bound `H160: From<[u8; 20]>` is not satisfied
Çözüm: Eksik type'lar için substitute_type ekle:
substitute_type(
path = "primitive_types::H160",
with = "::subxt::utils::Static<::pezsp_core::H160>"
),
substitute_type(
path = "primitive_types::H256",
with = "::subxt::utils::Static<::pezsp_core::H256>"
),
SORUN 3: SQLX Query Cache
error: `SQLX_OFFLINE=true` but there is no cached data for this query
Çözüm seçenekleri:
cargo sqlx prepareile cache regenerate (PostgreSQL/SQLite gerekli)query!→query_unchecked!ile compile-time check'i devre dışı bırak
SONRAKİ ADIMLAR
- H160, H256 ve diğer primitive_types için substitute_type ekle
crate_pathveya alternatif subxt yapılandırması araştır- SQLX sorununu çöz (unchecked query veya cache regenerate)
cargo check -p pezpallet-revive-eth-rpcbaşarılı olmalıcargo check --workspacebaşarılı olmalı
İlgili Dosyalar
bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs- subxt macrobizinikiwi/pezframe/revive/rpc/revive_chain.scale- YENİ metadata (tamamen rebranded)bizinikiwi/pezframe/revive/rpc/.sqlx/- SQLX query cache (güncellenmeli)