From 6550ffa27bbcc56feb77e9b812cb7136d38f2979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Polykanine?= Date: Mon, 19 Oct 2026 19:41:08 +0200 Subject: [PATCH 1/2] CI: cache NuGet packages and skip the format check's restore --- .github/workflows/dotnet.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 6f51b78..176fc13 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -34,6 +34,16 @@ jobs: # The SDK band global.json pins, so CI builds with the SDK a release is built with. global-json-file: global.json + # Restore downloads every package afresh otherwise. The key changes with any project file + # (a package added or bumped) or the SDK; a miss falls back to the newest cache and restore + # fetches only what changed. + - name: Cache NuGet packages + uses: actions/cache@v6 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj', 'global.json') }} + restore-keys: nuget-${{ runner.os }}- + - name: Install gettext shell: pwsh run: | @@ -74,7 +84,7 @@ jobs: run: dotnet restore - name: Check format - run: dotnet format --verify-no-changes + run: dotnet format --verify-no-changes --no-restore - name: Build run: dotnet build --no-restore From 1dac316f7aebf98b77c5d1e2ce19e1dd3ac607ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Polykanine?= Date: Mon, 19 Oct 2026 19:44:44 +0200 Subject: [PATCH 2/2] Keep the winget manifests in the repository, with descriptions in six languages --- CLAUDE.md | 19 +++++++----- .../1.1.0.8/Oire.PlanCake.installer.yaml | 18 ++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.de-DE.yaml | 18 ++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.en-US.yaml | 29 +++++++++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml | 18 ++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.he-IL.yaml | 18 ++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml | 18 ++++++++++++ .../1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml | 18 ++++++++++++ .../Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml | 7 +++++ 9 files changed, 156 insertions(+), 7 deletions(-) create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.installer.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.de-DE.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.en-US.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.he-IL.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml create mode 100644 manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml diff --git a/CLAUDE.md b/CLAUDE.md index 4785028..706722a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -149,6 +149,7 @@ src/PlanCake/ -- namespace Oire.PlanCake, builds plancake.exe tests/PlanCake.Tests/ -- namespace Oire.PlanCake.Tests installer/ -- Inno Setup script, Build-Installer.ps1 changelogs/ -- release notes per version, for the appcast +manifests/ -- the winget manifests of every version, as submitted to winget-pkgs PlanCake.slnx ``` @@ -458,16 +459,20 @@ The SDK is pinned by `global.json` (feature band, `rollForward: latestPatch`), a `setup-dotnet` reads the same file, so a release built locally and CI use the same band. Bump it deliberately: a new band can bring new analyzer warnings, which are errors here. -PlanCake is published to winget as `Oire.PlanCake`. The first release creates the manifest with -`wingetcreate new` on the release's installer URL; after every later GitHub release, update it: +PlanCake is published to winget as `Oire.PlanCake`, first with 1.1.0.8. After every GitHub +release, update it from the repository root: ```bash -wingetcreate update -u 'https://github.com/Oire/plan-cake/releases/download/v/plancake-v-setup.exe|x64' -v --submit --token "$(gh auth token)" Oire.PlanCake +wingetcreate update -u 'https://github.com/Oire/plan-cake/releases/download/v/plancake-v-setup.exe|x64' -v --out . --submit --token "$(gh auth token)" Oire.PlanCake ``` The installer is x64 only, but wingetcreate detects an Inno Setup installer as x86: without the -`|x64` suffix the update fails with "Multiple matches" (and in `wingetcreate new`, set the -architecture to x64 by hand). `` here is the four-part version, as in the tag. +`|x64` suffix the update fails with "Multiple matches". `` here is the four-part version, +as in the tag. The update carries over the previous version's locale files, a description in each +of PlanCake's six languages. `--out .` writes the submitted manifests into +`manifests/o/Oire/PlanCake//`, the same path as in `microsoft/winget-pkgs`; commit that +folder, so the repository keeps every version's manifests. A change to the descriptions goes +into the new folder before it is submitted, in all six languages. ### Releasing @@ -489,8 +494,8 @@ From start to finish, by hand on the maintainer's machine (CI never builds a rel 4. Create the GitHub release from the tag with the installer and the zip from `installer/Output/`: `gh release create v1.0.0.7 installer/Output/plancake-v1.0.0.7-setup.exe installer/Output/plancake-v1.0.0.7-portable.zip --title "PlanCake 1.0.0.7" --notes-file changelogs/1.0.0.md`. -5. Update winget with the four-part version (the `wingetcreate update` command above; - `wingetcreate new` for the first release). +5. Update winget with the four-part version (the `wingetcreate update` command above), and + commit the new `manifests/` folder. 6. Open the next cycle on the next commit, not on the release commit: `git tag -s v1.1.0 -m "Start development of version 1.1.0"`, then push it. diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.installer.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.installer.yaml new file mode 100644 index 0000000..356a0dc --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.installer.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +InstallerType: inno +Scope: machine +Commands: +- plancake +FileExtensions: +- markdown +- md +Installers: +- Architecture: x64 + InstallerUrl: https://github.com/Oire/plan-cake/releases/download/v1.1.0.8/plancake-v1.1.0.8-setup.exe + InstallerSha256: C96F6E4CCFA92FA8CF99864A4A3BD26AB06212F2D214F1F708A35D2FC6995374 +ManifestType: installer +ManifestVersion: 1.12.0 +ReleaseDate: 2026-10-19 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.de-DE.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.de-DE.yaml new file mode 100644 index 0000000..6b2a803 --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.de-DE.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: de-DE +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: Markdown-Dateien bequem lesen und Notizen genau dort hinterlassen, wo sie hingehören +Description: Ein barrierefreier Markdown-Reader für Windows, entwickelt für die langen Implementierungspläne, die KI-Programmierassistenten schreiben. PlanCake zeigt eine Markdown-Datei als Dokument an und schreibt Ihre Notizen direkt in die Datei, gleich nach dem Block, zu dem sie gehören. Funktioniert gleich gut mit der Maus, allein über die Tastatur und mit einem Screenreader sowie über die Befehlszeile. +ManifestType: locale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.en-US.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.en-US.yaml new file mode 100644 index 0000000..c1564cc --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.en-US.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: en-US +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: Read Markdown files comfortably and leave notes right where they belong +Description: An accessible Markdown reader for Windows, made for the long implementation plans AI coding assistants write. It shows a Markdown file as a document and writes your notes straight into the file, right after the block they are about. Works with the mouse, the keyboard alone and a screen reader, and from the command line. +Moniker: plancake +Tags: +- accessibility +- ai +- dotnet +- markdown +- notes +- screen-reader +- webview2 +- winforms +ReleaseNotesUrl: https://github.com/Oire/plan-cake/releases/tag/v1.1.0.8 +ManifestType: defaultLocale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml new file mode 100644 index 0000000..f1a54da --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: fr-FR +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: Lisez des fichiers Markdown confortablement et laissez des notes exactement là où elles doivent être +Description: Un lecteur Markdown accessible pour Windows, conçu pour les longs plans d’implémentation que rédigent les assistants de codage IA. Il affiche un fichier Markdown comme un document et écrit vos notes directement dans le fichier, juste après le bloc qu’elles concernent. Tout y fonctionne aussi bien à la souris, au clavier seul qu’avec un lecteur d’écran, ainsi qu’en ligne de commande. +ManifestType: locale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.he-IL.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.he-IL.yaml new file mode 100644 index 0000000..92ef7b6 --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.he-IL.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: he-IL +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: קריאה נוחה של קובצי Markdown והשארת הערות בדיוק במקום הנכון +Description: קורא Markdown נגיש עבור Windows, שנבנה עבור תוכניות היישום הארוכות שכותבים עוזרי תכנות מבוססי בינה מלאכותית. הוא מציג קובץ Markdown כמסמך וכותב את ההערות שלכם ישירות לתוך הקובץ, מיד אחרי הבלוק שאליו הן מתייחסות. עובד באותה מידה טובה עם העכבר, מהמקלדת בלבד ועם קורא מסך, וגם משורת הפקודה. +ManifestType: locale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml new file mode 100644 index 0000000..9e7c741 --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: ru-RU +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: Удобно читайте файлы Markdown и оставляйте заметки прямо там, где они нужны +Description: Доступная программа для чтения файлов Markdown в Windows, созданная для длинных планов реализации, которые пишут ИИ-ассистенты для программирования. Она показывает файл Markdown как документ и записывает ваши заметки прямо в файл, сразу после блока, к которому они относятся. Одинаково хорошо работает мышью, только с клавиатуры и с программой экранного доступа, а также из командной строки. +ManifestType: locale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml new file mode 100644 index 0000000..fc056ef --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.locale.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +PackageLocale: uk-UA +Publisher: Oire Software SARL +PublisherUrl: https://oire.org/ +PublisherSupportUrl: https://github.com/Oire/plan-cake/issues +Author: André Polykanine +PackageName: PlanCake +PackageUrl: https://plan-cake.oire.dev/ +License: Apache-2.0 +LicenseUrl: https://github.com/Oire/plan-cake/blob/master/LICENSE +Copyright: Copyright © 2026 Oire Software SARL. +ShortDescription: Зручно читайте файли Markdown і залишайте нотатки саме там, де їм і місце +Description: Доступна програма для читання файлів Markdown у Windows, створена для довгих планів реалізації, які пишуть ШІ-асистенти для програмування. Вона показує файл Markdown як документ і записує ваші нотатки просто у файл, одразу після блоку, якого вони стосуються. Однаково добре працює мишею, лише з клавіатури та з програмою читання з екрана, а також із командного рядка. +ManifestType: locale +ManifestVersion: 1.12.0 diff --git a/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml new file mode 100644 index 0000000..6cb9151 --- /dev/null +++ b/manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml @@ -0,0 +1,7 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.12.0.schema.json + +PackageIdentifier: Oire.PlanCake +PackageVersion: 1.1.0.8 +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.12.0