Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

Proposal: Plugins should be side loaded without any dependency manager like maven #623

Open
9 tasks
neubs-bsi opened this issue Nov 10, 2020 · 0 comments
Open
9 tasks

Comments

@neubs-bsi
Copy link
Contributor

Proposal copied from internal repo. Inital reporter: @bs-matil

Summary of the Feature

Today we package antenna with all plugins it needs and use this as "fat" dependency. Also we rely on the dependency management of the chosen frondend (e.g. maven). If we want to deliver a small and fast usable antanna cli in the future it might be better to think of the plugins as remote resources which can be side loaded at run time.

I would like to have terrform like plugin management
https://www.terraform.io/docs/plugins/index.html
https://www.terraform.io/docs/plugins/basics.html

  • Plugins MUST be downloaded while antanna run
  • Plugins MUST be qualified with a plugin name and a version (optional) in workflow.xml instead of class path
  • Plugins SHOULD register them self. The class path MUST not be exposed , or equally generic way like a manifest in each plugin which is read by antenna and contains the classpath.
  • Plugins SHOULD be cached in a .antenna-cache directory
  • Plugins SHOULD be configurable from local filesystem to provider custom plugins
  • Plugins SHOULD be fetchable from configured repositories in any frontend (e.g. private nexus)

Acceptance Criteria

  • antenna without any module/workflowstep preloaded can be used with any workflow.xml
  • antenna works within any corporate context by side loading private plugins from internal sources
  • workflowsteps MAY be released independent from antenna core

Definition of Done

  • Acceptance criteria fulfilled
  • A PR is created, the CI infrastructure reports green
  • The PR is reviewed and approved
  • No TODOs left in the code unless explained in the ticket, if something else is still open, this is summarized in a comment in the issue
  • Test cases are created to prove the functionality of the feature
  • Documentation is updated
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant