> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Retningslinjer for utvikling

> Retningslinjer for bidrag til overleaf-pro, med begrensninger for repo-synkronisering, konvensjoner for brancher og vanlige spørsmål om upstream og versjonering.

### Innledning

Før du går i gang med utvikling, håper vi at du forstår følgende:

* Overleaf utvikles offisielt i et [internt repository](http://github.com/overleaf/internal), og Community Edition publiseres i [overleaf/overleaf](https://github.com/overleaf/overleaf). En copybot er ansvarlig for å synkronisere kode mellom det interne og det offentlige repositoryet.
* [Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) er en fork av Overleaf Community. Vi ønsker at dette prosjektet skal være langsiktig, så følg reglene før du bidrar.

### Regler for commits

* Ikke gjør omfattende endringer i den eksisterende Overleaf-koden. Samle så mye funksjonalitet som mulig i mappen `services/web/modules`. Dette minimerer arbeidsmengden vår når vi senere fletter og oppdaterer koden.
* Vibe coding er riktignok svært enkelt, men det kan lett skape rot i prosjektet og gjøre det umulig å vedlikeholde senere, så bruk det med forsiktighet.
* Ikke legg til noe oversettelsesrelatert innhold under utvikling; bruk eksisterende oversettelser når det er mulig.
* Unngå å innføre miljøvariabler med mindre det er absolutt nødvendig. Hvis det er nødvendig, sørg for at de er så konsistente som mulig med dem i Overleaf Toolkit eller [docs.overleaf.com](https://docs.overleaf.com/).

### Regler for brancher

Vi bruker følgende brancher for utvikling av overleaf-pro:

* `main`: Denne branchen brukes kun til synkronisering av upstream-kode, så **IKKE** commit noen eksterne endringer. I denne branchen setter vi tagger som `ce-v[X.x.x]`, som angir at den tilsvarer `v[X.x.x]` i den offisielle Overleaf Community Edition. Merk: denne taggen er uforanderlig!
* `server-pro`: Denne branchen er standardbranchen for daglig utvikling.
* `feature-X`: Denne branchen brukes til utvikling av en bestemt funksjon.
* `release-vX.0.0`: Branchen som er dedikert til utgivelser; vi gjør noen hotfikser før utgivelse.

<Frame caption="Regler for brancher i Overleaf Pro">
  <img src="https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/dev/release-model.png?fit=max&auto=format&n=x9kfDjtWlyyhG_mR&q=85&s=8a10a259ff5a6437cb05f03560a5dc2c" alt="" width="5652" height="2544" data-path="images/dev/release-model.png" />
</Frame>

### GitHub Action

[GitHub Action](https://github.com/ayaka-notes/overleaf-pro/actions) er ansvarlig for automatisk CI/CD, som omfatter:

* Nattlig oppdatering av main-branchen
* Bygging av Docker-image for utvikling
* Utgivelse av Docker-image

### Spørsmål og svar

<Accordion title="Hvordan finner jeg commit-hashen for Overleaf Community Edition `X.0.0`?">
  Først må du hente Docker-imaget og kjøre følgende kommando for å inspisere labels i dette Docker-imaget:

  ```shellscript title="bash" wrap theme={null}
  docker inspect --format='{{json .Config.Labels}}' sharelatex/sharelatex:6.0.0
  {"com.overleaf.ce.revision":"b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f","org.opencontainers.image.ref.name":"ubuntu","org.opencontainers.image.version":"24.04"}
  ```

  Deretter kan du sjekke om [commiten (b0d05c0)](https://github.com/overleaf/overleaf/commit/b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f) finnes i upstream master-branchen.
</Accordion>

<Accordion title="Hvorfor er commit-hashen den samme i CE-imaget for `6.0.0` og `6.0.1`?">
  Dette er forventet oppførsel. Utgivelsen 6.0.1 er en mindre patch-utgivelse bygget på toppen av 6.0.0-imaget. Endringene påføres ved å patche det eksisterende 6.0.0-imaget, i stedet for å bygge imaget på nytt fra en ny commit. Derfor er commit-hashen inne i imaget identisk mellom 6.0.0 og 6.0.1.

  For detaljert informasjon, se [hotfix](https://github.com/overleaf/overleaf/tree/main/server-ce/hotfix).
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.