-
Notifications
You must be signed in to change notification settings - Fork 10
Housekeeping feature branches #347
Comments
I honestly don't think this is an issue, there are no such things as branch ownership, either a branch is part of the operational step or linked to an unmerged pull-request or it can be deleted. |
I think most of these arguments are logistical (why do we have CircleCI? what does this travis build represent?) and the one that remains is about taste: do you prefer to have your own fork, or to share Personally, I prefer the "everything happens on a fork" style, but it's one of many Github workflow disputes that I gave up on prosecuting even two jobs ago. Not everyone likes to have their own fork. I disagree with most of Rémy's points but IMHO "feature branches on I'd like to highlight Rémy's comment that if a branch is linked to an unmerged PR it can be deleted. I disagree with this statement, both because closed PRs have branches that probably ought to get cleaned up eventually, and because often it isn't obvious whether a branch is "leading towards" a PR, and deleting it prematurely is also problematic. I think there's a larger issue of cleaning up old code, which like most housekeeping tasks tends to be neglected. I think "everything on your fork" style can skirt this issue, but not really solve it (when do you delete a person's fork?). |
Why not just one? All in on Circle? Then we don't need to mess with
Your branch "once merged" is what's being tested in the "pr" build. No? Basically answering, "If you'd merge this topic branch into master and run a build, would it pass?" Or, does it test the topic branch if it was merged into what
Mind you, if I work with you on a repo, and you make PR that is 99% complete but lacks on final detail. Then you go on vacation, so you can't complete that remaining 1%. Then, because we're both collaborators on the repo, I can push to your fork. It's quite a new feature in github.
But there is. If I do Remy, I feel like I "pick" on your arguments. Don't worry. I love you and I'll still try to come back to Rennes some day and eat crepes with you. |
TravisCI vs. CircleCI : didn't know about CircleCI before Ops asked us to add it in order to build the Docker images. We never took the time to migrate the Travis tests, both stayed. Feel free to show us the way if you're comfortable with this. (same in mozilla/doorman, Kinto/kinto-dist) About branches... As long as nobody pushes to master, I personally don't care too much. I usually push branches on the main repo because I'm lazy and I don't see any major problem with that. I usually prefix the branch name with the issue number, or in extreme case with my nickname when I'm goofing around ( Nonetheless, this doesn't prevent us to have reserved branch names like If we care about the wasted resources with circle/travis extra runs, then we can configure them differently. If you feel motivated to enforce forked repos — and feel ready to tell us off when our habits come back — then please go ahead! I won't fight against it (other hills to die on etc.) |
I can more of less mirror @leplatrem's thoughts, so won't add anything more to the argument. TL:DR; I don't really care one way or the other ;) |
Don't worry @peterbe I like it and your arguments makes a lot of sense. |
I am definitely the progenitor of "use circleCI", since I wrote the original Dockerflow specification. CIrcleCI was (is?) a lot better than travis at building and shipping Docker containers. As part of the Dockerflow spec we should:
Having two CIs is messy and it's not an argument that's fun to have over and over again. So I'm happy as long as we can automate shipping a container that ops can use in production. I think having the same habits and conventions as a team is more important that individual workflow habits. It makes it easier to work together. I'm happy to let the team decide but if I was to use my dictator hammer I'd suggest as a minimum:
This process can be even more strict. Though implementing more processes should be driven by the needs of the project more than how we prefer to work individually. For example, more processes that sometimes make sense:
|
I'm going to do two things:
|
Unless there's a good reason to make feature branches inside the mozilla-services repo, rather than your personal fork, I think we should discontinue the practice.
PRs made on the mozilla-services makes two kinds of Travis builds. One "pr" and one "push". There are ways around that in the
.travis.yml
by the way.PRs made on mozilla-services triggers a Circle build. (By the way, why do we have Travis and Circle??)
There's less sense of "ownership" to topic branches in the main repo. You'd have to open each one and look at the last committer to find out who it belongs to. And it might get messy if every developer uses mozilla-services instead of their own fork.
The branches you have in the main repo should be, if there's a need, more "operational" branches like "next" or "dev" or "gh-pages" or "legacy" or "proddeploys".
Opinions @leplatrem @glasserc @Natim @mostlygeek @magopian ?
The text was updated successfully, but these errors were encountered: