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

# Pautas de desarrollo

> Pautas de contribución para overleaf-pro, que cubren las restricciones de sincronización del repositorio, las convenciones de ramas y preguntas frecuentes sobre upstream y versiones.

### Introducción

Antes de sumergirte en el desarrollo, esperamos que comprendas lo siguiente:

* Overleaf se desarrolla oficialmente en un [repositorio interno](http://github.com/overleaf/internal), y la edición comunitaria se publica en [overleaf/overleaf](https://github.com/overleaf/overleaf). Un copybot se encarga de sincronizar el código entre el repositorio interno y el público.
* [Ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) es una versión bifurcada (fork) de Overleaf Community. Queremos que este proyecto sea sostenible a largo plazo, así que sigue estas reglas antes de contribuir.

### Reglas de commits

* No realices modificaciones extensas en el código existente de Overleaf. Concentra tanta funcionalidad como sea posible en la carpeta `services/web/modules`. Así minimizaremos el trabajo al fusionar y actualizar el código más adelante.
* El vibe coding es realmente una forma muy sencilla de trabajar, pero puede desordenar fácilmente nuestro proyecto y hacerlo inmantenible más adelante, así que úsalo con precaución.
* No añadas contenido relacionado con traducciones durante el desarrollo; utiliza las traducciones existentes siempre que sea posible.
* Evita introducir variables de entorno salvo que sea absolutamente necesario. Si son necesarias, asegúrate de que sean lo más coherentes posible con las del Overleaf Toolkit o de [docs.overleaf.com](https://docs.overleaf.com/).

### Reglas de ramas

Usamos las siguientes ramas para el desarrollo de overleaf-pro:

* `main`: esta rama se usa solo para sincronizar el código upstream; **NO** hagas commit de ningún cambio externo. En esta rama crearemos etiquetas como `ce-v[X.x.x]`, que indican que corresponde a `v[X.x.x]` de la Community Edition oficial de Overleaf. Nota: ¡esta etiqueta es inmutable!
* `server-pro`: esta es la rama predeterminada para el desarrollo diario.
* `feature-X`: esta rama se usa para desarrollar una funcionalidad específica.
* `release-vX.0.0`: rama específica para una versión; en ella aplicaremos algunas correcciones urgentes (hot-fix) antes del lanzamiento.

<Frame caption="Reglas de ramas para 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) se encarga del CI/CD automático, que incluye:

* Actualización nocturna de la rama main
* Compilación de la imagen de Docker para desarrollo
* Publicación de la imagen de Docker

### Preguntas y respuestas

<Accordion title="¿Cómo encontrar el hash del commit de Overleaf Community Edition `X.0.0`?">
  En primer lugar, descarga la imagen de Docker y ejecuta el siguiente comando para inspeccionar las etiquetas de esa imagen:

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

  Después puedes comprobar si el [commit (b0d05c0)](https://github.com/overleaf/overleaf/commit/b0d05c0cf0750714e1f467d20ed6c5f5e9467e8f) está presente en la rama master upstream.
</Accordion>

<Accordion title="¿Por qué el hash del commit es el mismo en la imagen CE entre `6.0.0` y `6.0.1`?">
  Este es el comportamiento esperado. La versión 6.0.1 es un parche menor construido sobre la imagen 6.0.0. Los cambios se aplican parcheando la imagen 6.0.0 existente, en lugar de reconstruir la imagen a partir de un nuevo commit. Por lo tanto, el hash del commit dentro de la imagen es idéntico entre 6.0.0 y 6.0.1.

  Para más información, consulta [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.