diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7e8413c..b8143f4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,8 +13,9 @@ name: Release # on GitHub creates the tag on the commit that was built, and winget.yml then sends it to winget. # # "legacy": a branch built next to this one (release/1.7-legacy: 1.6.2's interfaces, frozen) and attached to -# the same release as ConsoleMode-Legacy-*.exe. Those names don't start like the ones the update check and -# winget look for, so nobody is updated to Legacy. +# the same release as ConsoleModeLegacy-*.exe. GitHub lists a release's files by name, so those come after the +# current version's; and they don't start like the ones the update check and winget look for, so nobody is +# updated to Legacy. on: push: tags: @@ -33,7 +34,7 @@ on: type: boolean default: false legacy: - description: "Legacy: branch to build and attach as ConsoleMode-Legacy-*.exe (e.g. release/1.7-legacy). Empty: none." + description: "Legacy: branch to build and attach as ConsoleModeLegacy-*.exe (e.g. release/1.7-legacy). Empty: none." required: false default: "" @@ -89,16 +90,16 @@ jobs: - name: Name the files Legacy shell: pwsh run: | - Rename-Item -LiteralPath "dist/ConsoleMode-Setup-x64.exe" -NewName "ConsoleMode-Legacy-Setup-x64.exe" - Rename-Item -LiteralPath "dist/ConsoleMode-Portable-x64.exe" -NewName "ConsoleMode-Legacy-Portable-x64.exe" + Rename-Item -LiteralPath "dist/ConsoleMode-Setup-x64.exe" -NewName "ConsoleModeLegacy-Setup-x64.exe" + Rename-Item -LiteralPath "dist/ConsoleMode-Portable-x64.exe" -NewName "ConsoleModeLegacy-Portable-x64.exe" - name: Upload artifacts uses: actions/upload-artifact@v7 with: - name: ConsoleMode-Legacy-${{ steps.version.outputs.version }} + name: ConsoleModeLegacy-${{ steps.version.outputs.version }} path: | - dist/ConsoleMode-Legacy-Setup-x64.exe - dist/ConsoleMode-Legacy-Portable-x64.exe + dist/ConsoleModeLegacy-Setup-x64.exe + dist/ConsoleModeLegacy-Portable-x64.exe if-no-files-found: error build: @@ -204,8 +205,8 @@ jobs: "" "Prefer the old interface? **Console Mode Legacy** is 1.6.2 as it was, with the Desktop and Console interfaces. It opens with the settings you already have and keeps the ones only the current version uses, so you can switch back and forth. It is frozen: no new features, no fixes, and it never offers an update. To come back, install the current version over it." "" - '- **Legacy installer:** `ConsoleMode-Legacy-Setup-x64.exe`' - '- **Legacy portable:** `ConsoleMode-Legacy-Portable-x64.exe`' + '- **Legacy installer:** `ConsoleModeLegacy-Setup-x64.exe`' + '- **Legacy portable:** `ConsoleModeLegacy-Portable-x64.exe`' ) } $releaseNotes += @( @@ -287,14 +288,14 @@ jobs: GH_TOKEN: ${{ github.token }} VERSION: ${{ steps.version.outputs.version }} run: | - gh run download $env:GITHUB_RUN_ID --repo $env:GITHUB_REPOSITORY --name "ConsoleMode-Legacy-$($env:VERSION)" --dir dist - foreach ($name in "ConsoleMode-Legacy-Setup-x64.exe", "ConsoleMode-Legacy-Portable-x64.exe") { + gh run download $env:GITHUB_RUN_ID --repo $env:GITHUB_REPOSITORY --name "ConsoleModeLegacy-$($env:VERSION)" --dir dist + foreach ($name in "ConsoleModeLegacy-Setup-x64.exe", "ConsoleModeLegacy-Portable-x64.exe") { if (-not (Test-Path -LiteralPath (Join-Path "dist" $name))) { throw "The Legacy build did not bring $name" } } # A multi-line value for the release step below. "files<> $env:GITHUB_OUTPUT - "dist/ConsoleMode-Legacy-Setup-x64.exe" >> $env:GITHUB_OUTPUT - "dist/ConsoleMode-Legacy-Portable-x64.exe" >> $env:GITHUB_OUTPUT + "dist/ConsoleModeLegacy-Setup-x64.exe" >> $env:GITHUB_OUTPUT + "dist/ConsoleModeLegacy-Portable-x64.exe" >> $env:GITHUB_OUTPUT "LIST" >> $env:GITHUB_OUTPUT - name: Publish GitHub release diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 3c2841a..786a7f5 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -19,7 +19,7 @@ English (US) release notes, mirroring CHANGELOG.md (Brazilian Portuguese). Befor - Notices on the game screen slide in from the right, show how long is left and leave the same way; option lists fade at the edges when there is more that way and show where you are. (#185) - Controller battery in the session menu and in the top bar, and a diagnostics report to copy in System. (#159, #160) - The update notice shows the version's highlight in the app's language, when there is a changelog in it. (#158) -- **Console Mode Legacy**, for those who prefer the old interface: in the same release, `ConsoleMode-Legacy-Setup-x64.exe` and `ConsoleMode-Legacy-Portable-x64.exe` are Console Mode 1.6.2 as it was, with the Desktop and Console interfaces and TV control. It opens with the settings you already have and keeps the ones only this version uses, so you can go back and forth without losing anything. It is frozen: no new features, no fixes, and it never offers an update. To come back, install the current version over it. (#200, #202) +- **Console Mode Legacy**, for those who prefer the old interface: in the same release, `ConsoleModeLegacy-Setup-x64.exe` and `ConsoleModeLegacy-Portable-x64.exe` are Console Mode 1.6.2 as it was, with the Desktop and Console interfaces and TV control. It opens with the settings you already have and keeps the ones only this version uses, so you can go back and forth without losing anything. It is frozen: no new features, no fixes, and it never offers an update. To come back, install the current version over it. (#200, #202) ### Changes - Home: clicking a launcher (or pressing A on it) only picks what will open; **Play now** is what starts. (#193) - The Desktop interface leaves the app: everything it did is in the System tab. It lives on in **Legacy**. (#184) diff --git a/CHANGELOG.md b/CHANGELOG.md index a448b4d..37f24bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ Notas em português do Brasil; a versão em inglês (Estados Unidos) fica em `CH - Avisos na tela de jogo entram deslizando pela direita, mostram quanto tempo falta e saem pelo mesmo lado; as listas de opções esmaecem nas bordas quando há mais itens e mostram onde você está. (#185) - Bateria do controle no menu da sessão e na barra de cima, e um relatório de diagnóstico para copiar em Sistema. (#159, #160) - O aviso de atualização mostra o destaque da versão no idioma do app, quando há changelog nele. (#158) -- **Console Mode Legacy**, para quem prefere a interface antiga: na mesma release, `ConsoleMode-Legacy-Setup-x64.exe` e `ConsoleMode-Legacy-Portable-x64.exe` são o Console Mode 1.6.2 como era, com as interfaces Desktop e Console e o controle da TV. Abre com os ajustes que você já tem e guarda os que só esta versão usa, então dá para ir e voltar sem perder nada. Está congelada: sem novas funções, sem correções, e nunca oferece atualização. Para voltar, instale a versão atual por cima. (#200, #202) +- **Console Mode Legacy**, para quem prefere a interface antiga: na mesma release, `ConsoleModeLegacy-Setup-x64.exe` e `ConsoleModeLegacy-Portable-x64.exe` são o Console Mode 1.6.2 como era, com as interfaces Desktop e Console e o controle da TV. Abre com os ajustes que você já tem e guarda os que só esta versão usa, então dá para ir e voltar sem perder nada. Está congelada: sem novas funções, sem correções, e nunca oferece atualização. Para voltar, instale a versão atual por cima. (#200, #202) ### Mudanças - Início: clicar num iniciador (ou apertar A nele) só escolhe o que vai abrir; quem começa é **Jogar agora**. (#193) - A interface Desktop sai do app: tudo o que ela fazia está na aba Sistema. Ela continua na **Legacy**. (#184) diff --git a/docs/GUIDE.md b/docs/GUIDE.md index f9d561e..e5faeec 100644 --- a/docs/GUIDE.md +++ b/docs/GUIDE.md @@ -112,7 +112,7 @@ Requires [Visual Studio 2022](https://visualstudio.microsoft.com/) with the **Wi Output: `dist\ConsoleMode-Portable-x64.exe` and `dist\ConsoleMode-Setup-x64.exe` (the installer needs [Inno Setup 6](https://jrsoftware.org/isinfo.php): `winget install JRSoftware.InnoSetup`). Open `ConsoleMode.sln` to debug. -To release, merge the release PR into `main`, then run Actions → **Release** → Run workflow on `main` with the version (like `1.4.0`, or `1.4.0-beta.2` for a pre-release) and **publish** ticked: the workflow creates the tag and the GitHub release, builds both files and publishes them, and the app picks them up as an update. Without "publish" it only builds and uploads the files as an artifact. Pushing a `v*` tag still works and does the same. With **draft** ticked too, the release is created as a draft: only the repository's maintainers see it, the app offers nothing, nothing goes to winget and the tag isn't created yet, so the files can be tried first; publishing the draft on GitHub makes it a normal release (and sends a stable one to winget). **legacy** takes a branch (`release/1.7-legacy`) to build and attach to the same release as `ConsoleMode-Legacy-*.exe`: Console Mode 1.6.2's interfaces, frozen, which the update check never offers. +To release, merge the release PR into `main`, then run Actions → **Release** → Run workflow on `main` with the version (like `1.4.0`, or `1.4.0-beta.2` for a pre-release) and **publish** ticked: the workflow creates the tag and the GitHub release, builds both files and publishes them, and the app picks them up as an update. Without "publish" it only builds and uploads the files as an artifact. Pushing a `v*` tag still works and does the same. With **draft** ticked too, the release is created as a draft: only the repository's maintainers see it, the app offers nothing, nothing goes to winget and the tag isn't created yet, so the files can be tried first; publishing the draft on GitHub makes it a normal release (and sends a stable one to winget). **legacy** takes a branch (`release/1.7-legacy`) to build and attach to the same release as `ConsoleModeLegacy-*.exe`: Console Mode 1.6.2's interfaces, frozen, which the update check never offers. The previous PowerShell + WPF implementation (1.2 and earlier) lives on the [`legacy`](https://github.com/lippdev/consolemode/tree/legacy) branch and is not used by the WinUI app. diff --git a/docs/GUIDE.pt-BR.md b/docs/GUIDE.pt-BR.md index b98c4cd..f4ac4c6 100644 --- a/docs/GUIDE.pt-BR.md +++ b/docs/GUIDE.pt-BR.md @@ -112,6 +112,6 @@ Precisa do [Visual Studio 2022](https://visualstudio.microsoft.com/) com a workl Saída: `dist\ConsoleMode-Portable-x64.exe` e `dist\ConsoleMode-Setup-x64.exe` (o instalador precisa do [Inno Setup 6](https://jrsoftware.org/isinfo.php): `winget install JRSoftware.InnoSetup`). Abra `ConsoleMode.sln` para depurar. -Para lançar uma versão, faça o merge do PR de release na `main` e rode Actions → **Release** → Run workflow na `main` com a versão (como `1.4.0`, ou `1.4.0-beta.2` para pré-release) e **publish** marcado: o workflow cria a tag e a release no GitHub, gera os dois arquivos e os publica, e o app oferece a atualização. Sem "publish" ele só gera e guarda os arquivos como artefato. Fazer push de uma tag `v*` continua funcionando e faz o mesmo. Com **draft** marcado também, a release é criada como rascunho: só os mantenedores do repositório a veem, o app não oferece nada, nada vai para o winget e a tag ainda não é criada, para dar tempo de experimentar os arquivos; publicar o rascunho no GitHub faz dela uma release normal (e manda uma estável para o winget). **legacy** recebe uma branch (`release/1.7-legacy`) para gerar e anexar na mesma release como `ConsoleMode-Legacy-*.exe`: as interfaces do Console Mode 1.6.2, congeladas, que a verificação de atualizações nunca oferece. +Para lançar uma versão, faça o merge do PR de release na `main` e rode Actions → **Release** → Run workflow na `main` com a versão (como `1.4.0`, ou `1.4.0-beta.2` para pré-release) e **publish** marcado: o workflow cria a tag e a release no GitHub, gera os dois arquivos e os publica, e o app oferece a atualização. Sem "publish" ele só gera e guarda os arquivos como artefato. Fazer push de uma tag `v*` continua funcionando e faz o mesmo. Com **draft** marcado também, a release é criada como rascunho: só os mantenedores do repositório a veem, o app não oferece nada, nada vai para o winget e a tag ainda não é criada, para dar tempo de experimentar os arquivos; publicar o rascunho no GitHub faz dela uma release normal (e manda uma estável para o winget). **legacy** recebe uma branch (`release/1.7-legacy`) para gerar e anexar na mesma release como `ConsoleModeLegacy-*.exe`: as interfaces do Console Mode 1.6.2, congeladas, que a verificação de atualizações nunca oferece. A implementação antiga em PowerShell + WPF (1.2 e anteriores) fica na branch [`legacy`](https://github.com/lippdev/consolemode/tree/legacy) e não é usada pelo app WinUI. diff --git a/docs/PRD.md b/docs/PRD.md index da6f148..aea513e 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -95,7 +95,7 @@ refeita e sem caminho de volta perdido. | D-22 | **Restauração durável:** tudo o que a sessão muda (telas, áudio, ícones, ponteiro, comandos de fim) é gravado em disco antes da mudança e desfeito no próximo início se o app cair. | Decidido e implementado no CORE-012 (#178). Antes dele, depois de uma queda nada era restaurado sozinho: os backups ficavam no disco, mas o "Restaurar agora" não os usava sem uma sessão ativa. | | D-25 | **Escala de console:** a interface e o Menu da sessão são desenhados para uma tela de 1080 de altura e ocupam sempre a mesma proporção da janela, qualquer que seja a escala do Windows (125 %, 150 %, 200 %) ou a resolução (1080p, 1440p, 4K). Escolhido entre "proporcional à tela" e "sempre em 100 %". | Decidido pelo dono em 01/11/2026; UI-018. | | D-26 | **Controle da TV fora da 1.7.** O dono decidiu (01/11/2026) que ligar a Google TV / Android TV, trocar a entrada e pôr em espera não vai na 1.7 final. A categoria TV some do Sistema e a sessão não fala com a TV; o código (`Services/Tv`) e os ajustes salvos ficam, e `TvControlService.IsAvailable` traz tudo de volta. | Decidido pelo dono em 01/11/2026; TV-001. | -| D-27 | **Legacy na mesma release.** A 1.7.0 sai com um segundo download, o **Console Mode Legacy**: o código da 1.6.2 (interfaces Desktop e Console, controle da TV), para quem sentir falta do modo antigo. Sai da branch `release/1.7-legacy`, com a versão da release, e está congelado: não recebe funções nem correções e nunca procura atualização. Divide o `config.json` com a versão atual; cada lado guarda de volta os ajustes que não conhece (#200, #201), então dá para trocar sem perder nada. Os arquivos se chamam `ConsoleMode-Legacy-*.exe`, nomes que a verificação de atualizações e o winget não procuram. A release é feita primeiro como rascunho (#202) para o dono testar antes de alguém receber. | Decidido pelo dono em 09/11/2026. | +| D-27 | **Legacy na mesma release.** A 1.7.0 sai com um segundo download, o **Console Mode Legacy**: o código da 1.6.2 (interfaces Desktop e Console, controle da TV), para quem sentir falta do modo antigo. Sai da branch `release/1.7-legacy`, com a versão da release, e está congelado: não recebe funções nem correções e nunca procura atualização. Divide o `config.json` com a versão atual; cada lado guarda de volta os ajustes que não conhece (#200, #201), então dá para trocar sem perder nada. Os arquivos se chamam `ConsoleModeLegacy-*.exe`, nomes que a verificação de atualizações e o winget não procuram. A release é feita primeiro como rascunho (#202) para o dono testar antes de alguém receber. | Decidido pelo dono em 09/11/2026. | | D-24 | **Sons oficiais de console, por conta e risco:** o dono pode usar sons da Microsoft e da Sony (como os das aberturas inspiradas no Xbox 360 e no PS4), registrados no THIRD_PARTY_NOTICES e trocados se o dono dos direitos pedir. A parte visual imita só o clima, sem logos nem nomes dos consoles. | Decidido pelo dono em 31/10/2026 | | D-23 | **Uma interface só:** a partir da 1.7.0 o app tem apenas a interface Console, que também funciona com mouse e teclado. A interface Desktop e a escolha de interface saem; o que só existia nela vai para a aba Sistema, e a primeira abertura ganha um tour guiado. | Decidido pelo dono em 31/10/2026; UI-012 e UI-013. | diff --git a/docs/TESTING.md b/docs/TESTING.md index c76b3cb..6c281a9 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -668,7 +668,7 @@ Com o rascunho da release aberto no GitHub (só o dono vê), baixar os quatro ar - [ ] Com a beta instalada e aberta: o app **não** oferece a 1.7.0 enquanto ela é rascunho (Sistema → App → Verificar agora diz que está na versão mais recente). Resultado: ______ - [ ] `ConsoleMode-Setup-x64.exe` por cima da beta: instala, abre como 1.7.0 e mantém todos os ajustes. Resultado: ______ -- [ ] `ConsoleMode-Legacy-Setup-x64.exe` por cima da 1.7.0: o instalador e a entrada em "Aplicativos instalados" dizem **Console Mode Legacy**; o app abre com o título "Console Mode Legacy", mostra o tutorial antigo uma vez, e telas, áudio, atalhos do controle e idioma estão como na 1.7.0. Ajustes mostra "1.7.0 Legacy" e não tem as linhas de atualização. Resultado: ______ +- [ ] `ConsoleModeLegacy-Setup-x64.exe` por cima da 1.7.0: o instalador e a entrada em "Aplicativos instalados" dizem **Console Mode Legacy**; o app abre com o título "Console Mode Legacy", mostra o tutorial antigo uma vez, e telas, áudio, atalhos do controle e idioma estão como na 1.7.0. Ajustes mostra "1.7.0 Legacy" e não tem as linhas de atualização. Resultado: ______ - [ ] Na Legacy, com um aplicativo adicionado pelo **+** escolhido na 1.7.0: o iniciador mostrado é o Steam Big Picture. Uma sessão pela Legacy (TV, voltar ao PC) funciona como na 1.6.2. Resultado: ______ - [ ] Mudar um ajuste na Legacy (HDR, por exemplo), fechar, e instalar a 1.7.0 por cima: os aplicativos do **+**, os perfis por jogo, o estilo da abertura e o atalho da visão de tarefas estão como antes, o aplicativo escolhido continua escolhido e o HDR ficou como mudado na Legacy. Resultado: ______ - [ ] De volta à Legacy mais uma vez: o tutorial antigo não aparece de novo e a interface escolhida nela (Desktop ou Console) foi lembrada. Resultado: ______