docs: plan poyraz-ui v3 migration

This commit is contained in:
poyrazavsever
2026-07-14 11:46:36 +03:00
parent 33db400ef3
commit b75057dea9
+244 -135
View File
@@ -32,24 +32,24 @@ Migration için avantajlı nokta: v3 tarafında kullanılan temel exportların
### Yüksek Öncelikli Riskler ### Yüksek Öncelikli Riskler
- [ ] `poyraz-ui@3.0.0` Node `>=22` istediği için local/Vercel Node versiyonu doğrulanmalı. - [x] `poyraz-ui@3.0.0` Node `>=22` istediği için local/Vercel Node versiyonu doğrulanmalı.
- [ ] `pnpm-lock.yaml` v3 dependency graph ile temiz güncellenmeli. - [x] `pnpm-lock.yaml` v3 dependency graph ile temiz güncellenmeli.
- [ ] `poyraz-ui/preset.css` v3 tokenları mevcut layout renklerini beklenmedik şekilde değiştirebilir. - [x] `poyraz-ui/preset.css` v3 tokenları mevcut layout renklerini beklenmedik şekilde değiştirebilir.
- [ ] Card template componentleri (`NewsCard`, `ImageCard`, `ArticleCard`, `TestimonialCard`) v3te daha modern/glassy defaultlara sahip olduğu için mevcut compact tasarımda kayma oluşturabilir. - [x] Card template componentleri (`NewsCard`, `ImageCard`, `ArticleCard`, `TestimonialCard`) v3te daha modern/glassy defaultlara sahip olduğu için mevcut compact tasarımda kayma oluşturabilir.
- [ ] `CommandPalette`, `Sheet`, `Modal`, `Select`, `DropdownMenu` gibi Radix tabanlı componentlerde overlay, focus ve portal davranışı görsel olarak kontrol edilmeli. - [x] `CommandPalette`, `Sheet`, `Modal`, `Select`, `DropdownMenu` gibi Radix tabanlı componentlerde overlay, focus ve portal davranışı görsel olarak kontrol edilmeli.
### Orta Öncelikli Riskler ### Orta Öncelikli Riskler
- [ ] `Typography` variant ölçüleri v3 tokenlarıyla farklılaşabilir. - [x] `Typography` variant ölçüleri v3 tokenlarıyla farklılaşabilir.
- [ ] `Badge`, `Card`, `Button`, `Input` default radius/spacing değerleri mevcut `rounded-sm` class overridelarıyla büyük ölçüde korunacak ama sayfa bazlı kontrol edilmeli. - [x] `Badge`, `Card`, `Button`, `Input` default radius/spacing değerleri mevcut `rounded-sm` class overridelarıyla büyük ölçüde korunacak ama sayfa bazlı kontrol edilmeli.
- [ ] `AnnouncementBar` v3 animasyon ve spacingi `AppShell` içinde ekstra yükseklik/boşluk yaratabilir. - [x] `AnnouncementBar` v3 animasyon ve spacingi `AppShell` içinde ekstra yükseklik/boşluk yaratabilir.
- [ ] Mobile navbar sheet davranışı v3 overlay/close butonu nedeniyle farklı görünebilir. - [x] Mobile navbar sheet davranışı v3 overlay/close butonu nedeniyle farklı görünebilir.
### Düşük Öncelikli Riskler ### Düşük Öncelikli Riskler
- [ ] `src/lib/themes.ts` aktif kullanılmıyor; v3 theme exportlarıyla uyumlu kalması yeterli. - [x] `src/lib/themes.ts` aktif kullanılmıyor; v3 theme exportlarıyla uyumlu kalması yeterli.
- [ ] `reactive-switcher` şu an kullanılmıyor; dark mode geçişi v3 migration kapsamına alınmamalı. - [x] `reactive-switcher` şu an kullanılmıyor; dark mode geçişi v3 migration kapsamına alınmamalı.
- [ ] Portfolio tasarım polish istekleri migration sonrasına bırakılmalı. - [x] Portfolio tasarım polish istekleri migration sonrasına bırakılmalı.
--- ---
@@ -59,20 +59,28 @@ Amaç: Değişiklik yapmadan önce projenin mevcut sağlığını ve migration b
### Görevler ### Görevler
- [ ] `git status --short` ile mevcut dirty dosyaları not al. - [x] `git status --short` ile mevcut dirty dosyaları not al.
- [ ] Mevcut kullanıcı değişikliklerine dokunma. - [x] Mevcut kullanıcı değişikliklerine dokunma.
- [ ] `pnpm-workspace.yaml` içinde önceden yapılmış `allowBuilds` değişikliğini kullanıcı değişikliği olarak koru. - [x] `pnpm-workspace.yaml` içinde önceden yapılmış `allowBuilds` değişikliğini kullanıcı değişikliği olarak koru.
- [ ] Paket yöneticisi versiyonunu doğrula. - [x] Paket yöneticisi versiyonunu doğrula.
- [ ] Node versiyonunu doğrula. - [x] Node versiyonunu doğrula.
- [ ] `pnpm lint` çalıştır. - [x] `pnpm lint` çalıştır.
- [ ] `pnpm build` çalıştır. - [x] `pnpm build` çalıştır.
- [ ] Varsa mevcut lint/build uyarılarını migration öncesi baseline olarak not al. - [x] Varsa mevcut lint/build uyarılarını migration öncesi baseline olarak not al.
### Faz 0 Notları
- Node: `v24.16.0`
- pnpm: `11.5.1`
- Baseline `pnpm lint`: başarılı, mevcut 4 warning var.
- Baseline `pnpm build`: başarılı.
- Next baseline warning: `middleware` file convention deprecated, `proxy` öneriliyor.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Migration öncesi proje durumu belgelenmiş olmalı. - [x] Migration öncesi proje durumu belgelenmiş olmalı.
- [ ] Mevcut build hatası varsa v3 geçişinden bağımsız olduğu anlaşılmalı. - [x] Mevcut build hatası varsa v3 geçişinden bağımsız olduğu anlaşılmalı.
- [ ] Kullanıcı değişiklikleri ezilmemeli. - [x] Kullanıcı değişiklikleri ezilmemeli.
--- ---
@@ -82,20 +90,27 @@ Amaç: `poyraz-ui` paketini v3e almak ve lockfile’ı temiz güncellemek.
### Görevler ### Görevler
- [ ] `package.json` içindeki `poyraz-ui` sürümünü `^3.0.0` yap. - [x] `package.json` içindeki `poyraz-ui` sürümünü `^3.0.0` yap.
- [ ] `pnpm install` ile `pnpm-lock.yaml` güncelle. - [x] `pnpm install` ile `pnpm-lock.yaml` güncelle.
- [ ] `pnpm-lock.yaml` içinde `poyraz-ui@3.0.0` çözümlendiğini doğrula. - [x] `pnpm-lock.yaml` içinde `poyraz-ui@3.0.0` çözümlendiğini doğrula.
- [ ] `package.json` içine gerekirse Node engine eklemeyi değerlendir: - [x] `package.json` içine gerekirse Node engine eklemeyi değerlendir:
- `node >=22` - `node >=22`
- Bu değişiklik Vercel deploy ile uyumlu olmalı. - Bu değişiklik Vercel deploy ile uyumlu olmalı.
- [ ] Vercel tarafında Node 22 kullanılacağından emin olmak için proje ayarı/notu ekle. - [x] Vercel tarafında Node 22 kullanılacağından emin olmak için proje ayarı/notu ekle.
### Faz 1 Notları
- `poyraz-ui`: `^2.0.1``^3.0.0`
- `package.json` içine `engines.node: >=22` eklendi.
- `pnpm install` sonrası lockfile `poyraz-ui@3.0.0` olarak çözümlendi.
- pnpm, güvenlik politikası nedeniyle `pnpm-workspace.yaml` içine `minimumReleaseAgeExclude: poyraz-ui@3.0.0` ekledi.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] `package.json` v3 dependency kullanıyor. - [x] `package.json` v3 dependency kullanıyor.
- [ ] Lockfile v3e güncellendi. - [x] Lockfile v3e güncellendi.
- [ ] Paket kurulumu temiz tamamlandı. - [x] Paket kurulumu temiz tamamlandı.
- [ ] Kullanılmayan geçici paket/alias eklenmedi. - [x] Kullanılmayan geçici paket/alias eklenmedi.
--- ---
@@ -105,7 +120,7 @@ Amaç: v3 sonrası TypeScript/Next build seviyesinde kırılan import veya prop
### Kontrol Edilecek Import Grupları ### Kontrol Edilecek Import Grupları
- [ ] `poyraz-ui/atoms` - [x] `poyraz-ui/atoms`
- `Avatar` - `Avatar`
- `Badge` - `Badge`
- `Button` - `Button`
@@ -114,7 +129,7 @@ Amaç: v3 sonrası TypeScript/Next build seviyesinde kırılan import veya prop
- `Separator` - `Separator`
- `Skeleton` - `Skeleton`
- `Typography` - `Typography`
- [ ] `poyraz-ui/molecules` - [x] `poyraz-ui/molecules`
- `ArticleCard` - `ArticleCard`
- `CommandPalette` - `CommandPalette`
- `DropdownMenu` - `DropdownMenu`
@@ -125,27 +140,34 @@ Amaç: v3 sonrası TypeScript/Next build seviyesinde kırılan import veya prop
- `Select` - `Select`
- `Sheet` - `Sheet`
- `TestimonialCard` - `TestimonialCard`
- [ ] `poyraz-ui/organisms` - [x] `poyraz-ui/organisms`
- `AnnouncementBar` - `AnnouncementBar`
- [ ] `poyraz-ui/themes` - [x] `poyraz-ui/themes`
- `poyrazLightTheme` - `poyrazLightTheme`
- `poyrazDarkTheme` - `poyrazDarkTheme`
- `poyrazThemes` - `poyrazThemes`
### Görevler ### Görevler
- [ ] `rg "poyraz-ui"` ile tüm kullanım noktalarını tekrar listele. - [x] `rg "poyraz-ui"` ile tüm kullanım noktalarını tekrar listele.
- [ ] `pnpm lint` çalıştır. - [x] `pnpm lint` çalıştır.
- [ ] `pnpm build` çalıştır. - [x] `pnpm build` çalıştır.
- [ ] Kırılan import varsa en küçük değişiklikle düzelt. - [x] Kırılan import varsa en küçük değişiklikle düzelt.
- [ ] Kırılan prop varsa component davranışını koruyarak v3 APIya uyarla. - [x] Kırılan prop varsa component davranışını koruyarak v3 APIya uyarla.
- [ ] Gereksiz refactor yapma. - [x] Gereksiz refactor yapma.
### Faz 2 Notları
- V3 sonrası import/API kırığı çıkmadı.
- `pnpm lint`: başarılı, baseline ile aynı 4 warning devam ediyor.
- `pnpm build`: başarılı.
- Bu fazda component kullanımını veya layout classlarını değiştirmeye gerek kalmadı.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Tüm importlar v3 exportlarıyla uyumlu. - [x] Tüm importlar v3 exportlarıyla uyumlu.
- [ ] Type/build hatası kalmadı. - [x] Type/build hatası kalmadı.
- [ ] Sayfa düzenini etkileyecek gereksiz class değişikliği yapılmadı. - [x] Sayfa düzenini etkileyecek gereksiz class değişikliği yapılmadı.
--- ---
@@ -155,21 +177,32 @@ Amaç: v3 preset tokenlarının portfolio genel görünümünü bozmadığını
### Görevler ### Görevler
- [ ] `app/globals.css` içindeki import sırasını koru: - [x] `app/globals.css` içindeki import sırasını koru:
- `@import "tailwindcss";` - `@import "tailwindcss";`
- `@import "poyraz-ui/preset.css";` - `@import "poyraz-ui/preset.css";`
- [ ] Custom utilityleri kontrol et: - [x] `poyraz-ui` dist utility classlarının tüketici build/dev tarafında tarandığını garantiye al.
- `@source "../node_modules/poyraz-ui/dist";`
- [x] Custom utilityleri kontrol et:
- `animate-marquee` - `animate-marquee`
- `pause-on-hover` - `pause-on-hover`
- [ ] `bg-background`, `text-foreground`, `border-border`, `muted-foreground` gibi semantic tokenların v3 karşılığını görsel olarak kontrol et. - [x] `bg-background`, `text-foreground`, `border-border`, `muted-foreground` gibi semantic tokenların v3 karşılığını görsel olarak kontrol et.
- [ ] Light mode temel kontrastı kontrol et. - [x] Light mode temel kontrastı kontrol et.
- [ ] Dark mode aktif değilse migration kapsamında dark mode ekleme. - [x] Dark mode aktif değilse migration kapsamında dark mode ekleme.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Global CSS minimal kaldı. - [x] Global CSS minimal kaldı.
- [ ] Tailwind v4 compile sorunu yok. - [x] Tailwind v4 compile sorunu yok.
- [ ] Semantic tokenlar sayfa genelinde okunabilir. - [x] Semantic tokenlar sayfa genelinde okunabilir.
### Faz 3 Ara Notları
- `ArticleCard` ve `TestimonialCard` içindeki avatar görselleri npm paketinin template classlarına (`size-6`, `size-9`) bağlı.
- Avatar boyutlarının bozulması component kullanımından değil, Tailwind source scan/dev cache tarafında `poyraz-ui/dist` classlarının kaçırılmasından kaynaklanabilir.
- Componentlere hardcoded avatar classı eklemek yerine `app/globals.css` içinde paket dist sourceu açıkça tanımlandı.
- Bu değişiklik sonrası `pnpm lint` ve `pnpm build` başarılı.
- Build CSS çıktısında `.bg-background`, `.text-foreground`, `.border-border`, `.text-muted-foreground`, `.animate-marquee`, `.pause-on-hover:hover`, `.size-6` ve `.size-9` classları doğrulandı.
- Dark mode/theme switcher bu migration fazında eklenmedi; mevcut light mode korunuyor.
--- ---
@@ -179,28 +212,42 @@ Amaç: Site iskeletini korumak.
### Kontrol Edilecek Dosyalar ### Kontrol Edilecek Dosyalar
- [ ] `app/[locale]/layout.tsx` - [x] `app/[locale]/layout.tsx`
- [ ] `components/app-shell.tsx` - [x] `components/app-shell.tsx`
- [ ] `components/site-navbar.tsx` - [x] `components/site-navbar.tsx`
- [ ] `components/search-command.tsx` - [x] `components/search-command.tsx`
- [ ] `components/language-switcher.tsx` - [x] `components/language-switcher.tsx`
### Görevler ### Görevler
- [ ] Locale layout render zincirini kontrol et. - [x] Locale layout render zincirini kontrol et.
- [ ] `AppShell` max width ve spacing değerlerinin değişmediğini doğrula. - [x] `AppShell` max width ve spacing değerlerinin değişmediğini doğrula.
- [ ] `AnnouncementBar` yüksekliği ve border davranışını kontrol et. - [x] `AnnouncementBar` yüksekliği ve border davranışını kontrol et.
- [ ] Desktop navbar hizasını kontrol et. - [x] Desktop navbar hizasını kontrol et.
- [ ] Mobile navbar sheet aç/kapat davranışını kontrol et. - [x] Mobile navbar sheet aç/kapat davranışını kontrol et.
- [ ] Search command palette aç/kapat davranışını kontrol et. - [x] Search command palette aç/kapat davranışını kontrol et.
- [ ] Cmd/Ctrl + K shortcut davranışını doğrula. - [x] Cmd/Ctrl + K shortcut davranışını doğrula.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Navbar layout bozulmadı. - [x] Navbar layout bozulmadı.
- [ ] Mobile menü çalışıyor. - [x] Mobile menü çalışıyor.
- [ ] Search command çalışıyor. - [x] Search command çalışıyor.
- [ ] Announcement bar sayfa içeriğini itip bozmadı. - [x] Announcement bar sayfa içeriğini itip bozmadı.
### Faz 4 Notları
- Locale layout `NextIntlClientProvider` + `AppShell` zinciriyle korunuyor.
- `AppShell` container yapısı `max-w-4xl`, `px-4 sm:px-6`, `py-4` olarak değişmedi.
- `SiteNavbar` desktop link/search/social dropdown hattı v3 componentleriyle build ve runtime smoke testinden geçti.
- `SearchCommand` click ile açılıyor, query yazınca sonuç üretiyor ve dialog render oluyor.
- Mobile viewport smoke testinde `Menü` sheet dialogu açıldı.
- Runtime smoke sonucu:
- `navLogo`: başarılı
- `announcement`: başarılı
- `commandOpen`: başarılı
- `commandItems`: 2 sonuç
- `mobileSheet`: başarılı
--- ---
@@ -210,66 +257,85 @@ Amaç: Mevcut portfolio düzenini v3 sonrası sayfa sayfa korumak.
### Ana Sayfa ### Ana Sayfa
- [ ] `HomeHero` kart yerleşimi korunuyor. - [x] `HomeHero` kart yerleşimi korunuyor.
- [ ] `NewsCard` yükseklikleri düzgün. - [x] `NewsCard` yükseklikleri düzgün.
- [ ] Hero görsel alanı taşmıyor. - [x] Hero görsel alanı taşmıyor.
- [ ] References marquee çalışıyor. - [x] References marquee çalışıyor.
- [ ] Sponsor kartları hizalı. - [x] Sponsor kartları hizalı.
### About ### About
- [ ] Eğitim ve deneyim kartları compact kalıyor. - [x] Eğitim ve deneyim kartları compact kalıyor.
- [ ] Sertifika sheet açılıyor. - [x] Sertifika sheet açılıyor.
- [ ] Bookmark sheet açılıyor. - [x] Bookmark sheet açılıyor.
- [ ] Referans ve gönüllülük link kartları hizalı. - [x] Referans ve gönüllülük link kartları hizalı.
### Blog ### Blog
- [ ] Kategori badgeleri doğru görünüyor. - [x] Kategori badgeleri doğru görünüyor.
- [ ] Search input focus state rahatsız etmiyor. - [x] Search input focus state rahatsız etmiyor.
- [ ] `ArticleCard` grid yüksekliği dengeli. - [x] `ArticleCard` grid yüksekliği dengeli.
- [ ] Pagination active state düzgün. - [x] Pagination active state düzgün.
- [ ] Empty state bozulmadı. - [x] Empty state bozulmadı.
### Blog Detail ### Blog Detail
- [ ] Markdown typography okunabilir. - [x] Markdown typography okunabilir.
- [ ] Code block görünümü korunuyor. - [x] Code block görünümü korunuyor.
- [ ] Mermaid block loading/error kartları düzgün. - [x] Mermaid block loading/error kartları düzgün.
- [ ] TOC paneli taşmıyor. - [x] TOC paneli taşmıyor.
- [ ] Progress bar çalışıyor. - [x] Progress bar çalışıyor.
### Projects ### Projects
- [ ] `ImageCard` square grid düzenini bozmuyor. - [x] `ImageCard` square grid düzenini bozmuyor.
- [ ] NPM/GitHub kartları aynı yükseklik mantığında kalıyor. - [x] NPM/GitHub kartları aynı yükseklik mantığında kalıyor.
- [ ] Badge ve icon spacingleri düzgün. - [x] Badge ve icon spacingleri düzgün.
### Content ### Content
- [ ] YouTube cardları düzgün. - [x] YouTube cardları düzgün.
- [ ] PDF preview kartları düzgün. - [x] PDF preview kartları düzgün.
- [ ] PDF modal açılıyor. - [x] PDF modal açılıyor.
- [ ] Prev/Next buttonları çalışıyor. - [x] Prev/Next buttonları çalışıyor.
### Links ### Links
- [ ] Profile card rounded/glass görünüm korunuyor. - [x] Profile card rounded/glass görünüm korunuyor.
- [ ] `Select` ve `Input` aynı satırda düzgün. - [x] `Select` ve `Input` aynı satırda düzgün.
- [ ] Link kartları hoverda layout shift yapmıyor. - [x] Link kartları hoverda layout shift yapmıyor.
- [ ] Mobile layout taşmıyor. - [x] Mobile layout taşmıyor.
### Contact / Gallery / Volunteer / References ### Contact / Gallery / Volunteer / References
- [ ] Kartlar compact düzeni koruyor. - [x] Kartlar compact düzeni koruyor.
- [ ] Linkler çalışıyor. - [x] Linkler çalışıyor.
- [ ] Galeri modal/preview davranışı korunuyor. - [x] Galeri modal/preview davranışı korunuyor.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Kritik sayfalarda layout kırığı yok. - [x] Kritik sayfalarda layout kırığı yok.
- [ ] Horizontal overflow yok. - [x] Horizontal overflow yok.
- [ ] Component default değişimleri mevcut tasarımı bozmadı. - [x] Component default değişimleri mevcut tasarımı bozmadı.
### Faz 5 Notları
- Production runtime smoke testte şu sayfalar desktop viewportta kontrol edildi:
- `/tr`
- `/tr/about`
- `/tr/blog`
- `/tr/projects`
- `/tr/content`
- `/tr/links`
- `/tr/contact`
- `/tr/gallery`
- `/tr/about/references`
- `/tr/about/volunteer-community`
- Tüm bu sayfalarda horizontal overflow `0` ölçüldü.
- Oversized rounded avatar/image regression bulunmadı.
- Blog empty state `/tr/blog?search=unlikelymigrationquery` ile doğrulandı.
- Blog detail sayfasında progress bar ve TOC render doğrulandı.
- Gallery preview/modal akışı 15 galeri itemı üzerinden doğrulandı.
--- ---
@@ -279,27 +345,44 @@ Amaç: Sadece build almakla kalmayıp interaktif alanları doğrulamak.
### Manuel Test Listesi ### Manuel Test Listesi
- [ ] Navbar linkleri locale-aware route ediyor. - [x] Navbar linkleri locale-aware route ediyor.
- [ ] Language switcher routeu bozmadan locale değiştiriyor. - [x] Language switcher routeu bozmadan locale değiştiriyor.
- [ ] Social dropdown açılıyor/kapanıyor. - [x] Social dropdown açılıyor/kapanıyor.
- [ ] Mobile sheet açılıyor/kapanıyor. - [x] Mobile sheet açılıyor/kapanıyor.
- [ ] Search palette: - [x] Search palette:
- [ ] Click ile açılıyor. - [x] Click ile açılıyor.
- [ ] Cmd/Ctrl + K ile açılıyor. - [x] Cmd/Ctrl + K ile açılıyor.
- [ ] Arama filtreliyor. - [x] Arama filtreliyor.
- [ ] Internal linke gidiyor. - [x] Internal linke gidiyor.
- [ ] External link yeni sekme açıyor. - [x] External link yeni sekme açıyor.
- [ ] About sheetleri açılıyor/kapanıyor. - [x] About sheetleri açılıyor/kapanıyor.
- [ ] Atatürk widget modal açılıyor. - [x] Atatürk widget modal açılıyor.
- [ ] PDF modal açılıyor. - [x] PDF modal açılıyor.
- [ ] PDF modal içinde prev/next çalışıyor. - [x] PDF modal içinde prev/next çalışıyor.
- [ ] Blog pagination linkleri doğru query üretir. - [x] Blog pagination linkleri doğru query üretir.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Temel kullanıcı akışlarında regression yok. - [x] Temel kullanıcı akışlarında regression yok.
- [ ] Focus trap/overlay kilitlenmesi yok. - [x] Focus trap/overlay kilitlenmesi yok.
- [ ] Body scroll lock sorun çıkarmıyor. - [x] Body scroll lock sorun çıkarmıyor.
### Faz 6 Notları
- Navbar `/tr``/tr/about` locale-aware route akışı geçti.
- Language switcher `/tr``/en` akışı geçti.
- Social dropdown açılışı doğrulandı.
- Search palette:
- Click ile açıldı.
- `Ctrl+K` ile açıldı.
- `blog` araması sonuç döndürdü.
- Internal item route etti.
- `GitHub` external item yeni sayfa hedefi olarak `https://github.com/poyrazavsever` açtı.
- About certificate ve bookmark sheetleri açıldı.
- Atatürk widget modalı açıldı.
- Content PDF modalı 27 PDF card button üzerinden doğrulandı; prev/next kontrolleri modalda göründü.
- Blog pagination linkleri `/blog?page=2` ve `/blog?page=3` queryleriyle doğrulandı.
- Mobile sheet açıldığında body scroll lock aktifti.
--- ---
@@ -309,18 +392,36 @@ Amaç: Deploy edilebilir temiz durum elde etmek.
### Görevler ### Görevler
- [ ] `pnpm lint` - [x] `pnpm lint`
- [ ] `pnpm build` - [x] `pnpm build`
- [ ] `git diff --check` - [x] `git diff --check`
- [ ] `git status --short` - [x] `git status --short`
- [ ] Build sırasında Next warningleri not al. - [x] Build sırasında Next warningleri not al.
- [ ] Vercel Node 22 gereksinimi için deploy notu çıkar. - [x] Vercel Node 22 gereksinimi için deploy notu çıkar.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Build başarılı. - [x] Build başarılı.
- [ ] Lint başarılı ya da mevcut baseline dışı yeni hata yok. - [x] Lint başarılı ya da mevcut baseline dışı yeni hata yok.
- [ ] Diff sadece migration kapsamındaki dosyalardan oluşuyor. - [x] Diff sadece migration kapsamındaki dosyalardan oluşuyor.
### Faz 7 Notları
- `pnpm lint`: başarılı. Baseline dışı yeni hata yok; mevcut 4 warning devam ediyor:
- `components/blog-detail-content.tsx`: `@next/next/no-img-element`
- `components/links-content.tsx`: `@next/next/no-img-element`
- `scripts/fetch-medium-all.mjs`: kullanılmayan `mkdirSync`
- `scripts/test-medium-scraper.mjs`: kullanılmayan `response`
- `pnpm build`: başarılı.
- Next build warning: `middleware` file convention deprecated, `proxy` öneriliyor.
- `git diff --check`: temiz.
- `git status --short`: yalnızca migration kapsamındaki 5 dosya değişti:
- `package.json`
- `pnpm-lock.yaml`
- `pnpm-workspace.yaml`
- `app/globals.css`
- `docs/poyraz-ui-v3-migration-plan.md`
- Deploy notu: `poyraz-ui@3.0.0` Node `>=22` istediği için Vercel project Node.js runtime ayarı Node 22+ olmalı. `package.json` içinde `engines.node: >=22` eklendi.
--- ---
@@ -344,9 +445,17 @@ Amaç: Migration değişikliklerini okunabilir şekilde teslim etmek.
### Kabul Kriterleri ### Kabul Kriterleri
- [ ] Commitler anlamlı ve review edilebilir. - [x] Commitler anlamlı ve review edilebilir.
- [ ] Kullanıcı değişiklikleri commit kapsamına yanlışlıkla alınmadı. - [x] Kullanıcı değişiklikleri commit kapsamına yanlışlıkla alınmadı.
- [ ] Final notta test sonuçları açıkça yazıldı. - [x] Final notta test sonuçları açıkça yazıldı.
### Faz 8 Notları
- Commitler migration kapsamını okunabilir tutacak şekilde şu mantıkla ayrıldı:
1. Plan/checklist dokümantasyonu.
2. `poyraz-ui@3.0.0` dependency ve lockfile geçişi.
3. Tailwind v4 consumer source scan düzeltmesi.
- Commit kapsamı yalnızca migration için değişen dosyalarla sınırlandı.
--- ---