J’ai forké le dépôt Discourse sur GitHub. Comment puis-je le remplacer par l’installation Discourse existante sur mon site ? J’ai tout essayé, mais j’ai rencontré des erreurs à chaque fois. J’ai ajouté mon propre dépôt Discourse depuis GitHub au fichier app.yml, mais je n’ai pas pu continuer en raison d’erreurs. Même lorsque j’ai réussi à apporter les modifications, il réinstallait toujours le Discourse d’origine. Comment pouvons-nous exécuter correctement ce processus ?
Il est utile d’être précis.
Après réexamen, j’ai apporté une modification au discours que j’analysais, et j’ai remarqué que ce changement est visible sur la page de mise à jour dans le panneau d’administration. Je suis maintenant en train de le mettre à jour ; si l’ajustement fonctionne correctement, je modifierai ce message en conséquence.
Ce sont les paramètres de mon fichier app.yml, que j’ai reconstruit sans rencontrer d’erreurs. Cependant, après un examen ultérieur, les modifications que j’ai apportées ne sont pas visibles, bien que Discourse continue de fonctionner parfaitement.
run:
- exec: echo "Début des commandes personnalisées"
## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit s'exécuter qu'une seule fois.
#- 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 "Fin des commandes personnalisées"
Donc, lorsque vous faites “Afficher la source” et que vous regardez à la 6ème ligne environ, le hash de commit dans la chaîne de version correspond-il au dernier commit de votre dépôt forké ?
Je pensais avoir terminé la tâche, mais elle semble inefficace. La dernière mise à jour visible sur la page de mise à jour de l’administrateur est : https://github.com/KilicSelcuk/discourse/commit/e44347414a8325ec25e5892c35bcd889d39a6668.
Cependant, les modifications réelles que j’ai apportées se reflètent ici : Commits · KilicSelcuk/discourse · GitHub.
Essentiellement, les changements que j’ai mis en œuvre ne sont pas visibles sur la page de mise à jour. De plus, lorsque j’effectue une reconstruction, elle n’intègre pas les mises à jour de mon dépôt. Si les changements avaient été appliqués, ils seraient visibles.
Ma configuration la plus récente est la suivante :
## Toutes les commandes personnalisées à exécuter après la compilation
run:
- exec: echo "Début des commandes personnalisées"
## Pour définir l'adresse e-mail 'De' pour votre inscription initiale, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit s'exécuter qu'une seule fois.
#- 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
La résolution de ce problème serait bénéfique. Je n’ai pas trouvé de ressource utile sur le forum, mais cela pourrait servir de référence pour ceux qui suivront.
C’est généralement une mauvaise idée. Vous devriez apporter des modifications dans un plugin.
En effet, je faisais cela à l’origine, mais une fois le plugin intégré au cœur, je ne suis plus en mesure de le modifier. Malheureusement, les solutions suggérées se sont également avérées inefficaces : Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Si vous avez forké un plugin, vous devriez supprimer le plugin inclus et cloner votre version.
Je pense vous en avoir déjà parlé dans un autre sujet. Vous voulez absolument forker uniquement le plugin et non l’application entière ni tous les autres plugins.
Je rencontre une erreur chaque fois que j’essaie d’installer le plugin. Si j’ai plus de temps, j’essaierai à nouveau : Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
C’est ainsi que vous résolvez votre problème. Si vous avez une erreur et que vous souhaitez de l’aide, vous devez indiquer exactement quelle est l’erreur, inclure la section des plugins de votre fichier yml et un lien vers votre plugin forké.
Malheureusement, je m’efforce activement de résoudre le problème ; j’ai également partagé le défaut en question, mais je n’ai pas encore trouvé de solution. Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Je suis en train de faire cette configuration ; pensez-vous que je fais une erreur ? Les mises à jour de Discourse indiquent qu’il y a un changement, mais elles montrent celui de mon dépôt local au lieu de celui de Discourse. Je mets à jour, mais rien ne change ; la mise à jour apparaît toujours. (Je pense qu’il reconnaît mes modifications, mais lorsque je mets à jour, il récupère depuis le dépôt principal) :
## Toute commande personnalisée à exécuter après la compilation
run:
- exec: echo "Début des commandes personnalisées"
## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit s'exécuter qu'une seule fois.
#- 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 des commandes personnalisées"
Oui. Je vous ai dit comment inclure uniquement votre plugin forké et vous ne le faites pas.
En effet, j’ai entrepris cette tâche : Overriding user_guardian.rb in a plugin (no fork necessary!) - #24. Comme vous l’avez suggéré, j’ai expérimenté les deux méthodes. La première approche a entraîné une erreur, comme documenté ici : Overriding user_guardian.rb in a plugin (no fork necessary!) - #24.
La seconde méthode a rendu le site inaccessible. J’explore des solutions alternatives dans ma quête de résolution, mais les progrès ont été limités, me poussant à envisager d’autres pistes.
Comme je préfère ne pas apporter de modifications importantes, j’ai envisagé de forker Discourse. Je mettrais simplement à jour mon fork avec les derniers changements du dépôt principal à chaque fois, puis réappliquerais uniquement les modifications que j’ai apportées, acceptant cette approche.
Mon principal défi réside dans l’identification d’une solution efficace et correcte. Je suis prêt à supprimer et réécrire le code, en essayant de nouvelles approches. Cependant, face à des erreurs incertaines, je suis malheureusement incapable de produire une résolution définitive.
Merci
Faites comme le suggère @pfaffman.
Je fais cela avec des clients et c’est la meilleure façon.
Surtout en tant que développeur moins expérimenté, vous aurez des ennuis en forquant le dépôt principal.
C’est un travail à plein temps. Les gens qui ont fait cela il y a des années le regrettent encore, et les choses allaient beaucoup plus lentement à l’époque.
Je fais déjà cela, et pourtant cela résulte toujours en une erreur. J’apprécie votre tentative d’aide, mais je l’ai déjà mentionné deux ou trois fois auparavant :/\n\n[quote="pfaffman, post:16, topic:380046"]\nC’est une entreprise à plein temps. Ceux qui ont entrepris cette tâche il y a des années ont encore des regrets, et les progrès étaient considérablement plus lents à l’époque.\n[/quote]\n\nVous avez raison, mais comment puis-je conserver les mises à jour d’un plugin principal au sein de mon propre plugin ? Ne devrais-je pas copier les fichiers principaux et les télécharger dans mon dépôt ? Ou existe-t-il un moyen d’automatiser ce processus ?\n\nmerci
Vous n’avez pas partagé ce qui s’est mal passé lorsque vous avez essayé le plugin forké.
J’ai retenté et inclus cette fois les détails de l’erreur que j’ai rencontrée (presque tous). Pourriez-vous s’il vous plaît l’examiner : Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
@kuaza J’ai marqué ce sujet unsupported-install et je vais le fermer. Veuillez suivre les instructions d’installation officielles si vous souhaitez obtenir de l’aide ici à l’avenir. Bonne chance !
Il y a quelques perles ci-dessus de @pfaffman et @merefield que vous utiliserez, espérons-le, pour vous aider à apprendre à travailler avec Discourse.