Genera código para gsutil

Descripción general

Estamos dispuestos a incorporar los cambios de código de gsutil creados por los usuarios. A continuación, se ofrecen algunos lineamientos.

  1. Antes de aceptar la presentación de los códigos, debemos evitar algunas complicaciones legales. Completa el contrato de licencia para colaboradores que pueden ser personas físicas o personas jurídicas:

    Sigue cualquiera de los dos vínculos anteriores para acceder al CLA adecuado y a las instrucciones sobre cómo firmarlo y enviarlo. Una vez que lo recibamos, te agregaremos a la lista oficial de colaboradores y podremos aceptar tus parches.

  2. Si encontraste un error o tienes una idea para mejorar una función, te sugerimos que consultes https://github.com/GoogleCloudPlatform/gsutil/issues para ver si ya lo informó otro usuario. Desde allí, también puedes suscribirte a las actualizaciones del problema.

  3. Si aún no existe un problema de GitHub, crea uno sobre tu idea antes de enviar el código real. A menudo, podemos analizar la idea y proponer sugerencias que podrían ahorrarte trabajo de revisión posterior.

  4. Por lo general, evitamos agregar opciones de línea de comandos que sean útiles para solo una pequeña fracción de usuarios, en especial si existe alguna otra manera de satisfacer esas necesidades. Agregar estas opciones complica el código y también agrega sobrecarga a los usuarios que tienen que leer una lista de “sopa de letras” de opciones de documentación.

  5. Aunque gsutil tiene una serie de funciones específicas de Cloud Storage, también se puede usar con otros proveedores de almacenamiento en la nube. Estamos dispuestos a incluir cambios para realizar funciones de asistencia de gsutil específicas de otros proveedores, siempre que esos cambios no empeoren el funcionamiento de gsutil para Cloud Storage. Si realiza estos cambios, te recomendamos incluir a alguien que conozca al proveedor específico como un usuario que haya dejado una opinión sobre el código (consulta a continuación).

  6. Puedes verificar el código de gsutil desde el repositorio de GitHub:

    https://github.com/GoogleCloudPlatform/gsutil
    

    Para clonar una copia de solo lectura del repositorio, consulta el siguiente vínculo:

    git clone git://github.com/GoogleCloudPlatform/gsutil.git
    

    Para enviar tus propios cambios a GitHub, haz clic en el botón de bifurcación en la página del repositorio y clona el repositorio desde tu propia bifurcación.

  7. En el repositorio de Git de gsutil, se usan submódulos de Git para extraer los módulos externos. Después de revisar el repositorio, asegúrate de extraer los submódulos. Para ello, debes ingresar al directorio de nivel superior de gsutil y ejecutar lo siguiente:

    git submodule update --init --recursive
    
  8. Asegúrate de ejecutar todas las pruebas en el código modificado. Para ello, cambia los directorios al directorio de nivel superior de gsutil y ejecuta lo siguiente:

    ./gsutil test
    

    Las pruebas anteriores tardan mucho tiempo en ejecutarse porque envían muchas solicitudes al servicio de producción. El comando de prueba de gsutil tiene un argumento -u que solo ejecutará pruebas de unidades. Estos se ejecutan con rapidez, ya que se ejecutan con una implementación de servicio de almacenamiento de muestra en la memoria. Para ejecutar solo las pruebas de unidades, ejecuta lo siguiente:

    ./gsutil test -u
    

    Si realizaste cambios en boto, ejecuta las pruebas de boto. Para estas pruebas, necesitas usar credenciales de HMAC (desde la configuración de gsutil -a), ya que el conjunto de pruebas boto actual no importa el controlador de OAuth2. También deberás instalar algunos módulos de Python. Cambia los directorios al directorio raíz de boto en third_party/boto y ejecuta lo siguiente:

    pip install -r requirements.txt
    

    (Probablemente necesites ejecutar este comando mediante sudo). Asegúrate de que cada una de las instalaciones se haya realizado de forma correcta. De no ser así, es posible que debas volver a ejecutar el comando de instalación.

    Luego, asegúrate de que el archivo .boto tenga credenciales de HMAC definidas (las pruebas boto no cargan el complemento de OAUTH2) y, luego, cambia los directorios al directorio de prueba de boto y ejecuta lo siguiente:

    python test.py unit
    python test.py -t s3 -t gs -t ssl
    
  9. Considera colaborar con el código de prueba del cambio, sobre todo si el cambio afecta a cualquier código central de gsutil (como el comando gsutil cp).

  10. Ejecuta el lint de yapf con los archivos de configuración en la raíz del repositorio de GitHub.

    yapf -irp .

  11. Cuando llegue el momento de enviarnos el código, envía un PR al repositorio de GitHub de gsutil. Para obtener ayuda sobre cómo crear los PR de GitHub, consulta este documento de ayuda de GitHub.