Guía de contribuciones

Gracias por su interés en contribuir a este proyecto. Este documento tiene como objetivo
servir como guía amable para hacer su primera contribución.

Panorama de alto nivel de Etcher

Asegúrese de hacer el pago de nuestra guía ARCHITECTURE.md, que tiene como objetivo
explicar cómo encajaban todas las piezas.

Desarrollo

Prerrequisitos

Común

pip install -r requirements.txt

Puede que tengas que manejar esto con sudoo permisos de administrador.

Ventanas

Puede que lo necesites. npm config set msvs_version 2019para node-gipado para detectar correctamente
la versión de Visual Studio que está utilizando (en este ejemplo VS2019).

Se requieren los siguientes paquetes MinGW:

  • msys-make
  • msys-unzip
  • msys-zip
  • msys-bash
  • msys-coreutils

macOS

No es suficiente tener instaladas Xcode Command Line Tools. Xcode debe ser instalado
– También.

Linux

  • libudev-devpara libusb (por ejemplo, instalar con sudo apt install libudev-dev, o en fedora systemd-develcontiene el paquete requerido)

Clonación del proyecto

git clone --recursive https://github.com/balena-io/etcher
cd etcher

Ejecutado la aplicación

GUI

# Build and start application
npm start

Pruebas

Para ejecutar la suite de prueba, ejecute el siguiente comando:

npm test

Dada la naturaleza de esta aplicación, no todo se puede probar en la unidad. Para
ejemplo:

  • La escritura que opera en dispositivos de verdaderas materias primas.
  • Plataformas inconsistencias.
  • Cambios de estilo.
  • Obras de arte.

Animamos a nuestros colaboradores a probar la aplicación en tantos operativos
sistemas como pueden antes de enviar una solicitud de tracción.

La suite de prueba se ejecuta automáticamente por los servidores de CI cuando se envía un tindo
petición.

Utilizamos EditorConfig para comunicar la sangrado, terminaciones de líneas y
otros defectos de edición de texto. Le animamos a instalar el plugin correspondiente en
su editor de texto de elección para evitar tener que arreglar cualquier problema durante la revisión
proceso.

Actualización de una dependencia

  • Instale nueva versión de la dependencia utilizando npm
  • Compromitan ambos package.jsony npm-shrinkwrap.json.

Bines difatarios

Archivos binarios se etiquetan como «binaria» en el .gitattributesarchivo, pero también
a diff=hextag, que le permite ver diffs de estilo hexdump para binarios,
i añade lo siguiente a su configuración global o local de git:

$ git config diff.hex.textconv hexdump
$ git config diff.hex.binary true

Y global, respectivamente:

$ git config --global diff.hex.textconv hexdump
$ git config --global diff.hex.binary true

Si no tienes hexdumpdisponible en su plataforma,
puedes probar hxd, que también es un poco más rápido.

Directrices para los compromisos

Véase COMMIT-GUIDELINES.md para una guía completa sobre cómo
escribe mensajes de commit.

Enviada una solicitud de tracción

Al enviar una solicitud de tib para ti, considere las siguientes directrices:

  • Escribe un mensaje de confirmación conciso explicando tus cambios.

  • Si se aplica, escriba más información descriptiva en el cuerpo de confirmación.

  • Mencione los sistemas operativos con las versiones correspondientes en las que
    probó sus cambios.

  • Si su cambio afecta a las imágenes de la aplicación, considere adjuntar un
    Capa de pantalla.

  • Consulte el problema/s sus correcciones de solicitud de tira, por lo que se cierran automáticamente
    cuando su solicitud de tira se fusione.

  • Escriba un título de solicitud de ti descriptivo.

  • Squash se compromete cuando es posible, por ejemplo, al cometer cambios de revisión.

Antes de que su solicitud de tracción pueda fusionarse, las siguientes condiciones deben tener:

  • El linter no lanza ninguna advertencia.

  • Todas las pruebas pasan.

  • El estilo de codificación se alinea con la convención del proyecto.

  • Sus cambios se confirman para estar trabajando en versiones recientes de la operación
    sistemas que apoyamos.

No dude en ponerse en contacto si tiene alguna pregunta o necesita ayuda.