Skip to content

Guidelines on breaking changes to EPP plugin parameters #1621

@liu-cong

Description

@liu-cong

EPP plugins have an opaque parameters field as a raw json string.

While this allows maximum flexibility in changes to the plugin configs, it brings the risk of easily allowing breaking changes (renaming or removal of a parameter).

I suggest the following to seed the discussion:

  • Optional params:
    • Impact: does not cause EPP startup error, nor request handling error. but may lead to unexpected behavior if users fail to configure it properly due to breaking change.
    • Permission: allowed between EPP minor releases.
    • Backwards compatibility: need to support the old parameter for at least 1 more minor release after the intention removal or rename is introduced. At EPP startup we should log a WARNING: flag xx is deprecated and can be removed in the next minor release.
  • Required params
    • Impact: missing of this parameter can cause EPP to crash.
    • Permission: allowed between EPP major releases.
    • Backwards compatibility: the old parameter can only be fully removed in the next major release. Also log WARNING: flag xx is deprecated and can be removed in the next major release.

Additionally we can introduce some process to properly label these changes and highlight them in release notes.

cc @nirrozenbaum @kfswain as I brought this up in a couple occasions

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions