GitHub user tuhaihe edited a discussion: [Proposal] Cherry-pick commits from Greenplum to Cloudberry Database
### Proposers Max Yang (@my-ship-it) Dianjin Wang (@tuhaihe) ### Proposal Status In Progress ### Abstract This proposal aims to make the process of cherry-picking commits from Greenplum to Cloudberry more transparent and easier to track. It also aims to open it to more interested community contributors who would like to join. ### Motivation The Cloudberry Database project was started in 2022, using Greenplum 7.0.0-beta.3 as the codebase before it was made open source. We then focused on developing features for the Cloudberry Database and had slow progress in cherry-picking commits from the upstream Greenplum. When Greenplum became closed-source, cherry-picking work became more important. We found that a few users had adopted the latest open-source Greenplum version 7.1.0 or deployed the latest Greenplum's main branch in their production. We also noticed some minor operation behavior changes and bugs are already fixed in the open-source Greenplum. Therefore, we need to cherry-pick all the necessary commits from the open-source Greenplum to Cloudberry to keep up with the upstream changes for better compatibility between Greenplum and Cloudberry. ### Implementation We started this work in the past few months, but it's not open and transparent enough with the community members. ~~To improve cherry-pick tracking, we have created a GitHub project for public view.~~ ~~- GitHub project: https://github.com/orgs/cloudberrydb/projects/9~~ Now, there are nearly 3,000 commits that need to be cherry-picked from Greenplum to Cloudberry. You can check the following document for an overview. - Google Docs: https://docs.google.com/spreadsheets/d/1Ks6kS0cyk_sG5hIpGXZEmee786h9KVN0Rrw0ljgfY8E/edit?usp=sharing (If you already helped cherry-pick some commits, please comment on them to avoid repetitive cherry-picks.) ### How to cherry-pick When cherry-picking, it's important not to combine multiple original upstream commits into one. Keep the commit history unchanged and do not alter the original author information and commit messages. If you need to make changes due to conflicts or for Cloudberry, create a new commit yourself instead of editing the original cherry-picked commits directly. The rest of the process follows the normal pull request workflow. When merging the pull request, choose "rebase and merge" instead of the "squash and merge" option. Eg: - https://github.com/cloudberrydb/cloudberrydb/pull/432 - https://github.com/cloudberrydb/cloudberrydb/pull/448 ### Rollout/Adoption Plan We would like to have a flexible cherry-pick strategy, allowing you to cherry-pick the commits by features (like `Resource Group V2`, `gptoolkit`, etc.), by the bug fix priority (Urgent issues are first), or on a monthly interval (sort from oldest to newest). If you would like to contribute, please feel free to share your comments in this discussion. Moreover, it would be better to add the label `cherry-pick` to your pull request on cherry-picks. ### Are you willing to submit a PR? - [ ] Yes I am willing to submit a PR! GitHub link: https://github.com/apache/cloudberry/discussions/675 ---- This is an automatically sent email for dev@cloudberry.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@cloudberry.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@cloudberry.apache.org For additional commands, e-mail: dev-h...@cloudberry.apache.org