This is pre-alpha software. DO NOT USE.
Borg Queen is a package management frontend for Borg, providing a visual interface to manage and upgrade your drones, along with a few utility functions.
Borg is a minimal Emacs package manager which stores packages as Git
submodules. Unlike the standard package.el
, Borg makes it trivial to
contribute back changes to packages, since everything is already a git
repository. No more need to clone repositories and update load-path
to start working on a package: everything’s already there. Also, Borg
makes your configuration perfectly reproducible, since Git submodules
always point to a specific commit.
On top of Borg, Borg-Queen provides:
- A unified package management UI for both clones and drones (simple clones or submodules).
- Manually managed upgrades. Borg Queen leaves you in full control of what, when and how you upgrade. You may pull everything to the more recent commit, or just pull two new commits for a specific drone, or maybe pull a drone to the latest commit while downgrading another to an older tag.
- Stable or unstable mode. Borg Queen allows to auto-upgrade only to new tags or to each new commit.
- PGP signatures. Borg Queen allows to define (globally or for each drone) a set of valid PGP keys and verify signatures before building an updated drone. It has an extra paranoia mode where it won’t upgrade a drone unless it has a list of valid keys for it, and of course the signature can be verified.
Try borg-queen
by running:
M-x borg-clone RET borg-queen RET M-x borg-queen
You’ll be shown Borg Queen’s UI.
Git allows for commits of tags to be digitally signed using GnuPG. By default, Borg Queen verifies such signatures when one is present, and dispays the signed ID in the main screen, and verification details on a popup.
It is better to tell Borg Queen which PGP keys are actually valid for signing packages:
- To configure a list of valid PGP keys for a given package, set the
submodules.DRONE.signingkey
entry in.gitmodules
. This entry can be repeated if needed. - To configure
These bindings are active in the Borg Queen interface, which is invoked with M-x borg-queen RET
.
Binding | Action |
---|---|
u | Mark for auto upgrade |
U | Mark for auto upgrade or downgrade (see note below) |
c | Mark for upgrade to most recent commit |
C | Prompt for commit or tag, then mark for upgrade |
t | Mark for upgrade to latest tag |
T | Prompt for tag, then mark for upgrade |
A | Mark clone for assimilation |
R | Mark for removal |
x | Execute marks |
a | Assimilate new package as a submodule |
b | Clone new package |
f | Fork a package. |
! | Commit changes to .emacs.d . |
g | Refresh |