Ana içeriğe geç

🧪 Geliştirme Dalı Kılavuzu

En yeni özellikleri resmî sürümden önce denemek ister misiniz? dev dalı, sonunda ana sürüme girecek öncü iyileştirmeleri ve deneysel özellikleri içerir.

Deneysel Yazılım

dev dalı deneyseldir; hatalar, eksik özellikler veya uyumsuz değişiklikler içerebilir. Yalnızca olası kararsızlığı kabul ediyor ve Libre WebUI’yi geliştirmeye yardım etmek istiyorsanız kullanın.

🎯 Dev Dalı Nedir?​

Geliştirme dalı (dev), yeni özelliklerin kararlı main dalına birleştirilmeden önce sınandığı yerdir. Şunları içerir:

  • Kararlı sürümlerde henüz bulunmayan en yeni özellikler
  • Sınanmakta olan hata düzeltmeleri
  • Arayüz ve işlevlerde deneysel iyileştirmeler
  • Geliştirilmekte olan başarım iyileştirmeleri

🚀 Dev Dalını Kullanma​

Docker Kurulumu (Önerilir)​

Geliştirme Compose dosyaları ana makine Docker yuvasını bağlar; Docker varsa Work varsayılan olarak çalışır. Görev kapsayıcıları ana makine hizmetinde çalışır ve docker ps içinde görünür. Linux’ta önce .env içinde DOCKER_GID ayarlayın.

Harici Ollama ile:

# Clone the repository
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui

# Switch to dev branch
git checkout dev

# Start the dev image with external Ollama
docker compose -f docker-compose.dev.external-ollama.yml up -d

Basit Docker:

# Use the dev branch image
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

Kaynaktan​

# Clone and switch to dev branch
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui
git checkout dev

# Install dependencies
npm install

# Start development server
npm run dev

Vite, arka uç başlangıç denetimlerini tamamlamadan hazır duruma gelebilir. Yerel arka uç için geliştirme vekili, bir API isteğini iletmeden önce dinleyicisini en fazla 10 saniye bekler. Yazma istekleri dâhil her isteği yalnızca bir kez iletir; başarısız istekleri yeniden oynatmaz. Arka uç erişilemez kalırsa vekil, yeniden deneme ipucuyla birlikte HTTP 503 döndürür. Statik ön uç dosyaları bekleme boyunca erişilebilir kalır.

Sohbet, geçici arka uç kesintilerinden sonra en fazla 30 saniyelik gecikmelerle yeniden bağlanmayı sürdürür. Başarılı bağlantı gecikmeyi sıfırlar; oturumu kapatmak bekleyen denemeleri iptal eder. Kimlik doğrulama hataları otomatik yeniden bağlanmayı durdurur.

Work’ü Sınama​

  1. Docker’ı başlatın ve docker info komutunun arka ucu çalıştıran kullanıcıyla başarılı olduğunu doğrulayın.
  2. Libre WebUI’yi kaynaktan npm run dev ile başlatın.
  3. Yönetici olarak giriş yapın.
  4. Work seçip araç destekli bir Ollama, Ollama Cloud veya yapılandırılmış eklenti modeli kullanın.

Odaklı arka uç sağlayıcı ve kapsayıcı ilkesi testlerini çalıştırın:

npm run test:work

Testler oluşturulan Docker ilkesini, yol sınırlarını, yaşam döngüsünü, kapasiteyi ve OpenAI uyumlu, Anthropic, Gemini araç bağdaştırıcılarını doğrular. Tam sınır için Work: Yalıtılmış Çalışma Alanları sayfasına bakın.

🔄 Güncel Kalma​

Dev dalı sık güncellenir. Son değişiklikleri almak için:

# Update your local dev branch
git pull origin dev

# Refresh the dev Compose stack
docker compose -f docker-compose.dev.external-ollama.yml pull
docker compose -f docker-compose.dev.external-ollama.yml up -d

# Or restart simple Docker
docker pull ghcr.io/libre-webui/libre-webui:dev
docker stop libre-webui-dev && docker rm libre-webui-dev
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

🐛 Hata mı Buldunuz? Geliştirmemize Yardım Edin!​

Hata bildirimleriniz çok değerlidir. Etkili bildirim için:

Bildirmeden Önce​

  1. Mevcut kayıtları denetleyin: yinelenmeyi önlemek için GitHub Issues içinde arayın
  2. Kararlı sürümü deneyin: hatanın yalnızca dev dalında olduğunu doğrulayın
  3. Tutarlı biçimde yeniden üretin: hatayı yeniden oluşturabiliyor musunuz?

Hata Bildirme​

🐛 GitHub’da Hata Bildirin

Şu bilgileri ekleyin:

**Environment:**

- Branch: dev
- Version: [git commit hash or date]
- OS: [Windows/macOS/Linux]
- Browser: [Chrome/Firefox/Safari version]
- Setup: [Docker/Source/etc.]
- Docker: [version and whether `docker info` succeeds, for Work issues]
- Work model/provider: [exact route, when applicable]

**Bug Description:**
Clear description of what went wrong

**Steps to Reproduce:**

1. Go to...
2. Click on...
3. See error...

**Expected Behavior:**
What should have happened

**Actual Behavior:**
What actually happened

**Screenshots/Logs:**
[If applicable, add screenshots or error logs]

**Work Activity:**
[Relevant tool call/result or preview output, with secrets removed]

Git Kayıt Özetini Alma​

# Find your current dev branch commit
git rev-parse HEAD

# Or get a short version
git rev-parse --short HEAD

🏆 Katkı ve Takdir​

Dev dalını kullanarak sınama topluluğumuzun parçası olursunuz. Katkılar çeşitli biçimlerde tanınır:

Katkıda Bulunanların Takdiri​

  • CONTRIBUTORS.md içinde listelenme
  • Önemli katkılar için sürüm notlarında anılma
  • Kayıt iletilerinde ortak yazar atfı
  • Proje duyurularında özel teşekkür

Güncel Katkıcılar​

Topluluğumuzda şunlar bulunur:

  • rob - Proje Bakımcısı
  • jm - Ağ Erişimi İyileştirmesi
  • Ve daha fazlası! Tam listeye bakın

Kod Katkısı mı Yapacaksınız?​

  1. Depoyu çatallayın
  2. dev dalından özellik dalı oluşturun: git checkout -b feature/amazing-feature dev
  3. Değişikliklerinizi yapın
  4. dev dalına Pull Request gönderin

Ayrıntılı yönergeler için Katkı Kılavuzu, etik ilkeler ve yönetişim için Community Charter sayfasına bakın.

Pull Request Kontrolleri​

Ara özellik veya düzeltme dalına yığılmış olanlar dâhil her pull request, Format & Lint iş akışını çalıştırır. Bağımsız işler biçimlendirme, ön ve arka uç kod denetimi, TypeScript türleri, paket/regresyon testleri ve Playwright tarayıcı takımını denetler. Chromium tarayıcı takımının tamamını çalıştırır. WebKit ve Firefox ayrıca kritik kimlik doğrulama, akış, iletişim kutusu, sekme, otomasyon, depolama, Work ve konuşma oynatma akışlarını çalıştırır. Her motor kendi CI işinde çalışır ve başarısız çalıştırmalar ayrı test sonuçları yükler.

Test edilen npm tarball’ı Linux, macOS ve Windows üzerinde, hem Node 22.22 hem Node 24 ile yeni bir tüketici dizinine kurulur. Bu denetimler, checkout’un node_modules dizinini ödünç almadan gerçek üretim bağımlılıklarını kurar; ardından CLI başlatmayı, hazır olma durumunu, ön ucun sunulmasını ve verilerin yeniden başlatma sonrasında korunmasını doğrular. Aynı denetimi yerelde npm run build sonrasında npm run test:package-install ile çalıştırın; belirli bir yapıtı test etmek için bir tarball’ı veya tek bir tarball içeren bir dizini verin. Temiz bir kurulum, kayıt defterine erişim gerektirir; önceden derlenmiş bir bağımlılık bulunmadığında da platformun olağan yerel modül derleme ön koşullarına ihtiyaç duyar.

Ayrı bir Work Computer işi, GUI imajını çalışma zamanının sabitlenmiş tabanından derler ve gerçek etkileşim regresyon testini çalıştırır. TEST_WORK_COMPUTER=1, eksik bir Docker arka plan hizmeti veya imajının denetimi atlatmak yerine başarısız kılmasını sağlar. Yerelde yeniden üretmek için bu bayrağı ve WORK_COMPUTER_TEST_IMAGE değişkenini ayrı derlenmiş bir test imajına ayarlayın, ardından npm run test:work-computer komutunu çalıştırın. Zorunlu mod olmadan, isteğe bağlı GUI fikstürü yoksa yerel çalıştırmalar yine atlandığını bildirir.

Bu matris desteklenen yüzeyler için denetim ekler; desteklenmeyen birleşimleri etkinleştirmez. Düğüme yerel CLI kimlik bilgileri harici ekip çalışanlarına yine kullanılamaz.

CodeQL, her pull request’te JavaScript/TypeScript, Python ve iş akışı kodunu kapsar. examples/ altındaki çalıştırılabilir Python sağlayıcı sunucuları .gitattributes içinde açıkça kod olarak sınıflandırılır; böylece GitHub dil algılaması bunları da dikkate alır. Ayrı yönetilen Code Quality kurulumu hem JavaScript/TypeScript’i hem de Python’u içermelidir. Bir düzeltmeden sonra geçmiş bulgular kalırsa, analiz edilen revizyonu ve dil kapsamını doğrulayın ve değişikliği yayımladıktan sonra ilgili analizi yenileyin. Yalnızca gösterilen notu iyileştirmek için geçerli bulguları kapatmayın veya doğru çalışan asenkron davranışı değiştirmeyin.

Electron Dev Build iş akışı macOS, Windows ve Linux yapıtlarını da paketler. macOS pull request derlemeleri, paketli uygulamanın yüklemeden önce doğrulanabilmesi için projenin kimlik bilgisiz özel imzasını korur. İş akışı Developer ID veya noter kimlik bilgilerini almaz.

Docker Build Test and Push her pull request için amd64 ve arm64 görüntülerini oluşturur. Derlemeler kapsayıcı kayıt defterine girmez, görüntü özetlerini göndermez veya çok mimarili bildirim yayımlamaz.

Pull request açmadan önce aynı kontrolleri yerelde çalıştırın:

npm run format:check
npm run lint
npm run test:package
npm run test:e2e

⚠️ Önemli Notlar​

Veri Güvenliği​

  • Dev dalına geçmeden önce verilerinizi yedekleyin
  • Work görev dosyaları ayrı libre-work-* adlı Docker birimlerinde bulunur. Yıkıcı görev veya kullanıcı yaşam döngüsü değişikliklerini sınamadan önce bunları SQLite veri dizininden ayrı yedekleyin.
  • Dev sınaması için ayrı Docker birimi kullanın:
    # Use different volume name for dev
    docker run -d -p 3000:3001 -v libre-webui-dev:/app/backend/data --name libre-webui-dev ghcr.io/libre-webui/libre-webui:dev

Olası Sorunlar​

  • Uyumsuz değişiklikler yapılandırma güncellemesi gerektirebilir
  • Özellikler eksik olabilir veya bildirim olmadan değişebilir
  • İyileştirmeler sınanırken başarım değişebilir
  • Arayüz öğeleri farklı görünebilir veya beklenmedik davranabilir

Kararlı Sürüm Ne Zaman Kullanılır?​

Şu durumlarda kararlı main dalına dönün:

  • Önemli işler için güvenilirlik gerekiyorsa
  • Çok fazla hatayla karşılaşıyorsanız
  • Sınanmış kararlı deneyim istiyorsanız
# Switch back to stable
git checkout main
docker compose -f docker-compose.external-ollama.yml pull
docker compose -f docker-compose.external-ollama.yml up -d

🌟 Topluluğa Katılın​


Libre WebUI’nin geleceğini şekillendirmeye hazır mısınız? 🚀

Dev dalındaki sınamalarınız, geri bildirimleriniz ve katkılarınız tüm kullanıcıların deneyimini doğrudan iyileştirir. Geliştirme topluluğumuzun parçası olduğunuz için teşekkürler!