Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb (2025.07.24-B)

Pubblicato un nuovo aggiornamento per RAWeb (2025.07.24-B)

60
0

Pubblicato un nuovo aggiornamento per RAWeb, la piattaforma di RetroAchievements.org che gestisce obiettivi, dati di gioco e funzionalità per la community.

L’applicazione, sviluppata con Laravel (TALL stack), permette agli utenti di interagire con il sistema di RetroAchievements per tracciare i progressi nei giochi e condividerli con altri membri della community.

Questa nuova versione introduce diverse novità, tra cui il supporto alla tastiera per migliorare l’accessibilità nei forum e nei moduli di messaggi, una nuova lingua (svedese) e l’introduzione di una tier da 10 punti per gli eventi.

Migrate anche alcune sezioni dell’interfaccia a React, con un occhio particolare alla lista delle richieste di set.

Dal punto di vista tecnico, si segnalano ottimizzazioni di compatibilità browser, miglioramenti nelle metriche di gioco, nella gestione delle notifiche e nella configurazione delle code Horizon. Sono state inoltre migliorate le prestazioni con un affinamento delle query e la rimozione di proprietà inutili.

A livello amministrativo, sono state introdotte nuove possibilità per i moderatori nella gestione dei ruoli utente e aggiornamenti nella visualizzazione dei game hub.

Il backend ha subito modifiche importanti con l’introduzione di una nuova tabella per tracciare i giocatori recenti, aggiornamenti delle dipendenze (tra cui il passaggio a ESLint 9) e nuove istruzioni per l’installazione su VM Ubuntu.

Infine, sono state aggiunte nuove funzionalità sperimentali per le pagine di gioco in React, come crediti per partite completate, avvisi sui contenuti, componenti per i giocatori recenti e ottimizzazioni per prestazioni e usabilità.

Un piccolo aggiornamento successivo ha inoltre corretto un bug nella prefetch route delle richieste di set.

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 v2025.07.24-b

  • Correzione (set-requests): Aggiornato il nome della route di prefetch by @wescopeland in #3740

Changelog v2025.07.24

Nuove funzionalità

  • Accessibilità: Aggiunta la combinazione di tasti Meta+Invio nei moduli di forum, messaggi e commenti by @wescopeland in #3731
  • Eventi: Introdotto il supporto per una fascia di achievement da 10 punti per gli eventi by @wescopeland in #3700
  • Forum: Apportati piccoli miglioramenti all’indicatore UX per gli argomenti bloccati by @wescopeland in #3711
  • Localizzazione: aggiunto il supporto alla lingua svedese (grazie @yeager!) e aggiornato lo script di download Crowdin by @wescopeland in #3709
  • Lista richieste set: effettuata la migrazione a React by @wescopeland in #3716

Correzioni di bug

  • Compatibilità browser: Aggiunto l’ascolto degli eventi vite:preloadError by @wescopeland in #3715
  • Eventi: Corretto il filtro per il giorno finale nella mappatura degli eventi by @Jamiras in #3727
  • Notifiche: L’utente non viene più considerato iscritto automaticamente a notifiche se ha eliminato il proprio commento by @Jamiras in #3728
  • Metriche di gioco: Ora viene rispettato il reset dei giochi by @wescopeland in #3680
  • Impostazioni: Rimosse le referenze alla chiave API Connect by @wescopeland in #3710

Modifiche alla console di gestione

  • Hub: Ordinati gli hub dei giochi per titolo e impostata la paginazione predefinita a 50 by @wescopeland in #3713
  • Utenti: I moderatori possono ora assegnare determinati ruoli by @wescopeland in #3706

Miglioramenti delle prestazioni

Modifiche all’API

  • Nessuna.

Modifiche all’ambiente

  • Dati denormalizzati: Creata la tabella game_recent_players e aggiunto il comando di backfill by @wescopeland in #3695
  • Dipendenze: Aggiornato livewire/livewire dalla versione 3.6.2 alla 3.6.4 by @dependabot[bot] in #3723
  • Dipendenze: Rimosse la maggior parte delle dipendenze radix a favore del pacchetto monorepo radix-ui by @wescopeland in #3725
  • Dipendenze: effettuata la migrazione a ESLint 9 by @wescopeland in #3714
  • Documentazione: Aggiunta una guida per l’installazione di RAWeb in una macchina virtuale Ubuntu by @Jamiras in #3594
  • Horizon: ottimizzata la configurazione dei queue worker by @wescopeland in #3729

Funzionalità future

  • Pagine di gioco React: Aggiunte le richieste attive by @wescopeland in #3681
  • Pagine di gioco React: Aggiunta la finestra di dialogo del credito per gioco completato by @wescopeland in #3703
  • Pagine di gioco React: aggiunto avviso di contenuto by @wescopeland in #3679
  • Pagine di gioco React: aggiunto componente dei giocatori recenti by @wescopeland in #3697
  • Pagine di gioco React: Non mostrare tooltip vuoti per alcuni giocatori recenti by @wescopeland in #3732
  • Pagine di gioco React: Migliorata la gestione dei crediti per utenti bannati/eliminati by @wescopeland in #3704
  • Pagine di gioco React: Migliorate le prestazioni di caricamento (hydration) per giochi con molti hub by @wescopeland in #3691
  • Pagine di gioco React: Abbassata la soglia di prominenza dell’autore del set dal 33% al 30% by @wescopeland in #3733
  • Pagine di gioco React: Effettuate alcune piccole modifiche CSS by @wescopeland in #3726
  • Pagine di gioco React: corretta la regressione del deduplicamento nella riga dei metadati “Altri nomi” by @wescopeland in #3724
  • Pagine di gioco React: corretta la bug di ordinamento by @wescopeland in #3722
  • Pagine di gioco React: impostate le basi back-end per il supporto multiset by @wescopeland in #3699
  • Pagine di gioco React: mostrato il credito per il test di compatibilità hash by @wescopeland in #3712

Changelog completo: 2025.06.16b...2025.07.24b

Download: Source code RAWeb 2025.07.24-B

Fonte: github.com