diff --git a/DEVELOPERS.md b/DEVELOPERS.md index da5b8d6..1b79308 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -1,5 +1,8 @@ # TODO: link to here from sphinx docs +# Setting up precommit hooks +pre-commit install + # Fetching submodules git submodule update --recursive --init @@ -9,5 +12,7 @@ uv pip install -e .[dev] # Building documentation sphinx-build -M html source build -a -# Building installer package -TBD +# Building standalone DZGUI release binaries +1. Run `./scripts/dl_pyapp.sh` +2. Run `python3 scripts/release.py` +3. Generate a release and tag against the bundled `dzgui` executable diff --git a/LICENSE b/LICENSE index 89ad0bb..1ed2981 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,6 @@ -For additional licenses to submodules, see docs/licenses. +Additional licenses to git submodules not explicitly shipped with the source code: +python-a2s: https://raw.githubusercontent.com/Yepoleb/python-a2s/refs/heads/master/LICENSE +dayzquery: https://raw.githubusercontent.com/Yepoleb/dayzquery/refs/heads/master/LICENSE GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 969add7..95f9db0 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ ## What this is -DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. +DZGUI is a turnkey browser and mod manager for DayZ on Linux. It allows you to connect to both official and modded/community DayZ servers on Linux via a graphical user interface (GUI). This overcomes certain limitations in the Linux client and helps prepare the game to launch by providing features like: -- Search for and display server metadata in a table (server name, player count, ping, queue size, current gametime, distance, IP) +- Search for and display global and LAN servers via an interactive table +- Supports official, third-party, and modded DayZ servers +- Automatically find and prepare mods being requested by servers - Add/delete/manage favorite servers by IP or ID - Quick-connect to favorite/recent servers -- Find and prepare mods being requested by servers (choose from manual or automatic installation) -- Bulk delete/update local mods -- Concatenate launch options to pass to Steam -- Connect to mod-enabled LAN servers +- Manage local mods and symlinks +- Prepare launch options to pass to Steam ## Setup and usage -Refer to the documentation for installation and setup instructions: +Please refer to the documentation for installation and setup instructions: - [GitHub](https://aclist.github.io/dzgui/index.html) -- [Mirror (Codeberg)](https://aclist.codeberg.page) +- [Codeberg (Mirror)](https://aclist.codeberg.page) ![A screenshot of DZGUI](/images/example.png) @@ -24,4 +24,14 @@ Refer to the documentation for installation and setup instructions: Geolocation records from [DB-IP](https://db-ip.com) under [CC 4.0 license](https://creativecommons.org/licenses/by/4.0/) -# TODO: mention third party libraries +This tool uses [python-a2s](https://github.com/Yepoleb/python-a2s) and [dayzquery](https://github.com/Yepoleb/dayzquery) as submodules; licenses for these submodules can be found in the LICENSES file +of the project root. + +Both the geolocation records and submodules listed above are not shipped with the source code, but are retrieved and assembled at runtime. + +Finally, executable versions of DZGUI shipped as release binaries are thin wrappers around the Python interpreter, and also retrieve and assemble the above dependencies at runtime on the end-user's +machine, rather than using pre-compiled source code. Users wishing to review these dependencies can inspect the 'pyproject.toml' manifest in the project root. + +## Disclaimer + +DZGUI is beta-quality software and is provided as-is. diff --git a/pyproject.toml b/pyproject.toml index cc2d4c8..44ace5b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,11 @@ Issues = "https://github.com/aclist/dzgui/issues" Changelog = "https://github.com/aclist/dzgui/blob/main/CHANGELOG.md" [project.optional-dependencies] -docs = ["sphinx"] +docs = [ + "sphinx==9.0.4", + "sphinx-rtd_theme==3.1.0", + "sphinx-copybutton==0.5.2" +] test = [ "black==25.1.0", "pre-commit==4.4.0", @@ -55,6 +59,7 @@ lint = [ "types-psutil==7.2.2.20260508", ] build = [ + "pre-commit==4.4.0", "build==1.5.0", ] diff --git a/scripts/release.py b/scripts/release.py index 530d2bf..5fff112 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -4,7 +4,6 @@ import subprocess from importlib import metadata from pathlib import Path -from typing import Any from dzgui.const.constants import APP_NAME_LOWER