MetsuOS

Construyendo la plena inclusión a través del videojuego

Objetivo del Curso - Construir MetsuDepManager, un Gestor de Paquetes Práctico, Ético y Personalizable 🟡③

Objetivo del Curso - Construir MetsuDepManager, un Gestor de Paquetes Práctico, Ético y Personalizable

Curso sobre desarrollo de un gestor de paquetes python que use poetry como backend 🟡③

Imagina que estás cansado de que herramientas como pip o Poetry te dejen a merced de dependencias dudosas o entornos que no controlas del todo. Ahí entra este curso de Metsuke: no es solo teoría, sino un camino directo para que termines con MetsuDepManager en tus manos, un gestor de paquetes Python que usa Poetry como motor pero añade capas de sentido común y protección real. Al final, tendrás algo que funciona de verdad en proyectos serios, especialmente si trabajas en MetsuOS, ese sistema operativo que apuesta por la inclusión a través de videojuegos. Es como pasar de un coche básico a uno con frenos de emergencia y GPS ético: seguro, adaptable y listo para lo que venga.

¿Por qué MetsuDepManager destaca en la práctica?

Este gestor no reinventa la rueda; envuelve Poetry de forma lista para usar, aprovechando sus fortalezas (como el Core para resolver dependencias o el Installer para montarlo todo sin dramas). Pero lo que lo hace especial es cómo se adapta a la vida real:
- Comandos que resuelven problemas reales: Además de los clásicos como init o add, incluye audit para cazar vulnerabilidades al vuelo, policy para aplicar reglas éticas (nada de paquetes con sorpresas ocultas) o verify-sbom para chequear el "inventario" de software en formatos estándar como CycloneDX.
- Ética en cada paso: Un motor de políticas que vigila todo: filtra licencias raras, bloquea telemetría no deseada y chequea vulnerabilidades con herramientas como Safety u OSV. Es el guardián que asegura que tu código respete principios de desarrollo responsable, ideal para proyectos inclusivos donde la transparencia no es opcional.
- Configuración a tu medida: Olvídate de complicaciones; todo se define en un simple metsudep.toml o YAML. Puedes firmar excepciones con cripto, simular instalaciones en modo "prueba" o adaptarlo a entornos sin red. Perfecto para cumplir con RGPD o NIS2 sin sudar.

Se basa en PEPs sólidas (como la 517 para builds repetibles o la 621 para metadatos), y el curso te obliga a probarlo todo: tests con pytest al 95%, tipado con mypy y CI en GitHub Actions. Al final, no es solo código; es un hábito de desarrollo limpio.

Estructura del Curso: De la Idea al Proyecto Listo

El curso te lleva de la mano, módulo a módulo, para que construyas MetsuDepManager sin atascos:
1. Por qué hacerlo: Ves las limitaciones de Poetry en mundos reales (regulaciones, educación, seguridad) y por qué un wrapper propio salva el día.
2. Bajo el capó de Poetry: Aprendes su API para invocarla de forma segura, con logs y filtros que evitan sorpresas.
3. Diseño con cabeza: Armas la arquitectura (CLI con Typer y Rich, plugins fáciles) y configuras el pyproject.toml base.
4. El núcleo en acción: Implementas el wrapper, integras auditorías y lo preparas para offline o sandbox.
5. Pulido y pruebas: Añades SBOM, export a requirements.txt y mocks para tests en entornos aislados.
6. Al mundo: Publicas en PyPI, revisas con checklists y piensas en extras como una interfaz web.

Terminas con un proyecto open-source que puedes forkear, auditar y escalar. Es hands-on puro: de cero a un gestor que usas en tu curro o hobby.

Recursos Clave del Curso (para Meterle Mano)

Estos enlaces son el pan de cada día en el curso; úsalos para profundizar mientras codificas MetsuDepManager:

  1. Documentación oficial de Poetry 🟡③🌐 .- Documentación oficial de Poetry, herramienta para gestión de dependencias y empaquetado en Python, cubriendo introducción, instalación (pipx, oficial, manual), configuración, comandos básicos y avanzados para proyectos reproducibles en Python 3.9+.
  2. PEP 517: A Build-System Abstraction for Python 🟡③🌐 .- PEP 517: Formato independiente de sistemas de build para árboles de fuentes en Python, publicada el 30 de septiembre de 2015, que define hooks y metadatos para builds reproducibles.
  3. PEP 518: Specifying Dependencies for Multiple Targets 🟡③🌐 .- PEP 518: Especificación de dependencias mínimas para sistemas de build en proyectos Python, creada el 10 de mayo de 2016 y en estado Final, para manejar requires en pyproject.toml.
  4. PEP 621: Project Metadata for Dynamic Access 🟡③🌐 .- PEP 621: Almacenamiento de metadatos de proyectos en pyproject.toml para acceso dinámico, creada el 22 de junio de 2020 y en estado Final, cubriendo campos como name, version y dependencies.
  5. Safety (pyup.io) 🟡③🌐 .- Repositorio de Safety, herramienta CLI para verificar dependencias Python contra vulnerabilidades conocidas en bases como PyPI y Snyk, sugiriendo remediaciones y soportando requirements.txt y lock files.
  6. OSV: Open Source Vulnerabilities 🟡③🌐 .- OSV (Open Source Vulnerabilities), base de datos distribuida de vulnerabilidades OSS en ecosistemas como PyPI, con API para consultas por versión o commit, y herramientas como OSV-Scanner para SBOM y contenedores.
  7. CycloneDX: SBOM Standard 🟡③🌐 .- Sitio oficial de CycloneDX, estándar OWASP para BOM en cadena de suministro de software, incluyendo SBOM, SaaSBOM, VEX y más, para mitigación de riesgos cibernéticos.
  8. SPDX: Software Package Data Exchange 🟡③🌐 .- Sitio de SPDX, estándar ISO/IEC 5962:2021 para SBOM en software, AI y datos, con perfiles para riesgos de seguridad, licencias y herramientas para generación y validación.
  9. Typer: CLI con Python 🟡③🌐 .- Documentación de Typer, biblioteca Python para CLIs basadas en type hints, con autocompletado, validación automática y soporte para subcomandos, ideal para interfaces intuitivas.
  10. Rich: Terminal Formatting 🟡③🌐 .- Repositorio de Rich, biblioteca Python para texto enriquecido en terminales, con soporte para colores, tablas, progreso, sintaxis y markdown, compatible con Python 3.8+ en múltiples plataformas.

Si te animas a acompañarnos, sales con un tool que no solo resuelve problemas, sino que te hace mejor dev. ¿Quieres un snippet del motor de políticas o detalles de un módulo? Dime.

Referencias bibliográficas que apoyan la creación de un gestor propio como MetsuDepManager

  1. CNCF TAG Security (2023). Software Supply Chain Best Practices v2. 🟡③🌐 .- Documento blanco que moderniza prácticas de seguridad en cadenas de suministro, con recomendaciones para auditorías regulares, manejo de datos de auditoría, VEX, verificación criptográfica y actualizaciones de ataques/herramientas, organizado por etapas (código fuente, materiales, builds, artefactos, despliegues) para reducir impactos de ataques, incluyendo referencias a PyPI y gestores de dependencias en Python.
  2. European Commission (2024). Regulation (EU) 2024/2847 on horizontal cybersecurity requirements for products with digital elements (Cyber Resilience Act). 🟡③🌐 .- Reglamento que establece requisitos horizontales de ciberseguridad para productos con elementos digitales, exigiendo diseño seguro por defecto, manejo de vulnerabilidades, integridad en la cadena de suministro, SBOM machine-readable en documentación técnica, due diligence en componentes de terceros (incluyendo FOSS), actualizaciones automáticas gratuitas y notificación de incidentes en 24h, con soporte para herramientas custom en verificación y certificación.
  3. Endor Labs (2024). Dependency Management Report. 🟡③🌐 .- Informe que analiza tendencias en gestión de dependencias OSS, destacando que menos del 9.5% de vulnerabilidades son explotables a nivel función, un 27% de organizaciones tienen un footprint significativo de dependencias fantasma (con >56% de vulnerabilidades reportadas en ellas), retrasos medianos de 25 días en publicación de parches y riesgos de breaking changes en actualizaciones (95% en upgrades de versión), justificando análisis de reachability y priorización ética para mitigación.

Referencias que refutan o matizan la necesidad de un gestor propio

  1. Python Packaging Authority (PyPA) (2023). Installing packages using pip and virtual environments. 🟡③🌐 .- Guía oficial de PyPA que detalla la instalación de paquetes con pip en entornos virtuales creados con venv, incluyendo creación/activación de entornos, actualización de pip, instalación de paquetes (versiones, extras, desde fuente o Git), uso de requirements.txt y export con pip freeze, enfatizando aislamiento y gestión de dependencias como enfoque estándar.
  2. Poetry (2024). Announcing Poetry 1.8.0. 🟡③🌐 .- Anuncio de Poetry 1.8.0 con soporte PEP 658 para metadata sin descargar wheels completos, lazy-wheel para requests HTTP parciales, validación de archivos con hashes adicionales en instalación y modo no-paquete para gestión pura de dependencias, mejorando velocidad y seguridad sin mención a mirrors privados o export con PEP 658.
  3. Chainguard (2023). Introducing Wolfi: The first Linux (un)distro designed for securing the software supply chain. 🟡③🌐 .- Introducción a Wolfi, una distribución Linux para contenedores que construye paquetes desde fuente para fixes de vulnerabilidades y minimiza dependencias, con imágenes firmadas, SBOMs en build-time y reconstrucción diaria en lugar de updates, reduciendo superficies de ataque y obviando gestores custom mediante imágenes distroless pre-construidas y auditables.

One More Thing

Un escenario de retrocomputación del siglo 24

¡Desbloquea el poder de MetsuOS y descubre que la privacidad y la seguridad son la clave para desencadenar tu verdadero potencial en línea!

Contenido registrado en Safe Creative

Logo Safe Creative
¡Usa el código de promocional 7ZYM4Z y ahorrate unos eurillos en tu suscripcion de Safe Creative!

MetsuOS Needs You!

Apoyanos en este proyecto difundiendolo en tus redes, o mejor, haznos una donación a la cuenta paypal para poder dedicar más tiempo y recursos a el. No olvides comentarnos que parete te interesa más junto con tu donación.

En este momento, además de mantener los servicios, estoy centrado en crear la siguiente iteración del software que me permite hacer todo esto y creando una biblioteca personal física para poder contrastar contenido.

Sobre el sistema de validez de un contenido en MetsuOS

Empezando a incorporar los niveles de validación de un contenido (también llamada sabiduría o niveles de conocimiento) ⚫🔴 🟡 🟢 🔵⚪ ¿Qué són?

Sobre la categorización de los tipos de conocimiento

La Metsukeología (de Metsuke vision global y logos conocimiento) es la ciencia que estudia el conocimiento como un conjunto potencial de conocimiento del que podemos obtener, procesar o percibir partes concretas dentro de un marco contextual específico, y cuyo contexto general real está muy por encima de lo que somos capaces, como especie, de percibir, procesar e integrar de forma completa (definición en progreso).

La Metsucología (de Metsu aniquilación - en este contexto en forma de colapso - , logos conocimiento) es la ciencia que estudia como extraemos verdades percibidas - colapsadas - como conocimiento desde nuestra perspectiva real (tanto epistemológico como gnoseológico) al tomar una parte específica del conocimiento metsukeológico potencial enmarcado en un contexto concreto, obligando a colapsar el conocimiento potencial en conocimiento específico (definición en progreso).

Mas sobre el contexto

DISCLAIMER: Mi consideración de anticientífico respecto al consenso científico es una hipotesis de trabajo propia, que supone que toda asignación de validez, incluso aquella derivada de la conclusión por acumulación de evidencia NO debe ser supeditada a debate, ni acuerdo, debe ser algo probabilistico sin intervención del ego humano. Podría estar equivocado y, en este punto, es donde se aplicaría entonces ese mismo consenso que ahora considero no valido (incluso dañino)

Existen indicadores para algunas cuestiones adicoinales como los siguientes:

Cuando hablamos de un contenido que incluye un texto que hace referencia a otro.

También aplicaremos el Sistema de fiabilidad de fuentes y credibilidad de contenidos de la OTAN 🔴②, este sistema incluye una valoración de la fiabilidad de la fuente de A a F (siendo A la de mayor fiabilidad) y una varloración de credibilidad del contenido de 1 a 6 (siendo 1 la mayor credibilidad).

En MetsuOS la agregaremos al final uniendo amos valores como si fuera una coordenada. Por ejemplo: ⚫①-D4 o 🟡③-B2. Esto ayudarña a contextualizar la información sobre la solidez del conocimiento al que se hace referencia en cada momento.

Hay que tener en cuenta que, cuando hay elementos subjetivos o parcialmente subjetivos, el punto de referencia seré yo mismo. Quizá más adelante pueda objetivizar esto más (seria lo deseable), pero en tanto no tenga herramientas que me lo permitan, debo ceñirme al principio de honestidar intelectual, y esperar que mis sesgos dañen lo menos posible la información (en parte este es el nudo gordiano que pretendo resolver, y por ello es dificil resolverlo a priori).

Así de forma resumida, podríamos decir que esta definición es nivel 🔴② (Rojo2 xD) ¿Crees que me dejo algo? Si es así por favor ayudame a mejorarlo contactándome a través de X (Twitter) en mi cuenta, @metsuke 🌐

Consulta la versión completa de la descripcion en ⚫🔴🟡🟢🔵⚪ (🔴②) Un poco más de detalle