Quais são os pontos fortes/fracos de shipit vs dist :: zilla?
-
25-09-2019 - |
Pergunta
Comecei a usar Dist :: Zilla há vários meses. No entanto, no yapc :: alguém mencionou que eles usam Enviá-lo em vez de. Então hoje notei um arquivo .shipit no Miyagawa's diretório cpanminus no github, então eu decidi investigar mais um pouco ...
Minha impressão inicial é que a Shipit tem um subconjunto do que está disponível com o Dist :: Zilla, mas não quero tirar conclusões. Então, para aqueles que tiveram experiência com ambos, quais são os pontos fortes/fracos de Enviá-lo vs. Dist :: Zilla?
Solução
Eu sou o autor de Dist :: Zilla.
Avaliei o navio bastante extensivamente antes de optar por seguir em frente e escrever dist :: zilla, e inicialmente eles cobriam quase exatamente o mesmo espaço de problema: fazendo todo o trabalho refinado de construir e fazer upload de uma distribuição da CPAN. Todos os recursos que o Dist :: Zilla agora tem além do Shipit são adições posteriores, mais ou menos.
Se você só precisa dos recursos do shipit, eu ainda Aconselhe você a considerar fortemente o Dist :: Zilla, por uma razão muito simples: hackability. Se eu tivesse sido capaz de não Escreva algo novo, eu teria usado o Shipit, mas achei que era subdocumentado e difícil de estender. Seus plugins não eram genéricos o suficiente e o comportamento principal fez muitas suposições sobre como você gostaria de trabalhar.
Dist :: Zilla foi inspirado especificamente por esse problema: transformou tudo em um plug -in e cada plug -in recebeu uma interface muito, muito pequena, para que suas suposições fossem limitadas à força.
Um benefício do shipit sobre o dist: Isso significa que sua documentação ainda terá a mesma aparência, você ainda terá um Makefile.PL
, e assim por diante. Alguns hackers não gostam disso, tantos dists baseados em DZ alteram fundamentalmente as suposições de como testar e criar código da CPAN a partir de seu repositório de origem. Shipit nunca mudará isso.
É possível evitar usar esses plugins com dist :: zilla, mas em geral minha experiência é que as pessoas Faz Use -os, quase sempre, de uma forma ou de outra.
Outras dicas
Até onde eu sei, minhas impressões iniciais estavam corretas.
Shipit fornece funcionalidade para liberação Distribuições:
- Mantendo o controle dos números de versão
- integração com controle de versão
- Enviando para o CPAN
- Exibindo o arquivo Changelog em um editor para que você possa editá -lo antes da liberação.
Dist :: Zilla, por padrão, fornece a capacidade de fazer upload de distribuições para o CPAN com um único comando (ou seja, dzil release
). Dist :: Zilla também tem funcionalidade para criando novas distribuições (ou seja dzil new My::New::Module
). Ele também gera automaticamente tantos arquivos que eu costumava manter manualmente.
Usando plugins, o Dist :: Zilla parece capaz de fornecer a maioria, se não toda, da funcionalidade disponível com o Shipit. Também é relativamente fácil adicionar novos recursos usando plugins.