Skip to content

Commit

Permalink
Merge pull request #1428 from rommapp/master
Browse files Browse the repository at this point in the history
v3.7.0
  • Loading branch information
gantoine authored Jan 7, 2025
2 parents f64848b + 390156b commit 8994fe1
Show file tree
Hide file tree
Showing 648 changed files with 10,674 additions and 4,965 deletions.
54 changes: 44 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,50 @@ jobs:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate Docker metadata
- name: Generate Docker metadata (slim)
id: meta-slim
uses: docker/metadata-action@v5
with:
images: |
name=rommapp/romm
name=ghcr.io/rommapp/romm
flavor: |
latest=auto
suffix=-slim,onlatest=true
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
labels: |
org.opencontainers.image.version={{version}}-slim
org.opencontainers.image.title="rommapp/romm"
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="AGPLv3"
- name: Generate Docker metadata (full)
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
name=rommapp/romm
Expand All @@ -52,18 +72,32 @@ jobs:
org.opencontainers.image.version={{version}}
org.opencontainers.image.title="rommapp/romm"
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"
org.opencontainers.image.licenses="AGPLv3"
- name: Set version
run: |
sed -i 's/<version>/${{ steps.meta.outputs.version }}/' backend/__version__.py
- name: Build image
uses: docker/build-push-action@v4
- name: Build slim image
id: build-slim
uses: docker/build-push-action@v6
with:
file: docker/Dockerfile
context: .
push: true
platforms: linux/arm64,linux/amd64
tags: ${{ steps.meta-slim.outputs.tags }}
labels: ${{ steps.meta-slim.outputs.labels }}
target: slim-image

- name: Build full image
id: build-full
uses: docker/build-push-action@v6
with:
file: docker/Dockerfile
context: .
push: true
platforms: linux/arm64,linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
target: full-image
4 changes: 2 additions & 2 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Install mariadb connectors
run: |
Expand All @@ -43,7 +43,7 @@ jobs:
pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/trunk-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ jobs:
contents: read # For repo checkout
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Trunk Check
uses: trunk-io/trunk-action@v1
4 changes: 2 additions & 2 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: "18"

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ __pycache__

# database
mariadb
*.sqlite

# used to mock the library/config/mounts/etc while testing
frontend/assets/romm
Expand Down
28 changes: 14 additions & 14 deletions .trunk/trunk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
# To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml
version: 0.1
cli:
version: 1.22.4
version: 1.22.8
# Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins)
plugins:
sources:
- id: trunk
ref: v1.6.2
ref: v1.6.5
uri: https://github.com/trunk-io/plugins
# Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes)
runtimes:
Expand All @@ -18,25 +18,25 @@ runtimes:
# This is the section where you manage your linters. (https://docs.trunk.io/check/configuration)
lint:
enabled:
- markdownlint@0.41.0
- eslint@9.9.1
- [email protected].1
- bandit@1.7.9
- black@24.8.0
- [email protected].239
- markdownlint@0.43.0
- eslint@9.16.0
- [email protected].4
- bandit@1.8.0
- black@24.10.0
- [email protected].332
- git-diff-check
- [email protected]
- [email protected]
- osv-scanner@1.8.4
- [email protected].2
- prettier@3.3.3
- ruff@0.6.3
- osv-scanner@1.9.1
- [email protected].3
- prettier@3.4.2
- ruff@0.8.2
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- trivy@0.54.1
- trufflehog@3.81.10
- trivy@0.56.2
- trufflehog@3.85.0
- [email protected]
ignore:
- linters: [ALL]
Expand Down
16 changes: 0 additions & 16 deletions .zed/settings.json

This file was deleted.

6 changes: 5 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ Please note that this project adheres to the Contributor Covenant [code of condu

## Contributing to the Wiki

If you would like to contribute to the project's [documentation](https://github.com/rommapp/romm/wiki), reach out to the maintainers to get edit access. We welcome any contributions that help improve the documentation (new pages, updates, or corrections).
If you would like to contribute to the project's [documentation](https://github.com/rommapp/romm/wiki), open a pull request against [the wiki repo](https://github.com/rommapp/wiki). We welcome any contributions that help improve the documentation (new pages, updates, or corrections).

## Adding Translations

If you would like to translate the project into another language, create a new folder under the `frontend/src/locales` directory, and follow the existing language files as a template. Once you've created the new language file, open a pull request to add it to the project.

## How to Contribute Code

Expand Down
6 changes: 3 additions & 3 deletions DEVELOPER_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ CFLAGS="-Wno-error=incompatible-pointer-types" poetry install --sync
#### - Spin up mariadb in docker

```sh
docker-compose up -d
docker compose up -d
```

#### - Run the backend
Expand Down Expand Up @@ -125,12 +125,12 @@ trunk check
### - Create the test user and database with root user

```sh
docker exec -i mariadb mariadb -u root -p<root password> < backend/romm_test/setup.sql
docker exec -i romm-mariadb-dev mariadb -uroot -p<root password> < backend/romm_test/setup.sql
```

### - Run tests

*\_\_*Migrations will be run automatically when running the tests.\_\_\*
*\_*Migrations will be run automatically when running the tests.\_\_\_

```sh
cd backend
Expand Down
22 changes: 7 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@

# Overview

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.
RomM (ROM Manager) allows you to scan, enrich, browse and play 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.

## Features

- Scans your existing games library and enhances it with metadata from [IGDB][igdb-api] and [MobyGames][mobygames-api]
- Supports a large number of **[platforms][platform-support]**
- Play games directly from the browser using [EmulatorJS][wiki-emulatorjs]
- Play games directly from the browser using [EmulatorJS][wiki-emulatorjs] and RuffleRS
- Share your library with friends while [limiting access and permissions][wiki-authentication]
- Supports MAME, Nintendo Switch, and Sony Playstation naming schemes
- Detects and groups **multifile games** (e.g. PS1 games with multiple CDs)
Expand All @@ -61,14 +61,7 @@ RomM (ROM Manager) allows you to scan, enrich, and browse your game collection w

# Installation

Before running the [image][docker-tags], please ensure that Docker is installed and running on your system.

1. [Generate API keys][wiki-generate-api-keys] for IGDB and/or MobyGames to fetch metadata.
2. Verify that your library folder structure matches one of the options listed in the [folder structure][folder-structure] section.
3. Create a docker-compose.yml file by referring to the example [docker-compose.yml][docker-compose-example] file for guidance, and customize it for your setup with [the available environment variables][wiki-env-variables].
4. Launch the container(s) with `docker-compose up -d`.

> [!NOTE] > **If you are having issues with RomM, please review the [wiki page][wiki-troubleshooting] for troubleshooting steps and common issues.**
To start using RomM, check out the [Quick Start Guide][wiki-quick-start-guide] in the wiki. If you are having issues with RomM, please review the page for [troubleshooting steps][wiki-troubleshooting] and common issues, or join the [Discord][discord-invite] for support from the community.

# Configuration

Expand Down Expand Up @@ -202,7 +195,8 @@ Here are a few projects that we think you might like:
- [EmulatorJS](https://emulatorjs.org/): An embeddable, browser-based emulator
- [RetroDECK](https://retrodeck.net/): Retro gaming on SteamOS and Linux
- [ES-DE Frontend](https://es-de.org/): Emulator frontend for Linux, macOS and Windows
- [Gaseous](https://github.com/gaseous-project/gaseous-server): Another self-hosted ROM manager
- [Gaseous](https://github.com/gaseous-project/gaseous-server): Another ROM manager with web-based emulator
- [Retrom](https://github.com/JMBeresford/retrom): A centralized game library/collection management service
- [Steam ROM Manager](https://steamgriddb.github.io/steam-rom-manager/): An app for managing ROMs in Steam

<!-- Sections -->
Expand All @@ -225,9 +219,8 @@ Here are a few projects that we think you might like:
[wiki-platforms-icons]: https://github.com/rommapp/romm/wiki/Custom-Platform-Icons
[wiki-troubleshooting]: https://github.com/rommapp/romm/wiki/Troubleshooting
[wiki-emulatorjs]: https://github.com/rommapp/romm/wiki/EmulatorJS-Player
[wiki-env-variables]: https://github.com/rommapp/romm/wiki/Environment-Variables
[wiki-scheduled-tasks]: https://github.com/rommapp/romm/wiki/Scheduled-Tasks
[wiki-generate-api-keys]: https://github.com/rommapp/romm/wiki/Generate-API-Keys
[wiki-quick-start-guide]: https://github.com/rommapp/romm/wiki/Quick-Start-Guide

<!-- Badges -->

Expand All @@ -247,12 +240,11 @@ Here are a few projects that we think you might like:

[discord-invite-img]: https://invidget.switchblade.xyz/P5HtHnhUDH
[discord-invite]: https://discord.gg/P5HtHnhUDH
[oc-donate-img]: https://opencollective.com/romm/donate/button@2x.png?color=blue
[oc-donate-img]: https://opencollective.com/romm/donate/button.png?color=blue
[oc-donate]: https://opencollective.com/romm

<!-- External links -->

[docker-tags]: https://hub.docker.com/r/rommapp/romm/tags
[igdb-api]: https://api-docs.igdb.com/#account-creation
[mobygames-api]: https://www.mobygames.com/info/api/
[big-bear-casaos]: https://github.com/bigbeartechworld/big-bear-casaos
Expand Down
Loading

0 comments on commit 8994fe1

Please sign in to comment.