Model versions and channels
Versions and builds, the stable and the beta channel, pinning, what changes for an app when it moves between versions, and how to go back.
An app follows a channel or is pinned to a version: on stable it gets the version Quran Lab has released for everyone, on beta it gets the next version early, and a beta version can change or be withdrawn without notice; going back is one setting, and the app is served the stable version again at its next config check, within about five minutes.
Versions and builds
A model has a version, such as TajweedFormer V4 4.0.0: the weights and what they recognise. A build is one delivery of a version, made for the SDKs that can read it. Quran Lab can publish a new build of a version, for example one that adds a program for a phone's accelerator. It carries the same weights, so it is not a new version and needs nothing from you.
Your app gets the newest build of its version that its SDK can read. When a version has no build for your app's SDK, the app's page says so, names the SDK the version needs, and says which version the app gets until then.
Stable and beta
Quran Lab releases a version on a channel, and an app follows one channel.
| Channel | What the app gets |
|---|---|
| Stable | The version Quran Lab has released for everyone. An app starts here. |
| Beta | The next version, before it is released for everyone. It can change without notice and may be withdrawn. While there is no beta version, an app on beta gets the stable one. |
A release can be staged: it reaches a share of installs first and the rest later. While it is staged, the app's page says how far it has got and what the other installs get.
Choose the channel on the app's page under Apps, on the Setup tab, in the Model version card. It is saved when you press it, and the app's Activity tab can undo it.
Pinning
A pin keeps an app on one version until you change it: no new version reaches the app, on either channel. Pin on the same card, by choosing A pinned version and then the version. Choosing Stable or Beta removes the pin.
Use a pin when you need time to test a new version before your learners get it. A pinned app also gets none of the fixes a newer version brings, so remove the pin when you are done.
What changes when an app moves to another version
Nothing in your app's code. A version brings these, as data the SDK reads:
- its weights, which the SDK downloads and switches to at the start of a session, never in the middle of one;
- its contexts, which are its response times: a version can ship other contexts than the one before it, and another default;
- its thresholds and what it recognises, in its signed calibration.
The response time chosen for the app on sdk.quranlab.ai holds as long as the version ships it. On a version that does not, that version's default runs, and the app's page says which one is in force and why. The saved choice holds again on a version that ships it.
Do not name a context in your app's code. An app that does gets an error when it moves to a version that does not ship that context, while a choice made on sdk.quranlab.ai is simply replaced by that version's default. Concepts says how a session picks its context.
Going back
From beta, choose Stable on the same card. From a pin, choose Stable or Beta. Either is one setting, and the app is served the version of its channel again at its next config check: within about five minutes while the app runs, or at its next launch.
When Quran Lab withdraws a beta version, apps on beta get the stable version, with nothing for you to do.