On Wed, Jan 15, 2020, at 1:18 PM, Ricardo Signes wrote:
> *QUESTION:* Do we have an established policy for how features are deprecated 
> and removed? For example, if we can make a backward incompatible change in 
> Cyrus X.Y.0, how long in advance do we need to provide notice, and via what 
> means?
> 
> In this case, the very least we can do is add it to the documentation. The 
> second-to-least thing we can do is issue a warning when a deprecated setting 
> is found, even if we don't have a timetable for removal.

[This is not really what you're asking, but we have a mechanism for deprecating 
config options. This looks like it's mostly been used so far for renaming 
options from badnameswithnounderscores to sensible_names. It's not quite useful 
here though: it deals with deprecating _entire options_, not merely "some 
values thereof".]

My longer term gut feel on this one (virtdomains:userid) specifically is: this 
time, we encourage (via good upgrade docs) people to consider switching to the 
only-known-good setting, but we change nothing. Next time, if we feel like the 
world is ready for it, we make the good setting the default (and the upgrade 
doc at that time will need to be clear that people who hadn't already migrated 
to it need to either a) migrate to it, or b) explicitly set their config to the 
value they may previously have had by default).

Historically, 3.0 changed the default values of unixhierarchyseparator and 
altnamespace. We talked a lot about it on the mailing lists, and the upgrade 
docs were clear about it. I think it may have caused some confusion, but I also 
think on the whole people mostly coped. But I guess maybe people coped by just 
setting the setting to whatever they were already using (rather than dealing 
with the changed behaviour). At one point, 3.0 documentation said the default 
value of virtdomains had changed too, but that didn't actually happen, and I 
think the bad documentation was identified and corrected during the beta 
process.

3.0 was a pretty massive upgrade from 2.x, though. 3.0->3.2 is, I think, a much 
smaller step, which might mean things go more smoothly, or might mean people 
are more cavalier about it and thus trip over stuff.

Reply via email to