Skip to content

Resolve "Allow plugins to inherit configuration from others"

Merge Request Checklist

  • Link to an issue
  • Include the proposed fix or feature
    • Refactor plugins around inheritance
    • Implement inherit_from
    • Add --inherit-from flag to meltano add (and --as?)
    • Meltano UI: Configure existing inherited plugins
    • Set ProjectPlugin.parent lazily in ProjectPluginsService to improve performance
    • Raise special error when --inherit-from on meltano add or inherit_from in meltano.yml doesn't exist
    • Optional
      • Add meltano list to list "inherits from" relations
      • Only install plugins once per pip_url
      • Meltano UI: Show inherited settings differently
      • Meltano UI: Add the same discoverable plugin multiple times using inheritance
      • Meltano UI: Add a new plugin by inheriting from an existing one
      • Have meltano add suggest adding --custom when plugin was not known
  • Include and update tests for the modified code
    • Make existing tests pass
    • Write tests for new functionality
      • Let ProjectPlugin inherit from another ProjectPlugin or BasePlugin with a different name
      • Let plugin inherit configuration of parent plugin
      • Don't read settings from custom env vars when plugin name doesn't match parent
      • Use ProjectPluginsService.get_parent in ProjectAddService.add for consistency
      • Add meltano add --inherit-from and --as options
  • Include a documentation change: !1984 (merged)

Once your merge request is complete, please assign it a Meltano maintainer for review cycle. Once the review cycle finished, the reviewer shall approve the merge request so it can be merged by any Meltano maintainer.

Implements #2390 (closed)

Edited by Douwe Maan

Merge request reports