<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Hi Kuryrs,<br><br></div>Last
Friday, as part of the contributors meetup, we discussed also code
contribution etiquette. Like other OpenStack project (Magnum comes to
mind), the etiquette for what to do when there is disagreement in the
way to code a blueprint of fix a bug is as follows:<br><br></div>1.- Try
to reach out so that the original implementation gets closer to a
compromise by having the discussion in gerrit (and Mailing list if it
requires a wider range of arguments).<br></div>2.- If a compromise can't
be reached, feel free to make a separate implementation arguing well
its difference, virtues and comparative disadvantages. We trust the
whole community of reviewers to be able to judge which is the best
implementation and I expect that often the reviewers will steer both
submissions closer than they originally were.<br></div>3.- If both
competing implementations get the necessary support, the core reviewers
will take a specific decision on which to take based on technical merit.
Important factor are:<br> * conciseness,<br> * simplicity,<br></div> * loose coupling,<br></div> * logging and error reporting,<br></div><div> * test coverage,<br></div> * extensibility (when an immediate pending and blueprinted feature can better be built on top of it).<br></div><div> * documentation,<br></div><div> * performance.<br></div><div><br></div>It
is important to remember that technical disagreement is a healthy thing
and should be tackled with civility. If we follow the rules above, it
will lead to a healthier project and a more friendly community in which
everybody can propose their vision with equal standing. Of course,
sometimes there may be a feeling of duplicity, but even in the case
where one's solution it is not selected (and I can assure you I've been
there and know how it can feel awkward) it usually still enriches the
discussion and constitutes a contribution that improves the project.<br><br></div>Regards,<br><br></div>Toni</div>