monome / norns

norns is many sound instruments.
http://monome.org
GNU General Public License v3.0
633 stars 147 forks source link

Design: Choose/Consolidate our interface(s) #1283

Open simonvanderveldt opened 3 years ago

simonvanderveldt commented 3 years ago

(Technical) Interfaces

At the moment we use three interfaces:

It would be good to define and document which one should be used for which purpose and use them accordingly.

User (facing) interfaces

We currently don't make the functionality that is offered via the above mentioned interfaces available everywhere. For example the fetch functionality is available only through the REPL but not via a CLI command whereas the "install script" functionality is available via the CLI and a HTTP command but not via the REPL. I think we have three places where we want to expose functionality to the user:

Is this list complete? If so it would be good to think about if we want all functionality available in all three of those or if some functionality should be made available only in a subset.

Which functionality?

This leads us to which functionality do we have/need? I've made a start of an overview based on the resources we have and which actions we want to be able take on these resources below. There's probably stuff missing:

This was triggered by the discussions in https://github.com/monome/norns/pull/1276 and https://github.com/monome/maiden/issues/192

simonvanderveldt commented 3 years ago

Suggestion would be:

Some questions:

ngwese commented 3 years ago

I think a statement of problem would help ground subsequent discussion.

(to be clear I'm not advocating against this, just hoping the goal is clear since this touches many different pieces of the system)

tehn commented 3 years ago

i think this is coming up for two reasons:

re: user cases

re: technical interfaces

@simonvanderveldt more generally i'd say the missing link right now is log management and a workable way for people to submit/read logs. if you'd like to take this on, it's one area i think you might be familiar with. i personally don't think we need commands to do anything fancy with the logs--- if they're just processed and symlinked to dust/data/log (or something) that seems more than adequate to me. (we can create a new issue for further discussion)

simonvanderveldt commented 3 years ago

@ngwese This doesn't necessarily mean anything will change, although there are probably some things that should be. Also I should've probably spent more time formulating the issue, to me it's clear, but apparently it's not.

The short version is that we're (sometimes) just diving in head first coding, adding stuff here and there, which is of course not the best approach to end up with a consistent and clear result. This issue is there to figure out the basics and would probably result in some docs with guidelines about the things mentioned in the issue description for anyone working on the norns stack and maybe a small checklist for PRs to the norns stack.