Lewati ke konten utama

🧪 Panduan Cabang Pengembangan

Ingin mencoba fitur terbaru sebelum dirilis resmi? Cabang dev memuat peningkatan mutakhir dan fitur eksperimental yang akhirnya masuk rilis utama.

Perangkat Lunak Eksperimental

Cabang dev eksperimental dan dapat berisi bug, fitur belum lengkap, atau perubahan tidak kompatibel. Gunakan hanya jika siap menghadapi ketidakstabilan dan ingin membantu Libre WebUI.

🎯 Apa Itu Cabang Dev?​

Cabang pengembangan (dev) menguji fitur baru sebelum digabung ke main. Isinya:

  • Fitur terbaru yang belum stabil
  • Perbaikan bug yang diuji
  • Peningkatan eksperimental antarmuka dan fungsi
  • Optimasi kinerja dalam pengembangan

🚀 Menggunakan Cabang Dev​

Penyiapan Docker (Disarankan)​

Berkas Compose pengembangan memasang soket Docker host sehingga Work aktif saat Docker tersedia. Kontainer tugas berjalan pada layanan host dan muncul di docker ps. Di Linux, tetapkan DOCKER_GID dalam .env.

Dengan Ollama eksternal:

# 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

Docker sederhana:

# 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

Dari Sumber​

# 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 dapat siap sebelum backend menyelesaikan pemeriksaan awalnya. Untuk backend lokal, proxy pengembangan menunggu listener-nya hingga 10 detik sebelum meneruskan permintaan API. Proxy meneruskan setiap permintaan satu kali, termasuk operasi tulis; permintaan yang gagal tidak diulang. Jika backend tetap tidak tersedia, proxy mengembalikan HTTP 503 disertai petunjuk untuk mencoba lagi. Berkas frontend statis tetap tersedia selama penungguan.

Chat terus menyambung ulang setelah gangguan backend sementara, dengan jeda paling lama 30 detik. Sambungan yang berhasil mengatur ulang jeda; keluar dari akun membatalkan percobaan yang tertunda. Kegagalan autentikasi menghentikan penyambungan ulang otomatis.

Menguji Work​

  1. Jalankan Docker dan pastikan docker info berhasil sebagai pengguna backend.
  2. Jalankan Libre WebUI dari sumber dengan npm run dev.
  3. Masuk sebagai administrator.
  4. Pilih Work dan model Ollama, Ollama Cloud, atau plugin yang mendukung alat.

Jalankan tes penyedia dan kebijakan kontainer:

npm run test:work

Tes memvalidasi kebijakan Docker, batas jalur, siklus hidup, kapasitas, dan adaptor alat OpenAI-compatible, Anthropic, serta Gemini. Lihat Work: Ruang Kerja Terisolasi.

🔄 Tetap Terbaru​

Cabang dev sering diperbarui:

# 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

🐛 Menemukan Bug? Bantu Kami!​

Laporan Anda sangat berharga.

Sebelum Melapor​

  1. Cari GitHub Issues agar tidak duplikat
  2. Coba versi stabil untuk memastikan bug hanya di dev
  3. Pastikan bug dapat diulang

Melaporkan Bug​

🐛 Laporkan Bug di GitHub

Sertakan:

**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]

Mendapatkan Hash Commit​

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

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

🏆 Kontribusi dan Pengakuan​

Menggunakan dev menjadikan Anda bagian komunitas penguji. Kontribusi diakui melalui:

Pengakuan bagi Kontributor​

  • Daftar di CONTRIBUTORS.md
  • Catatan rilis, atribusi penulis bersama, dan ucapan terima kasih

Kontributor Saat Ini​

Ingin Berkontribusi Kode?​

  1. Fork repositori
  2. Buat cabang dari dev: git checkout -b feature/amazing-feature dev
  3. Buat perubahan
  4. Kirim Pull Request ke dev

Lihat Panduan Kontribusi dan Community Charter.

Pemeriksaan Pull Request​

Setiap Pull Request, termasuk Pull Request bertumpuk ke cabang feature atau fix perantara, menjalankan alur kerja Format & Lint. Job-job independennya memeriksa format, lint frontend dan backend, tipe TypeScript, tes paket dan regresi, serta rangkaian peramban Playwright. Chromium menjalankan seluruh rangkaian peramban. WebKit dan Firefox juga menjalankan alur penting untuk autentikasi, streaming, dialog, tab, otomasi, penyimpanan, Work, dan pemutaran suara. Setiap engine berjalan di job CI tersendiri, dan run yang gagal mengunggah hasil tes secara terpisah.

Tarball npm yang sudah diuji dipasang ke direktori konsumen baru di Linux, macOS, dan Windows, menggunakan Node 22.22 dan Node 24. Pemeriksaan ini memasang dependensi produksi yang sebenarnya tanpa meminjam node_modules dari checkout, lalu memverifikasi startup CLI, kesiapan, penyajian frontend, dan data setelah restart. Jalankan pemeriksaan yang sama secara lokal setelah npm run build dengan npm run test:package-install; berikan tarball, atau direktori yang berisi satu tarball, untuk menguji artefak tertentu. Instalasi bersih memerlukan akses registry, serta prasyarat build modul native yang biasa untuk platform tersebut jika dependensi prebuilt tidak tersedia.

Job Work Computer terpisah membangun image GUI dari base yang dipin oleh runtime dan menjalankan tes regresi interaksi yang sebenarnya. TEST_WORK_COMPUTER=1 membuat daemon Docker atau image yang tidak ada menggagalkan pemeriksaan, bukan melewatinya. Untuk mereproduksinya secara lokal, atur flag tersebut dan WORK_COMPUTER_TEST_IMAGE ke image tes yang dibangun terpisah, lalu jalankan npm run test:work-computer. Tanpa mode wajib, run lokal tetap melaporkan skip jika fixture GUI opsional tidak ada.

Matriks ini menambahkan pemeriksaan untuk permukaan yang didukung; matriks ini tidak mengaktifkan kombinasi yang tidak didukung. Kredensial CLI lokal-node tetap tidak tersedia bagi worker tim eksternal.

CodeQL mencakup kode JavaScript/TypeScript, Python, dan workflow pada setiap Pull Request. Server penyedia Python yang dapat dieksekusi di bawah examples/ secara eksplisit diklasifikasikan sebagai kode di .gitattributes, sehingga deteksi bahasa GitHub menyertakannya. Penyiapan Code Quality terkelola yang terpisah harus mencakup JavaScript/TypeScript dan Python. Jika temuan lama masih ada setelah perbaikan, verifikasi revisi yang dianalisis dan cakupan bahasanya, lalu segarkan analisis yang berlaku setelah perubahan dipublikasikan. Jangan menutup temuan yang valid atau mengubah perilaku asinkron yang sudah benar hanya demi memperbaiki nilai yang ditampilkan.

Electron Dev Build mengemas artefak macOS, Windows, Linux. Build macOS mempertahankan tanda tangan ad-hoc tanpa kredensial; alur tidak menerima Developer ID atau notarisasi.

Docker Build Test and Push membangun image amd64 dan arm64. Build tidak masuk registry, mengirim digest, atau menerbitkan manifest multiarsitektur.

Jalankan pemeriksaan lokal:

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

⚠️ Catatan Penting​

Keamanan Data​

  • Cadangkan data sebelum beralih ke dev
  • Berkas Work berada di volume Docker libre-work-*; cadangkan terpisah sebelum tes destruktif
  • Gunakan volume Docker terpisah:
    # 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

Masalah Potensial​

  • Perubahan tidak kompatibel dapat memerlukan konfigurasi
  • Fitur mungkin belum lengkap
  • Kinerja dan tampilan dapat berubah

Kapan Memakai Stabil​

Kembali ke main jika membutuhkan keandalan, menemui banyak bug, atau menginginkan pengalaman teruji:

# 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

🌟 Bergabung dengan Komunitas​


Siap membantu membentuk masa depan Libre WebUI? 🚀

Tes, umpan balik, dan kontribusi Anda meningkatkan pengalaman semua pengguna.