Extract first-party extensions into their own repositories and packages #57
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Every first-party extension ships inside the core
orbitpackage, so none can be removed or released without rebuilding the Host.Scope
orbit.launcherinto a publicorbit/orbit-<name>repository, keeping its history, extension id and contribution ids, and adding aPKGBUILD(arch=(any), installing into/usr/share/orbit/extensions/orbit.<name>/) and aLICENSE.extensions/as a submodule, using a relative URL.PKGBUILD, install onlyorbit.launcherfromextensions/, pointurlatorbit/orbit, and add anorbit-desktopsplit package that depends onorbitand every first-party extension package.AGENTS.mdfor submodules, and the install guide for the package layout.No dependency moves: the tools the extensions use (
cliphist,ghostty,hyprctl) are also used by the Host or its Hyprland config.Acceptance criteria
git clone --recurse-submodules https://code.olsen.cloud/orbit/orbitgives the pinned first-party set, and the dev shell shows every extension active fromextensions/.orbit/orbit-*repository is public and carries its extension's history.package()installs exactly its extension into/usr/share/orbit/extensions/orbit.<name>/, and the result validates.Refs #47
Done in
0308ea0. The 12 repositories orbit/orbit-{appearance,applications,audio,clipboard,clock,compositor,notifications,power,screenshot,session,settings,terminal} are public (checked anonymously) and carry their extension's history; their packaging commit is signed, and the rewritten history commits are unsigned because rewriting drops signatures. An anonymous 'git clone --recurse-submodules https://code.olsen.cloud/orbit/orbit' gives the pinned set, and the dev shell showed all 13 extensions active from extensions/. Each package() was dry-run in the VM: it installs exactly its extension, the result validates, and a pkgver that differs from the manifest fails the build. The core package() installs only orbit.launcher. scripts/install was exercised with stubbed makepkg/pacman: 12 extension builds, the core build, one pacman -U with 14 artifacts, then the extensions marked as dependencies. Not run on a real Arch machine.