Thanks for the pseudocode Andrew, seems simpler to understand ;) Jesse's
re-factor makes it even easier. Here's my contrib for those more visually
inclined:


[image: Inline image 2]


On Thu, Jan 24, 2013 at 1:29 PM, Andrew Grieve <agri...@chromium.org> wrote:

> Nice! even simpler. :)
>
>
> On Thu, Jan 24, 2013 at 3:44 PM, Jesse <purplecabb...@gmail.com> wrote:
>
> > Thanks for clarifying Andrew. et al, I guess I was mis-understanding some
> > of the earlier discussion around naming stuff.
> >
> > So everything is going to master all the time, and we only care about
> > 'next' if we are inReleaseMode and it is a bug fix?
> >
> > if(inReleaseMode && isBugFix) {
> >     commitToBranch('next');
> >     mergeBranch('next').into('master');
> > }
> > else {
> >     commitToBranch('master');
> > }
> >
> >
> >
> >
> >
> > On Thu, Jan 24, 2013 at 12:29 PM, Andrew Grieve <agri...@chromium.org
> > >wrote:
> >
> > > Just to clarify - there should be *no* using of the git cherry-picking
> > > command, only git merge.
> > >
> > > Jesse - not sure what you're referring to with "branch must be named
> x".
> > > The latest revision of the proposal has only two branches: master and
> > next.
> > > Do you mean you don't like the name "next"?
> > >
> > > Maybe the proposal will seem simpler if put in the form of code :)
> > >
> > > if (!inReleaseMode) {
> > >     commitToBranch('master');
> > > } else {
> > >   if (isBugFix) {
> > >     commitToBranch('next');
> > >     mergeBranch('next').into('master');
> > >   } else {
> > >     commitToBranch('master');
> > >   }
> > > }
> > >
> > >
> > > On Thu, Jan 24, 2013 at 3:06 PM, Braden Shepherdson <
> bra...@chromium.org
> > > >wrote:
> > >
> > > > Most of the time the flow will be unchanged: push to master. Tagging
> > > things
> > > > we already know how to do; that doesn't change.
> > > >
> > > > The only new flow for most people is cherrypicking bug fixes from
> > master
> > > to
> > > > next, which we can give examples of. Plus that could remain the
> > > > responsibility of the main platform maintainers, who are doing the
> > > tagging.
> > > >
> > > > Braden
> > > >
> > > >
> > > > On Thu, Jan 24, 2013 at 2:56 PM, Jesse <purplecabb...@gmail.com>
> > wrote:
> > > >
> > > > > On Thu, Jan 24, 2013 at 11:09 AM, Braden Shepherdson <
> > > > bra...@chromium.org
> > > > > >wrote:
> > > > >
> > > > > > 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.
> > > > > >
> > > > >
> > > > > It is not, the 'branch must be named x' is mainly where I have
> > > concerns.
> > > > > Really I just want things simple.
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > 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
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > @purplecabbage
> > > > > risingj.com
> > > > >
> > > >
> > >
> >
> >
> >
> > --
> > @purplecabbage
> > risingj.com
> >
>

Reply via email to