Skip to content

Compatibility-aware GitHub release selection for plugins like Breadcrumbs #76

Description

@TyceHerrman

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:

  1. Fetch GitHub releases for the plugin repo.
  2. Identify the GitHub Latest release.
  3. For each candidate release, read that release/tag's manifest.json.
  4. Use minAppVersion from the release manifest to filter by the current Obsidian version.
  5. If the GitHub Latest release is compatible, prefer it.
  6. If Latest is incompatible, choose the newest compatible release instead.
  7. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions