Vlad Vlad - 1 month ago 17
Git Question

Git workflow for open source projects?

I've been working on a project and trying to open source it soon.

I have always been on the "user" side, but never really have contributed to any open source projects so clueless about a few things.

I've been researching on the web and figured out most of them but am still stumped on one thing:

How should I structure the branch/release cycle? I know that I can't keep committing straight to master once I release, and I also am aware of the benefits of versioning, but I also don't want to make it needlessly complex.

I've looked at some open source projects and a lot of them seem to have

master
and
develop
branches, as well as multiple
tags
to mark releases. I kind of have a sense of what might be going on, but would really appreciate it if someone could clarify how a lot of open source projects manage the release.

Answer

Typically, developers will fork the main repo and work on the develop or similar branch in their local fork.

Once they are satisfied with the changes they raise a pull request to push the changes to develop branch on the main repo.

You as the lead developer for the project, review and accept / reject the changes.

You as the lead developer for the project define what all changes will be part of next release. You pick the code from develop branch push it to master branch and release code from master branch. A tag with the version # helps tracking the versions.

In addition, having a automated builds / deployments will also help.

I have explained a very basic workflow. Hope this helps.

Comments