Makine-Launcher'a katkıda bulunmak istediğiniz için teşekkür ederiz! Bu belge, projeye katkı sürecini açıklar.
Makine-Launcher, Türkçe oyun çeviri ekosisteminin masaüstü uygulamasıdır. Qt6/QML ve C++23 ile geliştirilmektedir. Topluluğumuz, kaliteli Türkçe oyun çevirilerini herkes için erişilebilir kılmayı amaçlar.
| Araç | Sürüm | Not |
|---|---|---|
| Qt | 6.10.1 | MinGW 13.1.0 kit dahil |
| CMake | 3.25+ | Qt ile birlikte gelir |
| MinGW | 13.1.0 | Qt installer ile kurulur |
| MSVC | 2022 (opsiyonel) | Release build için |
| vcpkg | Güncel | Bağımlılık yönetimi |
| just | Güncel | Komut çalıştırıcı |
| Git | 2.x | Sürüm kontrolü |
git clone https://github.com/MakineCeviri/Makine-Launcher.git
cd Makine-LauncherBash ortamınıza aşağıdaki satırları ekleyin:
export PATH="/c/Qt/Tools/CMake_64/bin:/c/Qt/Tools/mingw1310_64/bin:/c/Qt/Tools/Ninja:$PATH"
export PATH="/c/Qt/6.10.1/mingw_64/bin:$PATH"# Tam derleme (Core + UI, vcpkg gerektirir)
just dev
# Yalnızca UI derlemesi (vcpkg gerekmez)
just dev-ui
# Uygulamayı çalıştırma
just run
# Testleri çalıştırma
just testYeni bir özellik veya hata düzeltmesi üzerinde çalışmadan önce, ilgili bir GitHub Issue oluşturun veya mevcut bir issue üzerinde çalışacağınızı belirtin.
# Yeni özellik için
git checkout -b feat/ozellik-adi
# Hata düzeltmesi için
git checkout -b fix/hata-aciklamasiAşağıdaki kod stili kurallarına uyduğunuzdan emin olun.
- Branch'inizi push edin ve GitHub üzerinden PR açın.
- PR açıklamasında ilgili issue numarasını referans verin.
- Değişikliklerinizi kısa ve net bir şekilde açıklayın.
- CI kontrollerinin geçtiğinden emin olun.
- En az bir proje bakımcısının onayı gereklidir.
- İstenen değişiklikleri yapın ve tekrar review talep edin.
- Onay sonrası merge işlemi bakımcılar tarafından yapılır.
Conventional Commits formatını kullanıyoruz:
type(scope): açıklama
| Tip | Kullanım |
|---|---|
feat |
Yeni özellik |
fix |
Hata düzeltmesi |
refactor |
Davranış değişikliği olmayan kod yeniden yapılandırması |
build |
Derleme sistemi, bağımlılıklar |
ci |
CI/CD değişiklikleri |
docs |
Dokümantasyon |
test |
Test ekleme veya güncelleme |
chore |
Bakım, temizlik |
| Kapsam | Alan |
|---|---|
core |
C++ çekirdek kütüphanesi (core/) |
ui |
QML arayüzü ve backend servisleri (qml/) |
build |
CMake, preset'ler, justfile |
ci |
GitHub Actions, hook'lar |
docs |
Dokümantasyon dosyaları |
feat(ui): add game detail hero banner
fix(core): handle empty manifest on first sync
refactor(ui): extract TranslationActionButton states
build: update vcpkg baseline
| Katman | Dosya Uzantısı | Stil |
|---|---|---|
| Core C++ | .hpp / .cpp |
snake_case |
| UI C++ | .h / .cpp |
camelCase |
| QML | .qml |
PascalCase |
- Sınıflar:
PascalCase - Fonksiyonlar ve değişkenler:
camelCase - Sabitler:
UPPER_SNAKE_CASE - Kod yorumları: İngilizce yazılmalıdır
- Header guard:
#pragma oncekullanın - Standart: C++23
Bu projeyi MinGW GCC 13.1 ile derlerken dikkat edilmesi gereken noktalar:
<regex>başlığı çalışmaz. Bunun yerinestd::string::find(),starts_with(),ends_with()gibi string metodlarını kullanın.#include <set>ve#include <map>açıkça yazılmalıdır. MSVC bunları dolaylı olarak dahil eder, MinGW etmez.- spdlog ADL çakışması:
using namespace makineaktifkenspdlog::info()yerinemakine::info()çağrılabilir. Her zaman tam niteliklispdlog::info()kullanın.
Hata veya öneri bildirmek için GitHub Issues sayfasını kullanın. Issue açarken:
- Sorunu net ve tekrarlanabilir şekilde açıklayın.
- İşletim sistemi, Qt sürümü ve derleyici bilgilerini ekleyin.
- Mümkünse ekran görüntüsü veya log çıktısı paylaşın.
- Mevcut issue'ları kontrol ederek tekrar açmaktan kaçının.
Bu projeye katkıda bulunarak, katkılarınızın projenin lisansı olan AGPL-3.0 kapsamında lisanslanacağını kabul etmiş olursunuz.
Sorularınız mı var? GitHub Discussions üzerinden bize ulaşabilirsiniz.