1# Xen PV Drivers lifecycle 2 3## Purpose 4 5Getting new PV drivers accepted in Xen, upstream code bases, and ABI 6stable in the quickest and most efficient way possible. 7 8 9## Design Phase 10 11The first step toward acceptance of a new PV protocol is to write a 12design document and send it to xen-devel. It should cover the xenstore 13handshake mechanism, the ABI, how the protocol works and anything else 14which is required to write an implementation of it. The usage of C-like 15structs to describe language and platform agnostic protocols is 16discouraged. 17 18An attempt should be made to design the ABI such that it will be OS 19agnostic, that future versions will not need to introduce 20backward-incompatible changes, and so on; but these are not yet hard 21requirements. 22 23After the high level design of the protocol has been discussed and 24agreed, the document is committed to xen.git. 25 26 27## Prototype Stage 28 29The contributor sends patches to implement the PV drivers for the new 30protocol to the relevant open source mailing lists, such as LKML, 31qemu-devel and xen-devel. 32 33The code is expected to work, be good quality and faithfully implement 34the spec. However, there are no promises about ABI and cross-platform 35compatibility yet. 36 37After careful review by the relevant maintainers, the code is committed 38to the upstream code bases. The drivers are considered experimental. 39 40 41## Production Stage 42 43The quality of the drivers and the spec is improved. Bugs are fixed. 44The protocol version is likely bumped. More testing leads to confidence 45that the spec and the drivers are ready for production usage. Promises 46about backward compatibility and cross-platform compatibility are 47clearly spelled out. 48 49 50## How to move forward from a stage to the next 51 52The PV protocols Czar is responsible for determining the transitions 53between stages. Our governance principles specify "lazy consensus" for 54most things. It applies to this case too. New PV protocols should move 55from one stage to the next within a reasonable time frame unless someone 56has specific technical objections and voices them in a responsive 57manner. 58