Contribuir a Qiskit#
Qiskit es un proyecto de c贸digo abierto comprometido a llevar la computaci贸n cu谩ntica a personas de cualquier perfil de conocimiento. Esta p谩gina describe c贸mo puedes unirte a la comunidad de Qiskit para lograr este objetivo.
Antes de que Empieces#
Si eres nuevo en la contribuci贸n de Qiskit, te recomendamos que hagas lo siguiente antes de sumergirte en el c贸digo:
Lee el C贸digo de Conducta
Lee las Pautas de Contribuci贸n espec铆ficas del repositorio para el cual has decidido contribuir.
Familiar铆zate con la comunidad Qiskit (a trav茅s de Slack, Stack Exchange, GitHub etc.)
Contribuir a un Repositorio Espec铆fico#
Cada paquete de Qiskit tiene su propio conjunto de Pautas de Contribuci贸n (guardadas en el archivo CONTRIBUTING.md
) que detalla informaci贸n espec铆fica sobre c贸mo contribuir a ese repositorio. Aseg煤rate de leer las Pautas de Contribuci贸n espec铆ficas del repositorio antes de realizar tu contribuci贸n a un repositorio espec铆fico, ya que cada proyecto puede tener requerimientos y procesos ligeramente diferentes. Para Qiskit Terra, el repositorio principal, las pautas de contribuci贸n se pueden encontrar aqu铆. Otros paquetes de Qiskit que pueden recibir contribuciones se pueden encontrar como repositorios separados en el Github de Qiskit oficial.
Configura Tu Entorno de Desarrollo#
Para comenzar a contribuir con los repositorios de Qiskit basados en Python, deber谩s configurar un Entorno de Desarrollo Virtual de Python e instalar el paquete apropiado desde el c贸digo fuente.
Para obtener una gu铆a r谩pida sobre c贸mo hacer esto para qiskit-terra, echa un vistazo al video de YouTube How to Install Qiskit - Contributors.
Para los paquetes que no son de Python, debes consultar el archivo CONTRIBUTING.md para obtener detalles espec铆ficos sobre la configuraci贸n de tu entorno de desarrollo.
Configurar el Entorno de Desarrollo Virtual de Python#
Los entornos virtuales (virtual environments) son usados en el desarrollo en Qiskit para aislar el ambiente de desarrollo de los paquetes del sistema en general. De esta manera podemos evitar ser dependientes de que nuestro sistema tenga una configuraci贸n espec铆fica. Para desarrolladores, esto tambi茅n hace que sea f谩cil mantener m煤ltiples entornos (por ejemplo, uno por cada versi贸n compatible de Python, para versiones anteriores de Qiskit, etc.).
Todas las versiones de Python compatibles con Qiskit incluyen el m贸dulo de entorno virtual incorporado venv.
Comienza creando un nuevo entorno virtual con venv
. El entorno resultante utilizar谩 la misma versi贸n de Python que lo cre贸 y no heredar谩 los paquetes instalados para todo el sistema por defecto. La carpeta especificada se crear谩 y se utilizar谩 para contener la instalaci贸n del entorno. Se puede colocar en cualquier lugar. Para m谩s detalles, consulta la documentaci贸n oficial de Python, Creaci贸n de entornos virtuales.
python3 -m venv ~/.venvs/qiskit-dev
Activa el entorno invocando el script de activaci贸n correspondiente a tu sistema, encontrado en la carpeta del entorno. Por ejemplo, para bash/zsh:
source ~/.venvs/qiskit-dev/bin/activate
Actualiza pip dentro del entorno para asegurarte de que las dependencias de Qiskit instaladas en las siguientes secciones puedan ser ubicadas en tu sistema.
pip install -U pip
Para los usuarios de Conda, se puede crear un nuevo entorno de la siguiente manera.
conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv
pip install -e .
Pull Requests#
Utilizamos pull requests de Github para aceptar las contribuciones.
Aunque no es obligatorio, abrir una nueva incidencia sobre el error que est谩s arreglando o la funcionalidad en la que est谩s trabajando antes de abrir un Pull Request, es un paso importante para iniciar una discusi贸n con la comunidad sobre tu trabajo. La incidencia nos da un lugar para hablar sobre la idea y c贸mo podemos trabajar juntos para implementarla en el c贸digo. Tambi茅n le permite a la comunidad saber en qu茅 est谩s trabajando y, si necesitas ayuda, puedes hacer referencia a la incidencia cuando lo discutas con otros miembros de la comunidad y del equipo.
Si has escrito algo de c贸digo, pero necesitas ayuda para terminarlo, o deseas obtener comentarios iniciales sobre 茅l antes de finalizarlo, o deseas compartirlo y discutirlo antes de concluir la implementaci贸n, puedes abrir un Pull Request como Draft (Borrador) e inicia el t铆tulo con la etiqueta [WIP] (para Work In Progress). Esto indicar谩 a los revisores que el c贸digo en el PR (Pull Request) no est谩 en su estado final y cambiar谩. Tambi茅n significa que no se integrar谩 el c贸digo hasta que est茅 finalizado. T煤 o un revisor pueden eliminar la etiqueta [WIP] cuando el c贸digo est茅 listo para ser revisado por completo para su integraci贸n.
Antes de marcar tu Pull Request como 芦listo para revisi贸n禄, aseg煤rate de haber seguido la Lista de Verificaci贸n de PR a continuaci贸n. Los PR que se adhieren a esta lista tienen m谩s probabilidades de ser revisados y fusionados de manera oportuna.
Lista de Verificaci贸n del Pull Request:#
Has seguido los requerimientos del archivo CONTRIBUTING.md para el repositorio espec铆fico al que est谩s contribuyendo.
Todas las comprobaciones de CI pasan (se recomienda ejecutar pruebas y comprobaciones lint localmente antes de enviar).
Se han agregado nuevas pruebas para cualquier nueva funcionalidad que se haya introducido.
La documentaci贸n se ha actualizado en consecuencia para cualquier funcionalidad nueva/modificada.
Se ha agregado una nota de la versi贸n si el cambio tiene un impacto en el usuario.
Se han eliminado todos los comentarios superfluos o declaraciones de impresi贸n.
Todos los colaboradores han firmado el Acuerdo de Licencia del Contribuidor.
El PR tiene un t铆tulo conciso y explicativo (por ejemplo,
Fixes Issue1234
隆es un mal t铆tulo!).Si el PR aborda un problema abierto, la descripci贸n del PR incluye la sintaxis
fixes #issue-number
para vincular el PR a ese problema (debes usar la redacci贸n exacta para que GitHub cierre autom谩ticamente el problema cuando el PR sea fusionado)
Revisi贸n de C贸digo#
La revisi贸n del c贸digo se realiza de forma abierta y est谩 disponible a cualquier persona. Si bien solo los mantenedores tienen acceso a las confirmaciones de fusi贸n, los comentarios de la comunidad sobre los pull requests son extremadamente valiosos. Tambi茅n es un buen mecanismo para aprender sobre el c贸digo base.
Los tiempos de respuesta pueden variar para tu PR, no es inusual esperar algunas semanas para que un mantenedor revise tu trabajo, debido a otros compromisos internos. Si has estado esperando m谩s de una semana por una revisi贸n de tu PR, no dudes en etiquetar al mantenedor correspondiente en un comentario para recordarle cort茅smente que revise tu trabajo.
隆Por favor s茅 paciente! Los mantenedores tienen otras prioridades en las que centrarse, por lo que tu trabajo puede tardar un tiempo en revisarse y fusionarse. Los PR que est谩n en buena forma (es decir, siguiendo la Lista de Verificaci贸n del Pull Request:) son m谩s f谩ciles de revisar para los mantenedores y es m谩s probable que se fusionen de manera oportuna. Tambi茅n aseg煤rate de ser siempre amable y respetuoso en sus interacciones con los mantenedores y otros colaboradores, puedes leer el C贸digo de Conducta de Qiskit.
Acuerdo de Licencia del Contribuidor#
Antes de que puedas enviar cualquier c贸digo, todos los colaboradores deben firmar un acuerdo de licencia de contribuidor (contributor license agreement, CLA). Al firmar un CLA, atestiguas que eres el autor de la contribuci贸n y que est谩s contribuyendo libremente bajo los t茅rminos de la licencia Apache-2.0.
Cuando contribuyas al proyecto de Qiskit con un nuevo Pull Request, un bot evaluar谩 si has firmado el CLA. Si es necesario, el bot comentar谩 sobre el Pull Request, incluyendo un enlace para aceptar el acuerdo. El documento CLA individual est谩 disponible para su revisi贸n en formato PDF.
Nota
Si tu contribuci贸n es parte de tu empleo o tu contribuci贸n es propiedad de tu empleador, entonces seguramente necesitas firmar tambi茅n un CLA corporativo y enviarlo al correo <qiskit@us.ibm.com>.