Uh oh!
There was an error while loading. Please reload this page.
MINOR: Add branching model to contrib guide - #3191
Conversation
andygrove
commented
Aug 18, 2022
jdye64
commented
Aug 18, 2022
I think this makes a lot of sense. Doesn't seem like too much maintenance overhead to have to maintain and merge a few more branches and really helps unblock new feature development. I am for this. |
andygrove
commented
Aug 18, 2022
I have created a |
tustvold
commented
Aug 18, 2022
I think as both crates have a fairly regular release cadence this is fine. The risk would be if any of these branches live longer than a couple of weeks, as then the opportunity for a potentially non-trivial, error-prone final integration increases. FWIW I have typically just maintained draft PRs that build on each other for this purpose, and then rebased them individually to get them merged following the release. One thing that might be worth clarifying is how the final merge occurs, I presume we would rebase the integration branch and then do a fast forward merge? I ask as currently the only option would be a squash merge, which would lose any history from the integration branch (which may not be a problem but should be made explicit) |
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Brent Gardner <brent.gardner@spaceandtime.io>
andygrove
commented
Aug 18, 2022
Agreed. I guess I am now volunteering to take on sqlparser releases on a more frequent schedule. The release process is mostly automated and there is no voting since it is outside of Apache, so this shouldn't be too much work.
This works fine when one author is making the changes but recently there are more contributors making independent changes to sqlparser so this is harder to manage.
Good points. I will address this. |
avantgardnerio
commented
Aug 18, 2022
I'm not sure if this idea is doable. If it is, I suspect we'd want to:
A possible solution is to do the reverse:
That way we can keep closer sync between the two repos, and @tustvold , myself, and anyone else doing repo-spanning features don't have to duplicate effort of fixing builds. Are there other possibilities? I don't know. These are all gross, as dependency hell tends to be an unsolved problem unless there are stable APIs. |
andygrove
commented
Aug 18, 2022
One more option: We have one PR for upgrading to the next version of sqlparser/arrow I think this preserves contributor information. |
I think the intention is not to have a single next_release branch, but a staging point for the features that require the specific upstream change. Changes that don't will continue to target master (or potentially another integration branch). IMO this is a reasonable evolution of the process we've effectively adopted thus far, using a dedicated branch instead of a draft PR, to allow for easier collaboration. I therefore think this makes sense and is workable.
The downside with having git refs in master, which we used to have previously for arrow, is repos that track datafusion by git sha then have a non-trivial job tracking the correct upstream versions, and are prevented from using patch to override dependencies. It's also not clear what happens if it comes time to cut a release, but there is still a pinned git sha on master? |
avantgardnerio
commented
Aug 18, 2022
I like evolution.
|
tustvold
commented
Aug 18, 2022
Very good questions, I guess the first person creates a draft PR and if another person wants to collaborate on the work they flag it and a maintainer can create the branch?? Although they probably could also submit PRs to the fork? 🤔 |
avantgardnerio
commented
Aug 18, 2022
? |
tustvold
commented
Aug 18, 2022
Probably want the name of the dependency in there somewhere |
avantgardnerio
commented
Aug 18, 2022
I was thinking the reverse - if datafusion pre-25-release wants sqlparser 57, the datafusion branch name is There might be multiple dependency upgrades (arrow-rs, sqlparser, chrono) and we wouldn't want branches for each one. |
So long as they're independent I see no reason not to, it keeps the branches small and short lived? TBC I view this process as an exceptional case where there is a complex upgrade requiring multiple contributors. If this is a common occurrence, something is wrong, and there is a mismatch between the rate of change and the release cadence |
andygrove
commented
Aug 19, 2022
So the feature branch is now merged via this PR: https://github.com/apache/arrow-datafusion/pull/3200/commits Each commit is one PR that was merged to this branch so we have the history preserved, or am I missing something? |
tustvold
commented
Aug 19, 2022
When you PR that branch into master it will be squashed into a single commit? |
avantgardnerio
commented
Aug 19, 2022
It is an option in github to rebase or squash and rebase. |
tustvold
commented
Aug 19, 2022
andygrove
commented
Aug 19, 2022
Ah, I see. We can enable |
alamb
commented
Sep 3, 2022
Shall we merge this document in now that we have run it successfully once? |
alamb
commented
Sep 12, 2022
Marking as draft to signify this PR has planned changes (and make it easier to find PRs that are in need of review). Please mark "ready for review" when it is next ready or if this change was a mistake. |

Which issue does this PR close?
N/A
Rationale for this change
It is getting challenging to create PRs that depend on recent changes in dependencies such as
arrowandsqlparserthat have many breaking changes.What changes are included in this PR?
New docs
Are there any user-facing changes?
No