diff --git a/AGENTS.md b/AGENTS.md index 76c21f0..6f6c1fb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -41,7 +41,7 @@ Run a single backend test: `python -m unittest tests.test_plugin_status.PluginSt ## Release -Release steps (version bump, `v*` tag) are in [CONTRIBUTING.md](CONTRIBUTING.md#releases). The tag triggers `.github/workflows/release.yml`. Its `build` job (read-only token) checks the tag matches `package.json`'s version, installs, typechecks, builds, runs the frontend, backend and browser E2E tests, and zips `plugin.json` + `main.py` + `dist/index.js` (no source map) + `package.json` + `LICENSE.md`, and hands `DeckyHub-vX.Y.Z.zip` to the `publish` job, the only one with `contents: write`, which attaches it to a GitHub release. +Release steps (version bump, `v*` tag, and the back-merge of `main` into `develop` with a merge commit after each stable release) are in [CONTRIBUTING.md](CONTRIBUTING.md#releases). The tag triggers `.github/workflows/release.yml`. Its `build` job (read-only token) checks the tag matches `package.json`'s version, installs, typechecks, builds, runs the frontend, backend and browser E2E tests, and zips `plugin.json` + `main.py` + `dist/index.js` (no source map) + `package.json` + `LICENSE.md`, and hands `DeckyHub-vX.Y.Z.zip` to the `publish` job, the only one with `contents: write`, which attaches it to a GitHub release. **Every release (pre-releases too) gets human-friendly release notes.** The workflow's `--generate-notes` only lists raw commit/PR titles, so once the release exists, replace its body with `gh release edit vX.Y.Z --notes-file `: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 644bff5..6715e89 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,6 +52,8 @@ Users can point DeckyHub at their own registries too (**Repositories** โ†’ **Cus Merge feature pull requests into `develop` with **Squash and merge** so it keeps one commit per PR; keep each PR to a single topic and use its title as the commit message. +After each stable release lands on `main`, open a pull request from `main` into `develop` titled `chore: merge main back into develop (X.Y.Z)` and merge it with **Create a merge commit**, the one PR that isn't squashed. A squash into `main` makes a commit `develop` never has, so without this back-merge the next `develop` โ†’ `main` PR conflicts even when the files are identical. + The repository's `.githooks/pre-commit` hook blocks commits on `develop` and `main`. Activate it once per checkout with `git config core.hooksPath .githooks`; protected branches on GitHub should enforce the same rule remotely. To release, bump `version` in `package.json` (the backend reads it at runtime; there is no second copy), then push a `v*` Git tag. The tag starts the GitHub Actions release workflow. It fails unless the tag is `v` plus the `package.json` version. It installs the locked packages, typechecks, builds, runs the frontend and backend tests and the browser E2E suite in `devtools/decky-mock/`, and packages the Decky plugin with a read-only token; a separate publish job then attaches `DeckyHub-v*.zip` to the GitHub release. Release-notes conventions are in the Release section of [AGENTS.md](AGENTS.md). diff --git a/README.md b/README.md index aa41c83..8a87823 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,17 @@ No setup, no configuration โ€” the curated list shows up in Discover the moment ## Using DeckyHub +### Controller buttons + +DeckyHub uses the standard Steam Deck controls, plus two extra shortcuts on every **Install** / **Update** button (on Discover and Updates cards, in the [Manage](#manage) window, and for DeckyHub's own update): + +| Button | What it does | +| --- | --- | +| **X** | Download that release's ZIP to `/home/deck/Downloads/deckyhub` instead of installing it. Not shown when **Download ZIP** is hidden in Settings. | +| **Y** | Show the release notes (what that release changes) without installing anything. | + +Steam's footer shows the X and Y actions for whichever button is focused. + ### Discover Browse the curated list or search it by name, repository, category or description, and filter by **Status** (All, Installed, or Not Installed) and **Category**, and **Sort** A to Z, Z to A, or Recently added (newest additions to the list first; plugins with an update always come first). Each card is color-coded (green once it's up to date, yellow when an update is available, red on an error) so you can spot what needs attention at a glance, and says **Checkingโ€ฆ** while its latest release is still being looked up. A card set to the pre-release **Channel** says so; stable is the default and isn't labelled. Tap **Manage** on any card to pick a channel and version, then download the release asset you want. diff --git a/docs/index.html b/docs/index.html index b2ff6d1..431b7bd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -80,7 +80,7 @@

Why you'll like it

Never miss an update

DeckyHub checks your installed plugins against their latest GitHub releases and pings you with a toast the moment something new drops.

Discover new tools

A curated catalog of Steam Deck plugins, filterable by status and color-coded so you spot what needs attention at a glance.

-

Controller first

Full gamepad navigation and one-tap actions designed for Gaming Mode, not a desktop page squeezed onto a small screen.

+

Controller first

Full gamepad navigation and one-tap actions designed for Gaming Mode, not a desktop page squeezed onto a small screen. On any Install or Update button, Y shows the release notes and X downloads the ZIP instead.

You stay in control

Installs go through Decky Loader's own installer and confirmation dialog, with SHA-256 checksums verified whenever GitHub publishes one. Nothing runs on its own.

Track any repo

Search GitHub, add any repository, pick stable or pre-release channels per app, and export your list to share or back up.

Updates itself

The Quick Access Menu tells you when a new DeckyHub release is out and updates it in place. You can also reinstall or downgrade to any recent version.

@@ -91,7 +91,7 @@

Why you'll like it

Take the tour

Four screens, all reachable from the Quick Access Menu.

-
DeckyHub Menu screen
Menu โ€” jump to Discover, Updates, Repositories or Settings from the Quick Access Menu.
+
DeckyHub Menu screen
Menu โ€” jump to Discover, Updates or Settings from the Quick Access Menu, and keep DeckyHub itself up to date.
DeckyHub Discover screen
Discover โ€” browse the catalog, filter by install status, open Manage to pick a channel and version.
DeckyHub Updates screen
Updates โ€” every installed tool with a newer release, next to the version you have.
DeckyHub Manage screen
Manage โ€” download the ZIP, or install and update through Decky Loader.
diff --git a/screenshots/discover.jpg b/screenshots/discover.jpg index 559afba..4d7104e 100644 Binary files a/screenshots/discover.jpg and b/screenshots/discover.jpg differ diff --git a/screenshots/manage.jpg b/screenshots/manage.jpg index 4d490d3..12ab9da 100644 Binary files a/screenshots/manage.jpg and b/screenshots/manage.jpg differ diff --git a/screenshots/menu.jpg b/screenshots/menu.jpg index 927d6d9..1d271bd 100644 Binary files a/screenshots/menu.jpg and b/screenshots/menu.jpg differ diff --git a/screenshots/updates.jpg b/screenshots/updates.jpg index 750b65a..8e940fa 100644 Binary files a/screenshots/updates.jpg and b/screenshots/updates.jpg differ