Giriş
Laravel, Starter Kit geliştirmesini kolaylaştırmak için resmi olarak Laravel Maestro kullanmaktadır. Ancak, Maestro ile Starter Kit’lere nasıl katkıda bulunulacağına dair çok fazla bilgi mevcut değildir.
İlk başladığımda, aşağıdaki konularda kafam karışmıştı:
- build/, kits/ ve orchestrator/ dizinleri arasındaki fark
- Watcher’ın rolü
- Hangi dizinlerin
git commitişlemine dahil edilmesi gerektiği
Bu makalede, gerçek bir örnek olarak Starter Kit’te bir metin düzenlemeyi ele alarak şunları kapsayacağız:
- Maestro’nun temel yapısı
- build / kits / orchestrator arasındaki ilişki
- Testlerin nasıl çalıştırılacağı
- Bir PR oluşturma süreci
Bu makale, genel olarak Laravel kullanıcıları için değil, Starter Kits veya Maestro’ya katkıda bulunmayı düşünen geliştiriciler için tasarlanmıştır. Eğer bir Starter Kit’e yeni özellikler eklemeyi veya işlevleri düzeltmeyi düşünüyorsanız, bu pratik makaleyi gözden geçirmenizi öneririm.
Depoyu Klonlama ve Kaynak Ağacını Yerel Olarak Alma
Öncelikle depoyu klonlayın:
git clone https://github.com/laravel/maestro.gitBu, laravel/maestro kaynak ağacının yerel bir kopyasını oluşturur.
Laravel Maestro ile Starter Kit Çalıştırma
Şu anda, konteynerler resmi olarak desteklenmiyor ve tüm yürütme doğaldır. (Bir konteyner içinde çalıştırmak istiyorsanız, önce yerel iş akışını anlamalı ve ardından kendi ayarlarınızı oluşturmalısınız.) İçsel olarak, artisan serve‘a benzer bir şey çalıştırır.
Diğer bir deyişle, her şey doğal olarak çalıştığı için sisteminizde:
Yerli olarak kurulmuş olmalıdır. Aksi takdirde, aşağıdaki adımları takip edemezsiniz.
orchestrator/’dan Başlayın
Maestro ile Starter Kit başlatmadan önce mevcut dizin yapısını kontrol edelim.
% tree -L1 -D
.
├── browser_tests
├── kits
└── orchestratorMevcut olarak, bu üç dizin mevcuttur. Başlamak için orchestrator/ dizinine geçin ve Composer ve npm bağımlılıklarını yükleyin:
cd orchestrator
composer install
npm installSonrasında projeyi php artisan build ile oluşturun. Seçenek olmadan çalıştırırsanız, etkileşimli modda başlar:
% php artisan build
┌ Hangi starter kit'i oluşturmak istersiniz? ──────────────────┐
│ › ● Livewire │
│ ○ React │
│ ○ Svelte │
│ ○ Vue │
└──────────────────────────────────────────────────────────────┘Örneğin, Livewire‘ı seçmek, şu şekilde olur:
┌ Hangi starter kit'i oluşturmak istersiniz? ──────────────────┐
│ Livewire │
└──────────────────────────────────────────────────────────────┘
┌ Hangi varyantı kullanmak istersiniz? ────────────────────────┐
│ ○ Boş (kimlik doğrulama yok) │
│ › ● Fortify (Fortify ile kimlik doğrulama) │
│ ○ WorkOS (WorkOS ile kimlik doğrulama) │
└──────────────────────────────────────────────────────────────┘Son seçim, Takım özelliğinin etkinleştirilip etkinleştirilmeyeceğidir:
┌ Takım özelliğini etkinleştirmek ister misiniz? ─────────────────┐
│ ○ Evet / ● Hayır │
└──────────────────────────────────────────────────────────────┘Ancak, Livewire’ın bir ekstra seçeneği vardır:
┌ Hangi Livewire varyantını kullanmak istersiniz? ───────────────┐
│ › ● Tek Dosya Bileşenleri │
│ ○ Çoklu Dosya Bileşenleri │
└──────────────────────────────────────────────────────────────┘Bu dallar, aşağıdaki 21 varyantı temsil etme imkanı sunar:
| Framework | Boş | Fortify | Fortify + Takımlar | WorkOS | WorkOS + Takımlar | Bileşenler |
|---|---|---|---|---|---|---|
| Livewire | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| React | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Svelte | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Vue | ✓ | ✓ | ✓ | ✓ | ✓ | — |
- React: 5
- Vue: 5
- Svelte: 5
- Livewire: 6
- Toplam: 21
Değişiklikleri katkı olarak sunarken daima bu matrisin aklınızda bulundurmalısınız.
Eğer hangi matris kombinasyonunu istediğinizi biliyorsanız, php artisan build komutuna opsiyonlar ekleyerek etkileşimli modu atlayabilirsiniz (bu yaklaşım daha sonra tanıtılacaktır).
build/ Dizini
Dizin ağaçlarına tekrar bakalım:
% tree -L1 -D
.
├── browser_tests
├── build #
├── kits
└── orchestrator
Bir build/ dizini oluşturulmuştur. Bu dizin, orchestrator/ tarafından yaratılır ve geçici çalışma dizini olarak hizmet eder. Temelde, orchestrator/ içinde seçilen varyanta karşılık gelen Laravel Starter Kit’in bir kopyasıdır.
Ancak, Gerçek Kit Orchestrator/’dan Başlatılır
Artık bunu çalıştıralım. Uygulama build/ dizininden değil, orchestrator/ dizininden başlatılır:
composer kit:runBu, composer setup gibi şeyleri çalıştırır, bir .env dosyası ekler ve seçilen varyantı başlatır.
Maestro ile Katkı Pratikleri
Şimdi Maestro ile değişiklik yapmayı pratik edelim. Burada kullanılan örnek, gerçek bir katkı adayı olarak düşünülmemektedir.
Durum 1: Giriş Sayfasında “Log in”i “Log on” Olarak Değiştirme
Giriş sayfasında bir Log in bağlantısı vardır, ancak bu eğitimde yalnızca giriş sayfasına odaklanacağız.
Matrisin üzerine baktığımızda:
| Framework | Boş | Fortify | Fortify + Takımlar | WorkOS | WorkOS + Takımlar | Bileşenler |
|---|---|---|---|---|---|---|
| Livewire | ✓ | ✓ | ||||
| React | ✓ | ✓ | — | |||
| Svelte | ✓ | ✓ | — | |||
| Vue | ✓ | ✓ | — |
Bu varyantların güncellenmesi gerekecektir. WorkOS varyantları giriş sayfasına sahip olmadığından etkilenmeyeceklerdir.
build Dizininde Dosyayı Değiştirme
Çalışma build/ içinde gerçekleştirilecektir.
Öncelikle build dizinine geçin.
cd ../buildArtık build/ dizininde olduğumuza göre, hedef dizeyi aramak için rg veya benzeri bir araç kullanın.
rg "Log in"İlgili dosyanın resources/views/pages/auth/login.blade.php olduğunu görüyoruz, dolayısıyla aşağıdaki gibi düzenleyin:
Commit & PR’ler kits/’den Oluşturulur
Değişiklik build/ içinde yapılsa da, bu dizin geçicidir ve Git’te doğrudan izlenmez. build/ içinde yaptığınız düzenlemeler, kits/ içindeki ilgili dosyaların otomatik olarak güncellenmesini sağlar. Bunu git status komutunu build/ içinde çalıştırarak doğrulayabilirsiniz.
Test Etme
Her şey iyi görünüyor, o yüzden testleri çalıştıralım. Testler, orchestrator dizininden composer kits:pint ve composer kits:check -- --livewire gibi komutlar kullanılarak yapılır:
cd ../orchestrator
# Kaynak formatlama
composer kits:pint
# PHP testleri (sadece Livewire varyantları için)
composer kits:check -- --livewirekits:pint sorun yokken, Maestro’nun tasarımından dolayı, kit:run‘ı durdurmadan kits:check çalıştıramazsınız. Bu nedenle, composer kit:run komutunun çalıştığı terminal oturumunu sonlandırın.
Commit ve PR’yi Hazırlama
Bu örnekte değişiklikler, bu sekiz dosyayı kapsamaktadır. Daha önce belirtildiği üzere, yalnızca kits/ her zaman commit’e dahil edilmelidir. Diğer dizinler ile temasta olmamalısınız:
git add kits/
git commitArdından, projeye uygun olarak commit’leri oluşturmayı unutmayın. Daha sonra, projenin açık kaynak katkı sürecini takip ederek PR’yi gönderin.
Burada teknik makale, Türk yazılımcılar için rehber niteliğinde yeniden yazılmıştır. HTML formatına uygunluk sağlanmış ve istenen kurallar belirtilmiştir.
- Giriş
- Depoyu Klonlama ve Kaynak Ağacını Yerel Olarak Alma
- Laravel Maestro ile Starter Kit Çalıştırma
- orchestrator/’dan Başlayın
- Maestro ile Katkı Pratikleri
- Durum 1: Giriş Sayfasında “Log in”i “Log on” Olarak Değiştirme
- build Dizininde Dosyayı Değiştirme
- Commit & PR’ler kits/’den Oluşturulur
- Test Etme
- Commit ve PR’yi Hazırlama
Kaynak: Orijinal Makale


