Ir para o conteúdo

Propondo um novo recurso

Estamos sempre abertos a sugestões e ideias para novos recursos ou documentação para BeeWare. Mas como você faz para enviar sua ideia para análise?

Antes de começar

Já temos uma lista muito longa de recursos que gostaríamos de implementar e recursos muito limitados. Se você tem uma ideia que acha que tornaria BeeWare melhor, gostaríamos de ouvi-la. Se um número suficiente de pessoas solicitar a mesma coisa, a equipe principal poderá implementar essa ideia. Entretanto, por si só, é improvável que a solicitação de um recurso resulte na implementação desse recurso em um futuro próximo.

O BeeWare é uma comunidade de código aberto. A maneira mais eficaz de garantir que um recurso seja implementado é implementá-lo. Faremos tudo o que pudermos para ajudar os colaboradores a implementar os recursos que desejam ver adicionados. Exigir que a equipe principal implemente um recurso para você, de graça, provavelmente não será bem recebido.

Se você não estiver em condições de implementar um recurso por conta própria, a outra maneira de acelerar o desenvolvimento do seu recurso é pagar para que alguém o implemente para você. Se quiser discutir a possibilidade de pagar para que o desenvolvimento de um recurso específico seja priorizado, entre em contato com a equipe do BeeWare.

Sugestão de novas funcionalidades

A coisa mais óbvia a ser sugerida é uma nova API ou recurso. Se você tiver um caso de uso que BeeWare não suporta no momento, ou se houver um recurso de plataforma nativa que BeeWare não pode utilizar no momento, convém propor uma alteração para solucionar essa lacuna.

Ao propor um novo recurso, lembre-se de que o conjunto de ferramentas do BeeWare é compatível com várias plataformas. Isso significa que qualquer novo recurso deve:

  • Ser adequado e implementável em todas as plataformas (por exemplo, todo kit de ferramentas de GUI tem o conceito de um "botão"); ou
  • Ser adequada para plataformas do mesmo "tipo" e apropriada para ser ignorada em outras plataformas (por exemplo, todos os telefones celulares têm acelerômetros; poucos desktops têm e, portanto, faz sentido que exista uma API de acelerômetro para iOS e Android, mas não para desktop ou plataformas da Web); ou
  • Permitir o acesso a um recurso interno da plataforma sem alterar a API pública (por exemplo, você não pode adicionar um recurso que seja claramente específico do Android, mas pode facilitar o acesso dos usuários finais a um recurso específico do Android a partir de seu próprio código).

Isso não significa que você precisa ser responsável pela implementação de um recurso em todas as plataformas. Se você não tiver acesso ao hardware da Apple, não é razoável esperar que você forneça uma implementação de um recurso no macOS ou no iOS. Entretanto, como parte do processo de design, precisamos estabelecer que seria possível implementar um recurso da maneira que você descreve.

Sugerir nova documentação

Outra coisa que você pode querer sugerir é um aprimoramento da documentação. Se você tiver uma ideia para melhorar a documentação de BeeWare, considere:

  • Sua sugestão se sobrepõe à documentação existente? Você está propondo um novo guia ou uma adição a um guia existente?
  • Como ele se encaixa no restante do ecossistema do BeeWare? Este projeto é o lugar certo para documentar a ideia? Ou devemos documentar um recurso em outro projeto e criar um link para essa documentação?
  • Há um conceito de alto nível que precisa ser explicado antes que qualquer instrução específica faça sentido?
  • O tópico faz sentido para nós explicarmos ou já foi abordado por outra pessoa em algum lugar que possamos consultar?

Se você não tiver certeza de nada disso, não se preocupe! Envie sua ideia e, na discussão inicial, informe-nos sobre o que você não tem certeza, e poderemos ajudar a moldar as ideias que você tem em um formato que se encaixe na documentação do BeeWare.

Contribuir com uma proposta de recurso

Propondo um novo recurso

Então, você tem uma ideia sobre um aprimoramento para BeeWare - como você envia essa ideia para consideração?

Faça sua pesquisa

A primeira etapa é pesquisar no rastreador de problemas BeeWare os problemas existentes problemas de recursos (problemas com a tag "aprimoramento"), problemas de documentação (problemas marcados como "documentação"), ou Discussion threads para ver se a ideia já foi sugerida antes. Se tiver sido, e você tiver um novo contexto ou ideias para acrescentar, inclua-os no tópico existente. Se precisar de ajuda com sua pesquisa, pergunte no canal #dev no BeeWare Discord. Talvez possamos indicar os tópicos existentes, fornecer um contexto que talvez você não conheça ou conectar sua ideia a outra ideia que talvez não pareça imediatamente relacionada.

Discutir a ideia

Se você não encontrar nenhuma referência existente à sua ideia, inicie um [Discussion thread] (https://github.com/beeware/beeware/discussions). Forneça uma descrição de alto nível da finalidade e do caso de uso de sua ideia. Inclua todas as ideias que você tem sobre como o recurso seria, se implementado, como a forma geral de uma API, a aparência visual de um recurso ou o documento que seria adicionado. Se for o caso, inclua também qualquer pesquisa que tenha feito sobre como a sua ideia se manifestaria em diferentes plataformas.

Quando o tópico de discussão for aberto, a equipe do BeeWare e o restante da comunidade responderão. A equipe principal terá como objetivo fornecer pelo menos uma impressão inicial da sua ideia dentro de dois dias úteis. Se uma ideia for especialmente complexa, uma análise mais detalhada poderá levar até uma semana. Eventos como feriados e conferências podem fazer com que esses prazos sejam um pouco mais longos.

Esta é sua oportunidade de participar de uma conversa sobre sua ideia. Podemos solicitar mais detalhes ou contexto. Outros membros da comunidade também poderão se envolver na discussão, fornecendo outras perspectivas, sugestões ou contrapropostas. O resultado dessa discussão determinará as próximas etapas.

É importante entender que nem todas as ideias serão aceitas. O motivo pelo qual esse processo começa com uma proposta é para evitar que você faça todo o trabalho e acabe descobrindo que há um motivo pelo qual sua alteração não será aceita.

Isso não significa que não seja uma boa ideia! Pode haver motivos técnicos para que ela não possa ser implementada. Por exemplo, podemos rejeitar uma ideia se:

  • Seria difícil ou impossível implementar de forma confiável em todas as plataformas suportadas; ou
  • Seria difícil de manter, ou a manutenção exigiria acesso a tecnologia ou software que não está amplamente disponível; ou
  • Ele atende a um público de nicho, mas impõe uma sobrecarga significativa a outros usuários.

Se determinarmos que sua ideia não é adequada, isso não significa necessariamente que você deva desistir dela. Embora possamos rejeitar uma ideia específica, talvez sejamos muito mais receptivos a adicionar uma interface de plug-in ou outro ponto de extensão que permita manter o mesmo recurso como uma biblioteca externa. Dessa forma, você poderá ter o recurso, mas sem que as preocupações específicas de manutenção ou as limitações do recurso se tornem uma restrição ao próprio projeto.

Converter em uma solicitação formal de recurso

Depois que a discussão chegar a um consenso sobre a forma de um recurso, você poderá criar um novo [problema de solicitação de recurso] (https://github.com/beeware/beeware/issues/new/choose), no rastreador de problemas {{ nome_formal }}, que resuma a discussão, com links para a discussão para fins de contexto.

Você não precisa implementar a sua proposta de recurso por conta própria; você pode abrir um problema com os detalhes do que está propondo. No entanto, o simples fato de publicar a questão não significa que ela será implementada para você. Você precisará esperar que ela seja potencialmente escolhida por outra pessoa interessada no mesmo recurso, seja outro membro da comunidade ou a equipe principal; no entanto, não há garantia de que isso aconteça. Se você quiser a implementação garantida, precisará implementá-la você mesmo ou pagar alguém para implementá-la para você.