summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-randovania.spec790
-rw-r--r--sources1
3 files changed, 792 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..1005b6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/randovania-5.7.0.tar.gz
diff --git a/python-randovania.spec b/python-randovania.spec
new file mode 100644
index 0000000..44cb2e1
--- /dev/null
+++ b/python-randovania.spec
@@ -0,0 +1,790 @@
+%global _empty_manifest_terminate_build 0
+Name: python-randovania
+Version: 5.7.0
+Release: 1
+Summary: A randomizer platform for a multitude of games.
+License: GNU General Public License v3 or later (GPLv3+)
+URL: https://github.com/randovania/randovania
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5e/dc/ab9352dc69c644ec30df45a6caa4ddc37c2091829e06cf03154b3f72bc64/randovania-5.7.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-networkx
+Requires: python3-bitstruct
+Requires: python3-construct
+Requires: python3-tenacity
+Requires: python3-slugify
+Requires: python3-socketio[asyncio_client]
+Requires: python3-aiohttp
+Requires: python3-aiofiles
+Requires: python3-attrs
+Requires: python3-frozendict
+Requires: python3-dulwich
+Requires: python3-py-randomprime
+Requires: python3-mp2hudcolor
+Requires: python3-retro-data-structures
+Requires: python3-SuperDuperMetroid
+Requires: python3-open-dread-rando
+Requires: python3-open-prime-rando
+Requires: python3-cave-story-randomizer
+Requires: python3-tsc-utils
+Requires: python3-random-enemy-attributes
+Requires: python3-sentry-sdk
+Requires: python3-PySide6-Essentials
+Requires: python3-appdirs
+Requires: python3-qasync
+Requires: python3-async-wiiload
+Requires: python3-dolphin-memory-engine
+Requires: python3-markdown
+Requires: python3-matplotlib
+Requires: python3-nod
+Requires: python3-pid
+Requires: python3-pypresence
+Requires: python3-pyqtdarktheme
+Requires: python3-cryptography
+Requires: python3-py-cord
+Requires: python3-eventlet
+Requires: python3-flask-discord
+Requires: python3-flask-socketio
+Requires: python3-prometheus-flask-exporter
+Requires: python3-peewee
+Requires: python3-requests-oauthlib
+Requires: python3-Pillow
+Requires: python3-graphviz
+Requires: python3-sentry-sdk[flask]
+Requires: python3-cachetools
+Requires: python3-pytest
+Requires: python3-pytest-cov
+Requires: python3-pytest-qt
+Requires: python3-pytest-asyncio
+Requires: python3-pytest-mock
+Requires: python3-pytest-localftpserver
+Requires: python3-pytest-xdist[psutil]
+Requires: python3-mock
+
+%description
+<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. -->
+
+# Randovania
+
+Welcome to Randovania, a randomizer platform for a multitude of games.
+
+New here or looking to install? Check [our website](https://randovania.github.io/).
+
+<!-- Begin SUPPORTED -->
+
+### Supported Games
+ - Cave Story
+ - Metroid Dread
+ - Metroid Prime
+ - Metroid Prime 2: Echoes
+
+<!-- End SUPPORTED -->
+
+<!-- Begin EXPERIMENTAL -->
+
+### Experimental Games
+ - Metroid Prime 3: Corruption
+ - Metroid: Samus Returns
+ - Super Metroid
+
+<!-- End EXPERIMENTAL -->
+
+<!-- Begin WELCOME -->
+
+Here you will be able to randomize many aspects of either game, while still being ensured it's possible to
+finish without any trick or glitch! What can be randomized?
+
+* Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts.
+
+* Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of
+everyone involved, no matter what game they're playing!
+
+* Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case,
+there's advanced options for how they're shuffled.
+
+* The location you start the game in as well as the items you start with. If you're feeling brave,
+you can even shuffle items you normally start with, like the Power Beam and Scan Visor.
+
+So have fun and start randomizing.
+
+<!-- End WELCOME -->
+
+# Installation
+
+## Windows
+
+In the [releases page](https://github.com/randovania/randovania/releases), we have zip files
+with everything ready to use. Just extract and run!
+
+## Linux
+
+### Running (in-source)
+
+1. Clone this repository (downloading the source zip is not supported and will not work)
+2. Open a terminal in the repository root
+3. Fetch the tags from the repo:
+
+ `$ git fetch --tags`
+4. Checkout the latest tag (replace v4.0.1 with the latest release version):
+
+ `$ git checkout v4.0.1`
+5. Prepare the virtual environment and install dependencies:
+
+ `$ tools/prepare_virtual_env.sh`
+6. Run the program from source:
+
+ `$ tools/start_client.sh`
+
+### Running Natively and Multiworld
+
+1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application:
+
+ ```console
+ $ . venv/bin/activate
+ (venv) $ export PRODUCTION=true
+ (venv) $ python tools/create_release.py
+ ```
+2. Navigate into the build/randovania directory
+3. Install the generated randovania.pkg or run the generated executable
+
+<!-- Begin COMMUNITY -->
+
+# Community
+
+Join the Randovania Discord: <https://discord.gg/M23gCxj6fw>
+
+Invite links for specific games' servers can be found in the `#game-communities` channel in our server.
+
+<!-- End COMMUNITY -->
+
+<!-- Begin CREDITS -->
+
+# Credits
+
+GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions
+by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors).
+
+[BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made <https://randomizer.metroidprime.run/>, from which the GUI was based.
+
+Website created by [Hugoshido](https://twitch.tv/hugoshido).
+
+Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license.
+
+Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/).
+
+## Games
+
+### Metroid Prime 1
+* Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty.
+* Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury).
+* Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 2: Echoes
+* Game patching written by [Claris](https://www.twitch.tv/claris).
+* Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron).
+* [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the
+[Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt).
+* Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 3: Corruption
+* Game patching written by [gollop](https://github.com/gollop).
+* Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah).
+
+### Super Metroid
+* Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury).
+* Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88).
+* Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265).
+* Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others.
+
+### Cave Story
+* Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt).
+* Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru.
+* Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors).
+
+### Metroid Dread
+* Game Patching by:
+ * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/)
+ * [duncathan_salt](https://twitter.com/duncathan_salt)
+ * [ScorelessPine](https://github.com/ScorelessPine)
+ * [Arcanox](https://twitter.com/ArcanoxDragon)
+ * [Migs](https://www.twitch.tv/migslive)
+ * [hyperbola0](https://github.com/steven11sjf)
+
+* Logic Database by:
+ * [KirbymastaH](https://www.twitch.tv/kirbymastah)
+ * [Dyceron](https://www.twitch.tv/dyceron)
+ * [XenoWars](https://www.twitch.tv/xenowars1)
+ * [Izzychu](https://github.com/Isachu)
+ * [Hugoshido](https://twitch.tv/hugoshido)
+
+* Assets by:
+ * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ).
+ * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ.
+ * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100).
+
+## Auto Tracker
+* Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS).
+* Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie).
+
+## Multiworld
+Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter).
+
+<!-- End CREDITS -->
+
+# Developer Help
+
+## Dependencies
+
+* [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe)
+* [Git](https://git-scm.com/downloads)
+
+## Setup
+
+Getting started:
+ 1. Clone this repository (downloading the zip is *not* supported and will not work)
+ 2. Open a terminal in the repository root
+ 3. Run the following file:
+ 1. Windows: `tools/prepare_virtual_env.bat`
+ 2. Linux/macOS: `tools/prepare_virtual_env.sh`
+ 4. You should see "Setup finished successfully." visible when the command finishes.
+
+In order to start Randovania, open:
+ 1. Windows: `tools/start_client.bat`
+ 2. Linux/macOS: `tools/start_client.sh`
+
+In order to update your repository:
+ 1. Update the git repository. (With `git pull` or anything else)
+ 2. Make sure that Randovania is closed.
+ 3. Re-run the steps from "Getting Started", starting at step 2.
+ 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again.
+ 4. Open Randovania normally.
+
+In order to run the tests:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python -m pytest test`.
+
+In order to run the server:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python tools/prepare_dev_server_config.py` once.
+ 5. If you wish to use any Discord functionality, you'll need to create an app in Discord
+ and fill both ids in `tools/dev-server-configuration.json`.
+ 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`.
+
+Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/)
+
+# Documentation
+
+- Unfamiliar with a term? Check the [glossary](docs/Glossary.md).
+- Adding a new game? Check the [dedicated guide](docs/New%20Game.md).
+- Changing a data format? Check the [migrations documentation](docs/Migrations.md).
+- Working with the logic database?
+ - [Read how the database is organized](docs/Database%20Format.md).
+ - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor.
+
+
+%package -n python3-randovania
+Summary: A randomizer platform for a multitude of games.
+Provides: python-randovania
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-randovania
+<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. -->
+
+# Randovania
+
+Welcome to Randovania, a randomizer platform for a multitude of games.
+
+New here or looking to install? Check [our website](https://randovania.github.io/).
+
+<!-- Begin SUPPORTED -->
+
+### Supported Games
+ - Cave Story
+ - Metroid Dread
+ - Metroid Prime
+ - Metroid Prime 2: Echoes
+
+<!-- End SUPPORTED -->
+
+<!-- Begin EXPERIMENTAL -->
+
+### Experimental Games
+ - Metroid Prime 3: Corruption
+ - Metroid: Samus Returns
+ - Super Metroid
+
+<!-- End EXPERIMENTAL -->
+
+<!-- Begin WELCOME -->
+
+Here you will be able to randomize many aspects of either game, while still being ensured it's possible to
+finish without any trick or glitch! What can be randomized?
+
+* Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts.
+
+* Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of
+everyone involved, no matter what game they're playing!
+
+* Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case,
+there's advanced options for how they're shuffled.
+
+* The location you start the game in as well as the items you start with. If you're feeling brave,
+you can even shuffle items you normally start with, like the Power Beam and Scan Visor.
+
+So have fun and start randomizing.
+
+<!-- End WELCOME -->
+
+# Installation
+
+## Windows
+
+In the [releases page](https://github.com/randovania/randovania/releases), we have zip files
+with everything ready to use. Just extract and run!
+
+## Linux
+
+### Running (in-source)
+
+1. Clone this repository (downloading the source zip is not supported and will not work)
+2. Open a terminal in the repository root
+3. Fetch the tags from the repo:
+
+ `$ git fetch --tags`
+4. Checkout the latest tag (replace v4.0.1 with the latest release version):
+
+ `$ git checkout v4.0.1`
+5. Prepare the virtual environment and install dependencies:
+
+ `$ tools/prepare_virtual_env.sh`
+6. Run the program from source:
+
+ `$ tools/start_client.sh`
+
+### Running Natively and Multiworld
+
+1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application:
+
+ ```console
+ $ . venv/bin/activate
+ (venv) $ export PRODUCTION=true
+ (venv) $ python tools/create_release.py
+ ```
+2. Navigate into the build/randovania directory
+3. Install the generated randovania.pkg or run the generated executable
+
+<!-- Begin COMMUNITY -->
+
+# Community
+
+Join the Randovania Discord: <https://discord.gg/M23gCxj6fw>
+
+Invite links for specific games' servers can be found in the `#game-communities` channel in our server.
+
+<!-- End COMMUNITY -->
+
+<!-- Begin CREDITS -->
+
+# Credits
+
+GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions
+by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors).
+
+[BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made <https://randomizer.metroidprime.run/>, from which the GUI was based.
+
+Website created by [Hugoshido](https://twitch.tv/hugoshido).
+
+Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license.
+
+Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/).
+
+## Games
+
+### Metroid Prime 1
+* Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty.
+* Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury).
+* Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 2: Echoes
+* Game patching written by [Claris](https://www.twitch.tv/claris).
+* Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron).
+* [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the
+[Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt).
+* Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 3: Corruption
+* Game patching written by [gollop](https://github.com/gollop).
+* Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah).
+
+### Super Metroid
+* Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury).
+* Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88).
+* Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265).
+* Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others.
+
+### Cave Story
+* Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt).
+* Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru.
+* Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors).
+
+### Metroid Dread
+* Game Patching by:
+ * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/)
+ * [duncathan_salt](https://twitter.com/duncathan_salt)
+ * [ScorelessPine](https://github.com/ScorelessPine)
+ * [Arcanox](https://twitter.com/ArcanoxDragon)
+ * [Migs](https://www.twitch.tv/migslive)
+ * [hyperbola0](https://github.com/steven11sjf)
+
+* Logic Database by:
+ * [KirbymastaH](https://www.twitch.tv/kirbymastah)
+ * [Dyceron](https://www.twitch.tv/dyceron)
+ * [XenoWars](https://www.twitch.tv/xenowars1)
+ * [Izzychu](https://github.com/Isachu)
+ * [Hugoshido](https://twitch.tv/hugoshido)
+
+* Assets by:
+ * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ).
+ * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ.
+ * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100).
+
+## Auto Tracker
+* Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS).
+* Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie).
+
+## Multiworld
+Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter).
+
+<!-- End CREDITS -->
+
+# Developer Help
+
+## Dependencies
+
+* [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe)
+* [Git](https://git-scm.com/downloads)
+
+## Setup
+
+Getting started:
+ 1. Clone this repository (downloading the zip is *not* supported and will not work)
+ 2. Open a terminal in the repository root
+ 3. Run the following file:
+ 1. Windows: `tools/prepare_virtual_env.bat`
+ 2. Linux/macOS: `tools/prepare_virtual_env.sh`
+ 4. You should see "Setup finished successfully." visible when the command finishes.
+
+In order to start Randovania, open:
+ 1. Windows: `tools/start_client.bat`
+ 2. Linux/macOS: `tools/start_client.sh`
+
+In order to update your repository:
+ 1. Update the git repository. (With `git pull` or anything else)
+ 2. Make sure that Randovania is closed.
+ 3. Re-run the steps from "Getting Started", starting at step 2.
+ 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again.
+ 4. Open Randovania normally.
+
+In order to run the tests:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python -m pytest test`.
+
+In order to run the server:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python tools/prepare_dev_server_config.py` once.
+ 5. If you wish to use any Discord functionality, you'll need to create an app in Discord
+ and fill both ids in `tools/dev-server-configuration.json`.
+ 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`.
+
+Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/)
+
+# Documentation
+
+- Unfamiliar with a term? Check the [glossary](docs/Glossary.md).
+- Adding a new game? Check the [dedicated guide](docs/New%20Game.md).
+- Changing a data format? Check the [migrations documentation](docs/Migrations.md).
+- Working with the logic database?
+ - [Read how the database is organized](docs/Database%20Format.md).
+ - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor.
+
+
+%package help
+Summary: Development documents and examples for randovania
+Provides: python3-randovania-doc
+%description help
+<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. -->
+
+# Randovania
+
+Welcome to Randovania, a randomizer platform for a multitude of games.
+
+New here or looking to install? Check [our website](https://randovania.github.io/).
+
+<!-- Begin SUPPORTED -->
+
+### Supported Games
+ - Cave Story
+ - Metroid Dread
+ - Metroid Prime
+ - Metroid Prime 2: Echoes
+
+<!-- End SUPPORTED -->
+
+<!-- Begin EXPERIMENTAL -->
+
+### Experimental Games
+ - Metroid Prime 3: Corruption
+ - Metroid: Samus Returns
+ - Super Metroid
+
+<!-- End EXPERIMENTAL -->
+
+<!-- Begin WELCOME -->
+
+Here you will be able to randomize many aspects of either game, while still being ensured it's possible to
+finish without any trick or glitch! What can be randomized?
+
+* Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts.
+
+* Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of
+everyone involved, no matter what game they're playing!
+
+* Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case,
+there's advanced options for how they're shuffled.
+
+* The location you start the game in as well as the items you start with. If you're feeling brave,
+you can even shuffle items you normally start with, like the Power Beam and Scan Visor.
+
+So have fun and start randomizing.
+
+<!-- End WELCOME -->
+
+# Installation
+
+## Windows
+
+In the [releases page](https://github.com/randovania/randovania/releases), we have zip files
+with everything ready to use. Just extract and run!
+
+## Linux
+
+### Running (in-source)
+
+1. Clone this repository (downloading the source zip is not supported and will not work)
+2. Open a terminal in the repository root
+3. Fetch the tags from the repo:
+
+ `$ git fetch --tags`
+4. Checkout the latest tag (replace v4.0.1 with the latest release version):
+
+ `$ git checkout v4.0.1`
+5. Prepare the virtual environment and install dependencies:
+
+ `$ tools/prepare_virtual_env.sh`
+6. Run the program from source:
+
+ `$ tools/start_client.sh`
+
+### Running Natively and Multiworld
+
+1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application:
+
+ ```console
+ $ . venv/bin/activate
+ (venv) $ export PRODUCTION=true
+ (venv) $ python tools/create_release.py
+ ```
+2. Navigate into the build/randovania directory
+3. Install the generated randovania.pkg or run the generated executable
+
+<!-- Begin COMMUNITY -->
+
+# Community
+
+Join the Randovania Discord: <https://discord.gg/M23gCxj6fw>
+
+Invite links for specific games' servers can be found in the `#game-communities` channel in our server.
+
+<!-- End COMMUNITY -->
+
+<!-- Begin CREDITS -->
+
+# Credits
+
+GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions
+by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors).
+
+[BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made <https://randomizer.metroidprime.run/>, from which the GUI was based.
+
+Website created by [Hugoshido](https://twitch.tv/hugoshido).
+
+Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license.
+
+Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/).
+
+## Games
+
+### Metroid Prime 1
+* Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty.
+* Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury).
+* Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 2: Echoes
+* Game patching written by [Claris](https://www.twitch.tv/claris).
+* Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron).
+* [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the
+[Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt).
+* Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive).
+
+### Metroid Prime 3: Corruption
+* Game patching written by [gollop](https://github.com/gollop).
+* Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah).
+
+### Super Metroid
+* Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury).
+* Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88).
+* Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265).
+* Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others.
+
+### Cave Story
+* Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt).
+* Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru.
+* Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors).
+
+### Metroid Dread
+* Game Patching by:
+ * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/)
+ * [duncathan_salt](https://twitter.com/duncathan_salt)
+ * [ScorelessPine](https://github.com/ScorelessPine)
+ * [Arcanox](https://twitter.com/ArcanoxDragon)
+ * [Migs](https://www.twitch.tv/migslive)
+ * [hyperbola0](https://github.com/steven11sjf)
+
+* Logic Database by:
+ * [KirbymastaH](https://www.twitch.tv/kirbymastah)
+ * [Dyceron](https://www.twitch.tv/dyceron)
+ * [XenoWars](https://www.twitch.tv/xenowars1)
+ * [Izzychu](https://github.com/Isachu)
+ * [Hugoshido](https://twitch.tv/hugoshido)
+
+* Assets by:
+ * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ).
+ * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ.
+ * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100).
+
+## Auto Tracker
+* Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS).
+* Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie).
+
+## Multiworld
+Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter).
+
+<!-- End CREDITS -->
+
+# Developer Help
+
+## Dependencies
+
+* [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe)
+* [Git](https://git-scm.com/downloads)
+
+## Setup
+
+Getting started:
+ 1. Clone this repository (downloading the zip is *not* supported and will not work)
+ 2. Open a terminal in the repository root
+ 3. Run the following file:
+ 1. Windows: `tools/prepare_virtual_env.bat`
+ 2. Linux/macOS: `tools/prepare_virtual_env.sh`
+ 4. You should see "Setup finished successfully." visible when the command finishes.
+
+In order to start Randovania, open:
+ 1. Windows: `tools/start_client.bat`
+ 2. Linux/macOS: `tools/start_client.sh`
+
+In order to update your repository:
+ 1. Update the git repository. (With `git pull` or anything else)
+ 2. Make sure that Randovania is closed.
+ 3. Re-run the steps from "Getting Started", starting at step 2.
+ 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again.
+ 4. Open Randovania normally.
+
+In order to run the tests:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python -m pytest test`.
+
+In order to run the server:
+ 1. Run both "Getting started" and "Start Randovania" steps.
+ 2. Activate the virtual env. Check start_client.bat/sh for details.
+ 3. Run `python -m pip install -r requirements.txt`.
+ 4. Run `python tools/prepare_dev_server_config.py` once.
+ 5. If you wish to use any Discord functionality, you'll need to create an app in Discord
+ and fill both ids in `tools/dev-server-configuration.json`.
+ 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`.
+
+Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/)
+
+# Documentation
+
+- Unfamiliar with a term? Check the [glossary](docs/Glossary.md).
+- Adding a new game? Check the [dedicated guide](docs/New%20Game.md).
+- Changing a data format? Check the [migrations documentation](docs/Migrations.md).
+- Working with the logic database?
+ - [Read how the database is organized](docs/Database%20Format.md).
+ - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor.
+
+
+%prep
+%autosetup -n randovania-5.7.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-randovania -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 5.7.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..54bf279
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e434f4d3f234fe4a05c9b48873af180f randovania-5.7.0.tar.gz