Developer enhancement: ability to have a “Release” and “Beta” release for a plugin

I have now finished 3 plugins, and really enjoy the API. A big pain point though has been in updating testers with newer builds since it requires manual steps. For some users its confusing, for some users they just don’t have the time for doing the updates.

Proposal:

  • Developer can define in manifest.json a “beta” release
  • User can for an installed plugin opt-in to getting the beta release over the live release. (Some kind of toggle to enable beta release usage)

The manifest could appear as:
{
… other details
“version”: “1.0.2”,
“Beta”: “1.0.3”
}

If Obsidian finds a beta release upon a check for updates, and the user has enabled using betas for this plugin then Obsidian would update to the beta release. Of course if the user turns beta off, or if there is no beta parameter in manifest.json, the normal release is used for updating.

This would reduce many challenges of properly testing a plugin before updates go out.

One additional bonus would be if a user manually installs a plugin before a plugins release, that it could be updated as well if the manifest has the beta parameter.

Thank you for considering this request. I believe it can lead to better testing and user experiences from plugins in Obsidian.

Consider this my “October” contribution to the community :slight_smile:

17 Likes

I can see this working for already released plugins. I think it would be harder for pre-releases because those aren’t in the obsidian-releases repo yet.

I support this for released plugins and suggest we split the prerelease functionality into its own plugin that runs through manifests and checks the current release against the release in GitHub.

5 Likes

You inspired me. I might build this.

2 Likes

So… built this plugin

Sorry for the thread necromancy. This was the only thread my search-fu came up with on this topic.

Did we ever get this functionality for already released plugins?

GitHub has a checkbox you can specify that a release is a “pre-release”, and you can even edit that checkbox after the fact if the testing goes well.

The workflow I would love to have is:

  • I create a release in GitHub, and mark it as “pre-release”.
  • Anyone who is a beta tester (either signed up with Obsidian support, or e.g. via BRAT) is able to update to the latest pre-release
  • Users who are only signed up for stable releases aren’t prompted to update.
  • Assuming the testing goes well, I can edit the release, remove the pre-release indicator, and the release is instantly available to all who want it. Beta testers don’t need to update, they’re already on the latest.
  • If the testing doesn’t go well, I repeat the steps above until it does.