)]}'
{"doc/source/contributor/driver-development-guide.rst":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7030aab08a00e86d56429f832c03764feb391c48","unresolved":false,"context_lines":[{"line_number":3,"context_line":"Driver Development Guide"},{"line_number":4,"context_line":"########################"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The goal of this document is to explain how to develop a new kind of cyborg"},{"line_number":7,"context_line":"accelerator driver."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_4a8f7729","line":6,"range":{"start_line":6,"start_character":69,"end_line":6,"end_character":70},"updated":"2019-03-27 04:58:53.000000000","message":"Capitalize Cyborg","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"568d94991fbb49f66c548fde9bb0c978bfa03bd4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":".. note::"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  Make sure you have installed ``devstack`` environment before development."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Imply Interface"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_8f8b31be","line":11,"range":{"start_line":11,"start_character":1,"end_line":11,"end_character":75},"updated":"2019-03-27 03:59:06.000000000","message":"Make sure you have installed the OpenStack environment using devstack? and better give a link of devstack.","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"7030aab08a00e86d56429f832c03764feb391c48","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  Make sure you have installed ``devstack`` environment before development."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Imply Interface"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Imply the necessary interface:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_6aaa7371","line":13,"updated":"2019-03-27 04:58:53.000000000","message":"What does \"Imply Interface\" mean? It is better to say \u0027Instantiate new driver class\u0027, or \u0027Derive a new driver class from this base class.\u0027","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"568d94991fbb49f66c548fde9bb0c978bfa03bd4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Imply Interface"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Imply the necessary interface:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":".. code-block:: python"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_6fa92522","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":30},"updated":"2019-03-27 03:59:06.000000000","message":"It would be good if we could give a real example for how to imply.\n\nSuch as:\n\nclass NewCyborgDriver:","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":22899,"name":"coco-Gao","email":"419546439@qq.com","username":"Coco"},"change_message_id":"d7a05b28c502109f8c4f38392e76c4c70edeca7d","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":".. code-block:: python"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  class BaseDriver(object):"},{"line_number":21,"context_line":"      \"\"\"Base class for all drivers."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"      Defines the abstract base class for generic and vendor drivers."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_2a4eab96","line":20,"range":{"start_line":20,"start_character":8,"end_line":20,"end_character":18},"updated":"2019-03-27 05:43:04.000000000","message":"I think the base driver is already here. I prefer we give examples like GPUDriver which inherits from the BaseDriver. And based on that, how we write the discover code, like how we form our DriverDevice List( we should first form DriverDeployable, and the name field must be host unique, besides, the DriverAttachHandle type field must be \"PCI\" or \"MDEV\"). I think this part should contain every detail that developers might not know.","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"d3393ea0d4f86eb501d0f880344e3320cc09f71d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"      Defines the abstract base class for generic and vendor drivers."},{"line_number":24,"context_line":"      \"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"      def discover(self):"},{"line_number":27,"context_line":"          \"\"\"Discover specific accelerator"},{"line_number":28,"context_line":"          :return: list of cyborg.objects.driver_objects.driver_device."},{"line_number":29,"context_line":"                   DriverDevice"},{"line_number":30,"context_line":"          \"\"\""},{"line_number":31,"context_line":"          pass"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Modify setup.cfg"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_fea2a8fb","line":31,"range":{"start_line":26,"start_character":0,"end_line":31,"end_character":14},"updated":"2019-03-27 06:00:42.000000000","message":"IMHO, this doc aims at letting driver developer encapsulate the specific device info into cyborg internal object structure(driver obejcts), it will be better to elaborate what kind of info is stored in each driver object.","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"568d94991fbb49f66c548fde9bb0c978bfa03bd4","unresolved":false,"context_lines":[{"line_number":40,"context_line":" [entry_points]"},{"line_number":41,"context_line":" cyborg.accelerator.driver \u003d"},{"line_number":42,"context_line":"     intel_fpga_driver \u003d cyborg.accelerator.drivers.fpga.intel.driver:IntelFPGADriver"},{"line_number":43,"context_line":"     new_driver_name \u003d module_path_to_new_driver"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Reinstall and Test"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_ef6af5ea","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":48},"updated":"2019-03-27 03:59:06.000000000","message":"and this path can be cyborg.accelerator.drivers.example.driver:NewCyborgDriver","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"568d94991fbb49f66c548fde9bb0c978bfa03bd4","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: console"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":" $ python setup.py develop"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_af786dc3","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":26},"updated":"2019-03-27 03:59:06.000000000","message":"and then restart the cyborg process? I guess only agent is required to restart.","commit_id":"460ea641b1c69e21d1a50b69e7283e460e60997e"}]}
