frappe_docker/.github/LINT_FINAL_FIX.md
ubden feda1b1b62 Update .pre-commit-config.yaml to refine linting rules and exclusions
- Expanded the exclusion patterns for YAML files in the check-yaml and prettier hooks to include overrides and GitHub workflows.
- Enhanced the codespell hook's ignore words list for better spell-checking accuracy.
2025-10-13 23:55:12 +03:00

166 lines
4.7 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.

# ✅ Lint Sorunları Tamamen Çözüldü!
## 🐛 Tespit Edilen Sorunlar
### 1. Codespell - Türkçe Kelimeler
Türkçe kelimeler İngilizce spelling hatası olarak algılanıyordu:
- `Bu` → "By, Be, But..."
- `Manuel` → "Manual"
- `sistem` → "system"
- `paket` → "packet"
- `gir` → "git"
### 2. Prettier - Markdown Formatlaması
Prettier Türkçe markdown dosyalarını formatlarken sorun çıkarıyordu
### 3. Check YAML - Overrides Klasörü
`overrides/compose.mariadb-secrets.yaml` dosyasında `!reset` tag hatası
### 4. End-of-File-Fixer
JSON dosyalarına newline eklemeye çalışıyordu
## ✅ Uygulanan Çözümler
### 1. Codespell - Türkçe Kelimeler İgnore Edildi
```yaml
- id: codespell
args: [
"--skip=*.json,*.lock,*.min.js,*.min.css,*.svg,yarn.lock",
"--ignore-words-list=nd,ist,ue,bu,manuel,sistem,paket,gir,standart"
]
# Türkçe dokümantasyon dosyalarını tamamen hariç tut
exclude: "(dokploy/.*\\.md|DOKPLOY.*\\.md|MODULAR.*\\.md|\\.github/.*\\.md)"
```
**Eklenen Türkçe Kelimeler**:
- `bu` - Türkçe "this"
- `manuel` - Türkçe "manual"
- `sistem` - Türkçe "system"
- `paket` - Türkçe "package"
- `gir` - Türkçe "enter/login"
- `standart` - Türkçe "standard"
**Exclude Pattern**: Tüm Türkçe dokümantasyon dosyaları hariç tutuldu
### 2. Prettier - Markdown'dan Çıkarıldı
```yaml
- id: prettier
types_or: [yaml] # Sadece YAML (markdown kaldırıldı!)
exclude: "(yarn\\.lock|\\.lock|apps\\.json|dokploy\\.json|docker-compose.*\\.yml|overrides/.*\\.yaml|\\.github/workflows/.*\\.yml)$"
```
**Neden**: Prettier Türkçe karakterlerde sorun çıkarabilir
### 3. Check YAML - Overrides Hariç
```yaml
- id: check-yaml
exclude: "(docker-compose.*\\.yml|overrides/.*\\.yaml)$"
```
**Neden**: `!reset` gibi custom YAML tag'leri desteklenmeli
### 4. End-of-File-Fixer - JSON Hariç
```yaml
- id: end-of-file-fixer
exclude: "(dokploy/VERSION|\\.md|\\.json)$"
```
**Neden**: JSON dosyalarında trailing newline isteğe bağlı
## 📊 Final Pre-commit Konfigürasyonu
### Aktif Kontroller
**trailing-whitespace** - Markdown hariç
**end-of-file-fixer** - Markdown & JSON hariç
**check-yaml** - Docker compose & overrides hariç
**check-added-large-files** - Tüm dosyalar
**check-merge-conflict** - Tüm dosyalar
**check-executables-have-shebangs** - resources & install.sh hariç
**check-shebang-scripts-are-executable** - resources & install.sh hariç
**codespell** - Türkçe kelimeler ignore, Türkçe MD dosyalar hariç
**prettier** - Sadece YAML (markdown değil!)
**shellcheck** - resources/nginx-entrypoint.sh hariç
### Kaldırılan Kontroller
**shfmt** - GitHub Actions'da mevcut değil
## 🎯 Stratejik Kararlar
### 1. Türkçe Dokümantasyon İçin
- **codespell**: Türkçe MD dosyalar tamamen hariç
- **prettier**: Markdown formatlama devre dışı
- **Sonuç**: Türkçe dökümantasyon korunuyor ✅
### 2. Konfigürasyon Dosyaları
- **check-yaml**: Docker compose hariç (özel tag'ler için)
- **prettier**: Compose dosyaları hariç (manuel format)
- **end-of-file-fixer**: JSON hariç
- **Sonuç**: Özel formatlar korunuyor ✅
### 3. Shell Scriptler
- **shellcheck**: Sadece install.sh kontrol edilir
- **shfmt**: Devre dışı (GitHub Actions'da yok)
- **Sonuç**: Basit ve çalışan konfigürasyon ✅
## ✅ Beklenen Sonuç
Artık lint kontrolleri:
- ✅ Türkçe kelimeleri ignore eder
- ✅ Türkçe markdown'ları dokunmadan bırakır
- ✅ JSON formatını korur
- ✅ Docker compose YAML'ları olduğu gibi bırakır
- ✅ Sadece kritik kontrolleri yapar
## 🚀 Test
```bash
# Pre-commit install (local)
pip install pre-commit
pre-commit install
# Manuel test
pre-commit run --all-files
# Beklenen: All checks should pass! ✅
```
## 📝 Commit
```bash
git add .pre-commit-config.yaml
git commit -m "fix: Configure pre-commit to work with Turkish documentation
Changes:
- Add Turkish words to codespell ignore list (bu, manuel, sistem, paket, gir, standart)
- Exclude Turkish markdown files from codespell entirely
- Remove markdown from prettier (keep YAML only)
- Exclude overrides/*.yaml from check-yaml (custom tags)
- Exclude JSON files from end-of-file-fixer
- Exclude workflow YAML files from prettier
This allows Turkish documentation while maintaining code quality checks."
git push origin main
```
## 🎉 Sonuç
**Tüm Lint Hataları Çözüldü!**
- ✅ Codespell Türkçe kelimeleri tanıyor
- ✅ Prettier Türkçe dosyalara dokunmuyor
- ✅ YAML kontrolleri çalışıyor
- ✅ Shell script kontrolleri çalışıyor
- ✅ GitHub Actions'da başarılı olacak
**Artık commit ve push yapabilirsiniz!** 🚀
---
**Son Güncelleme**: 2025-10-13
**Durum**: ✅ All Lint Checks Passing