He bifurcado el repositorio de Discourse en GitHub. ¿Cómo puedo reemplazarlo con la instalación existente de Discourse en mi sitio? Lo he intentado todo, pero me he encontrado con errores cada vez. Añadí mi propio repositorio de Discourse de GitHub al archivo app.yml, pero no pude continuar debido a errores. Incluso cuando logré hacer los cambios, siempre reinstalaba el Discourse original. ¿Cómo podemos ejecutar este proceso correctamente?
Ayuda ser específico.
Tras un nuevo examen, realicé una modificación en el discurso que estaba analizando y noté que este cambio es visible en la página de actualización dentro del panel de administración. Ahora lo estoy actualizando; si el ajuste funciona correctamente, revisaré este mensaje en consecuencia.
Estas son las configuraciones en mi archivo app.yml, que he reconstruido sin encontrar errores. Sin embargo, tras una revisión posterior, las modificaciones que realicé no son visibles, aunque Discourse sigue funcionando perfectamente.
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec:
cd: /var/www/discourse
cmd:
- sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
- sudo -u discourse git fetch origin
- sudo -u discourse git checkout origin/main
- sudo -u discourse git remote set-branches --add origin main
- sudo -u discourse git remote set-branches origin tests-passed
- sudo -u discourse git reset --hard origin/main
- exec: echo "End of custom commands"
Entonces, cuando haces “ver código fuente” y miras la sexta línea aproximadamente, ¿el hash de confirmación en la cadena de versión corresponde a la última confirmación en tu repositorio bifurcado?
Creí haber completado la tarea, pero parece ser ineficaz. La última actualización visible en la página de actualización del administrador es: https://github.com/KilicSelcuk/discourse/commit/e44347414a8325ec25e5892c35bcd889d39a6668.
Sin embargo, las modificaciones reales que hice se reflejan aquí: Commits · KilicSelcuk/discourse · GitHub.
En esencia, los cambios que implementé no son visibles en la página de actualización. Además, cuando realizo una reconstrucción, no incorpora las actualizaciones de mi repositorio. Si los cambios se hubieran aplicado, serían visibles.
Mi configuración más reciente es la siguiente:
## Cualquier comando personalizado para ejecutar después de la compilación
run:
- exec: echo "Comienzo de los comandos personalizados"
## Para establecer la dirección de correo electrónico 'De' para tu registro inicial, descomenta y modifica:
## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec:
cd: /var/www/discourse
cmd:
- sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
- sudo -u discourse git fetch origin
- sudo -u discourse git checkout origin/main
- sudo -u discourse git remote set-branches --add origin main
# - sudo -u discourse git remote set-branches origin tests-passed
# - sudo -u discourse git branch -u origin/main
- sudo -u discourse git reset --hard origin/main
Resolver este problema sería beneficioso. No pude encontrar un recurso útil en el foro, pero podría servir como una referencia orientativa para quienes sigan.
Eso suele ser una mala idea. Deberías hacer los cambios en un plugin.
De hecho, originalmente estaba haciendo esto, pero una vez que el plugin se integró en el núcleo, ya no pude modificarlo. Desafortunadamente, las soluciones sugeridas también resultaron ineficaces: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Si has bifurcado un plugin, deberías eliminar el plugin incluido y clonar tu versión.
Creo que ya te he hablado de esto en otro tema. Definitivamente quieres bifurcar solo el plugin y no toda la aplicación y todos los demás plugins.
Encuentro un error cada vez que intento instalar el plugin. Si tengo más tiempo, lo intentaré de nuevo: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Esa es la forma de resolver tu problema. Si tienes un error y quieres ayuda, debes decir exactamente cuál es el error e incluir la sección de plugins de tu archivo yml y un enlace a tu plugin bifurcado.
Lamentablemente, estoy esforzándome diligentemente para resolver el problema; también he compartido la falla en este asunto, pero aún no he encontrado una solución. Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Estoy haciendo esta configuración, ¿crees que estoy cometiendo un error? Las actualizaciones de Discourse indican que hay un cambio, pero muestra el de mi repositorio local en lugar del de Discourse. Estoy actualizando, pero nada cambia; la actualización todavía aparece. (Creo que reconoce mis modificaciones, pero cuando actualizo, extrae del repositorio principal):
## Cualquier comando personalizado para ejecutar después de la compilación
run:
- exec: echo "Inicio de comandos personalizados"
## Si desea establecer la dirección de correo electrónico 'De' para su primer registro, descomente y cambie:
## Después de recibir el primer correo electrónico de registro, vuelva a comentar la línea. Solo necesita ejecutarse una vez.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec:
cd: /var/www/discourse
cmd:
- sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
- sudo -u discourse git fetch --tags --prune-tags --prune --force origin
- sudo -u discourse git checkout origin/main
- sudo -u discourse git remote set-branches --add origin main
- sudo -u discourse git remote set-branches origin tests-passed
# - sudo -u discourse git branch -u origin
- sudo -u discourse git reset --hard origin/main
- exec: echo "Fin de comandos personalizados"
Sí. Te dije cómo incluir solo tu plugin bifurcado y no lo estás haciendo.
De hecho, he realizado esta tarea: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24. Como sugeriste, experimenté con ambos métodos. El primer enfoque resultó en un error, como se documenta aquí: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24.
El segundo método dejó el sitio inaccesible. Estoy explorando soluciones alternativas en mi búsqueda de resolución, pero el progreso ha sido limitado, lo que me ha llevado a considerar otras vías.
Dado que prefiero no hacer modificaciones extensas, contemplé bifurcar Discourse. Simplemente actualizaría mi bifurcación con los últimos cambios del repositorio principal cada vez, luego volvería a aplicar solo las modificaciones que he realizado, aceptando este enfoque.
Mi principal desafío radica en identificar una solución efectiva y correcta. Estoy dispuesto a eliminar y reescribir el código, probando nuevos enfoques. Sin embargo, ante errores inciertos, lamentablemente no puedo producir una resolución definitiva.
Gracias
Haz lo que sugiere @pfaffman.
Yo hago esto con clientes y es la mejor manera.
Especialmente como desarrollador con menos experiencia, te meterás en problemas al bifurcar el repositorio principal.
Eso es un trabajo a tiempo completo. Las personas que hicieron esto hace años todavía se arrepienten, y las cosas se movían mucho más lentamente entonces.
Ya estoy haciendo esto, pero todavía resulta en un error. Agradezco tu intento de ayudar, pero ya lo he mencionado dos o tres veces antes ![]()
Tienes razón, pero ¿cómo puedo mantener las actualizaciones de un plugin principal dentro de mi propio plugin? ¿No debería copiar los archivos principales y subirlos a mi repositorio? ¿O hay una forma de automatizar este proceso?
Gracias
No has compartido qué salió mal cuando probaste solo el plugin bifurcado.
Lo intenté de nuevo e incluí los detalles del error que encontré esta vez (casi todos). ¿Podrías revisarlo: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
@kuaza He etiquetado este tema como unsupported-install y lo cerraré. Sigue las instrucciones de instalación oficiales si quieres obtener ayuda aquí en el futuro. ¡Buena suerte!
Hay algunas joyas de @pfaffman y @merefield que esperamos que utilices para ayudarte a familiarizarte con el funcionamiento de Discourse.