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

Reply via email to