Arroyo Systems are defined by a set of org-mode documents and a database caching layer. This repository is that database caching layer.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Ryan Rix 6b63482e8d
store and hash files in the DB -- cull deleted files' keywords
2 months ago
README.org [arroyo] point to README for git etc 1 year ago
arroyo-db.el store and hash files in the DB -- cull deleted files' keywords 2 months ago
arroyo-emacs.el use new nix version pin paradigm 5 months ago
arroyo-emacs.org Make <arroyo> importable & a nixpkgs overlay 3 months ago
arroyo-feed-cache.org arcology metadata 5 months ago
arroyo-feed.yasnippet.org_archive [feeds] generate ggs fragments on key/value pairs 1 year ago
arroyo-feeds.el [feeds] add commands, use ugly call-block function 1 year ago
arroyo-home-manager.el [home] role filtering support 1 year ago
arroyo-home-manager.org arcology metadata 5 months ago
arroyo-nix.org headers and WS 3 months ago
arroyo-nixos.el [nixos] clean up arroyo-nixos-import fn 7 months ago
arroyo-nixos.org arcology metadata 5 months ago
arroyo-system-cache.org store and hash files in the DB -- cull deleted files' keywords 2 months ago
arroyo-utils.el pass files through to dep ordering command instead of s-exps 1 year ago
arroyo-utils.org arcology metadata 5 months ago
arroyo.org arcology metadata 5 months ago

README.org

Arroyo Systems Management

What are Arroyo Systems?

Arroyo systems are the latest iteration of my the CCE Emacs init.el generator cum Concept Operating System built for managing my laptops and desktops around an NixOS, Emacs, EXWM, and Evil Mode system. It is distributed and developed as a collection of org-mode documents which can be used to provision and upgrade the system and shared on the web to enrich the lives of weirdos like me.

pulling inspiration from vulpea and vino of building out a context-specific database hypermedia application which integrate with org-roam rather than extending or working within the API-space of org-roam itself, Arroyo consists of a database caching layer working alongside an org-roam database which can be queried to assemble a NixOS system and highly-customized Emacs installation-and-configuration.

it's designed such that a user can plug various pieces of system configuration together in the form of org-mode documents, creating a system which is literally self-documented.

By using a cache similar to the one built for my org-roam keyword caching patch, we can construct a higher-level database schema for the Arroyo system generators. The Arroyo System Cache aka arroyo-db will create a simple key-value store which higher-level generators like Arroyo Emacs Generator can use to assemble and automate systems.

An Arroyo System's configuration can be published on the web using Arcology, an elixir web document publishing framework built under similar ideas and philosophies with the end goal of socially-maintained hand-crafted and user-customized Linux systems.

Arroyo Systems are "designed" to develop in fits and bursts

Arroyos are a type of stream bed biome common in the American southwest and northern Mexico Sonora Bioregion which is dry for most of the year and gets most of its rain in brief torrential surface flows. When I was young, I lived in a home which backed up to an arroyo and I spent quite some time wandering its trails and its unkept willows and catching my clothes on catclaws, using it as a shortcut through the neighborhood and an escape in to an increasingly developed suburban sprawl.

I was always enchanted with the arroyo during and after the torrential downpours Phoenix would have in the late summers, as tonnes of water passed through willows and waterweed. The arroyo would teem with life during the monsoon season as the brief intense rains pushed life out of its shaded cracks and in to a frenzy of growth and development and used it as a migration route just as the humans in the built environment around it did in its dry periods.

The Arroyo system pulls inspiration from this as a lens to look at how personal systems management is spurred on by

  • keeping up with ecosystem development and migration without undue effort
  • external changes and new tools should be easy to try and easy to then disregard
  • slow thinking and quick implementation of internal development to match with life needs
  • management of overgrowth through periods of careful usage and evaluation

This system develops when I feel like it, and has slowly over the course of a decade developed in to something which can be shared and perhaps replicated. When a beautiful summer's day spurs me to investigate a new library or I learn about a new paradigm I sit and think about it. The Arroyo floods and growth follows quickly; there might not be another rain of insight until winter, after all.

NEXT Assembling an Arroyo System

  • How do I use these libraries to generate an Emacs init file?
  • How do I use these libraries to build a NixOS system?
  • How do I use these libraries to build an emacs-gcc with packages provided by NixOS at build time?
  • How do I use these libraries to install and manage software for my user account?
  • How do I build more generators on top of this system?

Arroyo is itself an Arroyo Emacs module

It should probably be defined as a Arroyo Home Manager module, too, once the code has stabilized..

(add-to-list 'load-path "~/org/arroyo")
(require 'org-roam)
(require 'arroyo-db)
(require 'arroyo-utils)
(require 'arroyo-home-manager)
(require 'arroyo-nixos)
(require 'arroyo-emacs)
(require 'arroyo-feeds)

Arroyo Generators

Working arroyos:

These flow together and in theory other arroyos could feed in to them, basically anything which requires or desires nontrivail configuration and long-term documentation.

NEXT is The Arcology Project itself an Arroyo System?

it's not really built to compose, and i'd rather not use the arroyo system as a generic build tool! though it sort of is for org-mode files…

Coming back to this [2021-12-02 Thu] i specify a table layout which could be expressed as an Arroyo generator. I'd like to keep the generator outside of the Arroyo project, and in Arcology, but I think at this point it makes sense to spend a bit of time cleaning up the core APIs and documenting them better, and then coming back to Arcology with a smarter table design.

NEXT arroyo module groupings to modularize CCE