From c287e582ffa11e400c04ce845bb860a62aaf09e2 Mon Sep 17 00:00:00 2001 From: DevClinic Date: Tue, 11 Aug 2026 01:11:30 +0100 Subject: [PATCH] Fix CI validation and prepare public release --- .github/workflows/build.yml | 2 +- PUBLISHING.md | 40 ------------------------------------- README.md | 12 +++++++++-- build/Test-Beta.ps1 | 29 +++++++++++++++++---------- docs/RELEASES.md | 2 +- 5 files changed, 31 insertions(+), 54 deletions(-) delete mode 100644 PUBLISHING.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c23accd..b95f5de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: - name: Run source and portable checks shell: pwsh - run: .\build\Test-Beta.ps1 -SkipInstallerChecks + run: .\build\Test-Beta.ps1 -SkipInstallerChecks -SkipLiveDeviceChecks - name: Upload portable build uses: actions/upload-artifact@v4 diff --git a/PUBLISHING.md b/PUBLISHING.md deleted file mode 100644 index 18b71af..0000000 --- a/PUBLISHING.md +++ /dev/null @@ -1,40 +0,0 @@ -# First public-release checklist - -This folder is a **clean public snapshot**, deliberately separate from the original development repository and its history. It has no `.git` directory and its `.gitignore` excludes generated executables, local logs, installer output, and editor state from the public commit. A local build may create ignored output files here; do not stage them. - -## Before creating the repository - -1. Review [`PUBLIC_RELEASE_AUDIT.md`](PUBLIC_RELEASE_AUDIT.md). -2. Decide whether the MIT License in [`LICENSE`](LICENSE) matches your intent. The current choice is permissive and contribution-friendly. -3. Create a new empty public GitHub repository yourself, for example `evoworks-control`. Do not initialise it with a README, licence, or `.gitignore` on GitHub. -4. In the repository’s settings after the first push, enable: - - Issues; - - Discussions (recommended); - - Private vulnerability reporting; and - - Dependabot alerts and security updates where available. - -## First commit and push - -Open PowerShell in this `github` folder, inspect the exact staging set, then run: - -```powershell -git init -b main -git status --ignored -git add . -git status -git diff --cached --check -git diff --cached --stat -git commit -m "Initial public release" -git remote add origin https://github.com/YOUR-ACCOUNT/evoworks-control.git -git push -u origin main -``` - -Verify on GitHub that no `bin/`, `obj/`, `artifacts/`, `.exe`, `.zip`, `.pdb`, local logs, or IDE state appears in the commit. - -## After the first push - -1. Confirm the **Actions** build and CodeQL workflows run successfully. -2. Review the repository’s Community Standards checklist. -3. Create labels if you want a triage workflow; the supplied issue forms intentionally do not depend on pre-created labels. -4. Build release binaries locally, test on a non-development PC, calculate checksums, and attach the binaries to a GitHub Release. Do not commit them to the repository. -5. Add public-safe screenshots to `screenshots/` in a later commit. diff --git a/README.md b/README.md index e07480d..45ea776 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,15 @@ The app never guesses at a wireless configuration protocol. Configuration contro ## Screenshots -Screenshots will be added as the public project evolves. See [`screenshots/README.md`](screenshots/README.md) for safe capture guidance. +| Home | Devices | +| --- | --- | +| ![EVOWORKS Control home screen](screenshots/home.png) | ![Detected EVO80 device](screenshots/devices.png) | +| Keymap | Lighting | +| ![EVO80 keymap editor](screenshots/keymap.png) | ![EVO80 lighting studio](screenshots/lighting.png) | +| Profiles | | +| ![Local profiles screen](screenshots/profiles.png) | | + +See [`screenshots/README.md`](screenshots/README.md) for safe capture guidance. ## Build from source @@ -47,7 +55,7 @@ Requirements: - [Inno Setup 6](https://jrsoftware.org/isinfo.php) only when building the installer ```powershell -git clone https://github.com/YOUR-ACCOUNT/evoworks-control.git +git clone https://github.com/devclinic/evoworks-control.git cd evoworks-control .\build\Build-Release.ps1 .\build\Test-Beta.ps1 -SkipInstallerChecks diff --git a/build/Test-Beta.ps1 b/build/Test-Beta.ps1 index b5c9ec7..f87ae3b 100644 --- a/build/Test-Beta.ps1 +++ b/build/Test-Beta.ps1 @@ -2,7 +2,8 @@ param( [switch]$RequireWiredEvo80, [switch]$TestStartupIntegration, - [switch]$SkipInstallerChecks + [switch]$SkipInstallerChecks, + [switch]$SkipLiveDeviceChecks ) $ErrorActionPreference = 'Stop' @@ -70,17 +71,25 @@ finally { $archive.Dispose() } -[void][Reflection.Assembly]::LoadFrom($releaseExe) -$detector = New-Object Evoworks.Control.Services.DeviceDetector -$devices = @($detector.Scan()) -$wired = $devices | Where-Object { $_.IsWiredConfigurationEligible } | Select-Object -First 1 -if ($null -eq $wired) { - Assert-Condition (-not $RequireWiredEvo80) 'No direct wired EVO80 is attached; live HID smoke test was skipped.' +if ($SkipLiveDeviceChecks) { + Write-Host 'PASS: Live HID smoke test was skipped by request.' +} +elseif ($PSVersionTable.PSEdition -ne 'Desktop') { + Assert-Condition (-not $RequireWiredEvo80) 'Live HID smoke test was skipped because Windows PowerShell is required for .NET Framework device probing.' } else { - $via = New-Object Evoworks.Control.Services.ViaProtocol - $handshake = $via.TryHandshake($wired) - Assert-Condition $handshake.IsSuccess ('Direct wired EVO80 VIA handshake succeeds (protocol ' + $handshake.ProtocolVersion + ').') + [void][Reflection.Assembly]::LoadFrom($releaseExe) + $detector = New-Object Evoworks.Control.Services.DeviceDetector + $devices = @($detector.Scan()) + $wired = $devices | Where-Object { $_.IsWiredConfigurationEligible } | Select-Object -First 1 + if ($null -eq $wired) { + Assert-Condition (-not $RequireWiredEvo80) 'No direct wired EVO80 is attached; live HID smoke test was skipped.' + } + else { + $via = New-Object Evoworks.Control.Services.ViaProtocol + $handshake = $via.TryHandshake($wired) + Assert-Condition $handshake.IsSuccess ('Direct wired EVO80 VIA handshake succeeds (protocol ' + $handshake.ProtocolVersion + ').') + } } if ($TestStartupIntegration) { diff --git a/docs/RELEASES.md b/docs/RELEASES.md index cdeba86..2507ef5 100644 --- a/docs/RELEASES.md +++ b/docs/RELEASES.md @@ -12,7 +12,7 @@ The beta begins at `0.1.0-beta.1`. Every distributable must be built from a tagg ## Release checklist -1. Review `git status` and commit source changes on a `codex/` branch. +1. Review `git status`, commit source changes on a dedicated branch, and open a pull request. 2. Build the Release configuration. 3. Run `build\Test-Beta.ps1 -TestStartupIntegration`; add `-RequireWiredEvo80` when the direct wired EVO80 is attached. 4. Build the setup executable and test install, in-place update, and uninstall in a disposable environment. Confirm uninstall removes `%LOCALAPPDATA%\EVOWORKS Control`.