Edit

Versions & Releases

LearnHouse, @learnhouse/sdk, @learnhouse/react and @learnhouse/vue share one version number. Every LearnHouse release publishes the app and the packages together, built from the same source.

Release1.4.3
Dockerghcr.io/learnhouse/appDocker image1.4.3
npm@learnhouse/sdknpm1.4.3
React@learnhouse/reactnpm1.4.3
Vue.js@learnhouse/vuenpm1.4.3

Which version to install

Install the version that matches the instance you talk to.

InstanceInstall
LearnHouse CloudThe latest: npm install @learnhouse/sdk @learnhouse/react. Cloud is updated continuously, so it can have endpoints a little before the next release ships them in the SDK
Self-hostedThe version your instance runs, e.g. npm install @learnhouse/sdk@1.4.3 @learnhouse/react@1.4.3

Your instance's version is the tag of the ghcr.io/learnhouse/app image it runs (see docker-compose.yml in your installation). If you deploy latest, update the packages when you update the instance.

Each package exports the version it was built from:

import { SDK_VERSION } from '@learnhouse/sdk'
import { VERSION } from '@learnhouse/react'
import { VERSION as VUE_VERSION } from '@learnhouse/vue'

What can differ between versions

  • Types. The SDK's types describe the API of its release. An older instance may not have endpoints added later; calling one returns a 404.
  • Blocks. A newer @learnhouse/react renders every block an older instance can produce. An older package shows the text of blocks it doesn't know yet, instead of failing.

How a release is built

LearnHouse source
The web app’s renderer and the API schema
release tag
Build & test
Compiled, never copied
publish
npm
@learnhouse/sdk, @learnhouse/react and @learnhouse/vue

The packages are rebuilt from the release’s own source, so they can’t drift from the app they were released with.

  1. A LearnHouse release is tagged (for example 1.4.3).
  2. The SDK's types are regenerated from that tag's API, and the React package is compiled from that tag's web app.
  3. All are tested, and their versions are checked against the tag. A mismatch stops the release.
  4. The SDK is published first, then @learnhouse/react, which depends on that exact SDK version, then @learnhouse/vue, which depends on that exact @learnhouse/react.

Packages are published with npm provenance, so npm shows which LearnHouse release workflow built each version.