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

# Panduan Pengembangan

> Panduan kontribusi untuk overleaf-pro, mencakup batasan sinkronisasi repositori, konvensi branch, dan tanya jawab umum seputar upstream/versioning.

### Pendahuluan

Sebelum Anda mulai melakukan pengembangan, kami berharap Anda memahami hal-hal berikut:

* Overleaf secara resmi dikembangkan di [repositori internal](http://github.com/overleaf/internal), dan edisi komunitasnya dipublikasikan di [overleaf/overleaf](https://github.com/overleaf/overleaf). Sebuah copybot bertugas menyinkronkan kode antara repositori internal dan publik.
* [Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) adalah versi fork dari Overleaf komunitas. Kami berharap proyek ini dapat bertahan dalam jangka panjang, jadi harap ikuti aturan berikut sebelum berkontribusi.

### Aturan Commit

* Harap jangan melakukan modifikasi besar-besaran pada kode Overleaf yang sudah ada. Pusatkan fungsionalitas sebanyak mungkin di folder `services/web/modules`. Hal ini akan meminimalkan beban kerja kami saat menggabungkan dan memperbarui kode di kemudian hari.
* Vibe coding memang cara yang sangat mudah, tetapi dapat dengan mudah membuat proyek kita berantakan sehingga sulit dipelihara di kemudian hari, jadi gunakanlah dengan hati-hati.
* Harap jangan menambahkan konten terkait terjemahan selama pengembangan; gunakan terjemahan yang sudah ada bila memungkinkan.
* Hindari menambahkan variabel lingkungan kecuali benar-benar diperlukan. Jika memang diperlukan, pastikan variabel tersebut sekonsisten mungkin dengan yang ada di Overleaf toolkit atau [docs.overleaf.com](https://docs.overleaf.com/).

### Aturan Branch

Kami menggunakan branch berikut untuk pengembangan overleaf-pro:

* `main`: Branch ini hanya digunakan untuk sinkronisasi kode upstream, harap **JANGAN** melakukan commit perubahan eksternal apa pun. Di branch ini, kami akan menetapkan beberapa tag seperti `ce-v[X.x.x]`, yang menandakan bahwa tag tersebut sesuai dengan `v[X.x.x]` di Overleaf Official Community Edition. Catatan: tag ini tidak dapat diubah!
* `server-pro`: Branch ini adalah branch default untuk pengembangan sehari-hari.
* `feature-X`: Branch ini digunakan untuk mengembangkan fitur tertentu.
* `release-vX.0.0`: Branch khusus untuk rilis; kami akan melakukan beberapa hot-fix sebelum rilis.

<Frame caption="Aturan Branch untuk 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) bertanggung jawab atas CI/CD otomatis, yang meliputi:

* Pembaruan harian (nightly) branch main
* Membangun image docker untuk pengembangan
* Merilis image docker

### Tanya Jawab

<Accordion title="Bagaimana cara menemukan commit hash untuk Overleaf Community Edition `X.0.0`?">
  Pertama-tama, Anda perlu menarik (pull) image docker dan menjalankan perintah berikut untuk memeriksa label pada image docker tersebut:

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

  Kemudian Anda dapat memeriksa apakah [commit(b0d05c0)](https://github.com/overleaf/overleaf/commit/b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f) ada di branch master upstream.
</Accordion>

<Accordion title="Mengapa commit hash pada image CE sama antara `6.0.0` dan `6.0.1`?">
  Ini adalah perilaku yang diharapkan. Rilis 6.0.1 adalah rilis patch minor yang dibangun di atas image 6.0.0. Perubahannya diterapkan dengan menambal (patch) image 6.0.0 yang sudah ada, bukan dengan membangun ulang image dari commit baru. Oleh karena itu, commit hash di dalam image identik antara 6.0.0 dan 6.0.1.

  Untuk informasi lebih lanjut, lihat [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.