🧪 Vejledning til udviklingsgrenen
Vil du prøve de nyeste funktioner, før de udgives officielt? Grenen dev indeholder de nyeste forbedringer og eksperimentelle funktioner, som med tiden kommer med i den officielle udgivelse.
Grenen dev er eksperimentel og kan indeholde fejl, ufærdige funktioner eller ændringer, der bryder kompatibiliteten. Brug den kun, hvis du kan leve med mulig ustabilitet og gerne vil hjælpe med at forbedre Libre WebUI.
🎯 Hvad er dev-grenen?
Udviklingsgrenen (dev) er stedet, hvor nye funktioner testes, før de flettes ind i den stabile gren main. Den indeholder:
- De nyeste funktioner, som endnu ikke er med i de stabile udgivelser
- Fejlrettelser, der er under test
- Eksperimentelle forbedringer af brugerfladen og funktionaliteten
- Ydelsesoptimeringer, der er under udvikling
🚀 Sådan bruger du dev-grenen
Docker-opsætning (anbefales)
Udviklingens Compose-filer monterer værtens Docker-socket, så Work fungerer
som standard, når Docker er tilgængelig. Opgavecontainere kører på værtens
daemon og vises i docker ps. På Linux skal du først angive DOCKER_GID i
.env.
Med ekstern Ollama:
# 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
Simpel 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
Fra kildekode
# 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 kan blive klar, før backend er færdig med sine opstartstjek. For en lokal backend venter udviklingsproxyen op til 10 sekunder på dens lytter, før den videresender en API-anmodning. Den videresender hver anmodning én gang, også skrivninger, og gentager ikke mislykkede anmodninger. Hvis backend fortsat ikke er tilgængelig, returnerer proxyen HTTP 503 med et tip om at prøve igen. Statiske frontendfiler er fortsat tilgængelige under ventetiden.
Chatten bliver ved med at genoprette forbindelsen efter midlertidige backendudfald, med forsinkelser på højst 30 sekunder. En vellykket forbindelse nulstiller forsinkelsen, og når du logger ud, annulleres ventende forsøg. Godkendelsesfejl stopper den automatiske genforbindelse.
Test af Work
- Start Docker, og kontrollér, at
docker infolykkes som den samme bruger, der kører backend. - Start Libre WebUI fra kildekoden med
npm run dev. - Log ind som administrator.
- Vælg Work, og brug en Ollama-, Ollama Cloud- eller pluginbaseret model, der kan bruge værktøjer.
Kør de målrettede backendtest for udbydere og containerpolitik med:
npm run test:work
Testene validerer den genererede Docker-politik, afgrænsningen af stier, livscyklus- og kapacitetsadfærd samt værktøjsadaptere til OpenAI-kompatible API'er, Anthropic og Gemini. Se Work: isolerede arbejdsområder for hele runtimegrænsen.
🔄 Hold dig opdateret
Dev-grenen opdateres ofte. Sådan henter du de seneste ændringer:
# 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
🐛 Har du fundet en fejl? Hjælp os med at blive bedre!
Dine fejlrapporter er utroligt værdifulde! Sådan rapporterer du problemer effektivt:
Før du rapporterer
- Tjek eksisterende issues: Søg i GitHub Issues for at undgå dubletter
- Prøv den stabile version: Bekræft, at fejlen kun findes i dev (ikke i grenen main)
- Genskab fejlen konsekvent: Kan du få fejlen til at ske igen?
Sådan rapporterer du fejl
Medtag disse oplysninger:
**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]
Find din Git-commit-hash
# Find your current dev branch commit
git rev-parse HEAD
# Or get a short version
git rev-parse --short HEAD
🏆 Bidrag og anerkendelse
Når du bruger dev-grenen, er du en del af vores testfællesskab! Bidragydere anerkendes på flere måder:
Anerkendelse af bidragydere
- Nævnt i CONTRIBUTORS.md
- Nævnt i udgivelsesnoterne for væsentlige bidrag
- Medforfatterskab i commitbeskeder
- Særlig tak i projektets meddelelser
Nuværende bidragydere
Vores fantastiske fællesskab omfatter:
- rob - Projektansvarlig
- jm - Forbedring af netværksadgang
- Og flere bidragydere! Se den fulde liste
Vil du bidrage med kode?
- Fork repositoriet
- Opret en funktionsgren fra
dev:git checkout -b feature/amazing-feature dev - Foretag dine ændringer
- Send en pull request mod grenen
dev
Se vores retningslinjer for bidrag for en detaljeret vejledning og vores fællesskabscharter for projektets etiske retningslinjer og styringsmodel.
Pull request-kontroller
Hver pull request, også en stablet pull request mod en mellemliggende
funktions- eller rettelsesgren, kører arbejdsgangen Format & Lint. Dens
uafhængige job kontrollerer formatering, linting af frontend og backend,
TypeScript-typer, pakke- og regressionstest samt Playwrights browsersuite.
Chromium kører hele browsersuiten. WebKit og Firefox kører desuden de kritiske
forløb for godkendelse, streaming, dialogbokse, faner, automatiseringer,
lagring, Work og taleafspilning. Hver motor kører i sit eget CI-job, og
mislykkede kørsler uploader separate testresultater.
Den testede npm-tarball installeres i en ny forbrugermappe på Linux, macOS og
Windows med både Node 22.22 og Node 24. Kontrollerne installerer rigtige
produktionsafhængigheder uden at låne udtjekningens node_modules og
verificerer derefter, at CLI'en starter, at tjenesten bliver klar, at frontend
serveres, og at data bevares efter en genstart. Kør den samme kontrol lokalt
efter npm run build med npm run test:package-install. Angiv en tarball
eller en mappe, der indeholder én tarball, for at teste en bestemt artefakt. En
ren installation kræver adgang til registret og platformens normale
forudsætninger for at bygge native moduler, når en forudbygget afhængighed ikke
er tilgængelig.
Et separat Work Computer-job bygger GUI-imaget fra runtimens fastlåste base og
kører den reelle regressionstest af interaktion. TEST_WORK_COMPUTER=1 får en
manglende Docker-daemon eller et manglende image til at få kontrollen til at
fejle i stedet for at springe den over. Hvis du vil genskabe det lokalt, skal
du angive det flag og WORK_COMPUTER_TEST_IMAGE til et separat bygget
testimage og derefter køre npm run test:work-computer. Uden påkrævet tilstand
rapporterer lokale kørsler stadig et spring over, når den valgfrie GUI-fixture
mangler.
Matrixen tilføjer kontroller for de understøttede overflader. Den aktiverer ikke kombinationer uden understøttelse. Nodelokale CLI-legitimationsoplysninger er fortsat ikke tilgængelige for eksterne teamworkere.
CodeQL dækker JavaScript/TypeScript, Python og arbejdsgangskode i hver pull
request. De eksekverbare Python-udbyderservere under examples/ er udtrykkeligt
klassificeret som kode i .gitattributes, så GitHubs sprogregistrering tager
dem med. Den separate administrerede opsætning Code Quality bør omfatte
både JavaScript/TypeScript og Python. Hvis der stadig er historiske fund
efter en rettelse, skal du kontrollere den analyserede revision og
sprogdækningen og opdatere den relevante analyse, når ændringen er publiceret.
Afvis ikke gyldige fund, og ændr ikke korrekt asynkron adfærd blot for at
forbedre den viste karakter.
Arbejdsgangen Electron Dev Build pakker også artefakter til macOS, Windows og
Linux. Pull request-byg til macOS beholder projektets ad hoc-signatur uden
legitimationsoplysninger, så det pakkede program kan verificeres før upload.
Pull request-arbejdsgangen modtager ikke legitimationsoplysninger til Developer
ID eller notarisering.
Arbejdsgangen Docker Build Test and Push bygger images til både amd64 og
arm64 for hver pull request, også stablede pull requests mod mellemliggende
grene. Pull request-byg logger ikke ind i et containerregister, pusher ikke
image-digests og publicerer ikke et multiarkitekturmanifest.
Kør de samme kontroller på applikationsniveau lokalt, før du åbner en pull request:
npm run format:check
npm run lint
npm run test:package
npm run test:e2e
⚠️ Vigtige bemærkninger
Datasikkerhed
- Sikkerhedskopiér dine data, før du skifter til dev-grenen
- Work-opgavefiler ligger i separate navngivne Docker-volumener,
libre-work-*. Sikkerhedskopiér dem separat fra SQLite-datamappen, før du tester destruktive ændringer i opgavers eller brugeres livscyklus. - Brug et separat Docker-volumen til test af dev:
# Use different volume name for devdocker run -d -p 3000:3001 -v libre-webui-dev:/app/backend/data --name libre-webui-dev ghcr.io/libre-webui/libre-webui:dev
Mulige problemer
- Ændringer, der bryder kompatibiliteten, kan kræve opdateret konfiguration
- Funktioner kan være ufærdige eller ændres uden varsel
- Ydelsen kan variere, mens optimeringer testes
- Elementer i brugerfladen kan se anderledes ud eller opføre sig uventet
Hvornår du bør bruge den stabile version
Skift tilbage til den stabile gren main, hvis du:
- Har brug for pålidelighed til vigtigt arbejde
- Oplever for mange fejl
- Vil have en testet, stabil oplevelse
# 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
🌟 Bliv en del af fællesskabet
- GitHub Discussions: Del idéer, og stil spørgsmål
- Issues: Rapportér fejl, og foreslå funktioner
- Bidragydere: Se, hvem der hjælper med at bygge Libre WebUI
Klar til at hjælpe med at forme fremtiden for Libre WebUI? 🚀
Dine test, din feedback og dine bidrag på dev-grenen forbedrer direkte oplevelsen for alle brugere. Tak, fordi du er en del af vores udviklingsfællesskab!