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

RFC disable branch creation on origin #2821

Open
moul opened this issue Sep 20, 2024 · 3 comments
Open

RFC disable branch creation on origin #2821

moul opened this issue Sep 20, 2024 · 3 comments

Comments

@moul
Copy link
Member

moul commented Sep 20, 2024

I believe we should prevent people from creating branches on the origin remote (gnolang/gno) to encourage the use of external branches.

Why? There are three main reasons:

  1. This is what everyone outside the core team must do. Allowing the core team to bypass this requirement makes it harder for less experienced individuals.
  2. Many people view stale issues and pull requests as a problem (though not me :p). At least GitHub manages those. In contrast, stale branches affect everyone, especially very old branches that differ significantly and create large network downloads.
  3. Currently, I feel stuck when I want to garbage collect "unmerged but closed branches." I believe it's the author's responsibility to decide whether to delete them permanently or keep them for later use. Essentially, I either risk deleting something they want to keep for a clean branch list, or I refrain from doing so and prevent myself from garbage collecting, which is beneficial.

CleanShot 2024-09-20 at 14 51 26
CleanShot 2024-09-20 at 14 51 32

See https://github.com/gnolang/gno/branches/all

@thehowl
Copy link
Member

thehowl commented Sep 20, 2024

My counter-argument is that branch creation on origin allows me to have "stacked" PRs. It's also the reason why I switched to developing on origin rather than my fork. This is an example of a stacked PR: #1700

So I can have dev/morgan/1, then dev/morgan/2 based on it, and then dev/morgan/3 based on /2. When 1 is merged; 2 is automatically re-based on master.

If we use forks, we can only create these in the same forks.

@thehowl
Copy link
Member

thehowl commented Sep 20, 2024

at the end of the day, there are hacks we can do to have more or less the same thing

thehowl:dev/1 can have thehowl:dev/2 based on it. I can create a PR on gnolang:master for both, and put in the description of dev/2 that they can look at my own fork to see a nicer diff.

Not ideal, but also something that other contributors can copy freely as a workflow.

Sounds good to me, as long as we maintain the possibility for certain team-members to create "useful" branches on origin (like patch/gnochess and patch/v0.1.1-sync).

@moul
Copy link
Member Author

moul commented Sep 20, 2024

I'm fine with allowing some exceptions, such as the long-term alternative base and things like the gnochess temp fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🎯 Current Topics
Status: Triage
Development

No branches or pull requests

2 participants