Plugin causando erros durante a reconstrução

O que está acontecendo aqui é o seguinte

  1. Algumas pessoas têm uma versão muito antiga do plugin de perguntas e respostas com meu nome de usuário pessoal do GitHub na URL do repositório em seu arquivo app.yml.

  2. Transfiri o plugin QnA para paviliondev anos atrás. O Github redireciona URLs de repositório quando eles são transferidos, então as URLs antigas com meu nome de usuário pessoal continuaram funcionando.

  3. Mais anos depois, o Pavilion transferiu o Plugin de Perguntas e Respostas para o Discourse. O Discourse inicialmente manteve o nome discourse-question-answer.

  4. Há alguns meses, criei meu próprio fork do plugin hospedado em discourse, enquanto ele ainda era chamado discourse-question-answer.

  5. Pessoas com links muito antigos para o plugin QnA com minha conta pessoal do GitHub nelas estavam agora clonando meu novo fork do discourse-question-answer significativamente atualizado, hospedado em discourse. Em outras palavras, um link muito antigo agora apontava para um fork de um novo plugin. Apesar dos anos que se passaram, eu deveria ter previsto isso, então peço desculpas por isso. Removi esse fork.

  6. O Discourse mudou o nome de discourse-question-answer para discourse-upvotes. Essa mudança de nome não teve um impacto material no seu caso @Jaap-Jan_Swijnenburg, mas é por isso que você agora está (inesperadamente) clonando um fork desse repositório.

  7. Uma migração em discourse/discourse-upvotes (ex discourse-question-answer) assume que a coluna value em post_custom_fields é do tipo JSON.

  8. Dados antigos criados pelo plugin quando era angusmcleod/discourse-question-answer (anos atrás) não foram salvos como JSON válido pela preocupação HasCustomFields em discourse/discourse. Estou adivinhando, mas esses dados provavelmente foram adicionados antes que a verificação de tipo JSON fosse adicionada há 4 anos (Ainda é possível acabar com JSON inválido em campos personalizados registrados como JSON em casos extremos).

Portanto

  1. Quando pessoas com a URL (desatualizada há anos) angusmcleod/discourse-question-answer em seu app.yml atualizam seu Discourse, a migração na nova versão do plugin é clonada, a migração é executada e potencialmente cria esse erro.

Existem algumas soluções para isso:

  1. @Jaap-Jan_Swijnenburg, no seu caso, você só precisa remover a referência ao meu antigo plugin QnA e poderá reconstruir seu site. É só isso; nada mais. Parece que foi o que você fez :+1:

  2. A migração do plugin discourse/discourse-upvotes poderia ser atualizada para lidar com valores não JSON na coluna value em post_custom_fields.

Observo que 2 também lidaria com o caso adicional de pessoas que realmente desejam mudar de uma versão antiga do plugin QnA para discourse-upvotes. Nesse caso, a migração será executada e falhará se alguma entrada na coluna value de post_custom_fields não for um JSON válido.

5 curtidas