elm / package.elm-lang.org

website for browsing packages and exploring documentation
https://package.elm-lang.org/
BSD 3-Clause "New" or "Revised" License
293 stars 113 forks source link

Native review for newlandsvalley/elm-WebMidi #95

Closed newlandsvalley closed 8 years ago

newlandsvalley commented 8 years ago

I'd very much appreciate a review anyway (quite apart from being asked for one by elm-package publish). My knowledge of Elm's native conventions has been gleaned merely by browsing the core libraries and then trying to guess the rules.

You will need to use a MIDI device such as a MIDI keyboard to evaluate the code. Very simple library, providing support for just three MIDI signals - connection of a input device, disconnection, and production of notes from the device.

newlandsvalley commented 8 years ago

I've upgraded to Elm 0.16 and changed the repository name to be all lower case - newlandsvalley/elm-webmidi. I now use explicit initialisation (rather than have it implicit once you import the library) because it is now possible to do so (I was previously prevented by Elm issue 240 in stepTask).

Apanatshka commented 8 years ago

The native review pipeline is stalled. That's probably not news to you, but I wanted to leave a note on all the open reviews. I cannot speak for everyone, but as one of the reviewers I just want to speak up and say that I will not be doing more reviews. The warning about publishing native packages has changed, and Evan has mentioned multiple times in different places that one of his priorities for 0.17 is improving this process. So I'm going to wait for that. I'm sorry we cannot move forward with publishing your library, but my experience is that even if we review and approve it, it will become stuck waiting for Evan to whitelist it.

evancz commented 8 years ago

Sorry to keep this in limbo for so long. I am moving towards the plan outlined here and discussed a bit further in the 0.17 announcement.

Ultimately, I think this kind of stuff should live in elm-lang/midi so I think the right way to proceed is to design a fully Task based API that just does low-level bindings in a module called Midi.LowLevel. Similar to how elm-lang/websocket has WebSocket.LowLevel that can be used to define any sort of effect manager.

newlandsvalley commented 8 years ago

Thanks for the response, Evan. I'm very pleased that now with 0.17, it will be possible to wrap the web platform API, I am very interested to see more detailed documentation (of Effect Managers in particular) and also to find out to what extent you'd like community involvement and to what extent you prefer to do it yourself. Personally, I'd like to see the audio APIs covered sooner rather than later.