- İlgilendiğiniz konunun daha önce herhangi bir issue tarafından işlenilmediğine ve başkası tarafından yapılmadığından emin olun.
- Eğer bir problemle karşılaşırsanız, issue açın.
- Beklediğiniz, istediğiniz bir değişiklik için issue açın.
- Yeni bir özellik eklemek için issue açın.
- Bir hatayı düzeltmek için PR açın.
- Dökümantasyondaki bir hatayı düzeltmek için PR açın.
Bu proje Laravel Sail kullanmaktadır. Eğer MacOS, Linux veya Windows(WSL2) kullanıyorsanız, geliştirmeye başlamak için bilgisayarınızda yalnızca Docker kurulu olması yeterli.
# Projeyi klonlayın.
git clone https://github.com/acikkaynak/deprem-yardim-com.git
# Proje dizinine girin.
cd deprem-yardim-com
# Env dosyasını kopyalayın.
cp .env.example .env
# Sail'in çalışabilmesi için composer paketlerinin kurulmuş olması gerekiyor.
# Ana makinede PHP veya Composer'a gerek olmadan paketleri Docker içinde kurabilirsiniz.
# Docker yardımı ile composer paketlerini kurun.
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php81-composer:latest \
composer install --ignore-platform-reqs
# Geliştirme ortamını başlatın.
./vendor/bin/sail up -d
# Laravel için bir "Application Key" oluşturun.
./vendor/bin/sail artisan key:generate
# Database setup'ı için Migration çalıştırın.
./vendor/bin/sail artisan migrate
./vendor/bin/sail
komutunu kısaltarak sail
şeklinde kullanmak için:
Shell ayar dosyanıza (~/.zshrc veya ~/.bashrc) aşağıdaki satırı ekleyebilirsiniz.
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
Ekledikten sonra shell'i yeniden başlatın.
Projeyi geliştirirken kullanacağınız veritabanı yedeklerini Discord sunucusundaki #depremyardimcom kanalından temin edebilirsiniz.
Gerekli yedeği /dump/locations.sql
şeklinde konumlandırdıktan sonra:
# Veri tabanına işlemek için
./vendor/bin/sail artisan db:seed
# Geliştirme ortamını sonlandırmak için:
./vendor/bin/sail down
Eğer WSL2 kullanmadan direkt Windows üzerine kurulum yapmak istiyorsanız bu adımları takip edin.
Gereksinimler:
- php >= 8.1^
- MySQL >= 7.0^
# Projeyi klonlayın
git clone https://github.com/acikkaynak/deprem-yardim-com.git
# Proje dizinine girin
cd deprem-yardim-com
# Gereksinimleri yükleyin
composer install
# Geliştirme ortamını başlatın
php artisan serve
Her commit mesajı bir başlık, bir gövde ve bir altbilgi içerir. Başlık, tip, bir kapsam ve bir açıklama içeren bir özel biçimde biçimlendirilir:
<type>(<scope>): <description>
<BOŞ SATIR>
<body>
<BOŞ SATIR>
<footer>
Her commit mesajı 72 karakterden uzun olmamalıdır.
Mesaj başlığı zorunludur ve bir tür, isteğe bağlı bir kapsam ve bir açıklama içeren kısa bir açıklama içermelidir. İdeal olarak, 50 karakterden uzun olmamalıdır.
Bu kurallara uymak, her sürüm için açık bir değişiklik günlüğü oluşturur.
PR başlığını da commit mesajları için izlemek iyi bir fikirdir. Bu şekilde, PR birleştirildiğinde, PR başlığı son commit mesajı olarak kullanılabilir ve geçmişin düzgün biçimlendirilmiş bir şekilde oluşturulmasını sağlar.
Tip, commit'in ne tür bir değişiklik olduğunu belirtir. İzin verilen türler:
feat
: Bir yeni özellik eklerfix
: Bir hata düzeltirdocs
: Sadece dokümantasyonu etkileyen değişikliklerstyle
: Sadece biçimlendirme, noktalama işaretleri, boşluklar, vb. Değişikliklerrefactor
: Kodun içeriğini değiştirmeyen bir değişiklikperf
: Bir performans değişikliğitest
: Eksik testleri ekler veya mevcut testleri değiştirirchore
: Geliştirme sürecini etkilemeyen diğer değişiklikler
Kapsam, commit'in etkilediği bölümü belirtir. Örneğin, kafka
veya login
gibi bir kapsam belirtilebilir.
Açıklama, commit'in amacını kısa bir şekilde belirtir. İlk harf büyük harfle yazılmalıdır. Açıklama, bir cümle olmalıdır. Bu, commit mesajının başlığı olarak kullanılabilir.
Mesaj gövdesi, commit'in neden yapıldığını açıklayan bir açıklamadır. Gövde, bir veya daha fazla paragraf içerebilir. Her paragraf, 72 karakterden uzun olmamalıdır.
Tamamlanan, düzeltilen veya teslim edilen hikayeler, "Finishes", "Fixes" veya "Delivers" anahtar sözcüğüyle başlayan bir ayrı satırda altbilgiye eklenmelidir:
[(Finishes|Fixes|Delivers) #ISSUE_ID]
feat(34): implement exactly once delivery
- ensure every event published to kafka