)]}'
{"doc/source/contributor/project-scope.rst":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6b912126a0636e1ccbf932a2caae11012a77cf77","unresolved":true,"context_lines":[{"line_number":75,"context_line":"Drivers may offer additional capabilities, such as programming, partitioning,"},{"line_number":76,"context_line":"reset, or cleaning."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"A driver must declare its optional capabilities. When drivers claim the same"},{"line_number":79,"context_line":"capability, requests and lifecycle results must have the same observable"},{"line_number":80,"context_line":"meaning. Hardware availability and performance may differ and are not parity"},{"line_number":81,"context_line":"requirements. Clients must be able to discover which capabilities are"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6eefa0d2_b58e7ce2","line":78,"updated":"2026-10-09 11:19:54.000000000","message":"It\u0027s not entirely clear to me what `declare` means in this context. Does it mean stating the driver capabilities in the driver docs? Code-wise, I don\u0027t think we have any mechanism that does anything like it\u0027s described here, do we?\n\nDoes it mean declaring device capabilities via traits?","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"56526a6c103bced570349c35cd1b0bbb0dbca746","unresolved":true,"context_lines":[{"line_number":75,"context_line":"Drivers may offer additional capabilities, such as programming, partitioning,"},{"line_number":76,"context_line":"reset, or cleaning."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"A driver must declare its optional capabilities. When drivers claim the same"},{"line_number":79,"context_line":"capability, requests and lifecycle results must have the same observable"},{"line_number":80,"context_line":"meaning. Hardware availability and performance may differ and are not parity"},{"line_number":81,"context_line":"requirements. Clients must be able to discover which capabilities are"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4af08c63_ffcce16e","line":78,"in_reply_to":"6eefa0d2_b58e7ce2","updated":"2026-10-09 14:39:44.000000000","message":"i was thinkign both code and docs\n\nnova has a dictionaly of boolean capablities that all driver define for things like live migration or other optoinal operatons\n\nso the way i envison this workign is we will have a python protocol or abstract base class with abstract mehod for all required and optional driver methods\n\nby defautl calling a mentod on a drvier that does not supprot \"programing a device\" woudl raise not implmatned\n\nbut i would like to have thos capablity (defined as a set fo contat keys) declared on the class so we can check if a dirver support an operation without havign to call it and just catch the excption.\n\nin nova we also reflect some of these capablits as traits in placement so we can schdule on them in that case we refer to those as compute capablity traits.\n\ni dont know if that is something we ill have a usecase for in cybrog but that a secondary portial use case.\n\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/driver.py#L219-L259\nhttps://github.com/openstack/nova/blob/master/nova/virt/driver.py#L307-L350\n\n\nthis docuemtn is writen to be somewhat forward lookign so not everything described today may be implmented in the code presently.","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6b912126a0636e1ccbf932a2caae11012a77cf77","unresolved":true,"context_lines":[{"line_number":94,"context_line":"inventories, and traits that it is responsible for managing. Placement accounts"},{"line_number":95,"context_line":"for those resources."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The consuming workload integration or standalone client creates and cleans up"},{"line_number":98,"context_line":"Placement allocation claims. It also selects the host and resource provider,"},{"line_number":99,"context_line":"usually through a workload scheduler. Cyborg realizes the selected resource"},{"line_number":100,"context_line":"and may choose or create a concrete partition or slice within the selected"}],"source_content_type":"text/x-rst","patch_set":1,"id":"70a013ae_d7c489aa","line":97,"updated":"2026-10-09 11:19:54.000000000","message":"Does `The consuming workload integration or standalone client` mean Nova? If so, I think this could be written in a simpler or more direct manner\n\nEDIT: The `Service dependencies and integrations` section makes this clear, maybe it would be good to move that section up before this one","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"56526a6c103bced570349c35cd1b0bbb0dbca746","unresolved":true,"context_lines":[{"line_number":94,"context_line":"inventories, and traits that it is responsible for managing. Placement accounts"},{"line_number":95,"context_line":"for those resources."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The consuming workload integration or standalone client creates and cleans up"},{"line_number":98,"context_line":"Placement allocation claims. It also selects the host and resource provider,"},{"line_number":99,"context_line":"usually through a workload scheduler. Cyborg realizes the selected resource"},{"line_number":100,"context_line":"and may choose or create a concrete partition or slice within the selected"}],"source_content_type":"text/x-rst","patch_set":1,"id":"834e9268_c68c4445","line":97,"in_reply_to":"70a013ae_d7c489aa","updated":"2026-10-09 14:39:44.000000000","message":"i am explcitly not using the term nova becasuse techcnial both nova and zun can be the consuming workload\n\nalhtough no one has thested the latter in years.\n\nin theory you shoudl be able ot use cybrog standalone for non opnesack invetory managment too the same way you can use cidner without nova, ironic or zun.\n\nbut use you can sub in nova and it would not be entirly incocrect\n\nand sure i can move that up.","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ac363852c62bd7f8cc2a028f15e26355a44ad88","unresolved":true,"context_lines":[{"line_number":103,"context_line":"Device profiles and related metadata describe resource requirements and device"},{"line_number":104,"context_line":"capabilities. They do not control compute, storage, network, or other behavior"},{"line_number":105,"context_line":"owned by another service."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Allocation lifecycle"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"88fe0e41_033cfe19","line":106,"updated":"2026-10-12 13:03:58.000000000","message":"In future, Can we also add another section about different cyborg services and their boundaries so that when user adds new driver they should be aware about what logic or integration/allocation lifecycle should go where.","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ac363852c62bd7f8cc2a028f15e26355a44ad88","unresolved":true,"context_lines":[{"line_number":117,"context_line":"does not perform the final attachment to a virtual machine, container,"},{"line_number":118,"context_line":"bare-metal workload, or other consumer. This keeps resource lifecycle"},{"line_number":119,"context_line":"management separate from workload scheduling and runtime control."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Service dependencies and integrations"},{"line_number":122,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"2333d5d1_4def9782","line":120,"updated":"2026-10-12 13:03:58.000000000","message":"The above paragraph talks about bind allocation lifecycle, Can we also extend this paragraph to talk about what cyborg does when workload gets released?","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ac363852c62bd7f8cc2a028f15e26355a44ad88","unresolved":false,"context_lines":[{"line_number":195,"context_line":"direction. Until then, the upgrade guide and release notes must state the"},{"line_number":196,"context_line":"supported procedure and any required downtime."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Stable REST API behavior must remain compatible within its published"},{"line_number":199,"context_line":"microversion contract. Cyborg does not provide an API extension framework; new"},{"line_number":200,"context_line":"API functionality uses microversions. Behavior within a supported microversion"},{"line_number":201,"context_line":"must remain compatible."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Cyborg may raise the minimum supported microversion, introduce a new major API"},{"line_number":204,"context_line":"version, or retire a supported public capability. The project must announce"},{"line_number":205,"context_line":"the deprecation no later than a SLURP release and continue support through at"},{"line_number":206,"context_line":"least the following SLURP release. Deprecations must include release notes and"},{"line_number":207,"context_line":"migration guidance. This SLURP-aligned policy applies to supported public APIs"},{"line_number":208,"context_line":"and capabilities, not internal interfaces or unsupported external drivers."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Supported public lifecycle behavior should not change without a documented"},{"line_number":211,"context_line":"migration path. Experimental capabilities must be identified through API"},{"line_number":212,"context_line":"discovery, documentation, or release notes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"0b99217c_9094cdfc","line":209,"range":{"start_line":198,"start_character":0,"end_line":209,"end_character":1},"updated":"2026-10-12 13:03:58.000000000","message":"+1 for documenting about when to drop and add microversion bump.","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ac363852c62bd7f8cc2a028f15e26355a44ad88","unresolved":true,"context_lines":[{"line_number":224,"context_line":"Cyborg API without changing Cyborg\u0027s public contract."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Integrations that use another project or tool\u0027s supported public extension"},{"line_number":227,"context_line":"points are in scope. Examples include scheduler filters or weighers, Tempest"},{"line_number":228,"context_line":"plugins, and OpenStackClient plugins. Cyborg should propose native integration"},{"line_number":229,"context_line":"to the owning project when appropriate. If that project accepts the proposal,"},{"line_number":230,"context_line":"Cyborg may move the integration there. Otherwise, Cyborg may maintain the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6a58338c_949c300f","line":227,"range":{"start_line":227,"start_character":38,"end_line":227,"end_character":67},"updated":"2026-10-12 13:03:58.000000000","message":"Does it refers to Nova scheduler extensions? responsible for cyborg vm to find a proper host.","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"8ac363852c62bd7f8cc2a028f15e26355a44ad88","unresolved":true,"context_lines":[{"line_number":301,"context_line":"  and policy; or"},{"line_number":302,"context_line":"* configuration and orchestration inside a workload."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Cyborg may call installed tools or drivers to perform an in-scope lifecycle"},{"line_number":305,"context_line":"operation. That does not make installation or maintenance of those tools part"},{"line_number":306,"context_line":"of Cyborg. Cyborg may also read the device status needed to determine whether"},{"line_number":307,"context_line":"a resource is allocatable or a lifecycle operation succeeded."}],"source_content_type":"text/x-rst","patch_set":1,"id":"14578b48_bd665538","line":304,"range":{"start_line":304,"start_character":16,"end_line":304,"end_character":31},"updated":"2026-10-12 13:03:58.000000000","message":"We can also add example about installed tools like.\n```suggestion\nCyborg may call installed tools(for example: lscpi to discover pci devices) or drivers to perform an in-scope lifecycle\n```","commit_id":"059bd9c87ad3913935a9deda0e7f827ba4667ce0"}]}
