Página 1 de 2

¿Cual es vuestro entorno de trabajo?

Publicado: 30 Ene 2016, 14:47
por super_berny
El problema:

Hace tiempo q le estoy dando vueltas a mi entorno de trabajo. No me refiero a mi editor de codigo (notepad++), sino mas bien en como poder integrar git + Kodi + el editor para tener en mi repositorio siempre la version q estoy editando y probando en kodi.
Ademas como handicamp tiene que ser portable ya q tecleo en varios ordenadores y no todos tiene conexion a internet, aunque si todos tiene Sourcetree, Kodi y notepad++.

Historia:

Hasta ahora utilizaba dos repositorios git:
  • El primero era un fork del oficial (con todas sus carpetas), instalado en una memoria usb.
  • Mientras q el segundo era un repositorio solo local (no hay remoto) creado en la carpeta
    plugin.video.pelialacarta de un kodi portable instalado en la memoria usb. Este carpeta, inicialmente, era una copia de la carpeta main-classic de la ultima version publicada del plugin.
Mediante sourcetree creaba una rama develop/feture en este segundo repositorio, para ir probando nuevas funcionalidades. Cuando tenia algo q compartir tiraba de log para ver q archivos habian cambiado, creaba una nueva rama en el primer repositorio y enviaba la pull request.
Si no tienes cierta habilidad para ver los cambios en git, puede llegar a ser un lio, sobretodo para incorporar los cambios q otros hacen en el repositorio oficial en tu segundo repositorio :cry: .

Nuevo enfoque, enlaces simbolicos:

Se trata de enlazar el contenido de la carpeta kodi/addons/plugin.video.pelisalacarta (origen) con la carpeta ..\python\main-classic (destino) de mi repositorio fork. De tal manera q cuando kodi acceda al plugin en realidad este accediendo a los archivos q hay en mi repositorio local.

Aunque conocia la tecnica en linux (y en mac la suponia), desconocia q en windows fuera factible :oops: . Una busqueda en google, me ha descubierto que, desde Vista en adelante, ya hay soporte para los enlaces simbolicos, si bien limitado por el sistema de fichero q empleemos. Asi pues solo es posible crear enlaces cuyo origen sea en un SF NTFS, mientras que como destino podemos emplear FAT32, exFat y por supuesto NTFS.

El hecho de tener q llevar los datos en una usb me hizo pensar en principio en formatear el pendrive con NTFS y continuar utilizando la version portable de Kodi. Pero el acceso a los ficheros en un pendrive formateado en NTFS se hace tan increiblemente lento q no era viable (desconozco si es en todas o solo las q yo he probado). Como segunda opcion, y considerando q puedo instalar Kodi en todos los PCs q utilizo, lo que vamos a hacer es enlazar un "plugin portable" en un kodi instalado (no portable).

Manos a la obra:
  • En primer lugar debemos asignar una letra fija a nuestro pendrive, en mi caso la K (de kodi claro :lol: ) ¿como?
  • Elimina la carpeta addons\plugin.video.pelisalacarta si lo tenias instalado.
  • Abrimos una consola con permisos de administrador. ¿como?
  • Escribimos lo siguiente (sustituyendo XXX por tu identificador de usuario):
    mklink /d "D:\Users\XXX\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta" "K:\Git Pelisalacarta 4.X\python\main-classic"
    • Donde:
      D:\Users\XXX\AppData\Roaming\Kodi\addons\ es la ruta donde mi Kodi instala los plugins.
      K:\Git Pelisalacarta 4.X\ es la ruta base a mi repositorio git (fork del oficial)
    • y obtendremos:
      vínculo simbólico creado para D:\Users\XXX\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta <<===>>
      K:\Git Pelisalacarta 4.X\python\main-classic
Con esto ya tendremos lo que queriamos: si abrimos Kodi podremos ver nuestro plugin y si editamos cualquier archivo en el repositorio podremos probar los cambios inmediatamente.
Ahora bien, para completar la faena recomiendo tambien enlazar los datos de usuario del plugin, asi tendremos los mismos settings en todos los kodis:
  • Si ya teniamos instalado el plugin:
    • y queremos mantener los settings: mueve la carpeta "d:\Users\XXX\AppData\Roaming\Kodi\userdata
      \addon_data\plugin.video.pelisalacarta" a la usb (en mi caso a: "K:\kodi_addon_data\plugin.video.pelisalacarta")
    • No queremos mantener los settings: elimina la carpeta "d:\Users\XXX\AppData\Roaming\Kodi\userdata\addon_data\plugin.video.pelisalacarta".
  • En la consola teclear (sustituyendo XXX por tu identificador de usuario):
    mklink /d "D:\Users\XXX\AppData\Roaming\Kodi\userdata\addon_data\plugin.video.pelisalacarta" "K:\kodi_addon_data\plugin.video.pelisalacarta"
    • Donde:
      D:\Users\XXX\AppData\Roaming\Kodi\userdata\addon_data\plugin.video.pelisalacarta es la ruta a la configuracion de pelisalacarta en mi kodi
      K:\kodi_addon_data\plugin.video.pelisalacarta es la carpeta donde guardaremos los settings.
    • y obtendremos:
      vínculo simbólico creado para D:\Users\XXX\AppData\Roaming\Kodi\userdata\addon_data\plugin.video.pelisalacarta <<===>> K:\kodi_addon_data\plugin.video.pelisalacarta
Evidentemente si teneis varios PCs para trabajar, como yo, debereis hacer esto en cada uno de ellos.

Extra:
Si contais con una buena conexion y no quereis ir cargado con la memoria usb podeis hacer todo esto con dropbox enlazando como destino vuestra carpeta local de dropbox. El servicio se ocupara de sincronizarla en los diferentes PCs.
Evidentemente si no necesitais trabajar en varios ordenadores, pero si quereis tener sincronizado el repositorio con Kodi, podeis hacerlo todo en el mismo disco duro sin necesidad de USB ni dropbox.

Espero haber ayudando a alguien con todo este rollo y si creeis q hay una manera mejor:
¿Cual es vuestro entorno de trabajo?

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 30 Ene 2016, 16:52
por robalo
Es una pregunta o un manual a un entrono personalizado o ambas cosas?
Sobre git personalmente paso mucho de el, lo considero como una simple carpeta de intercambio. Y como soy un negao para el git pensaba que con "Compare" se podía actualizar la copia del repositorio.
Sobre kodi en diferentes equipos no tengo problemas, todos están en mi red y el que quiera kodi fuera de mi red que se busque la vida y si quiera ayuda que me llame o lea los post del foro.
Sobre el entorno de trabajo que parece que es lo que menos importa, el mio es simple. Un monitor de 24" a la derecha con tail obserbando las tonterías que hace kodi o la víctima en curso, un monitor de 24" a la izquierda a modo de biblioteca con mis libros de consulta y con algunos txt como portapapeles y un monitor de 27" en el centro con el editplus con archvos en edición y víctima ejecutándose. Me falta por colocar un cuarto monitor pequeño por falta de enchufe y pereza en alargarle uno para usarlo de portapapeles. Ese sería mi entrono ideal.
Cuando me clavo en algo paso a otro cosa y si la rotación no mejora la eficacia me pongo a pegar tiros como un condenao con alguno de los juegos que tengo, es lo que mejor funciona :lol: :lol: :lol:

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 01 Feb 2016, 15:49
por Cmos
La guía es muy interesante super_berny, muy bien explicada y que puede ser muy útil. En mi caso como las pruebas y demás las hago con el mismo PC, lo que buscaría sería tener dos versiones del plugin instaladas en el mismo Kodi, una modificada con mis cambios y pijadillas y otra la que vaya desarrollándose y publicándose en el git.

Para esta última desde luego la solución ideal es la que comentas a través de los enlaces simbólicos hacia mi carpeta local donde tengo el fork, pero para la primera qué sería mejor? Cambiar el nombre del plugin en el archivo addon.xml y así que no se pisen ambos? Hace un tiempo lo intenté creando otro perfil en Kodi pero no sirve para eso y me preguntaba si habría otra manera menos "chapucera" xD

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 01 Feb 2016, 18:14
por super_berny
Cmos escribió:La guía es muy interesante super_berny, muy bien explicada y que puede ser muy útil. En mi caso como las pruebas y demás las hago con el mismo PC, lo que buscaría sería tener dos versiones del plugin instaladas en el mismo Kodi, una modificada con mis cambios y pijadillas y otra la que vaya desarrollándose y publicándose en el git.

Para esta última desde luego la solución ideal es la que comentas a través de los enlaces simbólicos hacia mi carpeta local donde tengo el fork, pero para la primera qué sería mejor? Cambiar el nombre del plugin en el archivo addon.xml y así que no se pisen ambos? Hace un tiempo lo intenté creando otro perfil en Kodi pero no sirve para eso y me preguntaba si habría otra manera menos "chapucera" xD
Celebro que te haya parecido interesante. La intencion cuando la escribi era doble: por un lado explicar como lo hacia yo (con el error de mantener dos repositorios) y como lo habia solucionado; Mientras que por otra parte buscaba informacion si alguien tenia una solucion mejor.

Respecto a mantener dos versiones del plugin, no eres el primero q me pregunta por esa opcion, y aunque seguro habra gente con mas experiencias voy a intentar explicarte un par de opciones:

Un plugin, varias versiones
Esta es la solucion mas GIt por asi decirlo. Consiste en crearte una rama (mi_dev, por ejemplo) en tu repositorio local. A partir de aqui, todas tus modificaciones o "pijadillas" se implementan y mergean sobre esta rama, mientras q en las ramas clasicas master y develop continuamos con los avances oficiales. Cuando quieras probar tu version solo has de asegurarte q git esta situado en tu rama mi_dev: git checkout mi_dev, por contra si quieres probar la version oficial deberas hacer git checkout master o git checkout develop segun proceda.
El problema (o ventaja segun se mire) es q no puedes tener simultaneamente las dos versiones en el menu de kodi.

Dos plugins, mismo padre
@cmos, si aun no te he convencido es por q tu lo q quieres es tener dos plugins independientes, aunque sean hermanos. :D Para hacer esto yo lo que hice fue:
  • Copiar la carpeta del plugin en kodi/addons y renombrarla como plugin.video.pelisalacarta-test
  • Eliminar todos los ficheros pyo de esa carpeta y subcarpetas.
  • Con notepad++ remplazar en todos los ficheros plugin.video.pelisalacarta por plugin.video.pelisalacarta-test
  • Buscar y remplazar PLUGIN_NAME = "pelisalacarta" por PLUGIN_NAME = "pelisalacarta-test" en todos los archivos py (en mi caso solo fueron en config.py y seriesdanko.py)
  • En addon.xml sustituir: name="pelisalacarta" por name="pelisalacarta-test"
Con esto tendremos un nuevo plugin llamado pelisalacarta-test en el menu de kodi de manera independiente y simultanea al pelisalacarta oficial.
No he probado todo al 100% (favoritos, biblioteca, etc...) pero podrias comenzar por esto y contarnos.

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 01 Feb 2016, 19:00
por SeiTaN
super_berny escribió: Dos plugins, mismo padre
@cmos, si aun no te he convencido es por q tu lo q quieres es tener dos plugins independientes, aunque sean hermanos. :D Para hacer esto yo lo que hice fue:
  • Copiar la carpeta del plugin en kodi/addons y renombrarla como plugin.video.pelisalacarta-test
  • Eliminar todos los ficheros pyo de esa carpeta y subcarpetas.
  • Con notepad++ remplazar en todos los ficheros plugin.video.pelisalacarta por plugin.video.pelisalacarta-test
  • Buscar y remplazar PLUGIN_NAME = "pelisalacarta" por PLUGIN_NAME = "pelisalacarta-test" en todos los archivos py (en mi caso solo fueron en config.py y seriesdanko.py)
  • En addon.xml sustituir: name="pelisalacarta" por name="pelisalacarta-test"
A esto es lo que me refería yo, Cmos parece que piensa igual xDD, yo uso kodi en el pc, y si trasteo puedo joder algo que funciona, por eso la idea de tener dos versiones.

De ahí mi pregunta en github, sobre configurar un repositorio con los datos de kodi o la plafatorma que sea solo para testeo, asi cuando te bajas el zip, lo puedes instalar sin joder nada.

Si te bajas las ramas generadas desde developer se tendría una por cada pull:
- pelisalacarta-update (de divadres)
- pelisalacarta-filter (mío).

P.D:
Mi sistema de trabajo es pyCharm que abre directamente los ficheros que tengo en la instalación de kodi, "c:\users\----\appdata\......" así puedo probar del tirón lo que estoy haciendo.

Ya cuando tengo hecho las modificaciones pues creo manualmente el pull desde web, y copio y pego los ficheros modificados.

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 02 Feb 2016, 18:07
por Cmos
super_berny escribió: Dos plugins, mismo padre
@cmos, si aun no te he convencido es por q tu lo q quieres es tener dos plugins independientes, aunque sean hermanos. :D Para hacer esto yo lo que hice fue:
  • Copiar la carpeta del plugin en kodi/addons y renombrarla como plugin.video.pelisalacarta-test
  • Eliminar todos los ficheros pyo de esa carpeta y subcarpetas.
  • Con notepad++ remplazar en todos los ficheros plugin.video.pelisalacarta por plugin.video.pelisalacarta-test
  • Buscar y remplazar PLUGIN_NAME = "pelisalacarta" por PLUGIN_NAME = "pelisalacarta-test" en todos los archivos py (en mi caso solo fueron en config.py y seriesdanko.py)
  • En addon.xml sustituir: name="pelisalacarta" por name="pelisalacarta-test"
Con esto tendremos un nuevo plugin llamado pelisalacarta-test en el menu de kodi de manera independiente y simultanea al pelisalacarta oficial.
No he probado todo al 100% (favoritos, biblioteca, etc...) pero podrias comenzar por esto y contarnos.
Muchísimas gracias, lo he probado con tu segunda solución porque la primera me parece un poco más "liosa" ya que prefiero tener dos plugins diferenciados y no estar pendiente de cual tengo seleccionado en github, y sin problemas. Siguiendo tus pasos, junto con el de cambiarle el nombre también a la carpeta en userdata/addon_data (para el tema de favoritos y demás) me funciona perfecto :D Luego he añadido el enlace simbólico tal y como explicas para tener el plugin oficial siempre actualizado con github y listo, la verdad que es una solución rápida y muy sencilla, así no tengo que estar temiendo que se sobreescriba algo en mi "versión" con cada nueva actualización, de lujo :mrgreen:

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 12 Feb 2016, 00:50
por jesus
Voy con mi 0,7% :)

Yo lo que hago es un enlace simbólico como dice super_berny, tanto en Linux como en Mac. De Windows me echaron hace tiempo y no me dejan volver.
Se trata de enlazar el contenido de la carpeta kodi/addons/plugin.video.pelisalacarta (origen) con la carpeta ..\python\main-classic (destino)
Como le estoy cogiendo el gusto a SourceTree empiezo a tener más soltura a cambiar de versiones, pero al final todas están en el mismo directorio y el enlace funciona. Todo lo que hago cuelga de una estructura de directorios concreta (nada sofisticado, algo del tipo ./Proyectos/blablabla/) que es donde hago los backups, así que el enlace simbólico es perfecto.

Tengo otros add-ons en diferentes etapas de desarrollo, y la técnica que uso es la misma.

Como editor SublimeText con el estilo por defecto, que es oscuro para no dejarme los ojos. No lo he comprado aún pero pienso hacerlo.
Captura de pantalla 2016-02-12 a las 0.48.22.png
Captura de pantalla 2016-02-12 a las 0.48.22.png (233.18 KiB) Visto 6254 veces

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 14 Feb 2017, 10:19
por criu
Hola,

me he registrado solo(mentira, es un pretexto...) para contestar a este hilo. Anoche estuve investigando como debugar desde mi portatil a la raspberry y como montarme un entorno de trabajo para poder colaborar :)

He leido como lo haceis pero no veo como haceis debug del código, ¿vais haciendo prueba-error?

saludos

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 14 Feb 2017, 15:01
por SeiTaN
He leido como lo haceis pero no veo como haceis debug del código, ¿vais haciendo prueba-error?
En mi caso sí.

Re: ¿Cual es vuestro entorno de trabajo?

Publicado: 15 Feb 2017, 00:54
por super_berny
Aunque actualmente he sustituido mi querido Notepad++ por PyCharm como editor he de reconocer que no lo utilizo para debugear. En su lugar voy añadiendo logger.debug() en le codigo para ir siguiendo trazas y ver el contenido de alguna variable.
No obstante si que es posible hacerlo, una busqueda rapida en google me ha devuelto un par de resulatados q tal vez te interesen:

http://kodi.wiki/view/HOW-TO:Debug_Pyth ... th_Eclipse

http://ddurdle.blogspot.com.es/2014/03/ ... s.html?m=1