The founding goal we're trying to accomplish here is that we don't want
everyone sitting on changes to be in the next version while we use master
to prep a release.

I don't think having one branch for prepping the release and another for
main development is a lot of bureaucracy.


On Thu, Jan 24, 2013 at 1:57 PM, Jesse MacFadyen <purplecabb...@gmail.com>wrote:

> I have been quietly listening on this thread, but thought I should at
> least share my opinion.
>
> I don't think adding contribution rules helps anyone. Git is
> complicated enough as it is, and this just all seems like bureaucracy.
>
> I think master should always contain the latest stable code, and be
> periodically tagged with rc's and versions.
> All work should be done in personal forks and feature branches.
> If the latest tag of master is an rc, then we should only be merging
> bugfixes, until the release.
> Immediately after tagging a version we decide which feature branches
> and pull requests to pull in, and go for it.
>
> I don't think this is much different from what we have, but I think
> that is good.
> The suggestions thus far, while interesting, don't increase our
> velocity in my opinion. Also, I can also pretty much guaranty I'll
> screw it up for the next 3-4 versions. ( because I'm dumb )
>
> Cheers,
>   Jesse
>
>
>
> On 2013-01-24, at 5:53 AM, Andrew Grieve <agri...@chromium.org> wrote:
>
> On Wed, Jan 23, 2013 at 4:58 PM, Michael Brooks <mich...@michaelbrooks.ca
> >wrote:
>
> > Before we move forward, I have a few questions about the "no master"
> > approach.
> >
> > There is *no* master branch, so that community-driven pull requests will
> be
> >> forced to think about which branch to request against.
> >
> >
> > - Andrew, can you cite other projects that do not use a master branch?
> This project is my first time using git / github, so I don't have much to
> draw from. I was going off of others' suggestions on this thread when I
> proposed the names.
>
>
> > - On Github, you must have a default branch. If not master, it must be
> > something else. So, users are not forced to think about the branch to
> send
> > a pull request again... they will likely just use the default.
>
> Hmm, good point. The goal is to get people downloading Cordova for use to
> end up with Stable, and for developers to send pull requests against dev.
> With a forced default branch, I don't think we can accomplish this.
>
>
> >
> > - Why is the "stable" branch not just "master"?
>
> My thinking was that it's not obvious whether Master == bleeding edge, or
> Master == Stable version. Using the names "dev" and "stable" makes it a bit
> clear.
>
>
>
> So... If github forces us to have a default branch, I'm thinking that
> having users send pull requests against "dev" is more valuable than having
> people download the latest "stable" by default. If people are pulling code
> from github rather than from our release .zip files, then it's likely they
> want to hack on it anyways, or that they want the dev version to see if
> bugs are fixed.
>
> Soo.... Here's version #3! If anyone can think of how to keep the three
> branches while addressing being forced to have a default branch, feel free
> to speak up! :)
>
>
> Cordova repositories have two main branches:
> 1. master
> 2. next
>
> Topic branches exist for collaborating on features, or for code-review
> purposes.
>
> Cordova uses tags to label releases.
> - Each release candidate has a tag. e.g. "2.2.0rc1"
> - Each release has a tag. e.g. "2.2.0"
> - The "latest" tag points to the last stable release (this follows npm
> conventions)
>
>
> 1. The "next" branch.
> - This branch is used only when in the process of doing a release.
> - All tags are created from this branch.
> - All release-candidate bug-fixes are done on this branch.
>
> 2. The "master" branch.
>  - When not in the release-process, all commits are made here
>  - When in the release-process, all non-bugfix commits are made here
>  - This is where topic-branches are merged into.
>
> Cutting a release:
> 1. git checkout next && git merge --ff-only master
> 2. Test test test!
> 3. Fix bugs by committing them directly to "next" and then doing a non-ff
> merge of next into master
> 4. Tag release candidate
> 5. Repeat steps 2-4 as necessary
> 6. Tag the release (both by version and by updating the "latest" tag)
> 7. Create distribution .zip file
> 8. Test one last time using the dist files
>
>
>
>
>
>
>
> >
> > Thanks,
> > Michael
> >
> > On Wed, Jan 23, 2013 at 11:25 AM, Brian LeRoux <b...@brian.io> wrote:
> >
> >> I'm liking it. Start in 2.5?
> >>
> >> On Wed, Jan 23, 2013 at 1:19 PM, Filip Maj <f...@adobe.com> wrote:
> >>> Looks great Andrew!
> >>>
> >>> If everyone's on board, how are we going to test run this? Flip a
> > switch
> >>> at a certain point, give it a shot with one repo for one RC?
> >>>
> >>> On 1/22/13 12:29 PM, "Andrew Grieve" <agri...@chromium.org> wrote:
> >>>
> >>>> Braden, you're right. I've now done some local playing around in git,
> > and
> >>>> have an updated proposal that uses merges instead of deleting
> branches.
> >>>> PTAL:
> >>>>
> >>>> Cordova repositories have three main branches:
> >>>> 1. stable
> >>>> 2. next
> >>>> 3. dev
> >>>>
> >>>> Topic branches also exist for collaborating on features, or for
> >>>> code-review
> >>>> purposes.
> >>>>
> >>>> There is *no* master branch, so that community-driven pull requests
> > will
> >>>> be
> >>>> forced to think about which branch to request against.
> >>>>
> >>>> 1. The "stable" branch.
> >>>> - Sits at the latest stable release of cordova
> >>>> - This changes only when doing fast-forward merges from "next"
> >>>>
> >>>> 2. The "next" branch.
> >>>> - This branch is used only when in the process of doing a release.
> >>>> - All tags (both stable and RC) are done on this branch.
> >>>> - All release-candidate bug-fixes are done on this branch.
> >>>>
> >>>> 3. The "dev" branch.
> >>>> - This is where non-release-candidate commits are done
> >>>> - This is where topic-branches are merged into.
> >>>>
> >>>> Cutting a release:
> >>>> 1. git checkout next && git merge --ff-only dev
> >>>> 2. Test test test!
> >>>> 3. Fix bugs by committing them directly to "next" and then doing a
> > non-ff
> >>>> merge of next into dev
> >>>> 4. Tag release candidate
> >>>> 5. Repeat steps 2-4 as necessary
> >>>> 6. Tag the release
> >>>> 7. Create distribution .zip file
> >>>> 8. Test one last time using the dist files
> >>>> 9. git checkout stable && git merge --ff-only next
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Jan 22, 2013 at 1:59 PM, Braden Shepherdson
> >>>> <bra...@chromium.org>wrote:
> >>>>
> >>>>> I think deleting and recreating branches with the same name can cause
> >>>>> badness in git[1] because of remotes. It's not really the same branch
> >> in
> >>>>> terms of commits, and git thinks that your old stable and the new
> >> stable
> >>>>> differ by all of each of their commits. Tags can be moved
> > arbitrarily,
> >>>>> so I
> >>>>> think stable makes sense as a tag. I'm not sure about how best to
> >> handle
> >>>>> next.
> >>>>>
> >>>>> [1]
> >
> http://stackoverflow.com/questions/11844581/git-delete-and-recreate-branc
> >>>>> h
> >>>>>
> >>>>>
> >>>>> On Tue, Jan 22, 2013 at 11:31 AM, Andrew Grieve <
> > agri...@chromium.org
> >>>>>> wrote:
> >>>>>
> >>>>>> Michal's attending hackathons for the week, and I'm not sure we
> > need
> >>>>> to
> >>>>> do
> >>>>>> a hang-out for this, as I think we really are quite close to
> >> resolving
> >>>>>> this. I'd really like to resolve this ASAP so that we don't need to
> >>>>> have
> >>>>> a
> >>>>>> code-freeze for this release.
> >>>>>>
> >>>>>> Here's a proposal:
> >>>>>>
> >>>>>> Cordova repositories have three main branches:
> >>>>>> 1. stable
> >>>>>> 2. next
> >>>>>> 3. dev
> >>>>>>
> >>>>>> Topic branches also exist for collaborating on features, or for
> >>>>> code-review
> >>>>>> purposes.
> >>>>>>
> >>>>>> There is *no* master branch, so that community-driven pull requests
> >>>>> will
> >>>>> be
> >>>>>> forced to think about which branch to request against.
> >>>>>>
> >>>>>> 1. The "stable" branch.
> >>>>>> - Sits at the latest stable release of cordova
> >>>>>> - No one ever commits to the "stable" branch. It exists only as a
> >>>>>> short-cut for checking out the latest stable tag.
> >>>>>>
> >>>>>> 2. The "next" branch.
> >>>>>> - This branch exists only when in the process of doing a release.
> >>>>>> - All tags (both stable and RC) are done on this branch.
> >>>>>> - When a stable tag is done:
> >>>>>>    - The existing "stable" branch is deleted
> >>>>>>    - A new "stable" branch is created from "next".
> >>>>>>    - The "next" branch is deleted.
> >>>>>>
> >>>>>> 3. The "dev" branch.
> >>>>>>  - This is where all commits are done
> >>>>>>  - This is where topic-branches are merged into.
> >>>>>>
> >>>>>> Cutting a release:
> >>>>>> 1. Create "next" from the HEAD of "dev"
> >>>>>> 2. Test test test!
> >>>>>> 3. Fix bugs by committing them to "dev" and then cherry-picking
> > them
> >>>>> into
> >>>>>> "next"
> >>>>>> 4. Tag release candidate
> >>>>>> 5. Repeat steps 2-4 as necessary
> >>>>>> 6. Tag the release
> >>>>>> 7. Create distribution .zip file
> >>>>>> 8. Test one last time using the dist files
> >>>>>> 9. Delete "stable"
> >>>>>> 10. Create a new "stable" by branching from the HEAD of "next"
> >>>>>> 11. Delete the "next" branch
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Wed, Jan 16, 2013 at 10:34 AM, Michal Mocny <
> > mmo...@chromium.org>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Just going to throw out one of my personal requirements for
> >> whatever
> >>>>>>> proposal we come up with, so it doesn't get lost:
> >>>>>>>
> >>>>>>> * Feature branches are great for feature work and/or large
> > sweeping
> >>>>>>> changes, as are JIRA bugs for tracking them, but cordova has many
> >>>>> many
> >>>>>>> trivial issues that could be fixed with "drive-by" patches that
> >>>>> require
> >>>>>> as
> >>>>>>> little friction to commit as possible.
> >>>>>>>
> >>>>>>>
> >>>>>>> On Tue, Jan 15, 2013 at 3:05 PM, Marcel Kinard <
> > cmarc...@gmail.com
> >>>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>>> How about if there is a specific straw man proposal at the
> >>>>> beginning
> >>>>> of
> >>>>>>>> the face-time? Then the folks that are in agreement won't need
> > to
> >>>>> say
> >>>>>>>> anything ;-)
> >>>>>>>>
> >>>>>>>> Seriously, making adjustments to something tangible is easier
> >> than
> >>>>>>>> instantiating it from scratch. A volunteer for a very simple
> >>>>> writeup
> >>>>> on
> >>>>>>> the
> >>>>>>>> wiki?
> >>>>>>>>
> >>>>>>>> -- Marcel Kinard
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 1/14/2013 10:06 PM, Michal Mocny wrote:
> >>>>>>>>
> >>>>>>>>> Okay gentlemen, I think there have been countless good points
> >>>>> made
> >>>>>> from
> >>>>>>>>> all
> >>>>>>>>> parties, but also some bike-shedding.
> >>>>>>>>>
> >>>>>>>>> Perhaps it is time to schedule some face-time to better
> >>>>> articulate
> >>>>>> some
> >>>>>>> of
> >>>>>>>>> the finer points, and to help come to some consensus?
> >>>>>>>>>
> >>>>>>>>> -Michal
> >
>

Reply via email to