Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Episteme 2.0 #18

Open
15 of 19 tasks
dustinlacewell opened this issue Jan 1, 2022 · 0 comments
Open
15 of 19 tasks

Episteme 2.0 #18

dustinlacewell opened this issue Jan 1, 2022 · 0 comments

Comments

@dustinlacewell
Copy link
Contributor

dustinlacewell commented Jan 1, 2022

This ticket is a place to track progress on Episteme 2.0

Motivation

A combination of factors combine to make Episteme difficult to package for NixOS:

  • Episteme wants to tangle support.org on startup
  • We have features for directly contributing changes to support.org from Episteme
  • The Apoptosis org knowledge-files are in this repository
  • The Nix store is read-only

Overview

Episteme 2.0 will feature a number of changes, some which are meant to address the above:

  • The Apoptosis org knowledge-files will be moved to apoptosis/episteme.org repository
  • The episteme CLI will partially bootstrap ~/.config/episteme/:
    • It will clone the official apoptosis/episteme repository to ~/.config/episteme/support/ if it does not exist
    • It will clone the official apoptosis/episteme.org repository to ~/.config/episteme/remotes/apoptosis/ if no others exist

Multiple Remotes

Multiple knowledge-bases will be supported. Git repositories under ~/.config/episteme/remotes/ will be considered available knowledge-bases for browsing. Commands will be made available for selecting which knowledge-base is currently active, adding new remotes, etc.

Self-updating

The episteme CLI will ensure that, if it doesn't exist, that this repository (apoptosis/episteme) is cloned to ~/.config/episteme/support/. By moving support.org to the user's home directory, we:

  • Make it easier to package on Nix (and other readonly package managers)
  • Retain our support.org devtools (basically the ability to contribute changes back upstream)
  • Allow Episteme to self-update by pulling on ~/.config/episteme/support/

Entrypoint wrapper

In order to support self-updating of the CLI itself, we ought to have whatever binary gets installed into a users system essentially execute the real script in the support directory.

Finally, support.org will continue to do the final bootstrapping of the user's init.el and config.el files.

Checklist

CLI Wrapper:

  • Bootstraps support files
  • Bootstraps Apoptosis remote
  • Executes real entrypoint in support

CLI:

  • support.org correctly tangled on startup
  • support.el correctly loaded on startup

Support:

  • Can update support repo
  • Can open support.org
  • Can open git status of support repo
  • Periodically fetch support repo in background
    • Display support update status in modeline

Remotes:

  • Can list current remotes
  • Can add a new remote
  • Can remove a remote
  • Can update a remote
  • Can open git status of remote
  • Can set the active remote
    • Current remote shown in modeline
  • Periodically fetch remotes in background
    • Show remotes needing update in modeline
@Lord-Valen Lord-Valen pinned this issue Jan 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant