GitHub Desktop en Linux
Publicado el 2 de enero de 2018Hace un tiempo GitHub publicó GitHub Desktop, una aplicación de escritorio con interfaz visual para trabajar con sus servicios. La versión 1.0 -publicada en setiembre de 2017- fue reimplementada con Electron. El problema es que sólo estaba disponible para Windows y Mac. Electron es un framework JavaScript que permite desarrollar aplicaciones de escritorio con JavaScript, HTML y CSS. Y una de sus ventajas es que permite publicar aplicaciones multiplataforma.
Personalmente no soy muy fan de Electron, no sé si diría que es Flash para escritorio, pero no anda lejos (y sí estoy de acuerdo en lo que dice el artículo: slack es un pequeño programa en JavaScript corriendo en la máquina virtual de otro sistema operativo (Chrome), que hay que ejecutar para esencialmente chatear en IRC). Tampoco soy fan del ecosistema JavaScript. Todo npm
y la cantidad de recursos que usan tanto las aplicaciones Electron como un npm install
que descarga cientos de paquetes por cualquier proyectito que use, me huelen muy mal. Tampoco usaría GitHub Desktop, me acostumbré a usar git por línea de comando y creo que no aporta a mi flujo de trabajo.
PERO, siendo GitHub un servicio tan popular, con una aplicación que podría ayudar a más gente a acercarse al ecosistema de código abierto, es bueno que esté disponible también en Linux. Cuanto más aplicaciones, menos excusas para no usar el sistema operativo, y más opciones y facilidades para los usuarios.
El pedido de GitHub Desktop para Linux no tardó en llegar. Habiendo trabajado antes en agregar soporte para Linux en otras herramientas, decidí probar qué tan difícil era en Electron. Encontré que ejecutar la aplicación en Linux no llevó tanto trabajo. Con unos pocos commits, ya se podía usar:
En el hilo de conversación de GitHub siguieron lloviendo comentarios, de los constructivos y de los otros. Varios usuarios aportaron su conocimiento y código para seguir progresando con el proyecto, y se logró un build estable en Travis. Eventualmente la cosa se formalizó un poco, con este comentario de Brendan Forster (programador en GitHub y uno de los principales desarrolladores del proyecto). A partir de ahora, la mayor parte del trabajo para Linux se va a llevar en el fork shiftkey/desktop. Ahí debemos dar de alta reportes de problemas o pedidos de nuevas características y mandar Pull Requests relacionados con Linux.
Con cada tag nuevo en el repositorio principal de la aplicación, se va a publicar un nuevo release en este fork. De esta forma podemos probar la aplicación sin tener que armar todo el ambiente de desarrollo. Si están interesados en colaborar para que GitHub Desktop tenga una versión oficial para Linux, sigan el fork, y estén atentos a los nuevos releases para probarlos.
GitHub no se ha comprometido a una fecha ni ha destinado demasiados recursos al desarrollo del cliente para Linux todavía. Mencionaron en el reporte inicial que no tenían mucha experiencia en la empresa y probablemente tampoco tenga mucho sentido desde el punto de vista de negocios. Pero están abiertos y alientan a la comunidad a trabajar en conjunto para mejorar el fork hasta eventualmente tener una versión estable.
Veremos cómo progresa el proyecto, y esperemos que gracias a la comunidad podamos contar con una versión oficial para Linux.
https://github.com/shiftkey/desktop
Diego Santos 21 julio. 2018 - 20:10
Estimados,
Para quienes deseen instalarse Github Desktop en Linux (en mi caso en Ubuntu), les dejo los pasos a seguir para que les funcione:
1) sudo git clone https://github.com/shiftkey/desktop.git
2) cd desktop
3) sudo chmod -R 777 desktop/
4) npm install -D keytar
5) sudo apt-get update
6) sudo apt-get install libsecret-1-dev
7) npm install -D ts-node
8) npm install -D typescript
9) yarn add electron-prebuilt-compile -D
10) Modificar en package.json donde dice:
“electron-prebuilt-compile”: “^2.0.4”
debe decir:
“electron-prebuilt-compile”: “2.0.4”
11) npm install –save-dev cross-env
12) npm install g cross-env
13) yarn install
14) yarn build:dev
15) yarn start
Espero les sea de utilidad.
Saludos!