egeria-docs icon indicating copy to clipboard operation
egeria-docs copied to clipboard

HMS Listener - update connector catalog / release process

Open davidradl opened this issue 2 years ago • 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

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

First steps

  • [x] Initial code-drop (author)

Getting CI/CD started & refining settings

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

Further Refinement

  • [x] Add link in egeria docs to new repo describing purpose ( https://github.com/odpi/egeria-docs/blob/main/site/docs/education/tutorials/git-and-git-hub-tutorial/egeria-git-repositories.md )
  • [ ] Add to connector catalog, if new repo is for connector ( https://github.com/odpi/egeria-docs/blob/main/site/docs/connectors/index.md )
  • [ ] Add to release process docs ( https://github.com/odpi/egeria-docs/blob/main/site/docs/guides/contributor/release-process/index.md )
  • [x] Add required credentials for publishing to container repos, maven central etc
  • [x] Add artifact signing if needed
  • [x] Add dependabot config
  • [x] Add CodeQL
  • [x] Add to LFX ( https://projectadmin.lfx.linuxfoundation.org/project/a092M00001IV4JtQAL ) for
    • [x] LFXSecurity
    • [x] LFAnalytics
  • [x] Add check for stale defects
  • [x] Add any required issue tags

Release

  • [x] Add release pipeline

davidradl avatar Mar 16 '23 11:03 davidradl

@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

planetf1 avatar Mar 20 '23 09:03 planetf1

thanks for setting this up Nigel @planetf1

davidradl avatar Mar 20 '23 18:03 davidradl