Language
The keywords âMUSTâ, âMUST NOTâ, âREQUIREDâ, âSHALLâ, âSHALL NOTâ, âSHOULDâ, âSHOULD NOTâ, âRECOMMENDEDâ, âMAYâ, and âOPTIONALâ in this document are to be interpreted as described in RFC 2119.
By starting with the RFC 2119 language, the C4 text makes very clear its intention to act as a protocol rather than a randomly written set of recommendations. A protocol is a contract between parties that defines the rights and obligations of each party. These can be peers in a network, or they can be strangers working in the same project.
I think C4 is the first time anyone has attempted to codify a
communityâs rulebook as a formal and reusable protocol spec. Previously,
our rules were spread out over several wiki pages, and they were quite
specific to libzmq
in many ways. But experience
teaches us that the more formal, accurate, and reusable the rules are,
the easier it is for strangers to collaborate up-front. And less
friction means a more scalable community. At the time of C4, we also had
some disagreement in the libzmq
project over
precisely what process we were using. Not everyone felt bound by the
same rules. Letâs just say some people felt they had a special status,
which created friction with the rest of the community. Codification made
things clear.
Itâs easy to use C4: just host your project on GitHub, get one other person to join, and open the floor to pull requests. In your README, put a link to C4âthatâs it. Weâve done ...
Get ZeroMQ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.