> ## 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.

# Riktlinjer för utveckling

> Riktlinjer för bidrag till overleaf-pro, med begränsningar för synkronisering av repon, konventioner för grenar och vanliga frågor om upstream och versionshantering.

### Introduktion

Innan du dyker in i utvecklingen hoppas vi att du förstår följande:

* Overleaf utvecklas officiellt i ett [internt repository](http://github.com/overleaf/internal), och community-utgåvan publiceras i [overleaf/overleaf](https://github.com/overleaf/overleaf). En copybot ansvarar för att synkronisera kod mellan det interna och det publika repositoryt.
* [Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) är en fork av Overleaf Community. Vi hoppas att projektet ska bli långlivat, så följ reglerna innan du bidrar.

### Regler för commits

* Gör inga omfattande ändringar i den befintliga Overleaf-koden. Samla så mycket funktionalitet som möjligt i mappen `services/web/modules`. Det minimerar vårt arbete när vi senare slår ihop och uppdaterar koden.
* Vibe coding är visserligen ett mycket enkelt arbetssätt, men det kan lätt röra till projektet och göra det svårt att underhålla senare, så använd det med försiktighet.
* Lägg inte till något översättningsrelaterat innehåll under utvecklingen; använd befintliga översättningar när det är möjligt.
* Undvik att införa miljövariabler om det inte är absolut nödvändigt. Om det krävs, se till att de är så konsekventa som möjligt med dem i Overleaf Toolkit eller [docs.overleaf.com](https://docs.overleaf.com/).

### Regler för grenar

Vi använder följande grenar för utvecklingen av overleaf-pro:

* `main`: Den här grenen används endast för synkronisering av upstream-kod, så **committa INTE** några externa ändringar. I den här grenen sätter vi taggar som `ce-v[X.x.x]`, vilket anger att den motsvarar `v[X.x.x]` i Overleafs officiella Community Edition. Obs: den här taggen är oföränderlig!
* `server-pro`: Den här grenen är standardgrenen för den dagliga utvecklingen.
* `feature-X`: Den här grenen används för utveckling av en specifik funktion.
* `release-vX.0.0`: Grenen som är specifik för en release; vi gör vissa snabbkorrigeringar (hot-fix) före releasen.

<Frame caption="Grenregler för 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) ansvarar för automatisk CI/CD, vilket omfattar:

* Nattlig uppdatering av main-grenen
* Bygge av Docker-image för utveckling
* Release av Docker-image

### Frågor och svar

<Accordion title="Hur hittar jag commit-hashen för Overleaf Community Edition `X.0.0`?">
  Först behöver du hämta Docker-imagen och köra följande kommando för att inspektera etiketterna i den:

  ```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"}
  ```

  Sedan kan du kontrollera om [commit(b0d05c0)](https://github.com/overleaf/overleaf/commit/b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f) finns i upstreams master-gren.
</Accordion>

<Accordion title="Varför är commit-hashen densamma i CE-imagen för `6.0.0` och `6.0.1`?">
  Detta är förväntat beteende. Version 6.0.1 är en mindre patch-release som bygger på 6.0.0-imagen. Ändringarna tillämpas genom att patcha den befintliga 6.0.0-imagen i stället för att bygga om imagen från en ny commit. Därför är commit-hashen i imagen identisk mellan 6.0.0 och 6.0.1.

  Mer information finns i [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.