Document policy of never removing traits
It has been asked at least twice in recent weeks (the first time by me) why unused traits can't be removed from os-traits: http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-04-18.log.html#t2019-04-18T17:59:58 http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-04-25.log.html#t2019-04-25T10:48:18 so let's explicitly document this policy to prevent future generations getting confused, or worse, attempting to remove traits. Change-Id: I4028c25ff5fc0adeca6ee62b0db11d8bbf909f28
This commit is contained in:
parent
50ca62cfbd
commit
f17a1ce37c
|
@ -2,4 +2,29 @@
|
|||
Contributing
|
||||
============
|
||||
|
||||
|
||||
Trait lifecycle policy
|
||||
======================
|
||||
|
||||
It is the policy of this project that once registered, traits should
|
||||
never be removed, even those which will never be used by code (e.g. as
|
||||
a result of pivots in design or changes to the namespaces).
|
||||
|
||||
The general principle behind this policy is simply that an
|
||||
extensible-only enumeration is easier to manage than one than can be
|
||||
shrunk. One particular example concerns the need for the placement
|
||||
service to keep its database in sync with the strings in os-traits.
|
||||
Whenever a placement service sees a new version of os-traits it syncs
|
||||
up its database with the strings that are in the package, creating a
|
||||
row in the traits table, with an id that becomes a foreign key in other
|
||||
tables. If traits could be removed, then extra clean-up code might be
|
||||
needed in several places to handle this, and this would be
|
||||
particularly error-prone when execution of that code would need to be
|
||||
correctly orchestrated across multiple projects.
|
||||
|
||||
|
||||
Generic instructions for contributing
|
||||
=====================================
|
||||
|
||||
|
||||
.. include:: ../../../CONTRIBUTING.rst
|
||||
|
|
Loading…
Reference in New Issue