Repository navigation
v0.1.0a6
Pre-release
Pre-release
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 --libraryrechaza cualquier.pyfuera del árbol de fuentes.pymcu install --verifycompila los módulos que la librería declara en vez de su ejemplo, así que no necesita más que el wheel.pymcu index buildmide 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-sdkvuelve a publicarse. Su superficie había crecido (_confirm_download) sin subir de versión, así que el paquete del repo y el0.1.0a4de 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.