Publish
Updating your app
Ship new versions, take a submission back, and take an app out of the store.
On this page
A version never changes once it is published, so every change to your app ships as a new version. Displays keep the version they have until their owner moves them to a newer one.
Ship a new version
Raise version in ledable.json, then upload, try and submit
it as the first one:
ledable developer upload
ledable developer submitThe new version must be higher than every version that passed its checks before, and higher than the listed one to be submitted. Each version is reviewed. While it waits, the version the store lists stays listed; when it is approved, it takes that place.
Your share link shows the listed version once the app is listed, so to have people try the new
version first, give them its number to install with
store install, as
Share links shows.
What people with your app see
Nothing changes on a display by itself. Each playlist entry keeps playing the version it was installed with, and its owner is offered the newer one:
- In the LEDABLE phone app, the entry shows an update badge in the playlist, and its settings page says which version is available. Saving with Update chosen moves the entry to it and keeps its settings. The app's store page offers the update for each of their displays that has an older version.
- With the CLI,
store updatemoves every entry of the app on a display to the listed version, keeping their settings.
ledable store update gitlab-todos --device 1234So older versions keep running for as long as people keep them. Keep what they depend on working: the hosts they call, and the secrets they declare, which apply to every version of the app.
Change settings between versions
When an entry moves to a new version, its values carry over by each setting's key:
- A setting the new version still has, under the same key, keeps its value.
- A value for a setting the new version no longer has is dropped.
- A new setting starts at its default. A new
requiredsetting without a default has to be filled in before the update can be saved, sostore updatestops withStill needed:and the setting's name. - A value the setting would now refuse, such as a choice it no longer offers, has to be changed before the update can be saved.
To change what a setting holds, such as its type, give it a new key rather than reusing the old one. The settings a version returns can also change while it runs: a render ignores values for settings that are no longer returned, and treats a choice that is no longer offered as unset.
Take a submission back
ledable developer withdrawdeveloper withdraw takes back the submission
waiting for review; it shows as withdrawn. Nothing is listed or changed, and you can submit
another version straight away. With no submission waiting, the command fails with
No submission is pending.
Take the app out of the store
ledable developer unlistdeveloper unlist takes the app out of the store's
pages and its search, and the store stops offering it to anyone. Displays that have it keep
playing their version, and their owners can still change its settings, but no updates are offered
while the app is unlisted. The share link shows the test version again, if there is one.
LEDABLE can also unlist an app, for example when it breaks the
review guidelines; the reason is shown as unlisted_reason in
developer status.
To list the app again, submit a version that passed its checks, such as the one that was listed. It is reviewed like any submission, and approval lists it.
When a version stops working
Published versions are never removed, so every installed version keeps loading. It can still stop
drawing, for example when a service it reads changes its API or revokes its key. When a render
fails, the display keeps showing the last image it received until that image's
hardTtlMs runs out, and keeps asking for a new one; after that, it shows a loading indicator in the entry's turn
until a render succeeds again.
You cannot move displays to another version yourself. If the fix is a new key, set it with
secret set: every version reads the new value. Anything
else needs a new version; once it is listed, people are offered the update.