egeria-docs
egeria-docs copied to clipboard
HMS Listener - update connector catalog / release process
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
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