Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down Expand Up @@ -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
Expand Down
19 changes: 12 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand Down Expand Up @@ -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<VERSION>/plancake-v<VERSION>-setup.exe|x64' -v <VERSION> --submit --token "$(gh auth token)" Oire.PlanCake
wingetcreate update -u 'https://github.com/Oire/plan-cake/releases/download/v<VERSION>/plancake-v<VERSION>-setup.exe|x64' -v <VERSION> --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). `<VERSION>` here is the four-part version, as in the tag.
`|x64` suffix the update fails with "Multiple matches". `<VERSION>` 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/<VERSION>/`, 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

Expand All @@ -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.

Expand Down
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.installer.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.de-DE.yaml
Original file line number Diff line number Diff line change
@@ -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
29 changes: 29 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.en-US.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.fr-FR.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.he-IL.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.ru-RU.yaml
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.locale.uk-UA.yaml
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions manifests/o/Oire/PlanCake/1.1.0.8/Oire.PlanCake.yaml
Original file line number Diff line number Diff line change
@@ -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
Loading