Generate release notes for app stores (Android Play Store, iOS App Store, macOS App Store, Linux Flatpak)...
Generate release notes for every FeedFlow store from the git history since a tag, get the user's approval, then translate them and write them into the repo files each store reads.
1.18.0-all).git describe --tags --abbrev=0 and tell the user which tag you used.-all, -android, -ios). If the latest tag only covers one platform, check whether it holds anything the other platforms haven't shipped. For example, run git log <previous -all tag>..<latest tag>. Then say which range each platform's notes cover.git log <tag>..HEAD --pretty=format:"%h %s%n%b" --no-merges
Keep only changes users would notice. Follow resources/release-notes-guidelines.md: leave out dependency bumps, translations, tests, docs, CI and tooling. Decide which platforms each change reaches. Shared code reaches every platform. Swift or iosApp/ reaches iOS and macOS. androidApp/ is Android only. desktopApp/ reaches Windows, Linux, and the macOS desktop build. Search ~/regesto-kb for recorded FeedFlow release-note decisions, for example release-note-format, and follow them.
Show the user the full English notes for every platform, in the exact final format of each section below. Include:
Do not translate or edit any file yet. Wait for the user to confirm or change the notes. Treat the text the user approves as final, and don't reword it in the next steps.
Translate the approved notes into every configured locale for each platform. Write each platform's notes to the files listed below. Keep the author's first-person singular voice in every language ("I'd love your feedback", never "we" or "us").
len() on the UTF-8 text. wc -m counts bytes in the C locale. If a locale is over 500 characters, tighten that translation, keeping every bullet.jq empty <file>, and check that every locale has the same number of bullets as English.xmllint --noout desktopApp/packaging/flatpak/com.prof18.feedflow.metainfo.xml.git diff --check.Do not commit, upload, or publish anything unless the user asks. Pushing notes to a store is a separate step: see update-store-release-notes for App Store Connect, and pcenter and the release workflow for the Microsoft Store.
All platforms use the same bullet format: one • bullet per line, one sentence each, starting with the benefit. No section headers.
androidApp/src/googlePlay/play/release-notes/<locale>/production.txt. en-US is the source. Every other locale folder is a target. Never touch alpha.txt.en-US first, then the other locales in alphabetical order. Save it to the scratchpad and send it to the user as well:<en-US>
• ...
</en-US>
<bg>
• ...
</bg>
• Reader Mode has a brand-new engine that gives cleaner, more reliable articles. If a page doesn't look right, I'd love to hear your feedback.
• Smoother scrolling in the article list, especially on iPad.
assets/storecopy/app-store-release-notes.json, shaped as { "ios": { "<locale>": [bullets] }, "macos": { "<locale>": [bullets] } }. Each bullet string includes the leading • .en-US, de-DE, es-ES, fr-FR, he, hu, it, ja, pt-BR, ru, sk, uk, vi, zh-Hans. If App Store Connect may have gained or lost a language, confirm the list with a read-only asc query.assets/storecopy/microsoft-store-release-notes.json. It keeps the top-level notes object. Each locale value is an array of bullet strings that include the leading • .de/de-de, es/es-es, gl/gl-es, zh-cn/zh-hans) get identical text. A missing locale fails the publish.desktopApp/packaging/flatpak/com.prof18.feedflow.metainfo.xml. Add a new <release> as the first child of <releases>, using the version from the com.feedflow.versioning convention plugin and the release date. English only. <release version="X.X.X" date="YYYY-MM-DD">
<description>
<p>Feature or fix description</p>
</description>
</release>
resources/release-notes-guidelines.md: rules for language, filtering and QA.