Modificando plug-ins do WordPress
Tenho o que provavelmente é uma pergunta muito simples sobre como fazer alterações em um plugin do WordPress. Peço desculpas pela simplicidade da minha pergunta, pois sou muito novo no trabalho com código que pode ser de código aberto e novo no desenvolvimento de plug-ins.
Eu encontrei um plugin que forneceu uma boa solução para um projeto em que estava trabalhando. No entanto, para que funcione melhor para minhas necessidades, modifiquei o código. O plug-in tem uma licença "GPLv2 ou posterior", que com base nisso parece dizer que modificações no plug-in são aceitáveis, desde que eu anote as alterações que fiz e publique o plug-in sob a "GPLv2 ou posterior" licença também.
Devido às modificações que fiz no plug-in, gostaria de poder fornecê-lo a outras pessoas como parte do trabalho do cliente. No entanto, não tenho certeza da melhor maneira de seguir em frente.
Seria melhor para publicar o plugin com um "GPLv2 ou mais tarde" licença e atualizá-lo eu mesmo (eu fiz muito pequenas alterações para o plug-in)?
Ou seria melhor entrar em contato com o proprietário original do plugin para colaborar e propor minhas alterações? Se o proprietário original não aceitar minhas alterações, quais são minhas opções?
Para responder às perguntas de @wrydere:
- O plugin é gratuito, atualmente não oferece atualizações pagas ou gera qualquer tipo de lucro.
- Definitivamente, não tenho tempo para manter minha própria versão do plugin. Seria bom se eu pudesse para os clientes, mas não vejo isso acontecendo de forma realista. No entanto, se eu mantivesse meu próprio fork do plug-in, se o proprietário original enviasse atualizações, eu aceitaria essas atualizações (junto com minhas próprias alterações) solicitaria que o painel do WordPress constantemente me dissesse para atualizar o plug-in (porque o código não não "combina")? Basicamente, eu gostaria de poder aceitar as atualizações do proprietário sempre que as atualizações forem enviadas e ainda manter minhas alterações sem que o WordPress me notifique de que preciso "atualizar" o plugin.
- Por enquanto, não, não acho que o comportamento precise ser realizado em um plugin secundário. Poderia ser? Provavelmente. Mas a maior parte do trabalho pesado já foi feito com este plugin, então criar um novo seria recriar a roda.
Respostas
No espírito do software de código aberto, com certeza começaria entrando em contato com o desenvolvedor original. Se suas alterações são uma melhoria para a base de código e não levam a funcionalidade do plugin em uma nova direção, a colaboração pode ser bem-vinda.
Se suas modificações forem rejeitadas pelo desenvolvedor original, há algumas outras coisas a serem consideradas antes de prosseguir:
O plug-in originalmente bifurcado é um plug-in gratuito ou pago? Ou é gratuito, mas oferece upgrades pagos (freemium)? Se for de alguma forma geradora de receita, bifurcar e relançar com pequenas alterações é moralmente questionável.
Você tem tempo, largura de banda e desejo de manter uma nova versão bifurcada do plugin original? Caso contrário, você provavelmente não deseja lançá-lo publicamente apenas para colocar suas pequenas alterações nas mãos de outras pessoas. Talvez seja melhor manter apenas seu próprio fork do plugin, para seus próprios projetos.
As modificações no comportamento podem ser realizadas em um plugin secundário? Existem alguns exemplos de plug-ins que requerem / modificam / se baseiam em outros plug-ins. Esta rota requer estar a par das atualizações do núcleo WP e do plug-in inicial, o que pode ser uma dor de cabeça, mas se for possível fazer suas alterações por meio de ganchos, ações e substituição (segura e sã) de funções do plug-in original, esta pode ser uma rota a explorar.
Desculpe por não fornecer uma resposta definitiva, mas a situação pode apontar para muitos resultados possíveis.