Eu fiz um fork do repositório Discourse no GitHub. Como posso substituí-lo pela instalação existente do Discourse no meu site? Tentei de tudo, mas encontrei erros a cada vez. Adicionei meu próprio repositório Discourse do GitHub ao arquivo app.yml, mas não consegui prosseguir devido a erros. Mesmo quando consegui fazer as alterações, ele sempre reinstalava o Discourse original. Como podemos executar este processo corretamente?
Ajuda ser específico.
Após reexaminar, fiz uma modificação no discurso que estava analisando e notei que essa alteração é visível na página de atualização dentro do painel de administração. Estou atualizando agora; se o ajuste funcionar corretamente, revisarei esta mensagem de acordo.
Estas são as configurações no meu arquivo app.yml, que reconstruí sem encontrar erros. No entanto, após revisão subsequente, as modificações que fiz não são visíveis, embora o Discourse continue funcionando perfeitamente.
run:
- exec: echo "Início dos comandos personalizados"
## Se você quiser definir o endereço de e-mail 'De' para o seu primeiro registro, descomente e altere:
## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Só precisa ser executada uma 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 reset --hard origin/main
- exec: echo "Fim dos comandos personalizados"
Então, quando você visualiza o código-fonte e olha para a sexta linha, o hash do commit na string de versão corresponde ao último commit no seu repositório forkado?
Acreditei ter concluído a tarefa, mas parece que ela não está funcionando. A última atualização visível na página de atualizações do administrador é: https://github.com/KilicSelcuk/discourse/commit/e44347414a8325ec25e5892c35bcd889d39a6668.
No entanto, as modificações reais que fiz estão refletidas aqui: Commits · KilicSelcuk/discourse · GitHub.
Em essência, as alterações que implementei não estão visíveis na página de atualizações. Além disso, quando realizo uma reconstrução, ela não incorpora as atualizações do meu repositório. Se as alterações tivessem sido aplicadas, elas seriam visíveis.
Minha configuração mais recente é a seguinte:
## Quaisquer comandos personalizados para executar após a compilação
run:
- exec: echo "Início dos comandos personalizados"
## Para definir o endereço de e-mail 'De' para seu registro inicial, descomente e modifique:
## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma 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 seria benéfico. Não encontrei um recurso útil no fórum, mas pode servir como uma referência orientadora para aqueles que vierem depois.
Isso geralmente é uma má ideia. Você deve fazer alterações em um plugin.
De fato, eu estava fazendo isso originalmente, mas assim que o plugin foi integrado ao núcleo, não consigo mais modificá-lo. Infelizmente, as soluções sugeridas também se mostraram ineficazes: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Se você fez um fork de um plugin, então você deve remover o plugin incluído e clonar sua versão.
Acho que já te falei sobre isso em outro tópico. Você definitivamente quer fazer um fork apenas do plugin e não do aplicativo inteiro e de todos os outros plugins.
Encontro um erro sempre que tento instalar o plugin. Se eu tiver mais tempo, tentarei novamente: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Essa é a maneira de resolver seu problema. Se você tiver um erro e quiser ajuda, deve dizer exatamente qual é o erro, incluir a seção de plugins do seu arquivo yml e um link para seu plugin forkado.
Lamentavelmente, estou me esforçando diligentemente para resolver o problema; também compartilhei a falha neste assunto, mas ainda não encontrei uma solução. Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
Estou fazendo esta configuração; você acha que estou cometendo um erro? As atualizações do Discourse indicam que há uma alteração, mas ela mostra a do meu repositório local em vez da do Discourse. Estou atualizando, mas nada muda; a atualização ainda aparece. (Acredito que ele reconhece minhas modificações, mas quando atualizo, ele puxa do repositório principal):
## Quaisquer comandos personalizados para executar após a compilação
run:
- exec: echo "Início dos comandos personalizados"
## Se você quiser definir o endereço de e-mail 'De' para o seu primeiro registro, descomente e altere:
## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma 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 "Fim dos comandos personalizados"
Sim. Eu te disse como incluir apenas o seu plugin forkado e você não está fazendo isso.
De fato, realizei esta tarefa: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24. Como você sugeriu, experimentei ambos os métodos. A primeira abordagem resultou em um erro, como documentado aqui: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24.
O segundo método tornou o site inacessível. Estou explorando soluções alternativas em minha busca por resolução, mas o progresso tem sido limitado, o que me leva a considerar outros caminhos.
Como prefiro não fazer modificações extensas, considerei fazer um fork do Discourse. Eu simplesmente atualizaria meu fork com as últimas alterações do repositório principal a cada vez, então reaplicaria apenas as modificações que fiz, aceitando essa abordagem.
Meu principal desafio reside em identificar uma solução eficaz e correta. Estou disposto a excluir e reescrever o código, tentando novas abordagens. No entanto, diante de erros incertos, infelizmente não consigo produzir uma resolução definitiva.
Obrigado
Faça como o @pfaffman sugere.
Eu faço isso com clientes e é a melhor maneira.
Especialmente como um desenvolvedor menos experiente, você terá problemas ao fazer fork do repositório principal.
Isso é um trabalho em tempo integral. Pessoas que fizeram isso anos atrás ainda se arrependem, e as coisas se moviam muito mais lentamente então.
Já estou fazendo isso, mas ainda resulta em um erro. Agradeço sua tentativa de ajudar, mas já mencionei isso duas ou três vezes antes :/\n\n[quote="pfaffman, post:16, topic:380046"]\nIsso é um empreendimento em tempo integral. Aqueles que empreenderam essa tarefa anos atrás ainda guardam arrependimentos, e o progresso era consideravelmente mais lento naquela época.\n[/quote]\n\nVocê está correto, mas como posso manter as atualizações feitas em um plugin principal dentro do meu próprio plugin? Não deveria copiar os arquivos principais e enviá-los para o meu repositório? Ou existe uma maneira de automatizar esse processo?\n\nObrigado
Você não compartilhou o que deu errado quando tentou apenas o plugin forkado.
Tentei novamente e incluí os detalhes do erro que encontrei desta vez (quase todos eles). Você poderia, por favor, revisá-lo: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24
@kuaza Marquei este tópico com unsupported-install e irei fechá-lo. Por favor, siga as instruções oficiais de instalação se quiser obter ajuda aqui no futuro. Boa sorte!
Existem algumas dicas acima de @pfaffman e @merefield que esperamos que você use para se familiarizar com o funcionamento do Discourse.