Yeniden üretim hazırlama¶
Yeniden üretim, hatayı hâlâ gösteren en küçük kurulumdur: temiz bir çalışma alanı, tek proje, önemi olan en az ayar ve oraya götüren adımlar. "Yeniden üretilemedi" ile düzeltme arasındaki farktır; çünkü StackVo'da ters giden şeylerin çoğu belirli bir makinedeki belirli bir manifesttir ve ikisi de olmayan bir bildirim geliştiriciyi ikisini de tahmin etmeye bırakır.
Rehber¶
Ortam¶
StackVo her şeyi tek bir çalışma alanında tutar (varsayılan ~/.stackvo) ve
STACKVO_ROOT değişkeni onu taşır. İkinci bir çalışma alanının maliyeti
yoktur ve gerçek projelerinizi resmin dışında tutar. Değişkeni ayarlayın ve
uygulamayı o kabuktan başlatın:
Uygulama boş klasörü ilk çalıştırma sayar (tek soru, sertifika, yığın) ve her şeyi oraya yazar. Sonrasında klasörü silin; geriye hiçbir şey kalmaz. (Ayarlar → Çalışma alanı zaten var olan çalışma alanları arasında geçiş yapar; geri dönmek içindir, yenisini oluşturmak için değil.)
Aynı anda tek yığın
Compose projesi her makinede stackvo adını taşır; dolayısıyla geçici
çalışma alanı ile gerçek olanınız aynı anda ayakta olamaz. Önce
sizinkini indirin (stackvo down ya da tepsi), sonra geri kaldırın.
En küçük yeniden üretim¶
-
Önce güncelleyin. Yalnızca son sürüm desteklenir; Ayarlar → Güncellemeler kurar. Sonrasında kaybolan hata zaten düzeltilmişti.
-
Şablondan tek proje. Yeni proje, en yakın şablon, varsayılan ayarlar. Hata şimdiden görünüyorsa burada durun; yeniden üretim budur.
-
Hata görünene kadar her seferinde tek ayar ekleyin: PHP sürümü, bir servis, bir alan adı, bir hook,
.envsatırı. En son eklediğiniz şey, bildirimde adlandırılacak şeydir. -
Önemi olmayanı çıkarın. Ayarları ve servisleri teker teker kaldırın, her birinden sonra hatanın hâlâ orada olduğunu doğrulayın. Geriye kalan yeniden üretimdir; gerisi gürültüydü.
Sonuç genellikle bir düzine satırlık bir stackvo.json olur. Olduğu gibi
bildirime yapıştırın: manifest budur ve manifest, geliştiricinin ihtiyaç
duyduğu şeyin çoğudur.
Adımlar¶
Numaralı, temiz çalışma alanından başlayıp yanlış olan şeyde biten:
1. STACKVO_ROOT=~/stackvo-repro, ilk çalıştırma, varsayılanlar
2. Yeni proje, Laravel şablonu, ad "repro"
3. Servisler → Redis'i aç
4. Projeyi yeniden başlat
5. https://repro.loc adresini aç — uygulama bekleniyordu, 502 geldi
"Bazen" bir adım değildir. Yalnızca bazen oluyorsa ne sıklıkta olduğunu ve olmadığı seferlerde neyin farklı olduğunu söyleyin.
Neler eklenmeli¶
| Ekleyin | Nereden gelir |
|---|---|
| Manifest | Proje klasöründeki stackvo.json |
Değiştirilen .env satırları |
Çalışma alanının .env dosyası; Ayarlar → Çalışma dizini → Klasörü aç gösterir. Yalnızca değiştirdiğiniz satırlar, sır olmayan değerler |
| Tanı paketi | Ayarlar → Uygulama günlüğü → Tanılama paketi kaydet; log, ön kontroller, Doktor raporu ve çökme raporları tek arşivde, sırlar yazılırken maskelenir |
| Doktor'ın sözü | stackvo doctor ya da Ayarlar → Doktor; işaretlediği satırları yapıştırın |
| Sürüm ve platform | Ayarlar → Güncellemeler; işletim sistemi; Docker çalışma zamanı ve sürümü |
Ekran görüntüsü ne gördüğünüzü, paket nedenini gösterir. İkisi de varsa ikisini de ekleyin; seçmek zorundaysanız paketi.
Neler dışarıda kalmalı¶
- Gerçek projeleriniz. İkinci çalışma alanı bunun için var.
- İçinde parola ya da token olan her şey. Paket onları maskeler; yapıştırılan
bir
.envmaskelemez. - İkinci bir hata. Kendi issue'sunu ve kendi yeniden üretimini alır.
Sonra¶
Manifest, adımlar ve paketle hata bildirimini açın ve geçici çalışma alanını silin. Formun gerisi Hata bildirme sayfasında.