Integración con GitHub
En un entorno de trabajo multiplataforma, nuestro código se va a ir moviendo entre diferentes máquinas y compiladores, lo que hace casi imprescindible utilizar un sistema de control de versiones para automatizar la tarea. A día de hoy existen varias soluciones y multitud de portales web que nos permiten alojar nuestros proyectos. Nos centraremos aquí en el tándem Git/GitHub y veremos como sincronizar nuestros repositorios privados con el de NAppGUI con el fin de contar siempre con la última versión publicada del SDK.
Si prefieres no utilizar Git, puedes saltar directamente al apartado Instalación manual. Si utilizas Git pero no GitHub, te servirá como recordatorio todo lo que veamos aquí cambiando, claro está, las URL de los repositorios remotos.
1. Crear un repositorio
El primer paso es crear un nuevo repositorio para alojar tus proyectos. Accede a tu cuenta GitHub y hazlo, es sencillo. Si lo defines como Private solo tendrán acceso a él las personas que tú indiques. Por el momento no añadas el README
, ni .gitignore
ni licencia (Figura 1). Tras aceptar, GitHub te mostrará la URL de tu repositorio (Figura 2), que necesitaremos posteriormente para enlazar la máquina local.
2. Subir tu proyecto a GitHub
Si has seguido los pasos de Inicio rápido y Crear nueva aplicación ahora tendrás en tu máquina Windows una carpeta C:\nappgui_sdk
con tu primera aplicación MyNewApp
y varios ejemplos que vienen "de serie" con el SDK. Para empezar, comprueba el estado de tu repositorio local con git status
.
|
git status On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: src/CMakeLists.txt Untracked files: (use "git add <file>..." to include in what will be committed) src/myapp/ no changes added to commit (use "git add" and/or "git commit -a") |
Lo que indica que has modificado CMakeLists.txt
y que existe una carpeta (src/myapp
del nuevo proyecto) que todavía no está bajo control de versiones. Si, efectivamente, al hacer git clone
creaste una copia local del repositorio de NAppGUI por lo que desde el primer momento tienes tu proyecto auditado por Git. Lo que debes hacer ahora es añadir un vínculo con el repositorio de GitHub que acabas de crear. Para ello deberás utilizar el comando git remote
.
|
git remote add myrepo https://github.com/your_user/your_repo.git |
En este momento tu carpeta local tiene dos conexiones con repositorios remotos (Figura 3): La primera (denominada origin
) con NAppGUI fruto del git clone
y la segunda (myrepo
) con tu propio repositorio, que aún está vacío. Lo puedes ver con git remote -v
|
git remote -v myrepo https://github.com/your_user/your_repo.git (fetch) myrepo https://github.com/your_user/your_repo.git (push) origin https://github.com/frang75/nappgui.git (fetch) origin https://github.com/frang75/nappgui.git (push) |
Pues ahora, tan solo tienes que añadir los nuevos cambios al repositorio local:
|
git add . git commit -m "MyNewApp first version" [master 536bb09] MyNewApp first version 9 files changed, 92 insertions(+) create mode 100644 src/myapp/CMakeLists.txt create mode 100644 src/myapp/mynewapp.c create mode 100644 src/myapp/res/banner.bmp create mode 100644 src/myapp/res/license.txt create mode 100644 src/myapp/res/logo.icns create mode 100644 src/myapp/res/logo256.ico create mode 100644 src/myapp/res/logo48.ico create mode 100644 src/myapp/res/pack.txt |
Y subirlos a tu GitHub
|
git push myrepo Enumerating objects: 2525, done. Counting objects: 100% (2525/2525), done. Delta compression using up to 8 threads. Compressing objects: 100% (1097/1097), done. Writing objects: 100% (2525/2525), 49.37 MiB | 1.31 MiB/s, done. Total 2525 (delta 1356), reused 2517 (delta 1353) remote: Resolving deltas: 100% (1356/1356), done. To https://github.com/frang75/test2.git * [new branch] master -> master |
Si accedes a tu repositorio desde la Web de GitHub, verás que ya tienes tu proyecto a buen recaudo (Figura 4).
El repositorio de NAppGUI es de solo lectura. Cualquier cambio que intentes publicar en él git push origin
será rechazado.
3. Actualizar las copias de trabajo
Como tu nuevo repositorio ya contiene el proyecto y todo lo necesario para que compile en múltiples plataformas, puedes clonarlo desde cualquier máquina de tu red, bien sea un PC-Windows, macOS o PC-Linux.
|
git clone https://github.com/your_user/your_repo.git |
No es necesario que todas las máquinas de tu red conserven una referencia remota con NAppGUI. Puedes mantener el vínculo en la máquina Windows para actualizar el SDK de forma cómoda. Las demás obtendrán los cambios desde tu repositorio privado. En este momento, cada máquina de tu red puede subir cambios al repositorio, de forma similar a la vista en la sección anterior:
|
git add . git commit -m "New changes in project" git push |
Y para actualizar los cambios realizados por otros compañeros, utilizará git pull
|
git pull |
Es muy importante que vuelvas a ejecutar CMake tras actualizar la copia local de cada máquina. Es posible que otros compañeros hayan añadido archivos, lo que obliga a recomputar la solución.
4. Actualizar el SDK NAppGUI
El repositorio de NAppGUI se está actualizando constantemente con nuevas funcionalidades y corrección de errores. Si quieres mantener tu proyecto a la última, puedes actualizar periódicamente:
|
git pull origin git push myrepo |
Que actualiza desde NAppGUI y, posteriormente, lo sube a tu repositorio privado para que todas las máquinas tengan acceso a los cambios.
5. Instalación manual
En el caso que no quieras utilizar Git, no tener ningún vínculo con el repositorio de NAppGUI o eliminar archivos innecesarios podrás instalar el SDK de forma manual, siguiendo estos sencillos pasos:
- Descargar el .ZIP del SDK desde la sección Download de nappgui.com. Contiene la misma estructura de directorios.
- Puedes eliminar el
README.md
, si está incluido en el paquete. - Si quieres eliminar los proyectos de ejemplo, borra las carpetas
/src/demo
y/src/howto
. Luego abre/src/CMakeLists.txt
y elimina todas las líneas debajo del# NAppGUI Sources
, que son las encargadas de generar las aplicaciones de ejemplo.
Y para actualizar el SDK una vez instalado:
- Vuelve a descargar el .ZIP de la nueva versión y descomprímelo en una carpeta aparte.
- Sustituye completamente las carpetas
/inc
,/lib
y/prj
de tu copia de trabajo por las del paquete nuevo. - Abre
/src/CMakeLists.txt
en tu copia local y sustituye las líneas bajo# NAppGUI Libraries
por las de la nueva versión. Es muy probable que no hayan cambiado, pero compruébalo. - Vuelve a ejecutar CMake para que integre todos los cambios en tu solución.