Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb (2025.08.20-C)

Pubblicato un nuovo aggiornamento per RAWeb (2025.08.20-C)

73
0

In meno di ventiquattro ore RAWeb, la piattaforma sviluppata da RetroAchievements.org per la gestione di obiettivi, dati di gioco e funzionalità dedicate alla community, ha ricevuto ben tre aggiornamenti consecutivi, a testimonianza del ritmo serrato con cui il progetto viene portato avanti.

L’applicazione, realizzata in Laravel sfruttando il TALL stack, si conferma così uno degli strumenti più versatili e in costante crescita per gli appassionati che vogliono monitorare i propri progressi e condividere le esperienze con altri utenti.

La release 2025.08.20 ha introdotto una serie di miglioramenti sostanziali. Tra le novità più rilevanti si segnalano l’aggiunta di un avviso dedicato ai download di emulatori che non supportano il toolkit di RetroAchievements, il supporto alla lingua olandese e l’apertura automatica dei thread messaggi direttamente all’ultima pagina.

Novità importanti arrivano anche sul fronte dei ticket, con l’inserimento di un nuovo motivo di chiusura legato all’impossibilità di effettuare il debug senza toolkit.

Non sono mancati interventi di ottimizzazione e correzione: migliorata la gestione dei feed dei giocatori attivi, corretto un errore nelle query delle pagine dei giochi e risolti diversi problemi legati alle tabelle dati, sia lato desktop che mobile.

Sono stati perfezionati anche gli strumenti per gli amministratori, con una validazione più stringente sugli ID degli achievement e nuove opzioni di gestione per i ruoli. In parallelo, si segnalano ottimizzazioni prestazionali nell’area download e l’avvio dei lavori preparatori per le API V2 e i futuri Service APIs.

Alle porte ci sono inoltre funzioni attese da tempo, come il sistema di claim dei set, le statistiche di gioco basate sul tempo, il supporto agli achievement non ancora pubblicati e un’interfaccia React sempre più avanzata, capace di rendere le pagine dei giochi più ricche e interattive.

Poche ore dopo, però, è stato necessario pubblicare una seconda build, la 2025.08.20-B, che ha risolto un’incongruenza emersa nella query relativa ai giocatori con il maggior numero di punti.

A chiudere la giornata, l’aggiornamento 2025.08.20-C ha corretto un errore di caricamento che riguardava i giochi di sistema nella visualizzazione mobile.

Requisiti

Per eseguire RAWeb localmente, sono necessari i seguenti componenti:

  • Server web locale: È necessario un server web per eseguire l’applicazione.
  • PHP 8.2: La piattaforma richiede PHP 8.2, con diverse estensioni abilitate (come curl, gmp, mysqli, pdo_mysql, gd, intl, sockets).
  • Composer: Il gestore di dipendenze PHP, necessario per installare le librerie richieste da RAWeb.
  • MariaDB 10: Il database supportato per memorizzare i dati.
  • Node.js 20 e pnpm 9: Questi strumenti sono utilizzati per la gestione dei pacchetti frontend e la build degli asset.

RAWeb è compatibile con i seguenti sistemi operativi e configurazioni:

  • Windows, macOS, Linux.
  • Diverse opzioni di configurazione sono disponibili: Docker (con Laravel Sail), XAMPP e Laravel Valet per macOS.

Opzioni di configurazione

Esistono diverse opzioni per configurare RAWeb:

  1. Docker Compose (Windows, Linux, macOS):
    Utilizzando Laravel Sail, l’ambiente di sviluppo viene creato automaticamente con i container Docker. La documentazione di Laravel Sail descrive i passaggi dettagliati. Una volta configurato, è possibile avviare i container con il comando sail up o in modalità demone con sail up -d.
  2. XAMPP (Windows, Linux, macOS):
    È necessario installare XAMPP con PHP 8.2, che include un server Apache, MySQL/MariaDB e PHP. Si dovranno abilitare alcune estensioni in php.ini (come curl, gmp, mysqli, ecc.) per garantire la compatibilità con le dipendenze di RAWeb.
  3. Laravel Valet (macOS):
    Se si utilizza Laravel Valet su macOS, è possibile configurare facilmente l’ambiente locale. Valet agisce come driver per l’ambiente di sviluppo e fornisce una configurazione web locale senza complicazioni.

Installazione di RAWeb

Una volta che il server e le dipendenze sono configurati, l’installazione di RAWeb avviene in due fasi principali:

  1. Installazione delle dipendenze: Dopo aver clonato il repository di RAWeb, eseguire composer install per installare tutte le librerie necessarie. Se si desidera utilizzare la versione locale di composer.phar invece di una globale, si può eseguire php composer.phar install.
  2. Configurazione dell’ambiente: È necessario eseguire il comando composer setup per configurare correttamente l’ambiente. Questo script imposterà le variabili di ambiente e le configurazioni iniziali. Durante questa fase, si consiglia di adattare il file .env con le credenziali del database e l’URL dell’applicazione.

Configurazione dell’ambiente (.env)

Il file .env contiene valori predefiniti sensati, ma potrebbero essere necessarie alcune modifiche:

  • Credenziali del database: Impostare i valori per la connessione al database locale (DB_*).
  • Configurazione dell’URL dell’applicazione: Impostare l’URL dell’applicazione (APP_URL). Per esempio, se si usa Docker, l’URL potrebbe essere http://localhost:64000. Con Valet, potrebbe essere https://raweb.test.

Se si sta utilizzando un ambiente Docker, non sono necessarie ulteriori configurazioni specifiche, poiché l’applicazione rileverà automaticamente la configurazione del container Laravel Sail.

Se si utilizza XAMPP o Valet, sarà necessario regolare l’URL dell’applicazione e configurare correttamente i virtual host o il dominio.

Costruzione e configurazione del frontend

Per generare gli asset frontend:

  1. Installazione delle dipendenze frontend: Utilizzare pnpm install per installare le dipendenze necessarie.
  2. Costruzione degli asset: Eseguire pnpm build per creare la build finale. Con Docker Sail, è possibile eseguire questi comandi tramite sail pnpm install e sail pnpm build.
  3. Creazione dei symlink per il filesystem: Per rendere accessibili i file di archiviazione, eseguire php artisan ra:storage:link --relative per creare i collegamenti simbolici necessari. Anche questo comando è disponibile tramite Sail (sail artisan ra:storage:link --relative).

Configurazione del database

Dopo aver configurato l’ambiente e costruito gli asset, è necessario preparare il database:

  1. Esegui la migrazione: Esegui php artisan migrate per applicare le migrazioni e configurare il database.
  2. Popola il database con dati di test: Usa il comando php artisan db:seed per popolare il database con i dati di test. Puoi eseguire anche questo comando tramite Sail (sail artisan db:seed).

Accesso all’applicazione

A seconda dell’ambiente scelto, puoi accedere all’applicazione nel seguente modo:

Utilizzo per lo sviluppo di obiettivi

Se desideri sviluppare obiettivi localmente, puoi aggiungere un file host.txt nella directory di RALibRetro accanto al file RAIntegration.dll. Questo file deve contenere l’URL del tuo server locale, che potrebbe essere uno dei seguenti:

Sicurezza

Per gestire eventuali vulnerabilità di sicurezza, consulta la Security Policy di RetroAchievements.org, che fornisce indicazioni su come gestire i rischi e proteggere la piattaforma.

In questo modo, puoi configurare e utilizzare RAWeb per gestire obiettivi, giochi e funzionalità della community direttamente dal tuo server locale.

Changelog 2025.08.20

Nuove funzionalità

  • Download: Aggiunta una finestra di avviso per i ticket sugli emulatori che non supportano il toolkit da @wescopeland in #3773
  • Localizzazione: Aggiunto il supporto per l’olandese da AxelNL in #3797
  • Messaggi: Apertura automatica dei thread all’ultima pagina da @wescopeland in #3755
  • Ticket: Aggiunta la motivazione di chiusura “Impossibile fare il debug perché il toolkit non è supportato” da @wescopeland in #3772

Correzioni

  • Active Player Feed: Corretta la pluralizzazione da @wescopeland in #3804
  • Admin Tools: Convalida che gli ID degli achievement sbloccati manualmente siano effettivamente numeri da @wescopeland in #3784
  • Game Datatables: Risolto il problema dei warning che affollavano i log di Sentry da @wescopeland in #3762
  • Game Datatables: Risolti i warning di Select mobile che comparivano in Sentry da @wescopeland in #3764
  • Game Pages: Risolto il problema della query N+1 per Recent Players da @wescopeland in #3765
  • Hubs: Risolto l’errore 404 nei log del server da @wescopeland  in #3780
  • Search 1.0: Incluso il commento originale del report nelle ricerche dei commenti dei ticket da @wescopeland in #3785
  • Ticket Details: Non effettuare il doppio escape del titolo della pagina da @Jamiras  in #3793

Modifiche alla console di gestione

  • Image Uploads: Aumentata la durata del timeout dei file temporanei, gestione degli errori in modo elegante da @wescopeland  in #3766
  • Users: Rendere il ruolo EVENT_MANAGER assegnabile dai moderatori da @wescopeland in #3789

Miglioramenti delle prestazioni

Modifiche alle API

Modifiche all’ambiente

nessuno

Funzionalità future

  • React Game Pages: Aggiunto il sistema di claims da @wescopeland in #3788
  • React Game Pages: Aggiunte le statistiche di playtime da @wescopeland in #3754
  • React Game Pages: Aggiunto il supporto per mostrare achievement non pubblicati da @wescopeland  in #3770
  • React Game Pages: utilizzo di backingGame per impostare claims sulle pagine dei giochi React da @wescopeland in #3767
  • React Game Pages: utilizzo di formatNumber nella tabella dei top players da @wescopeland in #3768
  • React Game Pages: rendere gli utenti nei tooltip dei crediti cliccabili da @wescopeland in #3774
  • React Game Pages: nascondere le statistiche di Playtime se non ci sono achievement da @wescopeland in #3787
  • React Game Pages: non andare in crash su utenti nulli per recent players da @wescopeland in #3783

Changelog 2025.08.20-B

  • fix(GameTopAchieversService): Risolta l’incoerenza in highestPointEarnersQuery da @wescopeland in #3808

Changelog 2025.08.20-C

  • fix(GameListItemContent): Risolto l’errore di hydration dei giochi di sistema su mobile da @wescopeland in #3809

Download: Source code RAWeb 2025.08.20-C

Fonte: github.com