~severeoverfl0w

https://dominic.io

Trackers

~severeoverfl0w/wedge

Last active 15 days ago

~severeoverfl0w/public-todo

Last active 10 months ago

#34 system get helpers 15 days ago

Ticket created by ~severeoverfl0w on ~severeoverfl0w/wedge

In Edge it's annoying to get a component from the production system, especially in integrant with it's indirection capabilities. But you also want this during development too, sometimes with different keys.

#33 Support specifying a list of ns to compile 4 months ago

Ticket created by ~severeoverfl0w on ~severeoverfl0w/wedge

This would be useful for mount, as well as just for any overrides you use in a specific environment or for use with clip.

#27 Built-in Fern-based systems for Integrant and Clip 4 months ago

on ~severeoverfl0w/wedge

REPORTED RESOLVED IMPLEMENTED

#30 Separate config from system API 4 months ago

on ~severeoverfl0w/wedge

REPORTED RESOLVED IMPLEMENTED

#32 Add aot to wedge-juxt 4 months ago

Ticket created by ~severeoverfl0w on ~severeoverfl0w/wedge

A default aot alias would be very useful, with setup of the classes directory, etc.

#30 Separate config from system API 4 months ago

Comment by ~severeoverfl0w on ~severeoverfl0w/wedge

I'm decided on:

Configs dynamically load any extensions based on what's on the classpath

This allows documentation to be added to the config about which extensions are built into them. The config will also be responsible for defining how other extensions could be loaded, in aero this is defined as a key that's read before reading. In fern this is a plugins key that's part of the config. I'm undecided how environ support would work, it may just be a library you'd use directly from a var-based config.

#494 sort lost after opening message using maildir 5 months ago

Ticket created by ~severeoverfl0w on ~sircmpwn/aerc2

If I, e.g. :sort date and then open a message, upon returning the sort has been returned to the default (:sort -r date I think).

#488 add indicator /disable :sort if imap can't sort server side 5 months ago

Comment by ~severeoverfl0w on ~sircmpwn/aerc2

Gmail? Sort is not supported on gmail.

Yeah, I'm using gmail.

#488 add indicator /disable :sort if imap can't sort server side 5 months ago

Ticket created by ~severeoverfl0w on ~sircmpwn/aerc2

Using :sort -r date doesn't seem to update the UI at all but does say "Sorting complete".

This happens when the remote server doesn't support the extension. We need to disable :sort in that case instead of just ignoring it when explicitly sorting.

#30 Separate config from system API 7 months ago

Comment by ~severeoverfl0w on ~severeoverfl0w/wedge

This is a great example of integration woes. It stems from the framework nature of Wedge (this isn't a problem when you're putting the pieces together yourself).

With the combined integrant-aero namespace there was a clear responsibility for integrating the two parts. When you make these separate, even were you to build some auto-combination-functionality, where would you document it? This moves clearly into occult rather than an explicit, clear process.

Stepping back a little bit, the problem is that the config cannot be read in a bubble. To read the config, you must know the system. So there's an inherent coupling there. That's not always true though, environ doesn't have this problem until the transform phase (which is inherently coupled to the system, it's glue!). There's a parallel with read-eval. While they're decoupled, you sometimes need to configure read using data_readers.cljc in order to actually read something such that it can be evaluated.

Options:

  • Retain the combined config-system step
  • Add mechanism to wedge which can detect combined pairs and execute code
  • Add plugins to Wedge which would be explicitly loaded: {:system integrant :config aero :plugin [integrant-aero]}
  • Don't support aero, only support configs which can be read without additional context
  • Systems provide a function for loading them for a given config system.
  • Configs dynamically load any extensions based on what's on the classpath (rather than what's actually in use)
  • Systems dynamically load any config extensions based on what's on the classpath :)

Going back to the problem statements that drove this:

  • There are use-cases for pulling from the config that aren't systems, but we'd still like to derive everything from config
    • reading a figwheel build rather than starting it as part of your system (required for clip).
  • There's high friction to adding new system or config libraries as the work is M×N rather than M+N.

Constraints:

  • Clear documentation - when this is activated, what's it activated by
  • Forked system or config support
  • Allow adding new integrations to existing configs or systems that Wedge has never heard of (e.g. adding fern support to Wedge's integrant or integrant support to Wedge's aero)