On 10/10/13 15:29 +0100, Mark McLoughlin wrote:
Hi Flavio,

On Thu, 2013-10-10 at 14:40 +0200, Flavio Percoco wrote:
Greetings,

I'd like to propose to change both ListOpt and DictOpt default values
to [] and {} respectively. These values are, IMHO, saner defaults than
None for this 2 options and behavior won't be altered - unles `is not
None` is being used.

Since I may be missing some history, I'd like to ask if there's a
reason why None was kept as the default `default` value for this 2 options?

As mentioned above, this change may be backward incompatible in cases
like:

    if conf.my_list_opt is None:
        ....

Does anyone if there are cases like this?

I'd need a lot of persuasion that this won't break some use of
oslo.config somewhere. Not "why would anyone do that?" hand-waving.
People do all sorts of weird stuff with APIs.

Agreed, that's what I'd like to find out, I'm sure there are cases
like:

   for item in conf.my_list_opt:
       ....

Which means that they're already using `default=[]` but I'm not 100%
sure about the backward incompatible change I mentioned.


If people really think this is a big issue, I'd make it opt-in. Another
boolean flag like the recently added validate_default_values.

TBH, I don't think this will be a really big issue but I'll do more
research on this if we agree the change makes sense. AFAICT, usages
like the one mentioned may result in something like:

   if conf.my_list_opt is None:
       val = [] # Or something else

   # OR

   val = conf.my_list_opt or []

In which cases, using `default=[]` would had made more sense. I
haven't done a lot of research on this yet.

As regards bumping the major number and making incompatible changes - I
think we should only consider that when there's a tonne of legacy
compatibility stuff that we want to get rid of. For example, if we had a
bunch of opt-in flags like these, then there'd come a point where we'd
say "let's do 2.0 and clean those up". However, doing such a thing is
disruptive and I'd only be in favour of it if the backwards compat
support was really getting in our way.


Agreed here as well!

Cheers,
FF

--
@flaper87
Flavio Percoco

_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to