Ho forkato il repository di Discourse su GitHub. Come posso sostituirlo con l'installazione di Discourse esistente sul mio sito?

Ho forkato il repository di Discourse su GitHub. Come posso sostituirlo con l’installazione di Discourse esistente sul mio sito? Ho provato di tutto, ma ogni volta ho riscontrato errori. Ho aggiunto il mio repository di Discourse da GitHub al file app.yml, ma non sono riuscito a procedere a causa di errori. Anche quando sono riuscito ad apportare le modifiche, ha sempre reinstallato il Discourse originale. Come possiamo eseguire correttamente questo processo?

È utile essere specifici.

1 Mi Piace

Dopo un riesame, ho apportato una modifica al discorso che stavo analizzando e ho notato che questa modifica è visibile nella pagina di aggiornamento all’interno del pannello di amministrazione. Ora lo sto aggiornando; se la modifica funziona correttamente, modificherò questo messaggio di conseguenza.

Queste sono le impostazioni nel mio file app.yml, che ho ricostruito senza riscontrare errori. Tuttavia, dopo una revisione successiva, le modifiche che ho apportato non sono visibili, sebbene Discourse continui a funzionare perfettamente.

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"

Quindi, quando visualizzi il sorgente e guardi alla sesta riga circa, l’hash del commit nella stringa della versione corrisponde all’ultimo commit nel tuo repository forkato?

Credevo di aver completato l’attività, ma sembra essere inefficace. L’ultimo aggiornamento visibile nella pagina di aggiornamento dell’amministratore è: https://github.com/KilicSelcuk/discourse/commit/e44347414a8325ec25e5892c35bcd889d39a6668.

Tuttavia, le modifiche effettive che ho apportato si riflettono qui: Commits · KilicSelcuk/discourse · GitHub.

In sostanza, le modifiche che ho implementato non sono visibili nella pagina di aggiornamento. Inoltre, quando eseguo una ricostruzione, questa non incorpora gli aggiornamenti del mio repository. Se le modifiche fossero state applicate, sarebbero visibili.

La mia configurazione più recente è la seguente:

## Qualsiasi comando personalizzato da eseguire dopo la compilazione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Per impostare l'indirizzo email 'Da' per la tua registrazione iniziale, decommenta e modifica:
  ## Dopo aver ricevuto la prima email di iscrizione, ri-commenta la riga. Deve essere eseguita solo una volta.
  #- 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

Risolvere questo problema sarebbe utile. Non sono riuscito a trovare una risorsa utile sul forum, ma potrebbe servire come riferimento guida per chi seguirà.

È di solito una cattiva idea. Dovresti apportare modifiche in un plugin.

2 Mi Piace

In effetti, stavo originariamente facendo questo, ma una volta che il plugin è stato integrato nel core, non sono più in grado di modificarlo. Sfortunatamente, anche le soluzioni suggerite si sono rivelate inefficaci: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

Se hai forked un plugin, allora dovresti rimuovere il plugin incluso e clonare la tua versione.

Penso di avertelo già detto in un altro argomento. Vuoi sicuramente fare il fork solo del plugin e non dell’intera app e di tutti gli altri plugin.

1 Mi Piace

Incontro un errore ogni volta che tento di installare il plugin. Se avrò più tempo, ci riproverò: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

Questo è il modo per risolvere il tuo problema. Se hai un errore e desideri aiuto, dovresti dire esattamente qual è l’errore e includere la sezione dei plugin del tuo file yml e un link al tuo plugin forked.

4 Mi Piace

Con rammarico, mi sto adoperando diligentemente per risolvere il problema; ho condiviso anche il difetto in questa questione, ma non ho ancora trovato una soluzione. Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

Sto apportando questa configurazione; pensi che stia commettendo un errore? Gli aggiornamenti di Discourse indicano che c’è una modifica, ma mostra quella del mio repository locale invece di quella di Discourse. Sto aggiornando, ma non cambia nulla; l’aggiornamento appare ancora. (Credo che riconosca le mie modifiche, ma quando aggiorno, estrae dal repository principale):

## Qualsiasi comando personalizzato da eseguire dopo la build
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se vuoi impostare l'indirizzo email 'Da' per la tua prima registrazione, decommenta e cambia:
  ## Dopo aver ricevuto la prima email di registrazione, ri-commenta la riga. Deve essere eseguita solo una volta.
  #- 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 "Fine dei comandi personalizzati"

Sì. Ti ho detto come includere solo il tuo plugin forked e non lo stai facendo.

4 Mi Piace

In effetti, ho intrapreso questo compito: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24. Come hai suggerito, ho sperimentato entrambi i metodi. Il primo approccio ha prodotto un errore, come documentato qui: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24.

Il secondo metodo ha reso il sito inaccessibile. Sto esplorando soluzioni alternative nella mia ricerca di una risoluzione, ma i progressi sono stati limitati, spingendomi a considerare altre strade.

Poiché preferisco non apportare modifiche estese, ho contemplato il fork di Discourse. Aggiornerei semplicemente il mio fork con le ultime modifiche dal repository principale ogni volta, quindi riapplicherei solo le modifiche che ho apportato, accettando questo approccio.

La mia sfida principale risiede nell’identificare una soluzione efficace e corretta. Sono disposto a eliminare e riscrivere il codice, provando nuovi approcci. Tuttavia, di fronte a errori incerti, purtroppo non sono in grado di produrre una risoluzione definitiva.

grazie

Fai come suggerisce @pfaffman.

Lo faccio con i clienti ed è il modo migliore.

Soprattutto come sviluppatore meno esperto ti metterai nei guai facendo il fork del repository principale.

1 Mi Piace

È un lavoro a tempo pieno. Le persone che hanno fatto questo termine anni fa se ne pentono ancora, e le cose si muovevano molto più lentamente allora.

Lo sto già facendo, eppure risulta ancora un errore. Apprezzo il tuo tentativo di assistere, ma l’ho già menzionato due o tre volte prima :confused:

Hai ragione, ma come posso mantenere gli aggiornamenti di un plugin principale all’interno del mio plugin? Non dovrei copiare i file principali e caricarli nel mio repository? O esiste un modo per automatizzare questo processo?

grazie

Non hai condiviso cosa è andato storto quando hai provato solo il plugin forked.

1 Mi Piace

Ho riprovato e questa volta ho incluso i dettagli dell’errore che ho riscontrato (quasi tutti). Potresti per favore esaminarlo: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

@kuaza Ho etichettato questo argomento unsupported-install e lo chiuderò. Segui le istruzioni di installazione ufficiali se desideri ricevere aiuto qui in futuro. Buona fortuna!

Ci sono alcuni suggerimenti sopra da @pfaffman e @merefield che speriamo utilizzerai per aiutarti a capire come lavorare con Discourse.

2 Mi Piace