Skip to content

v0.1.0a6

Pre-release
Pre-release

Choose a tag to compare

@begeistert begeistert released this 17 Aug 06:49
· 2306 commits to main since this release
9acf9e9

Librerías de terceros

El compilador ya no ve el paquete entero de una librería, sólo su directorio de fuentes ([library] sources, por defecto mcu/). Antes cualquier cosa que un wheel llevara quedaba expuesta: los ejemplos de una librería eran importables desde el firmware de cualquiera (from examples.basic.src.main import ... compilaba y enlazaba), y dos librerías con examples/ se sombreaban entre sí sin diagnóstico.

  • El paquete de una librería es ahora un paquete Python corriente, con __init__.py. Ejemplos, tests y docs viven en la raíz de la distribución y viajan en el sdist, no en el wheel.
  • pymcu lint --library rechaza cualquier .py fuera del árbol de fuentes.
  • pymcu install --verify compila los módulos que la librería declara en vez de su ejemplo, así que no necesita más que el wheel.
  • pymcu index build mide los ejemplos desde el sdist, una descarga por librería.
  • Una librería con el manifiesto roto ya no aborta el build de proyectos que no la usan: se avisa y se la deja fuera del include path.

Las librerías publicadas necesitan el layout nuevo. pymcu-lib-neopixel sale con 0.2.0 por este motivo.

Correcciones

  • WS2812 en PB0. Enviaba todos los bits como cero (312 ns para un uno, cuando hacen falta ~800), así que una tira conectada a ese pin se quedaba apagada mientras el build reportaba todo correcto. Los otros once pines se corrigieron antes; a éste lo salvó un comentario que despistó al parche.
  • Autodetección de puerto. La regla estaba escrita dos veces y flash() ejecutaba la copia que los tests no cubrían.
  • pymcu-sdk vuelve a publicarse. Su superficie había crecido (_confirm_download) sin subir de versión, así que el paquete del repo y el 0.1.0a4 de PyPI eran distintos bajo el mismo número. Lo publicado no lo usaba, pero un wheel construido desde el repo sobre ese SDK sí fallaba; el pin sube para que esa combinación no pueda resolverse.