Skip to content

JesusQuijada34/packagemaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

239 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 Influent Package Maker - IDE Profesional para Python

Influent Package Maker es un entorno de desarrollo integrado (IDE) profesional para crear, empaquetar y distribuir aplicaciones Python con interfaces modernas estilo Windows 11.

Versión Actual: v3.2.7-26.05-20.13 - Mejoras en la detección de editores, gestión de compilación y limpieza de artefactos.

Python PyQt6 License GitHub release (latest by date) GitHub repo size GitHub last commit GitHub stars


🌟 Características Principales

🎨 Interface Moderna Windows 11

  • Barra de título personalizada: Basada en Leviathan-UI con diseño limpio
  • Efectos visuales: Soporte para acrílico, mica y blur
  • Tema oscuro: Paleta consistente #3a3f4b (fondo) / #ff5722 (acento)
  • Sin gradientes: Interfaz limpia y consistente sin gradientes
  • Fondos sólidos: Optimizados para evitar artifacts visuales

📦 Sistema de Compilación Avanzado

  • Detección automática: Encuentra scripts candidatos (if __name__ == '__main__')
  • Extracción de clases: Separa automáticamente clases a lib/_class/
  • Gestión de dependencias: Analiza e incluye imports necesarios
  • Minificación: Reduce tamaño del código compilado
  • Integración con .gitignore: Excluye automáticamente archivos y carpetas especificadas en .gitignore durante la compilación y empaquetado, incluyendo archivos de GitHub como .github y .vscode.
  • Limpieza Post-Compilación: Elimina automáticamente los directorios build/, dist/ y los archivos .spec generados por PyInstaller después de cada proceso de compilación, manteniendo el directorio del proyecto limpio.

🔒 Métodos de Blindado

Método Descripción Seguridad
Simple Blind Empaqueta todo en .iflappb 🔒🔒
Super Blind Clases separadas por script + encriptación 🔒🔒🔒🔒

📱 Multi-Plataforma

  • Windows: Ejecutables .exe con PyInstaller
  • Android: APK generable vía Buildozer
  • Linux: AppImage y paquetes nativos con renderizado de iconos mejorado.

🎉 Novedades en v3.2.7-26.05-20.13

🚀 Mejoras en la Experiencia de Desarrollo

  • Más Editores Soportados: El diálogo "Abrir con" ahora detecta y permite abrir proyectos con una gama más amplia de editores de código, incluyendo Zed, Fleet, Emacs, Geany, Kate y Gedit. Esto proporciona mayor flexibilidad a los desarrolladores para usar su herramienta preferida.
  • Renderizado de Iconos en Linux: Se ha mejorado la detección y el renderizado de iconos para editores en entornos Linux (Ubuntu, etc.), asegurando que los iconos se muestren correctamente en el diálogo "Abrir con" y en el sistema.
  • Exclusión de Archivos con .gitignore: El proceso de compilación ahora respeta el archivo .gitignore del proyecto, excluyendo automáticamente los archivos y directorios listados. Esto incluye archivos relacionados con el control de versiones (.git, .github) y configuraciones de IDE (.vscode, .idea), evitando que se incluyan en el paquete final.
  • Limpieza Automática de Artefactos de Compilación: Después de cada compilación y empaquetado, el sistema ahora limpia automáticamente los archivos temporales y directorios generados por PyInstaller (build/, dist/, .spec). Esto se aplica tanto a la compilación a través de la GUI como a las invocaciones por línea de comandos (compile y --buildthis), garantizando un directorio de proyecto ordenado.

🐛 Correcciones y Optimizaciones

  • Error en EditorInfo - TypeError: Corregido un TypeError en lib/openWithDialog.py al inicializar EditorInfo para pmCodeEditor, asegurando que el campo executable se pase correctamente.
  • Bug de Fondo Blanco al Maximizar: Solucionado el problema de fondos blancos al maximizar la ventana, asegurando una consistencia visual con el tema oscuro en todo momento.
  • Iconos de Editores - Gradiente Radial: Eliminado un gradiente radial innecesario en los iconos de los editores en lib/openWithDialog.py, resultando en una apariencia más limpia y moderna.

🚀 Instalación Rápida

# Clonar repositorio
git clone https://github.com/JesusQuijada34/packagemaker.git
cd packagemaker

# Instalar dependencias
pip install -r requirements.txt

# Ejecutar IDE
python packagemaker.py

Requisitos

  • Python 3.8+ 🐍
  • PyQt6 6.5+ 🎨
  • Windows 10/11 (Linux/macOS parcial) 💻

🎯 Uso Básico

1️⃣ Crear Nuevo Proyecto

Archivo → Nuevo Proyecto → Seleccionar carpeta

2️⃣ Configurar Compilación

  • Modo Bundle: Switch para cambiar entre "Empaquetar" y "Compilar Bundle"
  • Método de Blindado: Simple vs Super Blind
  • Opciones adicionales: Firma digital, compresión, icono personalizado

3️⃣ Compilar

Click en "Compilar" (verde) o "Compilar Bundle y Firmar" (azul)

4️⃣ Distribuir

  • Output en releases/ (o la ruta configurada)
  • Listo para subir a GitHub Releases

🛠️ EditorDetector y OpenWithDialog

Flujo de Detección Mejorado

El sistema ahora busca ejecutables de editores en rutas estándar de Linux y utiliza un mapeo de nombres para encontrar iconos relevantes, mejorando la experiencia en sistemas operativos basados en Linux.

Colores y Estilos (lib/openWithDialog.py)

/* Contenedor del diálogo (línea 215-222) */
QFrame {
    background-color: #252526;
    border: none;
    border-radius: 8px;
}

/* Header (línea 228-236) */
background-color: rgba(255, 255, 255, 0.02);
border-bottom: 1px solid rgba(255, 255, 255, 0.08);

/* Item pmCodeEditor seleccionado (línea 524-529) */
background-color: rgba(255, 87, 34, 0.12);
border: 1px solid rgba(255, 87, 34, 0.55);

/* Botones (línea 374-394) */
#0078d4 (background)
#006cbd (hover)
#005a9e (pressed)

🔄 Flujo de Compilación Detallado

Cuando compilas un proyecto, Packagemaker:

  1. Análisis: Lee scripts candidatos y detecta clases
  2. Exclusión de Archivos: Aplica patrones de .gitignore para ignorar archivos y directorios no deseados.
  3. Extracción: Mueve clases a lib/_class/ScriptName/
  4. Modificación: Actualiza imports en scripts originales
  5. Generación: Crea lib/__init__.py con imports consolidados
  6. Minificación: Reduce tamaño de código
  7. Empaquetado: Genera .iflappb (Simple Blind) o estructura separada (Super Blind)
  8. Firma: Opcionalmente firma el paquete
  9. Limpieza: Elimina automáticamente los artefactos de compilación (build/, dist/, .spec) del directorio del proyecto.

🤝 Integración con Leviathan-UI

Packagemaker utiliza Leviathan-UI como base visual:

Componente Uso Versión
CustomTitleBar Barra de título unificada
WipeWindow Efectos visuales consistentes
LeviathanProgressBar Indicadores de progreso
InmersiveSplash Pantallas de carga

📚 Documentación

  • docs/getting-started.md - Guía de inicio rápido
  • docs/build-system.md - Sistema de compilación
  • docs/android-deployment.md - Despliegue Android
  • FAQ.md - Preguntas frecuentes
  • CHANGELOG.md - Historial de cambios
  • RELEASE_NOTES.md - Notas de versión

📝 Licencia

GNU GPL v3 - Libre para uso personal y comercial.


Desarrollado con ❤️ usando Python + PyQt6 + Leviathan-UI

GitHub | Issues | Releases