Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The process of syncing branches #221

Open
gfursin opened this issue Sep 17, 2024 · 4 comments
Open

The process of syncing branches #221

gfursin opened this issue Sep 17, 2024 · 4 comments
Assignees

Comments

@gfursin
Copy link
Contributor

gfursin commented Sep 17, 2024

There should be a defined process how to sync sub-branches in this repo to avoid merge conflicts for people working on different projects.

We have the following hierarchy of branches in this repo:

  • main - stable branch
  • dev - general development branch for MLPerf and other projects
  • mlperf-inference - anything related to MLPerf inference

I think the sync should be in this order:

  • mlperf-inference -> dev -> main
  • dev -> main
@arjunsuresh
Copy link
Contributor

Sure @gfursin. Currently is the purpose of dev same as any external fork?

@gfursin
Copy link
Contributor Author

gfursin commented Sep 17, 2024

My understanding and view on that is following (I am not yet sure what is the best way):

We may/will have multiple forks from different external projects that may all eventually try to merge to main. In such case, we can use dev to sync all external projects before syncing them with the stable main branch but without influencing it.

I.e. you work and push to mlperf-inference that should eventually go to main while I work on some other projects that may also go to main and we may have interdependencies between them. In such case, if either of us push to dev, we can see that and decide whether we may need to push to dev too to check if our projects are compatible, fix issues and then move aggregated code to the main (and possibly release it).

In such cases, we can use "main" (stable) branch in our docs/tutorials for MLPerf and other projects.

And if the merge to dev that doesn't require intervention from other projects, it can be quickly propogated to main.

I have a feeling that it's a relatively standard "staged" approach for collaborative developments of such projects but we can also adopt some other approach - I am open to introduce best practices for our developments.

What do you think?

@arjunsuresh
Copy link
Contributor

Hi @gfursin That's fine but unfortunately as of now mlperf-inference is not entirely stable (with respect to the benchmarks supported) and it'll need another couple of months to have it cover all the available inference codes and have automated tests for them. But since users are using it for reproducing mlperf results we need mlperf-inference branch as a quick place to push our changes -- since all the tests are run on it, it is relatively stable and not really a dev branch. Probably once we have the full code coverage and tests, we can delete mlperf-inference and start using the main branch for MLPerf related docs.

Using dev as a synchronization point is good I think. So, it'll be a real dev branch and can break at any time as we can push to it without any mandatory tests.

  1. dev <- projectx
  2. dev <- mlperf-inference
  3. main <- dev

I'm fine with it.

@gfursin
Copy link
Contributor Author

gfursin commented Sep 18, 2024

That sounds reasonable. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

3 participants