Faraday: Lista de recursos para os próximos grandes lançamentos

Criado em 18 out. 2016  ·  7Comentários  ·  Fonte: lostisland/faraday

Faraday 1.0

  • [x] Defina a versão mínima do Ruby para >= 2.2
  • [x] Transmissão (Net::HTTP) #604
  • [x] Altere a forma como os adaptadores são gerenciados #47 #121
  • [ ] Melhorias na API #241 #305 #462 #517 #693 #718 #735
  • [ ] Puxe os adaptadores como gemas separadas. Faraday-Typheous, Faraday-Patron, etc. #112
  • [ ] Suporta IPv6 #621
  • [ ] Transmissão (outros)
  • [ ] Aprimore a documentação/Leiame #425 #575
  • [ ] Melhorar a capacidade de manutenção do Codeclimate (https://codeclimate.com/github/lostisland/faraday)
  • [ ] Passe todo o projeto pelo Rubocop e configure-o no Github como uma integração
  • [ ] Melhore o Wiki adicionando mais exemplos e instruções
  • [x] Converter testes para RSpec?
  • [x] Configure a integração do Github para cobertura de teste e métricas de código
  • [ ] Remova todos os métodos/comportamentos obsoletos (com avisos relacionados)

Comentários muito úteis

Para ser honesto, eu pessoalmente concordo com suas últimas frases.
Eu gosto da maneira como o ActiveJob funciona e do fato de que você pode adicionar gems compatíveis ao seu aplicativo e apenas usá-los como um QueueBackend (por exemplo, Sidekiq).

Por outro lado, esta não é a situação atual de Faraday, não é a visão original da equipe principal e não é o que todos estão acostumados.
Só para dar um exemplo para você, no #486 um usuário está reclamando exatamente desse problema:

Eu esperaria que Faraday apenas funcionasse ao trocar os adaptadores.

E é isso que @mislav e qualquer outro membro da equipe principal impuseram desde o início.
Então, espero que você entenda, como eu entendo totalmente suas necessidades, que, como o último membro a ingressar no Faraday, não posso simplesmente jogar as decisões anteriores no lixo e começar a fazer o que quero. O que significa que o streaming deve ser suportado por todos os adaptadores antes que eu possa mesclá-lo no fluxo 0.x.
Exemplos de outros PRs fechados pelo mesmo motivo: #485, #498, https://github.com/lostisland/faraday/pull/339#issuecomment -145872698

Faraday 1.0 é diferente, isso me dá muito mais liberdade (tenho que preservar a compatibilidade com versões anteriores o máximo possível, isso não significa que posso fazer o que quiser 😅). E é por isso que sugeri abandonar o suporte nativo para todos os adaptadores, mas sim movê-los para gems externas como o que aconteceu com o Thypoeus. Isso terá muitas vantagens e tornará a estrutura muito mais parecida com ActiveJob , justificando coisas como suporte parcial.
Por esse motivo, vejo o streaming como um recurso 1.0 e tive que congelar trabalhos nele por enquanto.
Vai levar muito mais tempo, mas isso significa fazer as coisas corretamente para mim. Gostaria de deixar o mais claro possível: não estou fechando o PR para desperdiçar o tempo de ninguém, estou apenas tentando ajudar a impulsionar este projeto (ainda estaríamos 0.9.x caso contrário) honrando a equipe principal visão.

Se você não tem tempo, não faz sentido deixar os outros ajudarem?

Apenas uma nota final sobre isso: TODOS são bem-vindos para ajudar. É assim que o Código Aberto funciona! No entanto, também devemos respeitar a visão da equipe principal quando contribuímos para algo. Podemos concordar com eles assim como discordar (discordo deles em alguns pontos também!), mas temos que respeitar suas escolhas porque se Faraday é o que é hoje, é certamente graças aos muitos colaboradores, mas também graças ao equipe central gerenciando todos os Issues/PRs e avançando o projeto de forma clara e lógica (e acredite, este último consome muito mais tempo do que contribuições esporádicas). Se não fosse por eles filtrando ou ajustando as entradas dos contribuidores, poderíamos conhecer um Faraday completamente diferente hoje, e não tenho certeza de que seria melhor do que o que realmente conhecemos.

Todos 7 comentários

Estou procurando suporte para streaming... alguém está trabalhando no 1.0? ... se não porque o outro PR foi fechado 😕

Oi @grosser , os motivos são expressos neste https://github.com/lostisland/faraday/pull/604#issuecomment -259125910.
O principal motivo foi que o PR era compatível apenas com o adaptador Net::HTTP e o fato de o streaming ter sido marcado para v1.0.
Não há roteiro para a v1.0 no momento, então ninguém está trabalhando ativamente no streaming por enquanto.

@iMacTia Estou um pouco desapontado por você dizer "ninguém trabalhando ativamente em streaming" porque parece que você esmagou o trabalho em # 604 (também # 522, # 461) dizendo "Segure firme, isso será no próximo lançamento" , mas depois não está trabalhando nele. Por que não aceitar as mudanças das comunidades, considerando que não parece haver impulso da equipe principal?

@jcoyne Eu não quis dizer que o streaming ainda não está disponível PORQUE "ninguém está trabalhando ativamente no streaming". Estou plenamente ciente de que o fato de ninguém estar trabalhando nisso é principalmente minha culpa. No entanto, expliquei por que recuei no #604 e o problema não era a implementação.
Para obter o 604 mesclado em um dos itens a seguir, precisa acontecer primeiro:

  1. Foi adicionado suporte para todos os outros adaptadores (no momento, apenas Net::HTTP é suportado)
  2. Aguardamos a versão 1.0 porque podemos remover o suporte direto para outros adaptadores e gemificá-los em projetos externos. Isso tornaria o #604 mesclável como é agora, mas infelizmente ainda não foi acordado internamente.

Peço desculpas por ser lento e não ter tempo suficiente para investir em trabalhar em qualquer uma das soluções acima.
Eu entendo que você ficaria feliz em ter apenas #604 mesclado porque você provavelmente só precisa de suporte para Net::HTTP, mas não é assim que funciona quando você tem que manter uma gem e eu não posso simplesmente simplificar.

@iMacTia Não espero que você dedique todo o seu esforço para esta versão, estou apenas frustrado com os efeitos assustadores de fechar/negar solicitações de pull em que várias pessoas trabalharam e não têm problemas técnicos conhecidos. Se você não tem tempo, não faz sentido deixar os outros ajudarem?

Entendo por que o suporte para todos os outros adaptadores seria desejável, mas acho que você é excessivamente rigoroso com sua interpretação do padrão do adaptador. O padrão do adaptador exige consistência na maneira como você faz qualquer interação, mas eu não diria que ele exige que todo adaptador suporte todos os recursos. Existem muitas bibliotecas úteis por aí que usam essa definição mais flexível (por exemplo, edgeapi.rubyonrails.org/classes/ActiveJob/QueueAdapters.html#module-ActiveJob::QueueAdapters-label-Backends+Features)

Para ser honesto, eu pessoalmente concordo com suas últimas frases.
Eu gosto da maneira como o ActiveJob funciona e do fato de que você pode adicionar gems compatíveis ao seu aplicativo e apenas usá-los como um QueueBackend (por exemplo, Sidekiq).

Por outro lado, esta não é a situação atual de Faraday, não é a visão original da equipe principal e não é o que todos estão acostumados.
Só para dar um exemplo para você, no #486 um usuário está reclamando exatamente desse problema:

Eu esperaria que Faraday apenas funcionasse ao trocar os adaptadores.

E é isso que @mislav e qualquer outro membro da equipe principal impuseram desde o início.
Então, espero que você entenda, como eu entendo totalmente suas necessidades, que, como o último membro a ingressar no Faraday, não posso simplesmente jogar as decisões anteriores no lixo e começar a fazer o que quero. O que significa que o streaming deve ser suportado por todos os adaptadores antes que eu possa mesclá-lo no fluxo 0.x.
Exemplos de outros PRs fechados pelo mesmo motivo: #485, #498, https://github.com/lostisland/faraday/pull/339#issuecomment -145872698

Faraday 1.0 é diferente, isso me dá muito mais liberdade (tenho que preservar a compatibilidade com versões anteriores o máximo possível, isso não significa que posso fazer o que quiser 😅). E é por isso que sugeri abandonar o suporte nativo para todos os adaptadores, mas sim movê-los para gems externas como o que aconteceu com o Thypoeus. Isso terá muitas vantagens e tornará a estrutura muito mais parecida com ActiveJob , justificando coisas como suporte parcial.
Por esse motivo, vejo o streaming como um recurso 1.0 e tive que congelar trabalhos nele por enquanto.
Vai levar muito mais tempo, mas isso significa fazer as coisas corretamente para mim. Gostaria de deixar o mais claro possível: não estou fechando o PR para desperdiçar o tempo de ninguém, estou apenas tentando ajudar a impulsionar este projeto (ainda estaríamos 0.9.x caso contrário) honrando a equipe principal visão.

Se você não tem tempo, não faz sentido deixar os outros ajudarem?

Apenas uma nota final sobre isso: TODOS são bem-vindos para ajudar. É assim que o Código Aberto funciona! No entanto, também devemos respeitar a visão da equipe principal quando contribuímos para algo. Podemos concordar com eles assim como discordar (discordo deles em alguns pontos também!), mas temos que respeitar suas escolhas porque se Faraday é o que é hoje, é certamente graças aos muitos colaboradores, mas também graças ao equipe central gerenciando todos os Issues/PRs e avançando o projeto de forma clara e lógica (e acredite, este último consome muito mais tempo do que contribuições esporádicas). Se não fosse por eles filtrando ou ajustando as entradas dos contribuidores, poderíamos conhecer um Faraday completamente diferente hoje, e não tenho certeza de que seria melhor do que o que realmente conhecemos.

Esta edição foi agora convertida em um projeto .

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mokolabs picture mokolabs  ·  3Comentários

mvastola picture mvastola  ·  4Comentários

QuinnWilton picture QuinnWilton  ·  4Comentários

Lewiscowles1986 picture Lewiscowles1986  ·  4Comentários

mattmill30 picture mattmill30  ·  4Comentários