Saltar a contenido

Proponer una nueva función

Siempre estamos abiertos a sugerencias e ideas para nuevas funciones o documentación para BeeWare. Pero, ¿cómo puedes enviar tu idea para que la tengamos en cuenta?

Antes de empezar

Ya tenemos una lista muy larga de funciones que nos gustaría implementar, y los recursos son muy limitados. Si tienes una idea que crees que mejoraría BeeWare, nos encantaría conocerla. Si un número suficiente de personas solicita lo mismo, el equipo central podría implementar esa idea. Sin embargo, por sí sola, una petición de funcionalidad es poco probable que resulte en que esa funcionalidad se implemente en un futuro próximo.

BeeWare es una comunidad de código abierto. La forma más eficaz de asegurarse de que se implementa una función es implementarla tú mismo. Haremos todo lo que podamos para ayudar a los colaboradores a implementar las características que quieren ver añadidas. Las peticiones de que el equipo central implemente una función para ti, de forma gratuita, no serán bien recibidas.

Si no estás en condiciones de implementar una función por ti mismo, la otra forma de acelerar el desarrollo de tu función es pagar a alguien para que la implemente por ti. Si quieres hablar de pagar para que se priorice el desarrollo de una función específica, por favor contacta con el equipo de BeeWare.

Sugerir nuevas funcionalidades

Lo más obvio es sugerir una nueva API o capacidad. Si tienes un caso de uso que BeeWare no admite actualmente, o hay una capacidad nativa de la plataforma que BeeWare no puede utilizar actualmente, es posible que desees proponer un cambio para abordar esa brecha.

Cuando proponga una nueva función, tenga en cuenta que el conjunto de herramientas de BeeWare es compatible con múltiples plataformas. Esto significa que cualquier nueva función debe:

  • Ser adecuado y aplicable en todas las plataformas (por ejemplo, todos los conjuntos de herramientas GUI tienen el concepto de "botón"); o bien
  • Ser adecuada para plataformas del mismo "tipo", y apropiada para ignorar en otras plataformas (por ejemplo, todos los teléfonos móviles tienen acelerómetros; no muchos ordenadores de sobremesa los tienen, y por tanto, tiene sentido que exista una API de acelerómetro para iOS y Android, pero no para las plataformas de sobremesa o web); o bien
  • Permitir el acceso a una función interna de la plataforma sin alterar la API pública (por ejemplo, no puede añadir una función que sea claramente específica de Android, pero podría facilitar a los usuarios finales el acceso a una función específica de Android desde su propio código).

Esto no significa que tengas que responsabilizarte de implementar una función en todas las plataformas. Si no tienes acceso al hardware de Apple, no es razonable que esperemos que implementes una función en macOS o iOS. Sin embargo, como parte del proceso de diseño, tenemos que establecer que sería posible implementar una función de la manera que describes.

Sugerir nueva documentación

Otra cosa que podría sugerir es una mejora de la documentación. Si tiene una idea para mejorar la documentación de BeeWare, puede tenerla en cuenta:

  • ¿Su sugerencia se solapa con documentación existente? ¿Propone una nueva guía o un añadido a una ya existente?
  • ¿Cómo encaja en el resto del ecosistema BeeWare? ¿Es este proyecto el lugar adecuado para documentar la idea? ¿O deberíamos documentar una función en otro proyecto y enlazar con esa documentación?
  • ¿Hay algún concepto de alto nivel que necesite explicación antes de que las instrucciones específicas tengan sentido?
  • ¿Tiene sentido que expliquemos el tema, o ya lo ha tratado alguien en algún sitio al que podamos remitirnos?

Si no estás seguro de algo de esto, ¡no te preocupes! Envíanos tu idea y haznos saber en la discusión inicial de qué no estás seguro, y podremos ayudarte a dar forma a las ideas que tengas para que encajen en la documentación de BeeWare.

Contribuir con una propuesta de función

Proponer una nueva función

Así que tienes una idea sobre una mejora para BeeWare - ¿cómo presentar esa idea para su consideración?

Investigue

El primer paso es buscar en el gestor de incidencias BeeWare los [feature issues (issues tagged "enhancement")] existentes (https://github.com/search?q=org%3Abeeware+is%3Aopen+is%3Aissue+label%3Aenhancement&type=issues), problemas de documentación (problemas etiquetados como "documentación"), o Hilos de discusión para ver si la idea ya se ha sugerido antes. Si es así, y usted tiene un nuevo contexto o ideas que añadir, inclúyalas en el hilo existente. Si necesitas ayuda con tu investigación, puedes preguntar en el canal #dev del BeeWare Discord. Es posible que podamos indicarte hilos ya existentes, proporcionarte un contexto que quizá no conozcas o relacionar tu idea con otra que no parezca inmediatamente relacionada.

Debatir la idea

Si no encuentra ninguna referencia a su idea, inicie un Hilo de debate. Describa a grandes rasgos la finalidad y el caso de uso de su idea. Incluya cualquier idea que tenga sobre el aspecto que tendría la función, si se implementara, como la forma general de una API, el aspecto visual de una capacidad o el documento que se añadiría. Si procede, también debes incluir cualquier investigación que hayas realizado sobre cómo se manifestaría tu idea en diferentes plataformas.

Una vez abierto el hilo de debate, el equipo de BeeWare y el resto de la comunidad responderán. El equipo central intentará ofrecer al menos una primera impresión de su idea en un plazo de dos días laborables. Si una idea es especialmente compleja, un análisis más detallado puede llevar hasta una semana. Acontecimientos como vacaciones y conferencias pueden alargar ligeramente estos plazos.

Esta es su oportunidad de participar en una conversación sobre su idea. Podemos pedirle más detalles o contexto. Otros miembros de la comunidad también pueden participar en el debate, aportando otras perspectivas, sugerencias o contrapropuestas. El resultado de este debate determinará los siguientes pasos.

Es importante entender que no todas las ideas serán aceptadas. La razón por la que este proceso comienza con una propuesta es para evitar que usted haga todo el trabajo y luego descubra que hay una razón por la que su cambio no será aceptado.

Esto no significa que no fuera una buena idea. Puede haber razones técnicas por las que no pueda llevarse a cabo. Por ejemplo, podríamos rechazar una idea si:

  • Sería difícil o imposible aplicarlo de forma fiable en todas las plataformas compatibles.
  • Sería difícil de mantener, o su mantenimiento requeriría el acceso a tecnología o programas informáticos que no están ampliamente disponibles; o
  • Sirve a un público nicho, pero impone una sobrecarga significativa a otros usuarios.

Si determinamos que tu idea no encaja, no significa necesariamente que debas renunciar a ella. Si bien podemos rechazar una idea específica, podemos estar mucho más dispuestos a añadir una interfaz de plugin u otro punto de extensión que le permita mantener la misma característica como una biblioteca externa. De este modo, podrá disponer de la función, pero sin que los problemas específicos de mantenimiento o las limitaciones de la función se conviertan en una restricción para el propio proyecto.

Convertir en una solicitud formal

Una vez que la discusión ha llegado a un consenso sobre la forma de una característica, puede crear una nueva feature request issue, en el issue tracker BeeWare, que resuma la discusión, enlazando a la discusión para el contexto.

No tienes por qué implementar tú mismo tu propuesta de funcionalidad; puedes abrir una incidencia con los detalles de lo que propones. Sin embargo, el mero hecho de publicar la incidencia no significa que vaya a implementarse. Tendrás que esperar a que otra persona interesada en la misma función, ya sea otro miembro de la comunidad o el equipo central, la recoja; sin embargo, no está garantizado que esto ocurra. Si quieres la implementación garantizada, tendrás que implementarla tú mismo, o pagar a alguien para que lo haga por ti.