Pergunta

Eu tenho um pacote em hackage que depende do pacote de terceiros, o que não é construído em versões mais recentes de GHC (>= 7.2).O problema com o outro pacote pode ser resolvido com apenas um patch de uma linha (um pragma LANGUAGE).Enviei o patch para o upstream duas vezes, mas não recebi nenhum feedback.O problema é que meu pacote não é instalado nem até que a dependência seja corrigida.

Eu poderia ter carregado a versão fixa do pacote de depenância (com uma versão menor), mas eu gostaria de ouvir qual é a atitude da comunidade sobre tais uploads não mantenetores.Mais uma vez, não quero alterar a interface da biblioteca, adiciono apenas um novo sinalizador de compilação para torná-lo construído novamente.

  • Os uploads não mantenhados para hackage permitem e tolerados?
  • Quando um garfo do pacote em hackage é uma abordagem melhor?
Foi útil?

Solução

Os uploads de pacotes por não-mantenedores são permitidos (podem haver problemas de licença, mas a maioria dos pacotes, se não todas as licenças, permitem que isso), mas, é claro, eles geralmente não são feitos. Eles são tolerados se feitos de boa fé e com um procedimento razoável. Se você entrar em contato com o mantenedor e não obter nenhuma resposta dentro de N semanas (onde não tenho certeza do que o valor apropriado de N é, não menos de 3, eu diria), fazer o upload de uma nova versão se torna uma opção, Discutir que nas listas de discussão parece mais prudente. Se o pacote se parecer é abandonado, mesmo assumindo a manutenção - é claro depois de entrar em contato com o mantenedor, dando-lhe tempo para responder - pode ser a ação apropriada, mas isso definitivamente deve ser discutido com a comunidade (Haskell-Cafe ou lista de discussão, por exemplo). Se prefira um upload não mantém mantenedor ou um garfo deve ser deixado para o seu julgamento, pessoalmente, eu tento acreditar que garfos passo em menos dedos dos pés.

Mas uma resposta melhor fundada seria possível se soubéssemos que o pacote está preocupado e poderia olhar para a situação concreta.

Outras dicas

Uma bifurcação é para um pacote que você suspeita ainda é mantido, mas o autor está temporariamente ausente. Por intrusivo, quero dizer que outros programadores podem pegar seu garfo, então não volte para a linha principal, uma vez que o autor original retomou o trabalho na linha principal.

Para pacotes onde o autor original deixou a comunidade de Haskell, minha opinião pessoal é que é melhor para agarrar o pacote se você vai desenvolvê-lo ainda mais. A bifurcação evita problemas de sucessão, como aqueles que aconteceram com o Parsec, onde muitos desenvolvedores não queriam atualizar, porque o sucessor era mais lento e menos documentado do que o original por algum tempo.

Em todos os casos pedindo ao café é melhor, independentemente de as pessoas terem escolhido não segui-lo, ainda é o centro da comunidade de Haskell.

Para o caso particular na questão, enquanto é bom se as coisas em hackage compile, não há regra que diz que eles precisam. Um pacote que depende de um pacote quebrado pode simplesmente colocar as instruções de mudança para a dependência quebrada em sua primeira página, ou seja, "Este pacote depende do lambdathing-0.2.0 que é quebrado, para corrigir o Lambdathing Adicionar ... para o arquivo Lambda.hs "

Eu diria, é uma boa ideia consultar as listas de discussão sobre o pacote específico e a pessoa específica que está faltando.Eu assumi o controle do pacote haskell-src-meta de seu proprietário original, mas só depois de consultar as listas e o IRC, que me garantiu que Matt Morrow estava desaparecido por meses e ninguém sabia por quê.

Na minha opinião, a propriedade do pacote provavelmente só deve ser alterada onde há um consenso para fazê-lo, ou no mínimo, deve haver esforços feitos para encontrar um.Na versão de desenvolvimento do software de hackage, é meu entendimento que há controles de acesso para que apenas os administradores possam fazer esse tipo de intervenção.

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