diff --git a/.gitignore b/.gitignore index 73744d0..78fde29 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ uv.lock .coverage pyapp-latest/ dist/ +cpython diff --git a/DEVELOPERS.md b/DEVELOPERS.md index 1b79308..49f9e49 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -14,5 +14,10 @@ sphinx-build -M html source build -a # 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 +# TODO: secondary script that packs this archive +2. Download cpython 3.13, linux, gnu, v3 +https://github.com/astral-sh/python-build-standalone/releases/download/20251014/cpython-3.13.9%2B20251014-x86_64_v3-unknown-linux-gnu-install_only_stripped.tar.gz +3. Explicitly install dependencies into site-packages +4. Pack back into a tarball +5. Run `python3 scripts/release.py` +6. Generate a release and tag against the bundled `dzgui` executable diff --git a/dzgui/main.py b/dzgui/main.py index cec454f..9ca1018 100644 --- a/dzgui/main.py +++ b/dzgui/main.py @@ -112,6 +112,9 @@ def main() -> None: copy_state_files(xdg_paths["XDG_STATE_HOME"]) # TODO: add logging inside wizard SetupWizard(_is_steam_deck, XDG.config) + + # NOTE: implies that setup wizard failed or was closed + if has_new_config(XDG.config) is False: return setup_logger(XDG.debug) @@ -127,7 +130,7 @@ def main() -> None: if has_steam_client() is False: EarlyAlertDialog(init.requires_steam) - # NOTE: clear versions file of unlinked mods + # NOTE: clears versions file of unlinked mods rebuild_symlinks(XDG.config) remove_stale_signatures(XDG.config, XDG.version) diff --git a/dzgui/managers/notes.py b/dzgui/managers/notes.py index 73beaa6..8782fb4 100644 --- a/dzgui/managers/notes.py +++ b/dzgui/managers/notes.py @@ -20,7 +20,10 @@ logger = logging.getLogger(APP_NAME) class NoteManager: def __init__(self, controller: "Controller", path: "Path") -> None: self.notes_path = path - self.cache: dict[str, str] = read_json(self.notes_path) + try: + self.cache: dict[str, str] = read_json(self.notes_path) + except Exception: + self.cache = {} def add_note(self, server: str, note: str) -> None: self.cache[server] = note diff --git a/dzgui/strings/wizard.py b/dzgui/strings/wizard.py index 56c9053..2298155 100644 --- a/dzgui/strings/wizard.py +++ b/dzgui/strings/wizard.py @@ -67,4 +67,4 @@ label_client = "Steam client" ### Completion page heading_completion = "Setup complete" -blurb_completion = "Configuration completed successfully. Please exit and restart DZGUI to apply changes." +blurb_completion = "Configuration completed successfully. Click 'Close' to close this dialog and launch DZGUI." diff --git a/pyproject.toml b/pyproject.toml index c055619..d2bbd2b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ description = "DayZ server browser and mod manager for Linux" authors = [ {name = "aclist"} ] -version = "7.0.0b2" +version = "7.0.0b3" license = "GPL-3.0-or-later" license-files = ["LICENSE"] readme = "README.md" diff --git a/scripts/release.py b/scripts/release.py index e4768b2..a672f6d 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -26,9 +26,15 @@ env["PYAPP_PROJECT_VERSION"] = version env["PYAPP_PROJECT_NAME"] = appname env["PYAPP_EXEC_SPEC"] = entrypoint env["PYAPP_PROJECT_PATH"] = wheel -env["PYAPP_DISTRIBUTION_EMBED"] = "true" -env["PYAPP_PYTHON_VERSION"] = "3.13" env["PYAPP_PASS_LOCATION"] = "true" +# env["PYAPP_PYTHON_VERSION"] = "3.13" + +# NOTE: explicitly install all dependencies into distribution +env["PYAPP_SKIP_INSTALL"] = "true" +env["PYAPP_DISTRIBUTION_EMBED"] = "true" +env["PYAPP_FULL_ISOLATION"] = "true" +env["PYAPP_DISTRIBUTION_PATH"] = "cpython/airgapped.tar.gz" +env["PYAPP_DISTRIBUTION_PYTHON_PATH"] = "python/bin/python3" proc = subprocess.run(["cargo", "build", "--release"], env=env, cwd=pyapp_dir) if proc.returncode == 0: