Rubra Packager · v1.0.0 · disponibile su itch.io

Rubra Packager

Package. Build. Deploy.

Get Rubra Packager — $3.99+

Checkout sicuro e download tramite itch.io. $3.99 minimo — puoi pagare di più se vuoi.

Vedi Rubra Packager su itch.io →
Rubra Packager
Release engineering locale

Dal sorgente alla release Windows: non soltanto HTML → EXE.

Rubra Packager è una workstation desktop Windows pensata per progetti locali fidati. Oltre a trasformare applicazioni web statiche/offline in EXE o APK, può partire direttamente dal codice sorgente di un’app Python, validarlo, preparare le dipendenze in uno staging isolato e costruire un artefatto Windows ONEFILE o ONEDIR.

Quell’artefatto può poi passare a Setup Builder per diventare un vero installer Windows Inno Setup. Questa catena Python sorgente → EXE/ONEDIR → Setup è una delle caratteristiche centrali del progetto e lo distingue da un semplice convertitore HTML-to-EXE.

Il progetto è nato come strumento interno per il workflow di GVibeDev e, dopo molte build reali, è stato separato in un prodotto autonomo con interfaccia, runtime di build privato, controlli di sicurezza e tooling di release dedicati.

Projects

Registra i progetti web locali e conserva profilo, variante e metadati di packaging senza duplicare i sorgenti.

Web Preflight

Controlla leggibilità UTF-8, riferimenti locali, file richiesti dal profilo e contenuti inclusi/esclusi prima della compilazione.

Web → Windows

Confeziona applicazioni web statiche/offline come EXE Windows one-file tramite PyWebView e PyInstaller.

Python → Windows

Parte dal codice sorgente Python e costruisce ONEFILE o ONEDIR, GUI o console, con icone, metadati, hidden imports, data files e dipendenze isolate.

Web → Android

Prepara APK Android per progetti web statici supportati usando Node/npm, staging Capacitor-style e toolchain Gradle/Android.

Setup Builder

Prende l’EXE ONEFILE o la cartella ONEDIR costruita e la trasforma in un installer Inno Setup con AppId stabile, shortcut e disinstallazione.

La caratteristica distintiva

Da un progetto Python sorgente a EXE e Setup Windows.

Il percorso Python non è un accessorio del convertitore web: è una pipeline separata. Rubra Packager usa un motore Python/PyInstaller privato, esegue un preflight dedicato e mantiene lo staging delle dipendenze separato dal runtime dell’app.

  1. 01 · Sorgente

    Seleziona la cartella del progetto e l’entry point Python.

  2. 02 · Preflight

    Controlla entry point, sintassi, metadata delle dipendenze, hidden imports, data path e search path.

  3. 03 · Build EXE

    Scegli ONEFILE o ONEDIR, GUI o console, icona, versione, publisher e descrizione; PyInstaller produce l’artefatto Windows.

  4. 04 · Setup

    Passa l’EXE o la directory ONEDIR a Setup Builder e genera un installer Inno Setup con shortcut, AppId stabile e supporto alla disinstallazione.

Setup Builder è volutamente un secondo stadio: non compila direttamente il sorgente Python, ma confeziona l’artefatto Windows già prodotto e testato. Per l’utente il workflow completo resta: sorgente Python → EXE/ONEDIR → Setup.

Perché esiste “Arena Rubra” tra i profili?

Rubra Packager nasce da un problema reale di Arena Rubra Digital.

Il primo workflow che ha portato alla nascita del packager era quello di Arena Rubra Digital: un gioco web offline con una libreria locale di asset ampia e con l’esigenza di distinguere pacchetti FULL e LITE senza perdere file realmente referenziati.

Per questo la distribuzione include ancora un profilo Arena Rubra. Non è codice speciale nel motore: il sistema dei profili è data-driven e carica le stesse regole JSON usate anche da Generic Web Game e Generic HTML App.

  • Il profilo Arena Rubra richiede index.html, usa orientamento landscape e cerca assets-manifest.json oppure assets/manifest.json.
  • FULL non esclude cartelle di produzione e, per progetti compatibili, può tecnicamente funzionare anche fuori da Arena Rubra.
  • LITE è invece calibrato sulla struttura del gioco: esclude cartelle tipiche di musica, video e artwork high-resolution. Su un’app diversa potrebbe rimuovere contenuti necessari.
  • Per altri progetti è quindi preferibile partire da Generic Web Game o Generic HTML App. Il profilo Arena Rubra resta soprattutto un preset specifico e un esempio concreto dell’architettura profile-driven.
  • I profili sono definiti in JSON nel sorgente; l’authoring di profili personalizzati non è ancora presentato come workflow end-user rifinito nella v1.0.0.
Dipendenze e toolchain

Installa solo ciò che serve al target che vuoi produrre.

Rubra Packager separa l’app desktop dal motore di build. Il runtime Python privato vive sotto %LOCALAPPDATA%\RubraPackager\runtime\.venv; le toolchain esterne restano dipendenze esplicite del sistema.

Python 3.11+Sorgente + motore di build privato

Per eseguire Rubra Packager direttamente dal repository serve Python 3.11 o superiore. Lo script di bootstrap crea o ripara il runtime privato e installa pywebview, PyInstaller e Pillow.

Download ufficiali: python.org ↗
Inno Setup 6 / 7Setup Builder

Inno Setup 6 o 7 è necessario per Setup Builder e per costruire la release Setup di Rubra Packager. Se manca, l’app può proporre un bootstrap tramite winget, sempre dopo un’azione esplicita.

Download ufficiali: jrsoftware.org ↗
Node.js + npmAndroid / web source builds

Necessari per il workflow Android e per progetti web che devono eseguire un build npm prima del packaging.

Download ufficiali: nodejs.org ↗
Identità del prodotto

Package. Protect. Deploy.

Rubra Packager splash artwork with the Package, Protect and Deploy release workflow.
Limiti e sicurezza

È un tool di build, non una sandbox.

Quando abiliti installazione o build delle dipendenze, il progetto selezionato può eseguire codice con i permessi del tuo utente Windows. Usa queste funzioni soltanto con sorgenti che conosci e di cui ti fidi.

  • npm install, npm run build, pip install -r requirements.txt e pip install . possono eseguire codice controllato dal progetto.
  • Il preflight Python non esegue l’entry point selezionato.
  • Entry point, data path e search path Python sono confinati alla root del progetto; i percorsi che ne escono vengono rifiutati.
  • L’API locale dell’interfaccia ascolta solo in loopback, usa un token casuale per ogni avvio e rifiuta origini browser esterne.
  • Il sorgente Python non usa shell=True per i processi di build.
  • Rubra Packager va eseguito come utente normale, non come Administrator.

Cosa non fa la v1.0.0

  • Non pacchettizza applicazioni macOS o Linux.
  • Il packaging web è destinato ad applicazioni statiche/offline: backend server, SSR server e API runtime non vengono incorporati.
  • Asset generati dinamicamente e nomi non rilevabili staticamente possono richiedere un manifest di progetto.
  • La validazione Android v1 è orientata a build APK/device; pubblicazione sugli store e workflow di signing per distribuzione restano separati.
  • Authenticode è opzionale e richiede una propria infrastruttura di certificati.
  • Setup Builder, preso da solo, non compila il sorgente: nel workflow Python l’EXE/ONEDIR viene creato prima da Python → Windows e poi trasformato in installer.
Distribuzione

Sorgente pubblico su GitHub. Acquisto e download ufficiali su itch.io.

Il repository GitHub resta il riferimento pubblico per codice sorgente, documentazione, test, branding e strumenti necessari ad assemblare Rubra Packager. Gli artefatti compilati non vengono committati nel source tree.

La distribuzione binaria ufficiale è ora attiva su itch.io: il checkout, la libreria dell’acquirente e i download di Setup/Portable sono gestiti direttamente dalla piattaforma. Una GitHub Release con binari testati resta prevista come canale aggiuntivo futuro.

Per costruire Rubra Packager localmente, il repository fornisce build_release_windows.cmd: prepara il runtime, costruisce l’app ONEDIR, crea il Portable ZIP e compila il Setup Inno, quindi genera manifest e checksum SHA-256.