Skip to content

[Feature request] Support 'deprecated' and/or 'ignore' mapping attributes #39

@tburghart

Description

@tburghart

The Problem:

Over years of development, many cuttlefish schemas have accumulated baggage as configuration values become meaningless.
These schemas include numerous configuration keys that serve no purpose other than to allow deployed .conf files to be consumed without generating errors. With no easy way to flag these keys for removal, they simply accumulate, to the point that some schema files have more mapping elements accommodating oudated keys than for relevant ones.

This is most pronounced as projects transition from lager to logger and as VM options are removed (-smp, +K, etc).

Proposal(s):

One or two new mapping attribute definitions could cause a warning to be logged to help system operators start to clean out some of these old, unused keys with the eventual goal of removing the schema mappings altogether.

Attribute ignored:
Logs a warning that the key is no longer relevant and should be removed from the .conf file.
No value is written to the app.config/vm.args file.

Attribute {deprecated, Msg :: string()}:
Behavior as for ignored, but include Msg in a logged deprecation warning.
Example: Msg = "Will be removed in Riak 3.4"

My thoughts on this may not be fully formed, hence trowing it out here for feedback.

As an aside, cuttlefish/priv/erlang_vm.schema could benefit from an ignore attribute (-smp, +K)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions