{"action":"created","issue":{"url":"https://api.github.com/repos/flux-framework/flux-sched/issues/125","repository_url":"https://api.github.com/repos/flux-framework/flux-sched","labels_url":"https://api.github.com/repos/flux-framework/flux-sched/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/flux-framework/flux-sched/issues/125/comments","events_url":"https://api.github.com/repos/flux-framework/flux-sched/issues/125/events","html_url":"https://github.com/flux-framework/flux-sched/issues/125","id":136158927,"number":125,"title":"sched plugin design iteration with rfc 5 desirable","user":{"login":"garlick","id":169947,"avatar_url":"https://avatars.githubusercontent.com/u/169947?v=3","gravatar_id":"","url":"https://api.github.com/users/garlick","html_url":"https://github.com/garlick","followers_url":"https://api.github.com/users/garlick/followers","following_url":"https://api.github.com/users/garlick/following{/other_user}","gists_url":"https://api.github.com/users/garlick/gists{/gist_id}","starred_url":"https://api.github.com/users/garlick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garlick/subscriptions","organizations_url":"https://api.github.com/users/garlick/orgs","repos_url":"https://api.github.com/users/garlick/repos","events_url":"https://api.github.com/users/garlick/events{/privacy}","received_events_url":"https://api.github.com/users/garlick/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-24T19:16:23Z","updated_at":"2016-03-14T19:07:45Z","closed_at":null,"body":"There was a preliminary design expressed in [RFC 5](https://github.com/flux-framework/rfc/blob/master/spec_5.adoc)  which would allow `flux module load` to load modules that were plugins to comms modules, `flux module list` to list modules and their submodules, etc..  The design was prototyped in the test programs in  [flux-core/src/test/module](https://github.com/flux-framework/flux-core/tree/master/src/test/module) and driven by the `t0003-module.t` sharness test.  (Note these test modules use deprecated API functions and need to be reworked).  Basically a module that wants to load plugins implements insmod/rmmod/lsmod handlers.\r\n\r\nI see that the sched plugin design initially followed RFC 5 in that its plugins define `mod_name` and it uses `flux_modfind()` to locate modules by name, but perhaps was not made fully compliant due to some design deficiency in the rfc or in the flux_mod* functions exported by core.\r\n\r\nI would like to propose that we revisit this and see if we can come up with a generalized module loading strategy that can be used for all framework projects including sched.\r\n\r\nThe current state of things in sched is problematic:  Initially in #115 @lipari proposed installing sched plugins into `$libdir/flux/modules`, but during the iteration I requested that they go to their own location due to non-compliance with RFC 5.  However, the sched module is still using `FLUX_MODULE_PATH` and `flux_modfind()` to locate its plugins, so that is not going to work for an installed flux-sched.\r\n"},"comment":{"url":"https://api.github.com/repos/flux-framework/flux-sched/issues/comments/196477486","html_url":"https://github.com/flux-framework/flux-sched/issues/125#issuecomment-196477486","issue_url":"https://api.github.com/repos/flux-framework/flux-sched/issues/125","id":196477486,"user":{"login":"garlick","id":169947,"avatar_url":"https://avatars.githubusercontent.com/u/169947?v=3","gravatar_id":"","url":"https://api.github.com/users/garlick","html_url":"https://github.com/garlick","followers_url":"https://api.github.com/users/garlick/followers","following_url":"https://api.github.com/users/garlick/following{/other_user}","gists_url":"https://api.github.com/users/garlick/gists{/gist_id}","starred_url":"https://api.github.com/users/garlick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garlick/subscriptions","organizations_url":"https://api.github.com/users/garlick/orgs","repos_url":"https://api.github.com/users/garlick/repos","events_url":"https://api.github.com/users/garlick/events{/privacy}","received_events_url":"https://api.github.com/users/garlick/received_events","type":"User","site_admin":false},"created_at":"2016-03-14T19:07:45Z","updated_at":"2016-03-14T19:07:45Z","body":"RFC 5 is in a state of flux, but for starters, to work with current flux-core:\r\n* install sched modules to $(libdir)/flux/modules/sched\r\n* rename `sched.plugin1` to something more descriptive like `sched.fifo`?\r\n* rename `backfill.plugin1` to something with `sched.prefix` like `sched.backfill`?"}}