Skip to content

Instantly share code, notes, and snippets.

@abathur
Last active June 20, 2021 19:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abathur/3083d3982e3caa5f21ad91970b804f3e to your computer and use it in GitHub Desktop.
Save abathur/3083d3982e3caa5f21ad91970b804f3e to your computer and use it in GitHub Desktop.
braindumping ideas about different kinds of discovery in the Nix ecosystem

I've had a few different ideas kicking around that boil down to finding one or more places/formats for documenting parts of the known nixiverse (at least nix + nixpkgs + ecosystem/toolchain projects).

(each of these would need software and interested parties/personalities to drive them...)

A massive living differential-diagnosis-style flowchart of the ecosystem

  • Basically, everything official is fair game: concepts, official commands, config, modules, packages, error messages, best practices, and many third-party projects/resources (but I guess curation should be empowered to filter out self-promo/obsolete stuff).
  • Most importantly, the thing that drives linking those resources into the flowchart should be linking them to plausible questions/decisions.
  • Very specific details should probably be version-tagged?
  • When people ask novel questions, those questions/answers should go into the map.
  • Longer-term aspirations are things like:
    • having a single node in the graph for an error message template, from which it's simple to traverse to all known causes and their fixes, or to a list of all fixes
    • traversing from any tool to its common errors, anti-patterns, best-practices, examples, etc.
    • working from some tool like <thing>2nix up to all known similar projects for a language ecosystem, from where it's easier to discover the current best-practices for that ecosystem (read: alternative to failing through 3 no-longer-working ecosystem projects before finally stumbling on the correct ~modern solution)
  • Presumably just describing a graph database, thoughtful choices around node/edge types, and the software for editing/traversing it? It probably shouldn't all render at once, and it should be more structured than a sandbox.

A map of the project/idea space

This might fall under the scope of the above idea, but it has one focus that doesn't obviously fit in: a way to discover "unclaimed" or "abandoned" project ideas that already have some degree of community vetting.

Basically, a resource for projects it would be reasonably safe for someone looking for a project to take a swing at (i.e., known community interest), with some grouping by area and some sense of how much work/knowledge it'd entail.

Caution: This may be useless. It's on my mind because I bothered describing Nix installer improvements that I see as high-leverage karma-farming opportunities that would fix open wounds in Nix's first-time-experience, but all I've gotten is some hearts and an unrelated question. I ~imagine there are people in the community who don't really have a project. But maybe all of our proverbial plates are over-full. It may be best to ~survey people before implementing something no one has time to use.

The reason I say it doens't clearly fit in the broader map is that I'm not sure if the presence of "ideas" in the graph would confuse early users. It might be possible to have some ~type filtering and make some things opt-in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment