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

Simplify git workflow to just be on one 'main' branch #131

Closed
weiji14 opened this issue Aug 30, 2020 · 3 comments
Closed

Simplify git workflow to just be on one 'main' branch #131

weiji14 opened this issue Aug 30, 2020 · 3 comments
Labels
Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation.

Comments

@weiji14
Copy link
Member

weiji14 commented Aug 30, 2020

Could we just have one default 'main' branch, and delete the 'development' branch? I don't want everyone to spend time re-learning stuff, but since a major change is happening anyway at #130, now might be a good time to raise this issue.

Current state:

  • Contributor works on a PR at branch 'feature-X', which is reviewed and merged into 'development'
  • At release, a PR from 'development' to 'master/main' is created, with a very big diff to review (see e.g. version 0.3.0 - post Hackweek 2020 updates #119).
  • Once merged, a git tag needs to be created, and that triggers an upload to PyPI.

Future state:

  • Contributor works on a PR at branch 'feature-X', which is reviewed and merged into 'master/main'
  • At release, we just create a tag on the 'master/main' branch (e.g. v0.3.0, v0.4.0, etc) and that gets uploaded to PyPI.

The intention here is to reduce the burden on maintainers (specifically @JessicaS11) having to review code twice, and make sure that everyone points to 'development' all the time.

To be honest, I'm probably lacking context on why the master/development workflow was setup like so. If someone is after a stable release, wouldn't it be more likely that they would just use pip install icepyx instead of installing from Github?

@weiji14 weiji14 added the Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation. label Aug 30, 2020
@JessicaS11
Copy link
Member

Hello @weiji14. The development team/ICESat-2 project group during the Hackweek decided to transition to a development and master/main branch model in order to separate out the multiple directions of rapid development from the broader release schedule while maintaining a stable version on master. I'll note that at the time there was a not yet a pip install option, so other than tags there was no way to differentiate between stable releases and ongoing development. The separation also allowed us to expand the organization to include frequent project contributors and allow joint development on a shared branch while protecting the master branch.

I appreciate your concern for burdening maintainers, and I agree that there are likely some ways to simplify the process that don't require massive re-reviews by a few developers. Perhaps we could start a conversation on Discourse about this aspect (since it's not technically a code issue, but more of a discussion item) to brainstorm some alternative approaches?

@JessicaS11
Copy link
Member

I just wanted to leave an update here for posterity: I just reduced the required reviews for merging into master (now main) from development from two reviews to one review, with maintainer status required to merge. I'm hoping this will reduce the review burden somewhat, while continuing to allow project teams the ability to work on development, review their sub-teams' PRs, and not have fear that they will "break something" because they are merging to main.

@weiji14
Copy link
Member Author

weiji14 commented Mar 30, 2021

I just wanted to leave an update here for posterity: I just reduced the required reviews for merging into master (now main) from development from two reviews to one review, with maintainer status required to merge. I'm hoping this will reduce the review burden somewhat, while continuing to allow project teams the ability to work on development, review their sub-teams' PRs, and not have fear that they will "break something" because they are merging to main.

Sounds good, and thanks again for the Zoom conversation clarifying the need for a separate development branch, I think it's good to make people feel confident that they can try things out without breaking stuff!

P.S. I did a quick PR to rename master to main across the docs at #194

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation.
Projects
None yet
Development

No branches or pull requests

2 participants