Proposer une nouvelle fonctionnalité¶
Nous sommes toujours ouverts aux suggestions et aux idées de nouvelles fonctionnalités ou de documentation pour BeeWare. Mais comment soumettre votre idée pour qu'elle soit prise en compte ?
Avant de commencer¶
Nous avons déjà une très longue liste de fonctionnalités que nous aimerions mettre en œuvre, et des ressources très limitées. Si vous avez une idée qui pourrait améliorer BeeWare, nous serions ravis de l'entendre. Si suffisamment de personnes demandent la même chose, l'équipe principale pourrait mettre en œuvre cette idée. Cependant, il est peu probable qu'une simple demande de fonctionnalité entraîne la mise en œuvre de cette fonctionnalité dans un avenir proche.
BeeWare est une communauté Open Source. La façon la plus efficace de s'assurer qu'une fonctionnalité est implémentée est de l'implémenter soi-même. Nous ferons tout ce qui est en notre pouvoir pour aider les contributeurs à implémenter les fonctionnalités qu'ils souhaitent voir ajoutées. Demander à l'équipe de base d'implémenter une fonctionnalité pour vous, gratuitement, ne sera probablement pas bien reçu.
Si vous n'êtes pas en mesure d'implémenter une fonctionnalité vous-même, l'autre moyen d'accélérer le développement de votre fonctionnalité est de payer quelqu'un pour l'implémenter à votre place. Si vous souhaitez discuter de la possibilité de payer pour que le développement d'une fonctionnalité spécifique soit prioritaire, veuillez contacter l'équipe BeeWare.
Proposer de nouvelles fonctionnalités¶
La chose la plus évidente à suggérer est une nouvelle API ou capacité. Si vous avez un cas d'utilisation que BeeWare ne prend pas en charge actuellement, ou s'il existe une capacité native de la plateforme que BeeWare ne peut pas utiliser actuellement, vous pouvez proposer une modification pour combler cette lacune.
Lorsque vous proposez une nouvelle fonctionnalité, gardez à l'esprit que la suite d'outils BeeWare prend en charge plusieurs plates-formes. Cela signifie que toute nouvelle fonctionnalité doit
- être adapté et réalisable sur toutes les plates-formes (par exemple, chaque boîte à outils d'interface graphique possède le concept de "bouton") ; ou
- être adaptée aux plates-formes du même "type" et ignorer les autres plates-formes (par exemple, tous les téléphones mobiles sont équipés d'accéléromètres, ce qui n'est pas le cas de beaucoup d'ordinateurs de bureau, et il est donc logique qu'une API d'accéléromètre existe pour iOS et Android, mais pas pour les ordinateurs de bureau ou les plates-formes web) ; ou
- Permettre l'accès à une fonctionnalité interne de la plateforme sans modifier l'API publique (par exemple, vous ne pouvez pas ajouter une fonctionnalité qui est clairement spécifique à Android, mais vous pouvez faciliter l'accès des utilisateurs finaux à une fonctionnalité spécifique à Android à partir de leur propre code).
Cela ne signifie pas que vous devez être responsable de la mise en œuvre d'une fonctionnalité sur chaque plateforme. Si vous n'avez pas accès à du matériel Apple, il n'est pas raisonnable d'attendre de vous que vous fournissiez une implémentation macOS ou iOS d'une fonctionnalité. Cependant, dans le cadre du processus de conception, nous devons établir qu'il serait possible d'implémenter une fonctionnalité de la manière que vous décrivez.
Suggérer une nouvelle documentation¶
Vous pouvez également suggérer une amélioration de la documentation. Si vous avez une idée pour améliorer la documentation de BeeWare, les éléments à prendre en compte sont les suivants :
- Votre suggestion fait-elle double emploi avec la documentation existante ? Proposez-vous un nouveau guide ou un ajout à un guide existant ?
- Comment s'intègre-t-il dans le reste de l'écosystème BeeWare ? Ce projet est-il le bon endroit pour documenter l'idée ? Ou devrions-nous documenter une fonctionnalité dans un autre projet et créer un lien vers cette documentation ?
- Existe-t-il un concept de haut niveau qui doit être expliqué avant que des instructions spécifiques n'aient un sens ?
- Le sujet a-t-il un sens pour nous, ou quelqu'un d'autre l'a-t-il déjà abordé quelque part et nous pouvons nous y référer ?
Si vous n'êtes pas sûr de vous, ne vous inquiétez pas ! Soumettez votre idée et indiquez-nous, lors de la discussion initiale, ce dont vous n'êtes pas sûr, et nous pourrons vous aider à donner aux idées que vous avez une forme qui conviendra à la documentation de BeeWare.
Contribuer à une proposition de fonctionnalité¶
Proposer une nouvelle fonctionnalité
Vous avez une idée d'amélioration pour BeeWare - comment soumettre cette idée pour examen ?
Faites vos recherches¶
La première étape consiste à rechercher dans l'issue tracker BeeWare les [feature issues (issues tagged "enhancement")] existants (https://github.com/search ?q=org%3Abeeware+is%3Aopen+is%3Aissue+label%3Aenhancement&type=issues), documentation issues (issues tagged "documentation"), ou Discussion threads pour voir si l'idée a déjà été suggérée. Si c'est le cas, et que vous avez un nouveau contexte ou de nouvelles idées à ajouter, incluez-les dans le fil de discussion existant. Si vous souhaitez obtenir de l'aide pour vos recherches, vous pouvez le demander dans le canal #dev sur le BeeWare Discord. Nous pourrons peut-être vous indiquer des fils de discussion existants, vous fournir un contexte dont vous n'avez peut-être pas conscience, ou relier votre idée à une autre idée qui ne semble pas immédiatement liée.
Discuter de l'idée¶
Si vous ne trouvez aucune référence existante à votre idée, démarrez un [fil de discussion] (https://github.com/beeware/beeware/discussions). Fournissez une description de haut niveau de l'objectif et du cas d'utilisation de votre idée. Incluez toutes les idées que vous avez sur ce à quoi la fonctionnalité ressemblerait, si elle était mise en œuvre, comme la forme générale d'une API, l'aspect visuel d'une capacité, ou le document qui serait ajouté. Le cas échéant, vous devez également inclure toute recherche que vous avez effectuée sur la façon dont votre idée se manifesterait sur différentes plates-formes.
Une fois le fil de discussion ouvert, l'équipe de BeeWare et le reste de la communauté y répondront. L'équipe centrale s'efforcera de fournir au moins une première impression de votre idée dans un délai de deux jours ouvrables. Si une idée est particulièrement complexe, une analyse plus détaillée peut prendre jusqu'à une semaine. Des événements tels que des vacances ou des conférences peuvent allonger légèrement ces délais.
C'est l'occasion pour vous de participer à une conversation sur votre idée. Il se peut que nous vous demandions plus de détails ou de contexte. D'autres membres de la communauté peuvent également participer à la discussion, en apportant d'autres points de vue, des suggestions ou des contre-propositions. Le résultat de cette discussion déterminera les prochaines étapes.
Il est important de comprendre que toutes les idées ne seront pas acceptées. La raison pour laquelle ce processus commence par une proposition est d'éviter que vous ne fassiez tout le travail pour découvrir ensuite qu'il y a une raison pour que votre changement ne soit pas accepté.
Cela ne signifie pas que ce n'était pas une bonne idée ! Il peut y avoir des raisons techniques pour lesquelles elle ne peut pas être mise en œuvre. Par exemple, nous pourrions rejeter une idée dans les cas suivants
- Il serait difficile ou impossible de la mettre en œuvre de manière fiable sur toutes les plates-formes prises en charge ; ou
- Il serait difficile à entretenir, ou l'entretien nécessiterait l'accès à une technologie ou à un logiciel qui n'est pas largement disponible ; ou
- Il sert un public de niche, mais impose des frais généraux importants aux autres utilisateurs.
Si nous déterminons que votre idée ne convient pas, cela ne signifie pas nécessairement que vous devez l'abandonner. Bien que nous puissions rejeter une idée spécifique, nous pourrions être beaucoup plus enclins à ajouter une interface de plugin ou un autre point d'extension qui vous permettrait de maintenir la même fonctionnalité en tant que bibliothèque externe. De cette façon, vous pouvez avoir la fonctionnalité, mais sans que les problèmes spécifiques de maintenance ou les limitations de la fonctionnalité ne deviennent une contrainte pour le projet lui-même.
Transformer en demande formelle de fonctionnalité¶
Une fois que la discussion a abouti à un consensus sur la forme d'une fonctionnalité, vous pouvez créer un nouveau [numéro de demande de fonctionnalité] (https://github.com/beeware/beeware/issues/new/choose), dans le gestionnaire de problèmes BeeWare, qui résume la discussion, avec un lien vers la discussion pour le contexte.
Vous n'êtes pas obligé d'implémenter vous-même votre proposition de fonctionnalité ; vous pouvez ouvrir un problème avec les détails de ce que vous proposez. Cependant, le simple fait de poster un problème ne signifie pas qu'il sera mis en œuvre pour vous. Vous devrez attendre qu'elle soit éventuellement reprise par quelqu'un d'autre intéressé par la même fonctionnalité, qu'il s'agisse d'un autre membre de la communauté ou de l'équipe principale ; cependant, cela n'est pas garanti. Si vous voulez la garantie d'implémentation, vous devrez l'implémenter vous-même, ou payer quelqu'un d'autre pour le faire à votre place.