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?

Postado cruzado em Perlmonks

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top