Merge pull request #655 from zurdi15/repo-cleanup-prep-3

Repo prep for 3.0 release
This commit is contained in:
Zurdi
2024-02-10 22:08:55 +01:00
committed by GitHub
11 changed files with 67 additions and 41 deletions

View File

@@ -1,12 +1,9 @@
name: build romm image
name: Build and Push Docker Image
on:
workflow_dispatch:
inputs:
version:
description: "romm version"
required: true
type: string
push:
tags:
- 'v*'
jobs:
build:
@@ -19,19 +16,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Set environment variables
run: |
CURRENT_RC_VERSION=$(wget -q -O - "https://hub.docker.com/v2/repositories/zurdi15/romm/tags?page_size=2" | grep -o '"name": *"[^"]*' | grep -o '[^"]*$' | grep "dev-${{ inputs.version }}-rc" | cut -d "-" -f 3 | cut -d "." -f 2)
[[ -z $CURRENT_RC_VERSION ]] && CURRENT_RC_VERSION=0
NEXT_RC_VERSION="$(($CURRENT_RC_VERSION + 1))"
echo "VERSION_PREFIX=${{ github.ref != format('refs/heads/{0}', 'release') && 'dev-' || '' }}" >> $GITHUB_ENV
echo "VERSION_SUFFIX=${{ github.ref == format('refs/heads/{0}', 'master') && '-rc.$NEXT_RC_VERSION' || '' }}" >> $GITHUB_ENV
- name: Set version
run: |
version=${{ env.VERSION_PREFIX }}${{ inputs.version }}${{ env.VERSION_SUFFIX }}
sed -i 's/<version>/'"${version}"'/' backend/__version__.py
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -58,18 +42,19 @@ jobs:
images: |
name=zurdi15/romm
name=ghcr.io/zurdi15/romm
flavor: |
# latest on release branch, prefix dev on other branches
latest=true
prefix=${{ env.VERSION_PREFIX }},onlatest=true
suffix=${{ env.VERSION_SUFFIX }},onlatest=false
tags: |
type=raw,value=${{ inputs.version }}
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
labels: |
org.opencontainers.image.version=${{ inputs.version }}
org.opencontainers.image.version={{version}}
org.opencontainers.image.title="zurdi15/romm"
org.opencontainers.image.description="RomM (stands for Rom Manager) is a game library manager focused in retro gaming. Manage and organize all of your games from a web browser"
org.opencontainers.image.description="RomM (ROM Manager) allows you to scan, enrich, and browse your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes and custom tags, RomM is a must-have for anyone who plays on emulators."
org.opencontainers.image.licenses="GPL-3.0"
- name: Set version
run: |
sed -i 's/<version>/${{ steps.meta.outputs.version }}/' backend/__version__.py
- name: Build image
uses: docker/build-push-action@v4
with:

View File

@@ -1,4 +1,4 @@
name: run pytest
name: Run Pytest
on:
pull_request:

View File

@@ -28,12 +28,13 @@ RomM (ROM Manager) allows you to scan, enrich, and browse your game collection w
## Features
- Scans your existing games library [folder-structure] and enchances it with metadata from [IGDB][igdb]
- Scans your existing games library and enchances it with metadata from [IGDB][igdb]
- Supports a large number of **[platforms][platform-support]**
- Play games directly from the browser using [EmulatorJS][wiki-emulatorjs-url]
- Built-in [authentication][authentication] with multiple users and permissions
- Supports [MAME][mame-xml-update], [Nintendo Switch][switch-titledb-update] and PS2 naming schemes
- Detects and groups **multifile games** (e.g. PS1 games with multiple CDs)
- Can [parse tags][tag-support] in filenames (e.g. (E), (USA), (rev v1), etc.)
- Built-in [authentication][authentication] with multiple users and permissions
- View, upload, update, and delete games from any modern web browser
## Preview
@@ -120,7 +121,7 @@ As mentioned in the installation section, RomM requires a specific folder struct
</tr>
</table>
For device naming conventions, review the [Platforms Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section.
For folder naming conventions, review the [Platform Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section.
## Configuration File
@@ -180,7 +181,9 @@ When a change is detected, a scan will be scheduled for sometime in the future (
## Platform Support
If you adhere to the [RomM folder structure][folder-structure], RomM supports any platform listed in the [IGDB platforms list][igdb-platforms-list]. RomM will retrieve game information, metadata, and covers for platforms in that list. Additionally, some of these platforms have custom icons available ([learn more about platform icons in our wiki][wiki-platforms-icons-url]).
If you adhere to the [RomM folder structure][folder-structure], RomM supports all platforms listed on the [Supported Platforms][wiki-supported-platforms-url] page. **The folder is is case sensitive and must be used exactly how it appears in the list.** When scanning your library, RomM will use the folder name to determine the platform and fetch the appropriate game information, metadata, and cover art.
Additionally, some of these platforms have custom icons available ([learn more about platform icons in our wiki][wiki-platforms-icons-url]).
## Tag Support
@@ -235,9 +238,11 @@ Here are a few projects that we think you might like:
<!-- Wiki links -->
[wiki-url]: https://github.com/zurdi15/romm/wiki
[wiki-supported-platforms-url]: https://github.com/zurdi15/romm/wiki/Supported-Platforms
[wiki-authentication-url]: https://github.com/zurdi15/romm/wiki/Authentication
[wiki-platforms-icons-url]: https://github.com/zurdi15/romm/wiki/Custom-Platform-Icons
[wiki-troubleshooting-url]: https://github.com/zurdi15/romm/wiki/Troubleshooting
[wiki-emulatorjs-url]: https://github.com/zurdi15/romm/wiki/EmulatorJS-Player
<!-- Badges -->

View File

@@ -1 +1 @@
__version__ = '<version>'
__version__ = "<version>"

View File

@@ -1,12 +1,14 @@
{
"name": "romm",
"version": "2.1.0",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "romm",
"version": "0.0.1",
"hasInstallScript": true,
"license": "GPL-3.0-only",
"dependencies": {
"@mdi/font": "7.0.96",
"axios": "^1.6.0",
@@ -47,6 +49,9 @@
"vite-plugin-static-copy": "0.17.1",
"vite-plugin-vuetify": "^1.0.0-alpha.12",
"vue-tsc": "^1.8.27"
},
"engines": {
"node": "16"
}
},
"node_modules/@ampproject/remapping": {

View File

@@ -1,6 +1,23 @@
{
"name": "romm",
"private": true,
"version": "0.0.1",
"author": "Zurdi <https://github.com/zurdi15>",
"description": "A beautiful, powerful, self-hosted rom manager",
"license": "GPL-3.0-only",
"homepage": "https://github.com/zurdi15/romm",
"repository": {
"type": "git",
"url": "git+gihub.com/zurdi15/romm.git"
},
"bugs": {
"url": "https://github.com/zurdi15/romm/issues"
},
"keywords": [
"rom",
"manager",
"emulation"
],
"scripts": {
"dev": "vite --host",
"build": "npm run typecheck && vite build",
@@ -50,5 +67,8 @@
"vite-plugin-static-copy": "0.17.1",
"vite-plugin-vuetify": "^1.0.0-alpha.12",
"vue-tsc": "^1.8.27"
},
"engines": {
"node": "16"
}
}

View File

@@ -75,7 +75,7 @@ async function uploadSaves() {
<v-list-item class="px-0">
<v-file-input
@keyup.enter="uploadSaves()"
:label="`Upload ${props.rom.name}`"
label="Select save files..."
v-model="savesToUpload"
prepend-inner-icon="mdi-file"
prepend-icon=""
@@ -88,6 +88,7 @@ async function uploadSaves() {
/>
<template v-slot:append>
<v-btn
:disabled="!savesToUpload.length"
@click="uploadSaves()"
class="text-romm-green ml-3 bg-terciary"
>

View File

@@ -75,7 +75,7 @@ async function uploadStates() {
<v-list-item class="px-0">
<v-file-input
@keyup.enter="uploadStates()"
:label="`Upload ${props.rom.name}`"
label="Select state files..."
v-model="statesToUpload"
prepend-inner-icon="mdi-file"
prepend-icon=""
@@ -88,6 +88,7 @@ async function uploadStates() {
/>
<template v-slot:append>
<v-btn
:disabled="!statesToUpload.length"
@click="uploadStates()"
class="text-romm-green ml-3 bg-terciary"
>

View File

@@ -16,7 +16,7 @@ const romsStore = storeRoms();
class="py-4 pr-5"
>
<v-list-item-title class="d-flex"
><v-icon icon="mdi-upload" class="mr-2" />Upload game</v-list-item-title
><v-icon icon="mdi-upload" class="mr-2" />Upload games</v-list-item-title
>
</v-list-item>
</template>

View File

@@ -1,5 +1,14 @@
[tool.poetry]
package-mode = false
name = "romm"
version = "0.0.1"
description = "A beautiful, powerful, self-hosted rom manager"
license = "GNU GPLv3"
repository = "https://github.com/zurdi15/romm"
authors = [
"Zurdi <https://github.com/zurdi15/>",
"Georges-Antoine Assi <contact@me.gantoine.com>",
]
[tool.poetry.dependencies]
python = "^3.10"

View File

@@ -20,8 +20,8 @@
<PostArgs/>
<CPUset/>
<Requires>
Redis (optional)
MariaDB (optional)
Redis
MariaDB
</Requires>
<Screenshot>https://raw.githubusercontent.com/zurdi15/romm/master/.github/resources/screenshots/home.png</Screenshot>
<Screenshot>https://raw.githubusercontent.com/zurdi15/romm/master/.github/resources/screenshots/gallery.png</Screenshot>
@@ -30,7 +30,7 @@
<Config Name="Port" Target="8080" Default="8080" Mode="tcp" Description="" Type="Port" Display="always" Required="false" Mask="false">8080</Config>
<Config Name="Library" Target="/romm/library/" Default="/romm/library" Mode="rw" Description="Game files" Type="Path" Display="always" Required="true" Mask="false"/>
<Config Name="Resources" Target="/romm/resources/" Default="" Mode="rw" Description="Metadata storage (covers, screenshots, etc.)" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/romm/resources</Config>
<Config Name="Assets" Target="/romm/assets/" Default="" Mode="rw" Description="Frontend assets" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/romm/assets</Config>
<Config Name="Assets" Target="/romm/assets/" Default="" Mode="rw" Description="Uploaded saves, states, etc." Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/romm/assets</Config>
<Config Name="Logs" Target="/romm/logs" Default="" Mode="rw" Description="Log file storage" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/appdata/romm/logs</Config>
<Config Name="IGDB_CLIENT_ID" Target="IGDB_CLIENT_ID" Default="" Mode="" Description="IGDB Client ID" Type="Variable" Display="always" Required="true" Mask="false"/>
<Config Name="IGDB_CLIENT_SECRET" Target="IGDB_CLIENT_SECRET" Default="" Mode="" Description="IGDB Client Secret" Type="Variable" Display="always" Required="true" Mask="true"/>