Replies: 5 comments 4 replies
-
|
This definitely sounds like it's worth a go, should significantly reduce the slog. Would make it a lot easier to manage PRs that require new ops and backend support as well. |
Beta Was this translation helpful? Give feedback.
-
|
When it's out of preview it should be worth looking into Stacked PRs as well. |
Beta Was this translation helpful? Give feedback.
-
|
Yeah, this is basically what I'm trying to do already for #21160 . I think it's a good idea and having RC builds for those branches might make it easier to debug "frontier" code changes without breaking the main branch too quickly. |
Beta Was this translation helpful? Give feedback.
-
|
Generally I think the idea is worth trying. The only concern is that the dev branches should also be synced regularly with master, which can potentially add a bit more works. |
Beta Was this translation helpful? Give feedback.
-
|
Doesn't the author need to be able to make the feature branch in ggml-org? I tried doing this earlier but I didn't have the correct permissions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I was thinking recently how to optimize the development process a bit. What I noticed is that some important PRs end-up in long periods of time waiting for a review to get merged into
masterand blocking some follow-up work. A few examples:Such big features often involve multiple steps to complete. Merging the individual steps into
master, without having the complete final picture is not easy, because we want the intermediate steps to be stable (i.e. not break other unrelated stuff) and also compatible with what will follow when working towards the final feature. At the same time, we also want the maintainers to provide feedback and guidance during the development of the features, so we don't want to wait for contributors to implement the full feature before they open the first PR.I think we can improve the current state by creating feature branches that are parallel to
masterand managed by a dedicated maintainer. Something like this:dev-[feature]masterby resolving conflicts and to merge the intermediate steps from incoming PRsmaster- same as we do now. If needed, the final implementation can additionally be split into multiple PRs when going into master, but these would be much simpler to create and review as we will have the complete picture by that point of time.graph TD subgraph "branch: master" M1["Base"] --> M2["Unrelated A"] --> M3["Unrelated B"] --> M4["Unrelated C"] --> M5["Final Merge"] end subgraph "branch: dev-feature" D1["Feature PR #1"] --> D2["Feature PR #2"] --> D3["Rebase onto master"] --> D4["Feature PR #3"] --> D5["Feature PR #4"] --> D6["Rebase onto master"] --> D7["Final feature"] end M1 -.-> D1 M2 -.-> D3 M3 -.-> D6 D7 --> M5Note that this process only makes-sense for large features that we know in advance will take multiple , non-trivial steps to complete. I.e. we don't want to have too many active features, so basic stuff will still go directly into
masteras it does now.I will be giving this a try with the work in #24021 (comment) (branch
dev-metal) and see if it makes sense. I think the DSv4 work is also a good candidate to experiment with this idea (in case @am17an or @fairydreaming want to give it a go as feature owners).Open to suggestions and opinions. cc @ggml-org/maintainers
Current features: https://github.com/ggml-org/llama.cpp-dev
Beta Was this translation helpful? Give feedback.
All reactions