odpi/egeria-docs

HMS Listener - update connector catalog / release process

Opened this issue · 2 comments

Name

egeria-listener-hms

Owner

davidradl

Deliverable

Provides a Hive Metastore listener to feed HMS changes into an Egeria ecosystem

Build, test and CI-CD process

How will the deliverables identified above be created & distributed? - bau
Will maven, gradle (preferred for new repos) be used? Gradle
What languages are used - Python, Java, Go, .... are particular versions needed? Java
will a container image be required? probably with HMS
What should be checked before a PR can be merged? usual
How about after merging, on main? usual
Are additional tests needed? no - junits

Dependencies

To be decided - there maybe Egeria dependancies if there are then they will be brought in by gradle if possible. I suspect that if we want to depend on Egeria code for example EntityDetails - this currently resides in a module in Egeria core with executable java as well as beans like EntityDetails - and the Egeria module is java 17.

We may therefore:

  • manually copy code in the project from the Egeria project.
  • copy code from Egeria project during the build into generated code.
  • separate out the Egeria beans into their own project - so we can depend on them.

Justification

This was discussed in the Egeria community. We think that this should have its own repository as it runs in a different context to the other HMS repository which is a connector that runs in a OMAG Platform. The HMS listener runs in the HMS process at Java 8. So it will have different dependancies from anything running in the OMAG Platform

Assumptions

Yes - all true

Additional Information

No response

Work Plan

Before creating the repo

  • [ x] review overall request & get clarifications
  • [ x] get approval on developer/TSC call from maintainers

Creating the repo

  • Create the repo under the odpi organization (default gitignore, license, readme)
  • Setup branch protection rules
  • Set pull request options (allow merge, squash, rebase, suggest updating, allow automerge, do not delete head)
  • Update security settings in repo (policy, advisories, alerts)
  • set up permissions

First steps

  • Initial code-drop (author)

Getting CI/CD started & refining settings

  • Add initial build script for PR (including gradle wrapper if required)
  • Add initial build script for merge

Further Refinement

Release

  • Add release pipeline

@davidradl

I've implemented this now, with a few caveats

  • The template etc is all setup for Java 17 - you'll need to make changes as required to co-erce for Java 8/11
  • LFX Security isn't working yet (it is in the list), but this isn't repo specific -- I think it only refreshed every 1 month or more
  • release pipeline is untested
  • no docker image (but that's a whole other game here, as it's about building on top of a good HMS container image, not egeria)
  • codeQL isn't quiet setup right -- currently working through some codeql issues. It may mostly work...

Will xfer to docs to update the list of repos etc

thanks for setting this up Nigel @planetf1