{"action":"created","issue":{"url":"https://api.github.com/repos/stumpwm/stumpwm/issues/206","labels_url":"https://api.github.com/repos/stumpwm/stumpwm/issues/206/labels{/name}","comments_url":"https://api.github.com/repos/stumpwm/stumpwm/issues/206/comments","events_url":"https://api.github.com/repos/stumpwm/stumpwm/issues/206/events","html_url":"https://github.com/stumpwm/stumpwm/pull/206","id":91998487,"number":206,"title":"Rework the API of for manipulating *module-dir*","user":{"login":"PuercoPop","id":387111,"avatar_url":"https://avatars.githubusercontent.com/u/387111?v=3","gravatar_id":"","url":"https://api.github.com/users/PuercoPop","html_url":"https://github.com/PuercoPop","followers_url":"https://api.github.com/users/PuercoPop/followers","following_url":"https://api.github.com/users/PuercoPop/following{/other_user}","gists_url":"https://api.github.com/users/PuercoPop/gists{/gist_id}","starred_url":"https://api.github.com/users/PuercoPop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PuercoPop/subscriptions","organizations_url":"https://api.github.com/users/PuercoPop/orgs","repos_url":"https://api.github.com/users/PuercoPop/repos","events_url":"https://api.github.com/users/PuercoPop/events{/privacy}","received_events_url":"https://api.github.com/users/PuercoPop/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-06-30T06:18:06Z","updated_at":"2015-08-03T09:08:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/stumpwm/stumpwm/pulls/206","html_url":"https://github.com/stumpwm/stumpwm/pull/206","diff_url":"https://github.com/stumpwm/stumpwm/pull/206.diff","patch_url":"https://github.com/stumpwm/stumpwm/pull/206.patch"},"body":"Hi, the reasoning behind this change is that I was recently surprised when ```(setf *module-dir* ...)``` didn't work as expected in spite of ```*module-dir*``` being a public symbol in the stumpwm package. After reading module.lisp I saw the I was misusing the API and should call set-config-dir instead. However a more idiomatic API would be for a \"setter/getter\" and keeping ```*module-dir*``` private.\r\n\r\n```\r\n(module-dir) ;; getter\r\n\r\n(setf (module-dir) #P\"/path/to/contrib/dir\") ;; setter\r\n```\r\n\r\nHowever I saw the module API is being reworked so I know this is probably not going to be merged. I would like to suggest a different way to handle the module API that the currently proposed upgrade path that leverages ASDF extensibilty\r\n\r\nWe can define a class stumpwm-module that inherits from asdf:system and just use asdf search path to load-modules. We could then define a new operation *load-module* that only works on *stumpwm-module*s or just use asdf's load-op (my prefered choice) and just use the stumpw-module information for ```(list-modules)```. The manual would only need to have a tldr of how to configure [asdf's search path](https://common-lisp.net/project/asdf/asdf.html#Controlling-where-ASDF-searches-for-systems)\r\n\r\nLet me know what y'all think, If deemed a good idea I could work on a tentative implementation over the weekend."},"comment":{"url":"https://api.github.com/repos/stumpwm/stumpwm/issues/comments/127172068","html_url":"https://github.com/stumpwm/stumpwm/pull/206#issuecomment-127172068","issue_url":"https://api.github.com/repos/stumpwm/stumpwm/issues/206","id":127172068,"user":{"login":"dbjergaard","id":171410,"avatar_url":"https://avatars.githubusercontent.com/u/171410?v=3","gravatar_id":"","url":"https://api.github.com/users/dbjergaard","html_url":"https://github.com/dbjergaard","followers_url":"https://api.github.com/users/dbjergaard/followers","following_url":"https://api.github.com/users/dbjergaard/following{/other_user}","gists_url":"https://api.github.com/users/dbjergaard/gists{/gist_id}","starred_url":"https://api.github.com/users/dbjergaard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbjergaard/subscriptions","organizations_url":"https://api.github.com/users/dbjergaard/orgs","repos_url":"https://api.github.com/users/dbjergaard/repos","events_url":"https://api.github.com/users/dbjergaard/events{/privacy}","received_events_url":"https://api.github.com/users/dbjergaard/received_events","type":"User","site_admin":false},"created_at":"2015-08-03T09:08:47Z","updated_at":"2015-08-03T09:08:47Z","body":"I'll merge this original PR, but it breaks make-image.lisp for ecl which requires set-module-dir.  It shouldn't take too much to fix this, I'm just writing this as a note to self so I don't forget this when I merge."}}