Versions
Saving your Widget and publishing it are two different steps. That way you can work on a change without breaking the Frames that already run your Widget.
Save and publish
- Save keeps your latest code and Public Inputs. Only you can see a save.
Frameskeep running what you last published. - Publish releases your latest save. Click Publish in the toolbar, or choose File > Publish…. Every
Framerunning yourWidgetpicks it up the next time it updates.
The toolbar shows the version you last published, and says Unpublished changes when you've saved something since.
Version History
Choose File > Version History… to see every save, with what changed in each one.
Click Restore to load an older save into the editor. Nothing is lost: the restored code is an unsaved change until you save it.
Version numbers
Every release gets a number, like 2.1.0. You don't pick it. Blotch works it out from what changed for the people using your Widget, and the Publish dialog explains why:
- Patch (
2.1.0→2.1.1): code changes, and changes to an input's description. - Minor (
2.1.0→2.2.0): something new that people can ignore, like an optional input, an extra option, or an input that is no longer required. - Major (
2.1.0→3.0.0): something that would break what people have set up. For example, removing or renaming an input, changing its type, removing an option, adding a required input, or adding an integration.
Your first release is always 1.0.0. It's also where you choose your Widget's Visibility.
Major versions
People who added your Widget before a major version keep running the version they set up, so nothing breaks on their Frame. They see that an update is available and choose when to upgrade. See Upgrading Widgets.
When you publish a major version, the Publish dialog asks you to confirm and says how many installs are still on the current one.
Fixes you publish after a major version only reach people on the newest one. Write release notes when you publish a major version: people read them when they upgrade.
What isn't versioned
Your Private Inputs, Images and the settings of your integrations are shared by every version. Changing one of them reaches every Frame straight away, without publishing.
A new integration is different: people are only asked to connect it once you publish it, as a major version.
The name, description, category and visibility you set in Config aren't versioned either.