Contribuyendo#
PyMC-Marketing da la bienvenida a las contribuciones de individuos o grupos interesados. Estas directrices se proporcionan para ofrecer a los posibles contribuyentes información que les permita hacer su contribución conforme a las convenciones del proyecto PyMC-Marketing y maximizar la probabilidad de que tales contribuciones sean fusionadas de la manera más rápida y eficiente posible. Los contribuyentes no necesitan ser expertos, pero deben estar interesados en el proyecto, dispuestos a aprender y a compartir conocimientos.
Existen 4 formas principales de contribuir al proyecto PyMC-Marketing (en orden ascendente de dificultad o alcance):
Enviando problemas relacionados con errores o mejoras deseadas.
Contribuyendo o mejorando la documentación (docs) o ejemplos.
Solucionando problemas pendientes (errores) en la base de código existente. Estos varían desde errores de software de bajo nivel hasta problemas de diseño de nivel superior.
Añadiendo nuevas o mejoradas funcionalidades a la base de código existente.
Los elementos 2-4 requieren la configuración de un entorno de desarrollo local, consulte Pasos de desarrollo local para más información.
Abriendo problemas#
Agradecemos que nos notifiquen sobre problemas con el código existente de PyMC-Marketing. Preferimos que los problemas se informen en el Github Issue Tracker, en lugar de en redes sociales o por correo electrónico directo a los desarrolladores.
Por favor, verifique que su problema no esté siendo abordado actualmente por otros problemas o solicitudes de extracción utilizando la herramienta de búsqueda de GitHub para buscar palabras clave en el rastreador de problemas del proyecto.
Contribuyendo código a través de solicitudes de extracción#
Si bien la presentación de informes de problemas es valiosa, alentamos encarecidamente a los usuarios que estén inclinados a hacerlo a que envíen parches para problemas nuevos o existentes a través de solicitudes de extracción. Este es particularmente el caso de correcciones simples, como errores tipográficos o ajustes en la documentación, que no requieren una gran inversión de tiempo y atención.
Se anima a los colaboradores a contribuir con nuevo código para mejorar la funcionalidad de PyMC-Marketing, a través de solicitudes de extracción.
El flujo de trabajo preferido para contribuir a PyMC-Marketing es bifurcar el repositorio de GitHub, clonarlo en su máquina local y desarrollar en una rama de características.
Para más instrucciones, consulte la lista de verificación de solicitudes de extracción
Pasos para el desarrollo local#
Si aún no lo ha hecho, bifurque el repositorio del proyecto haciendo clic en el botón “Fork” cerca de la parte superior derecha de la página principal del repositorio. Esto crea una copia del código bajo su cuenta de usuario de GitHub.
Clona tu bifurcación del repositorio
pymc-marketingde tu cuenta de GitHub a tu disco local y añade el repositorio base como remoto:git clone git@github.com:<your GitHub handle>/pymc-marketing.git cd pymc-marketing git remote add upstream git@github.com:pymc-labs/pymc-marketing.git
Alternativamente, si utiliza el GitHub CLI, entonces el comando requerido es solo
gh repo fork pymc-labs/pymc-marketing
Cree una rama de características (por ejemplo,
my-feature) para contener sus cambios de desarrollo:git checkout -b my-feature
Siempre utiliza una rama de características. Es una buena práctica no trabajar rutinariamente en la rama
mainde ningún repositorio.Cree un entorno de desarrollo dedicado a partir del archivo presente en el repositorio:
conda env create -f environment.yml
Esto creará un entorno llamado
pymc-marketing-dev. Active el entorno.conda activate pymc-marketing-dev
Instale el paquete (en modo editable) y sus dependencias de desarrollo:
make initConfigura los ganchos pre-commit. Primero, instala el paquete pre-commit (ya sea
pip install pre-commit, consulta las instrucciones de instalación del paquete). Alternativamente, puedes ejecutarmake check_lint, lo que instalará el paquetepre-commit. Luego, ejecuta esto para configurar los scripts de ganchos de git:pre-commit installPuedes trabajar en tus cambios localmente, en tu rama de características. Agrega los archivos modificados usando
git addy luegogit commitarchivos:git add modified_files git commit -m "Message summarizing commit changes"
para registrar sus cambios localmente. Después de hacer el commit, es una buena idea sincronizar con el repositorio base en caso de que haya habido algún cambio:
git fetch upstream git rebase upstream/main
Luego, envía los cambios a tu cuenta de GitHub con:
git push -u origin my-feature
[Opcionalmente] Construya la documentación localmente. Si ha cambiado alguna de la documentación, puede construirla localmente para verificar que se vea como se espera.
make htmlPara eliminar todos los archivos intermedios y el contenido en caché y construir la documentación desde cero, ejecute
make cleandocsantes demake html.Antes de enviar una solicitud de extracción, siga la lista de verificación de solicitudes de extracción.
Finalmente, para enviar una solicitud de extracción, dirígete a la página web de GitHub de tu bifurcación del repositorio PyMC-Marketing. Haz clic en el botón “Pull request” para enviar tus cambios a los mantenedores del proyecto para su revisión. Esto enviará un correo electrónico a los responsables de los commits.
Lista de verificación de la solicitud de extracción#
Recomendamos que su contribución cumpla con las siguientes directrices antes de enviar una solicitud de extracción:
Si su solicitud de extracción aborda un problema, utilice el título de la solicitud de extracción para describir el problema y mencione el número del problema en la descripción de la solicitud de extracción. Esto asegurará que se cree un enlace de regreso al problema original.
Todos los métodos públicos deben tener docstrings informativos con ejemplos de uso cuando sea apropiado.
Para indicar un trabajo en progreso, por favor marque el PR como
borrador. Los borradores pueden ser útiles para (1) indicar que está trabajando en algo para evitar trabajo duplicado, (2) solicitar una revisión amplia de la funcionalidad o API, o (3) buscar colaboradores.Todas las demás pruebas pasan cuando todo se reconstruye desde cero.
Al agregar funcionalidad adicional, edite un ejemplo existente o cree un nuevo ejemplo (típicamente en forma de un Jupyter Notebook) en las carpetas
pymc-marketing/docs/source/mmmopymc-marketing/docs/source/clv. Consulte otros ejemplos como referencia. Los ejemplos deben demostrar por qué la nueva funcionalidad es útil en la práctica.La documentación y las pruebas de alta cobertura son necesarias para que las mejoras sean aceptadas.
La documentación sigue la guía de estilo de NumPy
Ejecute cualquiera de los ejemplos preexistentes en
pymc-marketing/docs/source/*que contengan análisis que se verían afectados por sus cambios para asegurarse de que nada se rompa. Esta es una oportunidad útil no solo para verificar su trabajo en busca de errores que podrían no ser revelados por las pruebas unitarias, sino también para mostrar cómo su contribución mejora PyMC-Marketing para los usuarios finales.Tu código pasa las pruebas de linting. Ejecuta la línea a continuación para verificar errores de linting:
make check_lintSi desea corregir los errores de linting automáticamente, ejecute
make lintPara ejecutar pruebas:
make test
Para verificar el estilo de código:
make check_formatPara corregir el estilo de código automáticamente:
make format