-
Notifications
You must be signed in to change notification settings - Fork 8
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
Create New Organisation for Collaborative Development #192
Comments
Mat how much will this change my current workflow? E.g.
I guess pulling someone else's PR would be the hard part of the workflow:
So would your proposal change this process? |
So I guess one of the primary advantages of the proposed approach is not requiring each developer to authorise all of the other developers to be able work on their personal forks. If there was a dedicated organisation then they just need to be authorised by the organisation owner. This only really pertains to PRs on which you wish to collaborate. If you didn't need to, then there is no reason not to use your local fork, as we do currently. Regarding workflow for creating a PR, it would be similar (assuming you are a member of the SNL-WaterPower-Team organisation). So:
Working on someone else's branch would be similar too (if not more simple):
Note in the workflow you presented for working on someone else's PR, 4 needs permission from the fork owner to push directly to that branch, which is not guaranteed. You can make a PR against the other fork, as you suggest, but perhaps this is less efficient than some might like. This would be our only route to collaborating if we hadn't granted access to each others forks. |
@H0R5E and @ssolson Thanks for tagging my in this discussion. I also have a few thoughts on the subject. I think a fork based workflow is great when one person wants to make changes to the main repository. However, as Mat pointed out, it gets more complicated when someone submits a PR from their fork and someone else want to make revisions to the PR. This requires the PR submitter to allow another person to make commits to their fork. I see two other options around this:
An issue I have with a fork based workflow is that development is done on many disparate forks, which makes development difficult to track. Personally, I like the idea of doing individual development on a fork, but having collaborative development on a feature_branch in the main repository. The two options I listed are in alignment with this suggestions, and differ only in how the work is initiated, e.g. whether it's initiated by an individual or the team. |
I'm happy with our workflow on this project, but will be curious to see how this goes on other projects |
@kmruehl thanks for your input. I touched on some of these issues in our WEC-Sim meeting, but I will just maybe reiterate my opinion on these approaches you suggested:
I think you are describing having a number of feature branches open in the main repo to which PRs are made. I think this can work, but there is a risk that some of these branches can get significantly out of date or diverse from each other that it can be quite difficult to merge them all together again. My preference is to a single development branch, which would typically be the master branch, with an understanding that it might be broken sometimes. This is why releases exist, to point to tags in the master branch that are stable.
I'm of the opinion that this is a bad idea as it implies direct pushing to the main repo, which is risky for reasons such as uploading large files by accident (which will then pollute the history).
I think the proposal I made in this issue is a halfway house here. With feature branching on the main repo, the repo owner must get involved to create the feature branch first, which adds additional administrative burden. On a fork in a "Team" organisation, anyone could create a branch without concern with doing any "harm" to the main repo, i.e. safe and easy and anyone in the team could work on that branch (as long as @ssolson says it's OK). |
Hi,
I was thinking about this issue with collaborating on PRs that are based on branches from forks in our personal accounts. It's just about manageable for a small dev team like ours, but for WEC-Sim (who are looking to move to a PR based approach) it might be too cumbersome. I have had an idea that might simplify things and I was wondering if we could trial it on WecOptTool?
The idea is simply to create a new Github organisation to hold development forks, to which we would all be members. So maybe with a name like "SNL-WaterPower-Team". We can then create a fork of WecOptTool in this organisation and use it for branches to collaborate on for PRs against the main repo. What do you think?
Mat
Tagging @kmruehl, who might be interested in this.
The text was updated successfully, but these errors were encountered: