[icm] Version 0.5 de icm: instalación de colecciones

125 views
Skip to first unread message

Obijuan

unread,
Jun 28, 2024, 5:11:25 AM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
La herramienta icm [1]  (Icestudio Collection manager) es una herramienta en línea de comandos para gestionar colecciones. Inicialmente se usaba para crear la estructura de directorios de una colección, y actualizar tanto el readme como las traducciones

La estoy ampliando para poder instalar y desinstalar las colecciones de manera sencilla en la línea de comandos. Las colecciones en Icestudio han crecido mucho, y resulta muy engorrosa su instalación. Con esta herramienta quiero hacerlo más sencillo, mientras charli trabaja en la implementación directamente en Icestudio

De momento sólo lo he probado en Linux (la uso en las máquinas Linux de la Escuela de Ingeniería de Fuenlabrada en la URJC, para instalar las coleciones para la asignatura de Mecatrónica). Me gustaría que la probáseis en Windows y Mac, para  arreglar los bugs

Se instala como cualquier otro paquete python, con pip:

Linux:  
  sudo pip3 install icm

Windows:  
  pip install icm

Probad primero el comando "icm info", que muestra información sobre el sistema y detecta las carpetas de Icestudio. En mi caso sale esto:

icm-01.png

Si salen los 3 checks verdes de la izquierda, significa que la herramienta ha detectado los directorios importantes. Las colecciones se instalan en el tercero. En mi caso están en /home/obijuan/.icestudio/collections

Con el comando "icm ls" se muestran todas las colecciones que están actualmente instaladas:

icm-02.png

Con el comando "icm install" se puede instalar una colección determinada, varias o todas las estables. Por ejemplo, para instalar todas las colecciones estables actuales ejecutamos "icm install -a"

icm-03.png

En mi caso se han instalado la colección iceK (version 0.1.4), que no estaba instalada. Se ha descargado de github y se ha instalado. El resto de colecciones como ya estaban instaladas, no se han bajado. Hay una que ha dado error: iceGates. No se puede descargar porque hay un bug en el repositorio (que tengo que solucionar)

Con el comando "icm lsgit" se muestran todas las colecciones que hay disponibles, con sus últimas versiones:

icm-04.png

En verde se muestran las colecciones estables. En azul las que están todavía en desarrollo (y por tanto la interfaz de sus bloques puede cambiar). En rojo salen las colecciones a las que no se puede acceder todavía, porque hay que hacer modificaciones en su respectivo repo (La rama principal debe ser main, en vez de master. Hay que modificarlo)

Hay más comandos, que iré documentando

Si lo podéis probar sería genial, para ir detectando bugs y solucionando problemas
Yo mientras voy a ir solucionando el problema de las colecciones que salen en rojo

Saludos, Obijuan

charli va

unread,
Jun 28, 2024, 5:17:01 AM (5 days ago) Jun 28
to fpga-wars-explora...@googlegroups.com
¡Que bueno Obijuan! esto no es sustitutivo de lo que yo estoy haciendo es totalmente convivible y de echo intentaré aprovechar al máximo lo que estás haciendo y me parece un grandísimo avance.

Cuenta con mis pruebas a lo largo del día, luego te cuento como han ido.

Un abrazo!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/6686a4dc-98be-488d-b1dc-9751d2879bf0n%40googlegroups.com.

Juan Gonzalez Gomez

unread,
Jun 28, 2024, 5:56:52 AM (5 days ago) Jun 28
to fpga-wars-explora...@googlegroups.com
La colección iceGates ya está arreglada. Ya no aparece en rojo, y se puede instalar con normalidad:

icm-05.png

He borrado todas las colecciones instaladas, y estoy instalando ahora todas las colecciones estables desde 0:

icm-06.png
Ahora voy a ir solucionado los problemas de las colecciones en desarrollo, para que no aparezcan en rojo en la medida de lo posible

Saludos, Obijuan


Obijuan

unread,
Jun 28, 2024, 7:54:03 AM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre

He solucionado unos bugs. Ya está publicada la versión 0.5.1 (instalable desde pip)

Si ahora ejecutamos el comando "icm lsgit" para ver las colecciones disponibles para instalar, ya sólo aparecen 2 en rojo:

icm-07.png

Las dos colecciones que aparecen en rojo son la icecrystal y la ice-chips-verilog. Yo no lo puedo solucionar porque no tengo permisos de edición de la configuración. Para arreglarlas hay que hacer lo siguiente:

* icecrystal:
  * Renombrar la rama master a main
  * Sacar una release con la version 1.0.0 (que es la version que se indica en el package.json). El nombre de la release tiene que ser "v1.0.0"

* ice-chips-verilog:
  * Reombrar la rama master a main
  * Añadir el fichero package.json con el nombre, versión y descripción de la colección (Yo puedo hace un pull-req)

Con esos cambios esas colecciones ya se podrán ver e instalar desde icm

Saludos, Obijuan


charli va

unread,
Jun 28, 2024, 7:59:25 AM (5 days ago) Jun 28
to fpga-wars-explora...@googlegroups.com
De icecrystal me encargo icechips de quien era?

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Jo mo

unread,
Jun 28, 2024, 11:52:49 AM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
Hola juan,

i hope you and all the guys here are fine ;-) !

i tried to install this 0.5 version of icm on my windows 10 machine, but it is only able to install the version 0.4.9!   see the following prompts:

C:\WINDOWS\system32>pip install icm
Requirement already satisfied: icm in c:\users\j\appdata\local\programs\python\python38\lib\site-packages (0.4.9)

C:\WINDOWS\system32>pip uninstall icm
Found existing installation: icm 0.4.9
Uninstalling icm-0.4.9:
  Would remove:
    c:\users\j\appdata\local\programs\python\python38\lib\site-packages\icm-0.4.9.dist-info\*
    c:\users\j\appdata\local\programs\python\python38\lib\site-packages\icm\*
    c:\users\j\appdata\local\programs\python\python38\scripts\icm.exe
Proceed (Y/n)? y
  Successfully uninstalled icm-0.4.9

C:\WINDOWS\system32>pip install icm
Collecting icm
  Downloading icm-0.4.9-py3-none-any.whl.metadata (2.2 kB)
Downloading icm-0.4.9-py3-none-any.whl (25 kB)
Installing collected packages: icm
Successfully installed icm-0.4.9

C:\WINDOWS\system32>

 have a nice week-end !

charli va

unread,
Jun 28, 2024, 12:24:43 PM (5 days ago) Jun 28
to fpga-wars-explora...@googlegroups.com
Probada en linux y y osx.   

Funcionando todo aparentemente bien! le daré una buena probada el fin de semana y si surge alto os voy contando.

La librería icecrystal ya está preparada en el repo pero icm no la detecta , no he mirado el código de icm  te lo digo por si tengo que hacer algo más o si hay que darla de alta en el icm.

Buen trabajo!

In other way... Joaquim i'm very happy to see you here!

Cheers!



Obijuan

unread,
Jun 28, 2024, 12:31:55 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
Hi Joaquin!

Could you try this command?

pip install -U icm

for unknown reason, pip is not ugrading to the latest version

Jo mo

unread,
Jun 28, 2024, 12:44:12 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
 @ juan: thank for your reply, i tried and...same result:

C:\WINDOWS\system32>pip install -U icm
Requirement already satisfied: icm in c:\users\j\appdata\local\programs\python\python38\lib\site-packages (0.4.9)

C:\WINDOWS\system32>

@Charli: yes, i am like the Halley comet, time to time i am traveling nearby the earth ;-)

Obijuan

unread,
Jun 28, 2024, 1:18:08 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
Hi Joaquim!

I am not sure what is the problem. You system does not want to download and install the latest version

I've checked that the latest version is already online (version 0.5.2)

Let's try to write explicitely the version to install. Please, execute this command:

pip install -U icm==0.5.2

and let me know the output

Thanks for the tests

Jo mo

unread,
Jun 28, 2024, 1:28:32 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
thanks to your command, it seams that i need to update my python version!

c:\Users\J\AppData\Local\Programs\Python\Python38\Lib\site-packages>pip install -U icm==0.5.2
ERROR: Ignored the following versions that require a different python version: 0.5.0 Requires-Python >=3.9; 0.5.2 Requires-Python >=3.9
ERROR: Could not find a version that satisfies the requirement icm==0.5.2 (from versions: 0.1.0, 0.2.0, 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.4.8, 0.4.9)
ERROR: No matching distribution found for icm==0.5.2

c:\Users\J\AppData\Local\Programs\Python\Python38\Lib\site-packages>

So i will do it and let you know !

Obijuan

unread,
Jun 28, 2024, 1:38:00 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
Hi joaquin!

ok, now I understand the problem. I forgot to mention that you need to have python 3.9 or higher to use icm (previous icm version needed python 3.8). That was the reason why it did not wanted to install icm 0.5.2

Thanks for the tests

Obijuan

unread,
Jun 28, 2024, 1:45:50 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
OK, la icecrystal ya se detecta

De momento las colecciones tienen que estar en la organización FPGAWars. Las dos que están fuera (icecrystal y ice-chips-verilog las he forkeado a FPGAwars, y he hecho las releases desde ahí, para probar)

icm-08.png

La ice-chips-verilog todavía no la he configurado

Saludos, Obijuan

Obijuan

unread,
Jun 28, 2024, 1:59:47 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
OK. Ya están todos los repos de las colecciones configuradas, y se detectan desde icm:

icm-09.png

Saludos, Obijuan

charli va

unread,
Jun 28, 2024, 2:16:30 PM (5 days ago) Jun 28
to fpga-wars-explora...@googlegroups.com
Fantástico! de echo tendría todo el sentido del mundo que inicialmente todos los paquetes descargables estuvieran en FPGAWars aunque fueran forks de proyectos externos. Así es como funciona Debian o cualquier distribución de Linux (las distribuciones empaquetan y supervisan el software de terceros que les interesa).

No hay que olvidar que vivimos en tiempos complejos y complicados en los que en un .ice podrían meter un payload de malware , yo en este sentido pienso que todo lo que sea distribución de paquetes debería de llevar una supervisión por nuestra parte.

En el sistema que estoy montando para icestudio esta es la parte más compleja y que me está llevando mucho tiempo, distribuir paquetes a gran escala es una gran responsabilidad.

El caso de icecrystal, está fuera porque lo lancé antes de entrar a FPGAwars y luego lanzaste iceLCD y me pareció redundante meterlo en FPGAwars pero bueno como son dos filosofías diferentes pueden convivir sin problema.

Si veis mejor meterlo en FPGAwars por mi sin problema y si preferís dejar iceLCD en FPGAwars como repo más oficial de LCDs y iceCrystal fuera pues también sin problema, yo creo que ahora mismo es muy importante consolidar los canales y poco a poco ir ganando en claridad.



--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Democrito

unread,
Jun 28, 2024, 6:20:31 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
En Windows no funciona y creo que lo tengo todo actualizado. Adjunto imágenes.
mintty.2024-06-29_00-15-29.png
mintty.2024-06-29_00-17-23.png
mintty.2024-06-29_00-10-41.png
mintty.2024-06-29_00-11-18.png
mintty.2024-06-29_00-19-14.png
mintty.2024-06-29_00-12-09.png

Democrito

unread,
Jun 28, 2024, 6:25:45 PM (5 days ago) Jun 28
to FPGAwars: explorando el lado libre
Aunque las pruebas las he hecho en Git, también lo hice en la terminal del propio Windows y salen los mismos mensajes. He puesto imágenes de Git porque permitía guardar directamente las imágenes del terminal sin tener que recortar nada.

Obijuan

unread,
Jun 29, 2024, 2:05:21 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
Muchas gracias por las pruebas Demócrito! Gracias a ellas he detectado un bug: falta por incluir las dependencias en el paquete de icm

Lo voy a revisar, incluir las dependencias que faltan y actualizar a la versión 0.5.3

En mi Linux esas dependencias ya están instaladas, por eso funciona, pero en un sistema que se instala desde 0 peta

Gracias

Saludos, Obijuan

Juan Gonzalez Gomez

unread,
Jun 29, 2024, 2:45:01 AM (4 days ago) Jun 29
to fpga-wars-explora...@googlegroups.com
Ya he subido la versión icm 0.5.3 con las dependencias añadidas

Para probarla vuelve a instalarla con este comando:

pip install -U icm

(El parámetro -U es para que haga un upgrade e instale la última versión)

Saludos, Obijuan

El sáb, 29 jun 2024 a las 0:25, Democrito (<spo...@gmail.com>) escribió:
Aunque las pruebas las he hecho en Git, también lo hice en la terminal del propio Windows y salen los mismos mensajes. He puesto imágenes de Git porque permitía guardar directamente las imágenes del terminal sin tener que recortar nada.

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Democrito

unread,
Jun 29, 2024, 4:15:24 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
Parece ser que ya funciona. La primera vez que hice "pip install -U icm" me salía varios errores sin embargo al final decía algo así como que todo se había instalado satisfactoriamente, y al ejecutar este comando por segunda vez todo parecía estar bien. No he podido guardar este pantallazo.

He probado todos los comandos expuestos en el primer post y han funcionado bien y sin errores. Adjunto una captura de pantalla.

Cualquier cosa que queráis que pruebe sólo me lo tenéis que decir.

Saludos y muchas gracias!

icm list.png

Democrito

unread,
Jun 29, 2024, 4:21:27 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
adjunto pantallazo de la versión de icm.

mintty.2024-06-29_10-20-29.png

Democrito

unread,
Jun 29, 2024, 4:39:08 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
Ahora he abierto Icestudio. Le di al icono de la pieza de Lego y me salía lo que ya tenía instalado con anterioridad (sólo dos), la de por defecto y la vieja colección Jedi. Por experiencias anteriores sabía que tenía que dejar un rato para cargar colecciones recién instaladas, y pasado un tiempo (no medido), aparecen las colecciones instaladas desde icm.

icestudio collection.png

Sé que la vieja colección Jedi le falta corregir cosas (entradas al aire, especialmente en los resets y la asignación de salida de los registros si no los tuviera), 

Democrito

unread,
Jun 29, 2024, 4:46:06 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
uhmm.... creo que debería salir más colecciones de las que se ve en el post anterior...

charli va

unread,
Jun 29, 2024, 4:50:02 AM (4 days ago) Jun 29
to fpga-wars-explora...@googlegroups.com
Gracias por esta última prueba con Icestudio Demócrito esta semana os subiré una nueva wip que ando cerrando con algunos cambios importantes en el gestor de colecciones (el icono de lego), sobre todo a nivel usuario (barras de progreso cuando está indexando y cosas así), ahora como indicas el refresco es algo "confuso".

Muchas gracias!

El sáb, 29 jun 2024 a las 10:46, Democrito (<spo...@gmail.com>) escribió:
uhmm.... creo que debería salir más colecciones de las que se ve en el post anterior...

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Obijuan

unread,
Jun 29, 2024, 6:05:15 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre

¡Gracias Demócrito!

Parece que ya va funcionando

Con el comando "icm install -a" sólo se instalan las colecciones estables, que son las que te aparecen en el pantallazo (además de la default y la Jedi que ya las tenias). Por tanto, el pantallazo que adjuntas es correcto

El resto de colecciones se instalan indicando explícitamente su nombre. Por ejemplo si quieres instalar las colecciones de aritmética y contadores tienes que escribir:

"icm install iceArith iceCounter"

La última versión de la colección Jedi (1.12.0) ya está arreglada y los errores que mencionas solucionados. Durante la release de la 0.12 fui colección por colección comprobando todos los ejemplos y bloques, y eliminando todos los errores de verificación.

La colección Jedi (última version) la instalas fácilmente así:

"icm install Collection-Jedi"

La anterior no te la borra (icm permite que haya varias versiones instaladas). Bien desde Icestudio o con el comando "icm ls" puedes ver las que tienes instaladas

Si quieres borrar la versión antigua de la Jedi ejecuta este comando:

"icm rm Collection-Jedi-1.7.0"

Democrito

unread,
Jun 29, 2024, 6:16:46 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
Perfecto! Voy comprendiendo todo lo que comentáis.

Muchísimas gracias por estas mejoras.

El nuevo Icestudio, como un cohete, despega en 3, 2, 1, 0!

Jo mo

unread,
Jun 29, 2024, 7:02:54 AM (4 days ago) Jun 29
to FPGAwars: explorando el lado libre
Hello guys 
On mi side i managed to install python 3.12

Then i had a problem after installing icm , it was installing it in a folder that was not in the python path, so icm was not "findable" by the system

Capture.JPG
i solved it by using a virtual environment :

python -m venv myenv
myenv\Scripts\activate.bat


Capture2.JPG

Then i could successfully run icm on windows (as Democrito did )

and in my icestudio i have :

icestudio_F4QdIStMfN.png
comments:
- Thank Juan for adding the version of the stable collections, even it look a bit more information on the collection manager, it is very useful to know if we are up to dated !
Maybe if one day we manage to to an automatic update of all the collections we can hide this collection version to the user (or maybe show it only if the user keeps his mouse pointer for some time above the collection name (a tool tip as we did for the verify,build, upload buttons )

- an idea maybe for icm will be to have an "icm install -alldev" function for installing also all the dev collections at once, to be thinked ?

So know i have to think how to clean/suppress the old double collections which appears (eg iceGates and iceGates-0.3.1)!  Probably because i am using in my icestudio an "edit/preferences/external collection" folder
Thank a lot juan for your work on this update!

Have a nice Saturday guys

Tim Rudy

unread,
Jul 1, 2024, 12:42:49 AM (2 days ago) Jul 1
to FPGAwars: explorando el lado libre
Hi guys, tried it on Windows.
With Icestudio 0.12-rc1, by default after it was installed no "collections" folder was created. This shows in "icm info":
❌ Collections: C:\Users\tim\.icestudio\collections

As a result, when I try to pull any collection:
$ icm install Collection-Jedi
Installing collection Collection-Jedi-1.12.0
Traceback ...
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\tim\\.icestudio\\collections\\v1.12.0.zip'

I manually created "collections" folder; then the installs work.
Is there a step when the directory is created on Linux, and may that step be failing or missing on Windows?
  - Tim

Democrito

unread,
Jul 1, 2024, 4:00:31 AM (2 days ago) Jul 1
to FPGAwars: explorando el lado libre
 'C:\\Users\\tim\\.icestudio\\collections\\v1.12.0.zip'

Those double bars look suspicious.

Jo mo

unread,
Jul 2, 2024, 5:26:39 AM (yesterday) Jul 2
to FPGAwars: explorando el lado libre
Hello guys,

I did not had the same problem has Tim (these time) but looking at the properties of my collection folder, i see that the folder was already created more than one year ago in january 2023!
Capture.JPG

so as tim wrote, maybe we introduced a little bug for the windows system (not present on linux ??)

Other remark, on windows as i wrote in my last post, i have add problems with the install of icm trying to write to "protected/read only" places!
and on my picture above we also see that the collection folder is also on "read only"mode .

Trying to remove manually the "read only" for these locked folders seams almost impossible! 
when we do it by unchecking the read only, it locks working but then when we reload the properties windows, we see that it is locked again!

has i wrote before, for me the only way icm install could write to those locked folders was by using a virtual environment :

python -m venv myenv
myenv\Scripts\activate.bat


@democrito: those double backslash seams to be normal python messaging/coding stuff !

have a nice day

Democrito

unread,
Jul 2, 2024, 10:00:10 AM (yesterday) Jul 2
to FPGAwars: explorando el lado libre
Oops! OK Joaquim!
Reply all
Reply to author
Forward
0 new messages