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 sudo
o permisos de administrador.
Ventanas
- NSIS v2.51 (v3.x no funcionará)
- Cualquiera de los siguientes:
- Visual C- 2019 Construye herramientas que contienen compiladores independientes, bibliotecas y scripts
- Las ventanas-construir-herramitas deben ser instaladas junto con NodeJS
- Visual Studio Community 2019 (gratuto) (otras ediciones, como Professional y Enterprise, también debería funcionar)
NOTA: Visual Studio no instala C por defecto. Tienes que volver a ejecutar el
configuración, seleccione «Modificar» y luego comprobarVisual C++ -> Common Tools for Visual C++
(ver http://stackoverflow.com/a/31955339)
- MinGW
Puede que lo necesites. npm config set msvs_version 2019
para 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-dev
para libusb (por ejemplo, instalar consudo apt install libudev-dev
, o en fedorasystemd-devel
contiene 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.json
ynpm-shrinkwrap.json
.
Bines difatarios
Archivos binarios se etiquetan como «binaria» en el .gitattributes
archivo, pero también
a diff=hex
tag, 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 hexdump
disponible 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.