circleci / rollcage

A Clojure client for Rollbar
Eclipse Public License 1.0
50 stars 28 forks source link

Core API functions lack metadata (e.g. arglists, doc) #49

Closed skuro closed 2 years ago

skuro commented 4 years ago

All of the main entry points in the rollcage APIs are created as a composition of def and partial, which fails to propagate metadata such as :doc and :arglists that could be used by IDEs to show contextual information while writing code.

As an example, here's what CIDER looks like when I type (cicleci.rollcage.core/notify |) (where | stands for the caret position):

image

or an even simpler example:

user> (doc circleci.rollcage.core/notify)
-------------------------
circleci.rollcage.core/notify
([level client exception] [level {:keys [result-fn send-fn], :as client} exception {:keys [url params]}])

But I expect almost no one to use the raw notify. At least here's what actually happens to me on a daily basis:

user> (doc circleci.rollcage.core/debug)
-------------------------
circleci.rollcage.core/debug
;; => nil

As I tend to constantly forget the order of arguments to the various logging functions, I'd like to propagate metadata to those functions that (I suppose) are used by most people.

Earlier last December I hastily created #48 without reading the README first, which suggests an issue should be created before merge requests. Here I am, trying to fix such a procedural mistake :-)

Thoughts?

skuro commented 2 years ago

Closed by #48