Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb

Pubblicato un nuovo aggiornamento per RAWeb

61
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 miglioramenti all’interfaccia utente e alla compatibilità dei file di gioco, oltre a una serie di correzioni e ottimizzazioni tecniche.

Tra le novità principali ci sono un filtro multi-selezione per la tipologia dei giochi, un sistema più esplicito per verificare la compatibilità dei file supportati, e un avviso per gli utenti che utilizzano emulatori non adatti allo sviluppo di obiettivi.

Sono stati risolti diversi bug, tra cui problemi legati alla gestione dei commenti, alla visualizzazione della homepage in modalità landscape e ad alcune etichette mancanti.

A livello di accessibilità, sono stati apportati miglioramenti per la modalità chiara, mentre la sezione dei ticket ha ricevuto una correzione per la riassegnazione automatica quando l’utente ha un nome visualizzato personalizzato.

Inoltre, gli obiettivi relativi a eventi non vengono più mostrati nella lista degli achievement personali.

Dal lato tecnico, ci sono aggiornamenti significativi alle dipendenze in vista del passaggio a Laravel 12, tra cui l’aggiornamento a Carbon 3, React 19, e Inertia 2.0.7 con attivazione del cluster mode.

Sono state introdotte anche modifiche all’API, come nuovi parametri per la gestione dei commenti e il supporto allo sviluppo multi-set di achievement e leaderboard.

Infine, il codice è stato reso più snello con la conversione di alcune entità in enum nativi e la rimozione di duplicazioni nel datatable dei giochi.

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

Nuove funzionalità

  • Tabelle dei giochi: Il filtro per tipo di gioco ora supporta la selezione multipla (a cura di @wescopeland in #3413).
  • File di gioco supportati: Aggiunto un invito all’azione per testare la compatibilità (a cura di @wescopeland in #3401).
  • File di gioco supportati: Aggiunta una flag di “compatibilità” (a cura di @Jamiras in #3404).
  • Segnalazioni: Avviso agli utenti se il loro emulatore non è utilizzabile per il debug da parte degli sviluppatori di obiettivi (a cura di @wescopeland in #3388).

Correzioni di bug

  • Commenti: Ora i commenti vengono sempre eliminati in modo soft nell’interfaccia PHP (a cura di @wescopeland in #3412).
  • Commenti: il pulsante di eliminazione nell’interfaccia React è stato reso meno invasivo (a cura di @wescopeland in #3411).
  • Home page: corretti problemi CSS nella visualizzazione landscape delle notizie (a cura di @wescopeland in #3402).
  • Home page: ripristinata l’etichetta “Termina tra…” per l’AOTW (a cura di @wescopeland in #3403).
  • Modalità chiara: miglioramenti all’accessibilità (a cura di @wescopeland in #3407).
  • Segnalazioni: corretta la riassegnazione automatica dei ticket per gli utenti con nome visualizzato personalizzato (a cura di @Jamiras in #3420).
  • Lista degli obiettivi utente: ora gli obiettivi degli eventi vengono esclusi (a cura di @wescopeland in #3399).

Modifiche alla Console di Gestione

  • Nessuna.

Modifiche API

  • API_GetComments: Aggiunto il parametro sortOrder (a cura di @ioslife in #3156).
  • Connect API: Aggiunto il parametro set id per uploadachievement e uploadleaderboard, a supporto dello sviluppo multiset (a cura di @wescopeland in #3351).

Modifiche all’Ambiente

  • Dipendenze: Rimosse diverse librerie in preparazione a Laravel 12 (a cura di @wescopeland in #3414).
  • Dipendenze: aggiornamento a Carbon 3 (a cura di @wescopeland in #3386).
  • Dipendenze: aggiornamento a React 19 (a cura di @wescopeland in #3395).
  • Dipendenze: aggiornamento di Inertia a 2.0.7 e attivazione della modalità cluster (a cura di @wescopeland in #3406).
  • Download: preparazione del backend alla riscrittura delle pagine in React (a cura di @wescopeland in #3408).
  • Varie: conversione di UserGameListType in un enum nativo (a cura di @wescopeland in #3341).
  • Varie: riduzione del codice duplicato nella tabella giochi (a cura di @wescopeland in #3400).
  • Multiset: aggiunta della colonna image_asset_path nella tabella achievement_sets (a cura di @wescopeland in #3416).
  • Seeder: aggiunta degli sblocchi degli achievement al database iniziale (a cura di @Jamiras in #3377).

Changelog completo: 2025.04.05 → 2025.04.17

Download: Source code RAWeb 2025.04.17

Fonte: x.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.