MetsuOS

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

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

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

Módulo 0 – Introducción y motivación

¿De verdad hace falta otro gestor de paquetes cuando ya existe Poetry?

0.1 ¿Realmente es necesario?

En el mundo del desarrollo con Python, donde herramientas como pip, Poetry o Conda han evolucionado hasta convertirse en aliados imprescindibles, es normal que surja esta duda: ¿por qué demonios íbamos a crear un nuevo gestor de dependencias si ya tenemos Poetry, que parece resolverlo todo con elegancia? Poetry, que vio la luz en 2018 y sigue puliéndose en 2025, es una joya: resuelve conflictos de dependencias con astucia, genera entornos reproducibles y se alinea con los estándares modernos como PEP 517 y 518.

Pero cuando entramos en terrenos específicos como MetsuOS —ese sistema operativo modular, adaptable a cualquier plataforma y centrado en la inclusión ética a través de videojuegos, construido sobre la biblioteca mosLib—, la cosa cambia. Aquí, la respuesta no es un sí rotundo ni un no tajante, sino un "depende... pero en este caso, sí". Vamos a desgranarlo con calma, reconociendo lo que Poetry hace de maravilla y por qué, para MetsuOS, necesitamos algo como MetsuDepManager: un gestor que toma a Poetry como base sólida, pero lo envuelve con capas de control ético y auditoría que van más allá.

Continuar leyendo en ... ¿De verdad hace falta otro gestor de paquetes cuando ya existe Poetry? 🟡③

Casos reales en los que tiene sentido crear uno propio - empresas con políticas estrictas, entornos educativos, auditorías de seguridad, cumplimiento normativo (RGPD, NIS2, etc.) y air-gapped environments

0.2. Casos reales en los que tiene sentido crear uno propio: empresas con políticas estrictas, entornos educativos, auditorías de seguridad, cumplimiento normativo (RGPD, NIS2, etc.) y air-gapped environments.

Aunque Poetry es una herramienta excelente y muy madura, en ciertos entornos las organizaciones no pueden necesitar un nivel de control, auditoría y cumplimiento que va más allá de lo que ofrece de forma nativa.

Crear un gestor de paquetes propio basado en Poetry no es una excentricidad técnica, sino una necesidad real en empresas altamente reguladas, instituciones educativas masivas, auditorías estrictas, entornos sujetos a normativas europeas como NIS2 o DORA y, sobre todo, sistemas air-gapped donde cualquier conexión accidental a PyPI está terminantemente prohibida.

Los casos que veremos a continuación no son hipotéticos: son escenarios que ya se dan hoy en bancos del IBEX 35, centrales nucleares, ministerios de defensa y grandes consultoras durante sus

Continuar leyendo en ... Casos reales en los que tiene sentido crear uno propio empresas con políticas estrictas, entornos educativos, auditorías de seguridad, cumplimiento normativo (RGPD, NIS2, etc.) y air gapped environments 🟡③

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

0.3. Objetivo del curso: terminar con un gestor funcional, ético y altamente configurable llamado MetsuDepManager

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.

Continuar leyendo en ... Objetivo del Curso Construir MetsuDepManager, un Gestor de Paquetes Práctico, Ético y Personalizable 🟡③

Requisitos Previos para el Curso de MetsuDepManager - Prepárate sin Complicaciones

0.4. Requisitos Previos para el Curso de MetsuDepManager - Prepárate sin Complicaciones

Python que pone la ética y la seguridad en el centro, usando Poetry como base—, lo primero es asegurarte de que tu setup no te frene. No te pido que seas un experto, solo que tengas lo básico para no atascarte en los primeros pasos. Piensa en esto como el calentamiento antes de una buena partida: rápido, efectivo y sin sorpresas. Vamos a repasarlo de forma sencilla, con trucos para que lo tengas listo en media hora.

Continua leyendo en ... Requisitos Previos para el Curso de MetsuDepManager Prepárate sin Complicaciones 🟡③

MetsuDepManager - Visión general del proyecto

0.5. Roadmap del curso y visión general del proyecto final

MetsuDepManager es un gestor de dependencias ético, seguro, accesible y listo para producción para Python, diseñado específicamente para entornos regulados como empresas con políticas de seguridad estrictas (banca, defensa, sanidad, administraciones públicas), entornos educativos obligados por normativas como la LOMLOE y el Real Decreto 1112/2018 de accesibilidad, sistemas air-gapped o con conexión restringida (industria, investigación clasificada), y proyectos sujetos a regulaciones como RGPD, NIS2, ENS Alto o Ciberseguridad Nacional.

Como wrapper ligero sobre Poetry, que actúa como su motor principal, integra un motor de políticas avanzado que asegura cumplimiento normativo (vulnerabilidades, licencias, orígenes geográficos) sin comprometer la velocidad ni la usabilidad. Su enfoque offline-first y su soporte para SBOM (Software Bill of Materials) lo convierten en una herramienta indispensable para mitigar riesgos en la cadena de suministro de software, alineándose con regulaciones como NIS2, ENS Alto, DORA e ITAR/EAR.

Continuar leyendo en ... MetsuDepManager Visión general del proyecto 🟡③

--- multi-column-end<

Módulo 1 – Entendiendo cómo funciona Poetry por dentro

Arquitectura Interna de un Gestor de Paquetes Python que Usa Poetry como Backend

1.1. Arquitectura interna: Core, Solver, Locker, Installer y Builder

Crear un gestor de paquetes Python desde cero que delegue la mayor parte del trabajo pesado a Poetry (específicamente a poetry-core) es una estrategia muy potente para aprender cómo funcionan internamente herramientas modernas como Poetry, uv, pipenv o pdm.

En lugar de reinventar la rueda, nos apoyamos en componentes ya probados y maduros de Poetry, pero los orquestamos con nuestra propia capa de alto nivel. Esta arquitectura nos permite tener un gestor ligero, extensible y perfectamente reproducible, ideal tanto para proyectos educativos como para entornos empresariales con requisitos muy específicos.

Continuar leyendo en ... Arquitectura Interna de un Gestor de Paquetes Python que Usa Poetry como Backend 🟡③

Elegimos exactamente qué partes de Poetry vamos a usar en MetsuDepManager

1.2. Diferencias prácticas entre poetry, poetry-core y los plugins

En este punto ya sabemos que no vamos a reinventar la rueda. Vamos a reutilizar lo mejor de Poetry, pero con control total: sin telemetría, con timeouts, con auditoría y funcionando en entornos air-gapped.

La decisión práctica que tomamos hoy (y que vamos a codificar ya mismo) es ...

Continuar leyendo en ... Elegimos exactamente qué partes de Poetry vamos a usar en MetsuDepManager 🟡③

Cómo Poetry implementa los estándares PEP 517, 518, 621 y 660

1.3. Cómo Poetry implementa los estándares PEP 517, 518, 621 y 660

Poetry no solo actúa como gestor de dependencias, sino también como backend de construcción que se alinea con los estándares modernos del ecosistema Python. Estos estándares, definidos en las PEPs (Python Enhancement Proposals) 517, 518, 621 y 660, permiten builds reproducibles, configuraciones declarativas y flujos de desarrollo más fluidos.

En esta lección, desglosamos de manera clara y práctica cómo Poetry los pone en marcha, con ejemplos reales que puedes probar en tu propio proyecto. El enfoque del curso, resalta cómo estos PEPs convierten a Poetry en un aliado ideal para extensiones como MetsuDepManager, donde la auditoría y la reproducibilidad son clave.

Continuar leyendo en ... Cómo Poetry implementa los estándares PEP 517, 518, 621 y 660 🟡③

El pyproject.toml - todos los campos (incluso los menos conocidos)

1.4. El pyproject.toml: todos los campos (incluso los menos conocidos)

OJO WIP

Si estás empezando un proyecto en Python y quieres usar Poetry como gestor de dependencias, no hace falta complicarse con comandos manuales uno a uno. En su lugar, he preparado un script sencillo en Python, llamado inicializar.py, que automatiza todo el proceso.

Este script parte de un entorno Python 3.11 o superior con pip instalado (que viene de serie con Python). Primero, comprueba si Poetry está disponible; si no, lo instala automáticamente mediante pip. Luego, crea el proyecto en el directorio actual con poetry new ., genera la estructura básica y un fichero pyproject.toml preconfigurado. Por último, instala las dependencias iniciales y verifica que todo esté en orden.

Continuar leyendo en ... El pyproject.toml todos los campos (incluso los menos conocidos) 🟡③

1.5. El poetry.lock: estructura TOML y cómo lo genera el solver
--- column-end ---
1.6. Llamar a Poetry desde código: subprocess vs API pública
--- column-end ---
1.7. Limitaciones actuales de la API pública (estado en 2025) y soluciones prácticas
--- column-end ---
--- multi-column-end

Módulo 2 – Diseño de MetsuDepManager

2.1. Principios básicos: transparencia, ética, auditoría y mínimo privilegio
2.2. Arquitectura modular: core, CLI, motor de políticas, plugins y UI opcional
2.3. Elección de herramientas: Typer + Rich, Pydantic v2, structlog
2.4. Sistema de plugins inspirado en Poetry y pipx
2.5. ¿Qué significa exactamente “dependencia ética”? (licencias, telemetría, origen, vulnerabilidades)

Módulo 3 – Preparación del proyecto

3.1. Estructura definitiva de carpetas
3.2. pyproject.toml propio (sí, usamos Poetry para crear un gestor que envuelve a Poetry)
3.3. Herramientas de calidad: pre-commit, ruff, mypy, pytest, coverage
3.4. CI completo con GitHub Actions (tests, lint, release y publicación)
3.5. Primer comando funcional: metsudep --version

Módulo 4 – Wrapper seguro sobre Poetry

4.1. Clase PoetryBackend y ejecución controlada
4.2. Uso seguro de la API interna de Poetry (poetry.console.application)
4.3. Filtrado de salida (ocultar tokens, rutas sensibles)
4.4. Timeouts y límites de recursos
4.5. Modo dry-run global
4.6. Logging estructurado con structlog

Módulo 5 – Motor de políticas éticas (Policy Engine)

5.1. Archivo de configuración metsudep.toml / metsudep.yaml
5.2. Políticas por defecto:
 • Licencias permitidas y prohibidas (SPDX)
 • Bloqueo de paquetes con telemetría conocida
 • Repositorios permitidos
 • Umbral de vulnerabilidades
 • Versiones mínimas de seguridad
5.3. Integración con Safety, OSS Index, OSV y PyPI advisories
5.4. Excepciones firmadas criptográficamente
5.5. Generación automática de SBOM (CycloneDX y SPDX)

Módulo 6 – Interfaz de línea de comandos (CLI)

6.1. Comandos principales: init, add, remove, update, install, lock, build, publish
6.2. Comandos avanzados: audit, policy, sign-exception, verify-sbom
6.3. Tablas bonitas y árboles de dependencias con Rich
6.4. Barras de progreso y spinners en tiempo real
6.5. Autocompletado en bash/zsh/fish

Módulo 7 – Entornos aislados y modo sandbox

7.1. Creación de entornos 100 % herméticos
7.2. Compatibilidad opcional con virtualenv, venv, conda y pixi
7.3. Pinning absoluto con hash + URL directa
7.4. Funcionamiento 100 % offline con cache local obligatorio

Módulo 8 – Sistema de plugins

8.1. Entry-points oficiales metsudep.plugin
8.2. Hooks: pre_add, post_install, etc.
8.3. Ejemplos reales de plugins incluidos en el curso

Módulo 9 – Integración en CI/CD y empresas

9.1. Exportación a requirements.txt y conda-environment.yml
9.2. GitHub Actions reutilizables para validar políticas en Pull Requests
9.3. Modo “enforcer” que bloquea merges si fallan las políticas

Módulo 10 – Testing serio

10.1. Tests unitarios e integración con pytest-subprocess
10.2. Property-based testing con Hypothesis
10.3. Cobertura obligatoria > 95 %

Módulo 11 – Publicación y distribución

11.1. Construcción y publicación automática en PyPI
11.2. Opcional: binarios standalone con PyInstaller o Nuitka

Módulo 12 – Proyecto final e ideas futuras

12.1. Checklist de “production-ready”
12.2. Extensiones posibles: UI web, soporte multi-lenguaje, integración con gestores del sistema operativo
12.3. Cómo contribuir al proyecto open-source

Anexos

  • Comandos rápidos
  • Plantilla completa de metsudep.toml
  • Licencias permitidas por defecto
  • Glosario y recursos adicionales

Referencias bibliográficas que apoyan el contenido

  1. Documentación oficial de Poetry (2025) – Arquitectura y API pública 🟡③🌐 .- Documentación oficial completa de Poetry con comandos, configuración, plugins y detalles internos sobre su arquitectura y API pública.
  2. PEP 517 – A build-system independent packaging format 🟡③🌐 .- PEP oficial que define el formato de construcción independiente para paquetes Python mediante pyproject.toml y hooks de backend.
  3. PEP 518 – Specifying Minimum Build System Requirements 🟡③🌐 .- PEP oficial que establece cómo especificar requisitos mínimos del sistema de construcción en proyectos Python usando pyproject.toml.
  4. PEP 621 – Storing project metadata in pyproject.toml 🟡③🌐 .- PEP oficial que detalla el almacenamiento de metadatos centrales del proyecto en el archivo pyproject.toml para herramientas de empaquetado.
  5. Safety (pyup.io) – Documentación oficial y base de datos de vulnerabilidades 🟡③🌐 .- Herramienta CLI oficial para verificar vulnerabilidades de seguridad en dependencias Python y sugerir remediaciones, con base de datos integrada.
  6. OSV – Open Source Vulnerabilities database (Google) 🟡③🌐 .- Base de datos distribuida de vulnerabilidades para software de código abierto, mantenida por Google con soporte para múltiples ecosistemas.
  7. CycloneDX – Especificación oficial de SBOM 🟡③🌐 .- Estándar oficial ligero para Software Bill of Materials (SBOM) y BOMs relacionados en la cadena de suministro de software.
  8. SPDX – Licencias y formato SBOM 🟡③🌐 .- Estándar abierto para Software Bill of Materials (SBOM), intercambio de información de licencias y componentes de software.
  9. Typer – Documentación oficial (creado por el autor de FastAPI) 🟡③🌐 .- Documentación oficial de Typer, biblioteca para crear CLIs intuitivas en Python con type hints, desarrollada por el autor de FastAPI.
  10. Rich – Biblioteca de renderizado en terminal 🟡③🌐 .- Biblioteca Python para texto enriquecido, formateo hermoso y elementos visuales en terminales.

Referencias que cuestionan o matizan la necesidad de crear otro gestor

  1. Paul Moore (maintainer de pip) – Discusión sobre la fragmentación del ecosistema Python (2023) 🟡③🌐 .- Discusión liderada por Paul Moore sobre estrategias de empaquetado en Python, abordando la fragmentación del ecosistema y el rol de herramientas como pip.

Estas referencias críticas no invalidan el curso (los casos de uso empresariales y educativos siguen siendo válidos), pero sí invitan a reflexionar sobre si en muchos casos basta con configurar bien Poetry + plugins existentes antes de crear una herramienta nueva.

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?

  • ⚫① - Dark1 - Conocimiento en Bruto. Modo Cuñao, hablo pero no puedo respaldarlo.
  • 🔴② - Rojo2 - Conocimiento Impulsivo, pasional, "lo mio es lo correcto".
  • 🟡③ - Yellow3 - Conocimiento Crítico: se comienza a explorar el hecho de que pueda haber otras perspectivas.
  • 🟢④ - Green4 - Conocimiento Natural: Surge al comprender la naturaleza de la realidad y del ser humano en una materia.
  • 🔵⑤ - Blue5 - Conocimiento Científico: Supone la suma de las fases anteriores aplicando el rigor de lo descubierto por la ciencia hasta ahora, sin caer en la -anticientífica- "opinión científica/opinión de expertos".
  • ⚪⑥ - Light6 Conocimiento Consolidado: Se alcanza al integrar todo lo anterior desde una perspectiva empática y asumiendo una verdad probabilística dinámica dependiente del contexto.

Sobre la categorización de los tipos de conocimiento

  • Conocimiento Gnoseológico: ⚫① 🔴② 🟡③ 🟢④
  • Conocimiento Epistemológico: 🔵⑤
  • Conocimiento Metsukeológico: ⚪⑥

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:

  • 🌐 - Contenido Externo sobre cuya validez/validación no tenemos control (usualmente enlaces que salen de #MetsuOS)
  • ⚖️ - Analisis
    • ⚖️📚 - Análisis Bibligráfico
    • ⚖️🔬 - Análisis Científico
    • ⚖️🏛️ - Análisis Estructural
    • ⚖️🧠 - Análisis Filosófico
  • 📖 - Referencia
    • 📖📚 - Referencia Bibliográfica / Libro
    • 📖🔬- Referencia Científica / Paper
    • 📖🏛️ - Referencia Estructural
    • 📖🧠 - Referencia Filosófica
  • 🔍️- Paradigma

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

  • 🔴②-🌐🟡③ - Nivel del contenido del documento Rojo2, nivel del contenido externo del que habla el documento Yellow3.
  • 🔴②-⚖️📚 🔴② - Nivel del contenido del documento Rojo2, en base a análisis bibliográfico nivel Rojo2

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

  • Información IA: Generado asistido por IA (Grok-4, Raul Carrillo aka Metsuke). Supervisado por Humano.
  • Ultima Modificación: 2026-01-05 20:40:26.977000+00:00
  • Versión Documento: 0.2.28