Semantic Commit Mesajları Nedir ve Neden Önemlidir?
Yazılım geliştirme dünyasında, Commit mesajları genellikle göz ardı edilen ancak etkili kullanıldığında projelerinizde büyük fark yaratan bir detaydır. İyi yazılmış Commit mesajları, kod geçmişinizi daha düzenli ve anlaşılır hale getirirken, ekibinizle olan iletişimi ve proje üzerinde ki hâkimiyeti güçlendirir. Bu hâkimiyeti sağlamak için ise devreye Semantic Commit mesajları giriyor.
Semantic Commit mesajları, belirli bir format ve kurallarla yazılan mesajlardır. Bu yöntem, Commit mesajlarını yalnızca birer açıklama olmaktan çıkararak, proje yönetim araçları ve Continuous Integration/Deployment (CI/CD) süreçleri için anlamlı hale gelir. Proje üzerinde çalışan diğer ekip arkadaşlarınız için ise birer kurtarıcı mesajlar rolünü ala bilir.
Örneğin, sadece “bug fix” demek yerine, fix(api): hatalı endpoint düzeltildi şeklinde yazıldığında, hem yapılan değişikliğin içeriğini hem de kapsamını net bir şekilde anlatır.
Neden Semantic Commit Mesajları?
Neden bu kadar özen göstermeliyiz?
1. Okunabilirlik Sağlar: Projelerinizin commit geçmişi, kodunuzun bir hikâyesi gibidir. Semantic commitler, bu hikâyeyi daha düzenli ve okunabilir hale getirir.
2. Ekip İletişimini Güçlendirir: Ekip arkadaşlarınız, yaptığınız değişikliklerin ne olduğunu hızlıca anlayabilir. Bu da kod review’lerini kolaylaştırır.
3. Otomasyonu Destekler: Semantic commit mesajları, araçlar tarafından kolayca analiz edilebilir. Örneğin, Semantic Release gibi araçlar, commit mesajlarınızı analiz ederek otomatik sürüm numaralandırma ve CHANGELOG dosyası oluşturma işlemlerini yapabilir.
4. Uzun Vadeli Fayda Sağlar: Büyük projelerde, kod geçmişine dönüp yapılan değişiklikleri anlamak zor olabilir. Semantic commitlerde, geçmişte neyin neden yapıldığını anlamak çok daha kolay hale gelir.
Yaygın Semantic Commit Tipleri
1.feat
2. fix
3. docs
4. style
5. refactor
6. perf
7. test
8. build
9. revert
10. hotfix
1. feat (Feature)
· Genelde yeni özellik eklemek için kullanılır.
· Örnek: feat(auth): kullanici girişi için 0Auth desteği eklendi.
2. fix (Bug Fix)
· Hata düzeltmelerinde kullanılır.
· Örnek: fix(api): hatalı olan endpoint URL’si düzeltildi.
3. docs (Documentation)
· Genelde dokümantasyon değişiklikleri için kullanılır. README veya API belgeleri.
· Örnek: docs(installation): kurulum rehberi güncellendi.
4. style (Code Style)
· Biçimlendirme değişiklikleri için kullanılır. Boşluklar, noktalı virgüller vb.
· Örnek: style(main): kod formatı düzenlendi.
5. refactor (Refactoring)
· Genelde kod iyileştirmeleri için kullanılır.
· Örnek: refactor(auth): JWT token doğrulama methodu yeniden düzenlendi.
6. perf (Performance)
· Performansi artırmaya yönelik değişiklikler için kullanılır.
· Örnek: perf(auth): sorgu yani suresi optimize edildi.
7. test (Testing)
· Test ekleme veya mevcut testleri güncelleme için kullanılır.
· Örnek: test(auth): kullanici login testleri eklendi.
8. build (Build)
· Derleme sistemi veya harici bağımlılıklarda ki değişiklikler için kullanılır.
· Örnek: build: webpack yapılandırması güncellendi.
9. revert (Revert)
· Önceki bir commit’i geri almak için kullanılır.
· Örnek: revert(auth) JWT desteği eklendi.
10. hotfix (Hotfix)
· Kritik veya acil hata düzeltmeleri için kullanılır.
· Örnek: hotfix(auth): token ttl suresi uzatıldı.
Bu tipler Conventional Commits standartlarına dayanır ve projelerinizin ihtiyaçlarına göre özelleştire bilirsiniz. Ekip içerisinde anlam bütünlüğünü sağlamak için Semantic commit yapısını bir rehber olarak kullanabilirsiniz bir sonraki yazı dizisinde görüşmek üzere.
İyi Çalışmalar 😊