Skip to content

Updating and rolling back

Pieces update independently: the carrier, the plugin manager, the loaders, and the plugin packages. The commands are the same on every carrier; only the package label changes.

Terminal window
lip list

The installed packages appear with their versions, and packages installed by label show the label (HostingShim#[email protected]). Keep this output before an update.

Terminal window
lip update github.com/HosihikariFramework/HostingShim#levilamina

lip update takes the same package syntax as lip install, including the #variant label. Use -n to see what would change without doing it.

There is no lip upgrade; that command does not exist.

lip install with an explicit version both upgrades and downgrades:

Terminal window
lip install github.com/HosihikariFramework/HostingShim#[email protected]

This is the rollback path. Install the version that worked, restart, and confirm the log shows the framework taking over again.

Everything the framework loads runs inside the server process:

  • The carrier and the plugin manager. Restart.
  • Loader packages. They cannot be unloaded at runtime; disabling or upgrading one means a restart.
  • Plugin packages. Under a parent, the parent can disable, enable, and unload plugins at runtime. Self-hosted has no runtime enable or disable yet: move the package out of plugins/ and restart. Plugin management commands are planned; until then this is the only path.

The release page lists which versions were published together. Two numbers do the actual work:

  • Hosting contract version. The native carrier and the plugin manager check each other before starting. A mismatch stops the startup sequence; see Recovery.
  • api_version. The plugin manifest declares the contract it was built against. A plugin built for an incompatible line is refused before it runs.

Read the release notes for the line you are moving to.

When several packages move at once, update the carrier first — it pulls the plugin manager it needs as a lip dependency — then the loader packages, then the plugin packages. Restart once at the end.