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