Tools for code contributors¶
Git and GitHub¶
Git is an open source version control system. The Egeria project uses git to:
- Store the source code, documentation and other file-based resources.
- Track changes to the underlying Egeria code as the project evolves
- Track issues and enhancements, and link these back to the code changes that resolve them
- Collaborate on and review the issues, enhancements and code changes
As a result, it gives us a definitive source for the latest and greatest source code for Egeria itself, its history, and the rationale behind various decisions that are made over time.
Raise an issue or comment below
Egeria's git repositories on GitHub¶
The Egeria project's git repositories are located on GitHub . GitHub is a free, public git service for sharing code and related files. It has a web interface to make it easier for the Egeria community to monitor the activity in the project and process new content.
Egeria has the following repositories:
Repository | Purpose |
---|---|
Repository | Purpose |
data-governance |
Egeria's Guidance on Governance as well as large media files such as presentations and movies |
egeria-api-mocks |
Support for mocking Egeria API for UI dev test |
egeria-charts |
Helm chart repository |
egeria-connector-hadoop-ecosystem |
Hadoop ecosystem connectors for Egeria: repository proxy connector for Apache Atlas. |
egeria-connector-hivemetastore |
Egeria repository connector for Hive metastore. Initially targeted at spark metadata |
egeria-connector-ibm-information-server |
IBM Information Server connectors for Egeria: repository proxy connector for IGC, data engine proxy connector for DataStage. |
egeria-connector-integration-event-schema |
Provides an integration connector that extract event schemata from a schema registry (including Confluent schema registry). The connector will be a polling connector and will look in Egeria for new topics that if present in the confluent registry, the associate schema elements will be brought into Egeria. |
egeria-connector-integration-lineage-event-driven-sample |
Sample showing how to bring lineage into Egeria |
egeria-connector-integration-topic-strimzi |
Strimzi Egeria integration connector for Kafka Topics |
egeria-connector-jdbc |
JDBC connectors for Egeria (Integration and Resource) |
egeria-connector-omrs-caching |
Provides an OMRS repository proxy connector that has an embedded repository that can be used to cache entities and relationships. |
egeria-connector-repository-file-sample |
Provides a repository proxy sample that uses polling. The target is a file folder |
egeria-connector-sas-viya |
Egeria connector for SAS Information Catalog |
egeria-connector-xtdb |
Pluggable repository for Egeria, using XTDB (formerly "Crux") as the back-end to natively support historical metadata. |
egeria-dev-projects |
Fun projects for developers to help them learn about the Egeria technology |
egeria-docs |
Documentation repository for the Egeria project. |
egeria-dojo-developer |
Provides the starting project structure for the developer dojo. The participant creates a clone of it and works from there - they do not merge their code back into the repository. There is also a branch which includes the sample answers that they can refer to if they get stuck. |
egeria-js-commons |
Common module for storing static data such as key value objects, SVGs, icon mappings, API urls. |
egeria-jupyter-notebooks |
Egeria Jupiter notebooks used in the Open Metadata Labs |
egeria-k8s-operator |
Egeria Kubernetes operator |
egeria-python |
Python library for Egeria |
egeria-react-ui |
A multi-tenant, role based Egeria React UI for Open Metadata, that has eco-system and solutions capabilities. |
egeria-samples-api |
A collection of samples illustrating the different APIs of Egeria. |
egeria-samples |
various samples that can be useful either for learning or as initial starting points for working with Egeria |
egeria-template-newrepo |
Template for new Egeria repository |
egeria-test-cts |
Automated CTS (conformance test) execution for Egeria |
egeria-ui-components |
Encapsulated reactjs components with business logic inside. |
egeria-ui-core |
Core library that includes generic reactjs components used across the user interface. |
egeria-ui |
User interface instance using main Egeria functionalities. |
egeria |
Egeria core |
happi-graph |
Generic graph rendering solution. |
All of these repositories are publicly visible. However, if you want to contribute new content then you need to create a GitHub account. This can be done from the top of the GitHub home page .
Raise an issue or comment below
Further information
Interested to learn more?
- GitHub provides some great introductory guides to git .
- Egeria provides specific tutorials for working with Egeria's git repositories.
IntelliJ IDEA¶
IntelliJ IDEA by JetBrains is the Interactive Development Environment (IDE) used by most of the Egeria developers. The community edition is free to use and covers all the function needed by an Egeria developer.
We provide our own tutorial for IntelliJ.
Apache Maven and Gradle¶
Apache Maven is the tool that supports our project build. This includes the code compilation, running unit tests, validating dependencies and Javadoc as well as build our distribution archive.
Maven 3.5 or higher is required to build Egeria. 3.6.x or above is recommended.
Gradle is an alternative build tool to Maven and offers:
- better support for parallel builds
- more flexibility for build tasks
- breaking the link between directory structure and maven artifacts
- extremely fast incremental builds
Our direction is for a Gradle build to replace Maven; however, that work is still underway . As such, our supported build environment remains Maven
The building Egeria tutorial covers more details on the build process.
Raise an issue or comment below