[RELEASE] Release 5.3

by ADMIN 22 views

Introduction

The Egeria project is a comprehensive data governance platform that enables organizations to manage their data assets effectively. As part of its continuous development and improvement, the Egeria team releases new versions of the platform, which include bug fixes, new features, and enhancements. In this article, we will delve into the release process of Egeria 5.3, highlighting the key steps involved in creating a new release.

Work Plan

Before we dive into the release process, it's essential to understand the work plan involved in creating a new release. The following steps outline the key activities that need to be performed:

Prior to the Release

  • Slack Post: Create a Slack post advising of the upcoming release and linking to the relevant issue.
  • Advance Warning: Provide an advance warning in the developer/community call to ensure everyone is aware of the upcoming release.
  • Final Agreement: Hold a team call to finalize the agreement to start the branch and identify any outstanding issues.
  • Required Updates: Agree on the required updates/versions for additional connector repos, etc.

Branching & Correcting Versions

  • Create Branch: Create a new branch (e.g., egeria-release-x.y) for the release.
  • Reassign Issues: Reassign any issues not being worked on to the next release.
  • Update Version: Update the version for the main branch (e.g., x.y-SNAPSHOT > x.y+1-SNAPSHOT) and the release branch (e.g., x.y-SNAPSHOT -> x.y).

Final Updates to the Release

  • Merge Fixes: Ensure any remaining fixes are merged into the branch and vice-versa to the main branch.

Pre-release Security Check

  • Security Scans: Perform security scans (e.g., OWASP Dependency Check) to ensure the release is secure.

Generate a Release Image for Testing

  • Start Release Pipeline: Start the Release pipeline manually to generate a container image and stage artifacts on Maven Central. Remember to select the release branch rather than the main branch.

Updating the Helm Charts (egeria-charts repo)

  • Check Container Images: Check that the correct container images are available on Docker Hub and Quay.io.
  • Update Image Versions: Update the image versions for the Helm charts in the egeria-charts repo (using -prerelease for chart version).
  • Check/Update Chart Versions: Check and update the chart versions for Strimzi, Kafka, and Jupyter Lab.
  • Generate New Docker Image: Generate a new Docker image for Jupyter Lab.

Final Tests

  • Check Swagger Doc: Check that the Swagger doc renders without any regressions.
  • Verify Charts: Verify that the odpi-egeria-lab chart and egeria-base chart are active/ready.
  • Check Notebooks: Check that the notebooks are working correctly (config, start, data catalog at a minimum).
  • Check Egeria UI: Check that the Egeria UI is working correctly (only possible to check that it runs and runs UI lab).
  • Check React UI: Check that the React UI is working correctly (rex, tex, glossary author).
  • Check CTS Results: Check and validate the CTS results (using in-memory, graph, and xtdb).

Final Docs

  • Update Release Notes: Update the release notes in the egeria-docs repo.

Final Build and Publish

  • Check Release Pipeline: Check that the Release pipeline release artifacts are shown in the staging repo on OSS Repository Manager.
  • Close Staging Repo: Close the staging repo and validate that the artifacts are correct (number, structure, validations).
  • Check Release Repo: Check that the release repo on OSS Repository Manager has artifacts.
  • Release Repo: Release the repo (takes time for the operation to complete and for the artifacts to be visible in Maven Central repository).
  • Create Final GitHub Release: Create a final GitHub release (add link to egeria docs).
  • Update Final Versions: Update the final versions of egeria-charts to release (e.g., x.y).
  • Publish Release: Publish that the release is now shipped via Slack #egeria-announce.
  • Post on Mailing List: Post on the egeria-announce mailing list.
  • Additional Posts: Make additional posts to social media.
  • Communicate to Other Repo Owners: Communicate to other repo owners (e.g., for connectors) so that they can be rebuilt/shipped as needed.

Get Ready for Next Release

  • Open Release Issue: Open a new release issue for the next release.

Introduction

In our previous article, we provided a comprehensive guide to the Egeria release process, highlighting the key steps involved in creating a new release. In this article, we will address some of the frequently asked questions (FAQs) related to the release process.

Q&A

Q: What is the purpose of the Slack post advising of the upcoming release?

A: The Slack post is used to inform the community about the upcoming release and link to the relevant issue. This helps to ensure that everyone is aware of the release and can prepare accordingly.

Q: Why is it essential to provide an advance warning in the developer/community call?

A: Providing an advance warning in the developer/community call helps to ensure that everyone is aware of the upcoming release and can prepare accordingly. This also allows for any last-minute issues to be addressed before the release.

Q: What is the purpose of the final agreement to start the branch and identify any outstanding issues?

A: The final agreement to start the branch and identify any outstanding issues is crucial to ensure that everyone is on the same page and that any issues are addressed before the release.

Q: Why is it essential to update the version for the main branch and the release branch?

A: Updating the version for the main branch and the release branch ensures that the correct version is used for the release and that any changes are properly tracked.

Q: What is the purpose of the pre-release security check?

A: The pre-release security check is essential to ensure that the release is secure and that any potential security vulnerabilities are addressed.

Q: Why is it necessary to check that the correct container images are available on Docker Hub and Quay.io?

A: Checking that the correct container images are available on Docker Hub and Quay.io ensures that the Helm charts are properly configured and that the release is successful.

Q: What is the purpose of the final tests?

A: The final tests are crucial to ensure that the release is successful and that any issues are addressed before the release is made available to the community.

Q: Why is it essential to update the release notes in the egeria-docs repo?

A: Updating the release notes in the egeria-docs repo ensures that the community is aware of the changes and improvements made in the release.

Q: What is the purpose of the final build and publish?

A: The final build and publish is the final step in the release process, where the release is made available to the community and any final checks are performed.

Q: Why is it necessary to communicate to other repo owners (e.g., for connectors) so that they can be rebuilt/shipped as needed?

A: Communicating to other repo owners (e.g., for connectors) ensures that any dependencies are properly updated and that the release is successful.

Q: What is the purpose of the get ready for next release step?

A: The get ready for next release step is essential to ensure that the community is prepared for the next release and that any issues are addressed before the release.

Conclusion

In conclusion, the release process of Egeria 5.3 involves a comprehensive set of activities, from prior to the release to final build and publish. By addressing some of the frequently asked questions (FAQs) related to the release process, we hope to provide a better understanding of the release process and ensure that the community is prepared for the next release.

Additional Resources