Compatibility-aware GitHub release selection for plugins like Breadcrumbs
Problem
BPM can treat the newest published GitHub release as the best update, but that is not always the right release for an Obsidian plugin.
Breadcrumbs is a concrete example:
4.21.1 is marked as the GitHub Latest release.
4.21.1 requires Obsidian 1.13.0.
4.14.3 was released later, but it is a compatibility release for older Obsidian installs.
That means:
- Obsidian
< 1.13.0 should be offered the newest compatible 4.14.x release.
- Obsidian
>= 1.13.0 should be offered 4.21.1, not 4.14.3.
Current release-date ordering can make BPM prefer 4.14.3 for everyone, even though it is not the mainline latest release.
Related prior reports
This is related to the earlier BPM release-ordering reports, but it is a separate missing layer.
#71 is not sufficient for Breadcrumbs by itself. Release date/order can tell BPM that 4.14.3 was published after 4.21.1, but it cannot explain that 4.14.3 is an old-Obsidian compatibility release and 4.21.1 is still the mainline latest release. BPM also needs to inspect each release's manifest.json and filter by minAppVersion.
This may become more common as plugin maintainers migrate mainline releases to Obsidian 1.13.0+ while still publishing compatibility/backport releases for older Obsidian installs.
Proposed behavior
BPM should select the latest eligible release, not just the newest published release.
Suggested resolver:
- Fetch GitHub releases for the plugin repo.
- Identify the GitHub
Latest release.
- For each candidate release, read that release/tag's
manifest.json.
- Use
minAppVersion from the release manifest to filter by the current Obsidian version.
- If the GitHub
Latest release is compatible, prefer it.
- If
Latest is incompatible, choose the newest compatible release instead.
- Apply prerelease and update-delay filters after compatibility filtering.
This should be shared by source installs, source update checks, and official/community plugin update checks when BPM can resolve the plugin's GitHub repo.
Acceptance
- On Obsidian
1.12.x, Breadcrumbs resolves to 4.14.3 or the newest compatible 4.14.x release.
- On Obsidian
1.13.0+, Breadcrumbs resolves to 4.21.1.
- An install already on
4.21.1 is not shown an update to 4.14.3.
- An install on
4.14.3 with Obsidian 1.13.0+ is shown 4.21.1 as the update.
- No Breadcrumbs-specific special case is needed.
References
Compatibility-aware GitHub release selection for plugins like Breadcrumbs
Problem
BPM can treat the newest published GitHub release as the best update, but that is not always the right release for an Obsidian plugin.
Breadcrumbs is a concrete example:
4.21.1is marked as the GitHubLatestrelease.4.21.1requires Obsidian1.13.0.4.14.3was released later, but it is a compatibility release for older Obsidian installs.That means:
< 1.13.0should be offered the newest compatible4.14.xrelease.>= 1.13.0should be offered4.21.1, not4.14.3.Current release-date ordering can make BPM prefer
4.14.3for everyone, even though it is not the mainline latest release.Related prior reports
This is related to the earlier BPM release-ordering reports, but it is a separate missing layer.
compareVersions.#71 is not sufficient for Breadcrumbs by itself. Release date/order can tell BPM that
4.14.3was published after4.21.1, but it cannot explain that4.14.3is an old-Obsidian compatibility release and4.21.1is still the mainline latest release. BPM also needs to inspect each release'smanifest.jsonand filter byminAppVersion.This may become more common as plugin maintainers migrate mainline releases to Obsidian
1.13.0+while still publishing compatibility/backport releases for older Obsidian installs.Proposed behavior
BPM should select the latest eligible release, not just the newest published release.
Suggested resolver:
Latestrelease.manifest.json.minAppVersionfrom the release manifest to filter by the current Obsidian version.Latestrelease is compatible, prefer it.Latestis incompatible, choose the newest compatible release instead.This should be shared by source installs, source update checks, and official/community plugin update checks when BPM can resolve the plugin's GitHub repo.
Acceptance
1.12.x, Breadcrumbs resolves to4.14.3or the newest compatible4.14.xrelease.1.13.0+, Breadcrumbs resolves to4.21.1.4.21.1is not shown an update to4.14.3.4.14.3with Obsidian1.13.0+is shown4.21.1as the update.References
4.21.1manifest: https://raw.githubusercontent.com/SkepticMystic/breadcrumbs/4.21.1/manifest.json4.14.3manifest: https://raw.githubusercontent.com/SkepticMystic/breadcrumbs/4.14.3/manifest.json