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

# Entwicklungsrichtlinien

> Richtlinien für Beiträge zu overleaf-pro, einschließlich Einschränkungen bei der Repository-Synchronisierung, Branch-Konventionen und häufiger Fragen zu Upstream und Versionierung.

### Einführung

Bevor Sie mit der Entwicklung beginnen, sollten Sie folgende Punkte kennen:

* Overleaf wird offiziell in einem [internen Repository](http://github.com/overleaf/internal) entwickelt, und die Community Edition wird unter [overleaf/overleaf](https://github.com/overleaf/overleaf) veröffentlicht. Ein Copybot ist für die Synchronisierung des Codes zwischen dem internen und dem öffentlichen Repository zuständig.
* [Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) ist ein Fork der Overleaf Community Edition. Wir möchten, dass dieses Projekt langfristig bestehen bleibt, daher befolgen Sie bitte die Regeln, bevor Sie Beiträge leisten.

### Commit-Regeln

* Bitte nehmen Sie keine umfangreichen Änderungen am bestehenden Overleaf-Code vor. Bündeln Sie so viel Funktionalität wie möglich im Ordner `services/web/modules`. Dadurch minimieren wir unseren Aufwand beim späteren Zusammenführen und Aktualisieren des Codes.
* Vibe Coding ist zwar sehr bequem, kann unser Projekt aber leicht durcheinanderbringen und es später unwartbar machen. Setzen Sie es daher bitte mit Bedacht ein.
* Bitte fügen Sie während der Entwicklung keine übersetzungsbezogenen Inhalte hinzu; verwenden Sie nach Möglichkeit vorhandene Übersetzungen.
* Vermeiden Sie neue Umgebungsvariablen, sofern sie nicht unbedingt erforderlich sind. Falls doch, sorgen Sie dafür, dass sie so weit wie möglich mit denen im Overleaf Toolkit oder auf [docs.overleaf.com](https://docs.overleaf.com/) übereinstimmen.

### Branch-Regeln

Für die Entwicklung von overleaf-pro verwenden wir die folgenden Branches:

* `main`: Dieser Branch dient ausschließlich der Synchronisierung mit dem Upstream-Code. Bitte committen Sie hier **KEINE** externen Änderungen. In diesem Branch setzen wir Tags wie `ce-v[X.x.x]`, die angeben, dass der Stand `v[X.x.x]` der offiziellen Overleaf Community Edition entspricht. Hinweis: Diese Tags sind unveränderlich!
* `server-pro`: Dies ist der Standard-Branch für die tägliche Entwicklung.
* `feature-X`: Dieser Branch wird für die Entwicklung eines bestimmten Features verwendet.
* `release-vX.0.0`: Der Branch speziell für Releases; hier nehmen wir vor dem Release einige Hotfixes vor.

<Frame caption="Branch-Regeln 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) ist für das automatische CI/CD zuständig, das Folgendes umfasst:

* Nächtliche Aktualisierung des main-Branches
* Erstellen von Docker-Images für die Entwicklung
* Veröffentlichen von Docker-Images

### Fragen & Antworten

<Accordion title="Wie finde ich den Commit-Hash für die Overleaf Community Edition `X.0.0`?">
  Zunächst müssen Sie das Docker-Image herunterladen und mit dem folgenden Befehl die Labels dieses Docker-Images untersuchen:

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

  Anschließend können Sie prüfen, ob der [Commit (b0d05c0)](https://github.com/overleaf/overleaf/commit/b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f) im Upstream-master-Branch vorhanden ist.
</Accordion>

<Accordion title="Warum ist der Commit-Hash im CE-Image bei `6.0.0` und `6.0.1` identisch?">
  Dies ist das erwartete Verhalten. Das Release 6.0.1 ist ein kleines Patch-Release, das auf dem Image 6.0.0 aufbaut. Die Änderungen werden durch Patchen des bestehenden 6.0.0-Images angewendet, anstatt das Image aus einem neuen Commit neu zu erstellen. Daher ist der Commit-Hash im Image bei 6.0.0 und 6.0.1 identisch.

  Weitere Informationen finden Sie unter [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.