>>@thiago:  works but 2.x is generally useless while it matches master or last
2.x tag
@romain: It is useful if we don't want code-freeze. In that case, we would
need a place to work as the buffer that Andy mentioned before.

>> just to allow a buffer zone during it's preparation so devs can carry on
oblivious to it.



On Fri, Jan 30, 2015 at 6:51 PM, Romain Manni-Bucau <rmannibu...@gmail.com>
wrote:

> @thiago:  works but 2.x is generally useless while it matches master or
> last 2.x tag
>  Le 31 janv. 2015 00:22, "Thiago Veronezi" <thi...@veronezi.org> a écrit :
>
> > Did you guys take some time to consider my proposal? Oh well... Ok, I
> > changed the rssreader project in order to reflect what I'm trying to say.
> > :)
> >
> > https://github.com/tveronezi/rssreader
> > https://github.com/tveronezi/rssreader/branches
> > https://github.com/tveronezi/rssreader/releases
> >
> > With my proposal, we would have 3, and only 3, branches all the times. In
> > the example above it goes like this:
> > * master -> bleeding edge - development branch. I will try to use tomee
> > 2.x.x here.
> > * with-tomee-1.7.x -> stable branch. Only libraries and TomEE-1.7.x
> updates
> > here.
> > * with-tomee-2.x.x -> stable branch. Updated every time a new TomEE 2.x.x
> > comes out.
> >
> > We would also have tags. https://github.com/tveronezi/rssreader/tags
> > For now I have only one. v1.0 uses the latest released TomEE 1.7.x ->
> TomEE
> > 1.7.1
> >
> > Just for one minute, lets imagine/map these branches as being our TomEE
> > branches:
> > * master rssreader -> master tomee
> > * with-tomee-1.7.x -> tomee-1.7.x
> > * with-tomee-2.x.x -> tomee-2.x.x
> >
> > My "with-tomee-1.7.x" branch is stable and should not have new features.
> > Once a new TomEE version comes out, I will simply switch to this branch
> and
> > update to the new version. Commit, push, create a new tag (v1.1) and push
> > the tag. I don't need to touch "master" because "master" uses TomEE
> > 2.0.0-SNAPSHOT.
> >
> > "with-tomee-2.x.x" is pretty much dead now because we still don't have a
> > TomEE 2.0.0 release. Once we have it, I will do the following...
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git branch
> > * master
> >   with-tomee-1.7.x
> >   with-tomee-2.x.x
> >
> > ## switching from master to 'with-tomee-2.x.x'
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git checkout
> > with-tomee-2.x.x
> > Switched to branch 'with-tomee-2.x.x'
> >
> > ## merging whatever I have in 'master' into 'with-tomee-2.x.x'
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git merge master
> > Updating 8bbfdcc..64b3095
> > Fast-forward
> >  pom.xml |   26 +++++++++++++++++++++++---
> >  1 file changed, 23 insertions(+), 3 deletions(-)
> >
> > ## pushing it to the remote repository so others can help me
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push
> > Total 0 (delta 0), reused 0 (delta 0)
> > To https://github.com/tveronezi/rssreader.git
> >    8bbfdcc..64b3095  with-tomee-2.x.x -> with-tomee-2.x.x
> >
> >
> > ## At this point "master" and "with-tomee-2.x.x" are the same. It means
> > that "with-tomee-2.x.x" could potentially be broken.
> > ## My job now is to make it stable again. Once I did the source changes,
> I
> > commit and push them back to the remote branch.
> > ## I also create a tag and push it to the remote repository.
> > ## Commiting the changes I did to make the release possible...
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git status
> > # On branch with-tomee-2.x.x
> > # Changes not staged for commit:
> > #   (use "git add <file>..." to update what will be committed)
> > #   (use "git checkout -- <file>..." to discard changes in working
> > directory)
> > #
> > # modified:   pom.xml
> > # modified:   src/main/webapp/index.jsp
> > #
> > no changes added to commit (use "git add" and/or "git commit -a")
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git add pom.xml
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git add
> > src/main/webapp/index.jsp
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git commit -m "not
> using
> > extjs webjar due to bug in tomee 2.0.0"
> > [with-tomee-2.x.x 1562d1a] not using extjs webjar due to bug in tomee
> 2.0.0
> >  2 files changed, 3 insertions(+), 9 deletions(-)
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push
> > Counting objects: 13, done.
> > Delta compression using up to 2 threads.
> > Compressing objects: 100% (7/7), done.
> > Writing objects: 100% (7/7), 683 bytes, done.
> > Total 7 (delta 5), reused 0 (delta 0)
> > To https://github.com/tveronezi/rssreader.git
> >    64b3095..1562d1a  with-tomee-2.x.x -> with-tomee-2.x.x
> >
> > ## I call a vote. Once it passes, it's time to create a tag.
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git tag -a v2.0-Beta -m
> > 'rssreader with tomee 2.0.0 SNAPSHOT'
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push origin
> v2.0-Beta
> > Counting objects: 1, done.
> > Writing objects: 100% (1/1), 190 bytes, done.
> > Total 1 (delta 0), reused 0 (delta 0)
> > To https://github.com/tveronezi/rssreader.git
> >  * [new tag]         v2.0-Beta -> v2.0-Beta
> >
> > ## Now it is time to merge our changes back to master so we don't lose
> our
> > good work
> >
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git branch
> >   master
> >   with-tomee-1.7.x
> > * with-tomee-2.x.x
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git checkout master
> > Switched to branch 'master'
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git merge
> > with-tomee-2.x.x
> > Updating 64b3095..1562d1a
> > Fast-forward
> >  pom.xml                   |    8 +-------
> >  src/main/webapp/index.jsp |    4 ++--
> >  2 files changed, 3 insertions(+), 9 deletions(-)
> > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push
> > Total 0 (delta 0), reused 0 (delta 0)
> > To https://github.com/tveronezi/rssreader.git
> >    64b3095..1562d1a  master -> master
> >
> >
> > ## The release v2.0-Beta is now ready!
> >
> > This approach makes everyone happy:
> > * master points to the latest code. So, anyone cloning this project would
> > automatically have the bleeding edge version of it.
> > * we don't need to call a code freeze. Other developers can still work on
> > master.
> > * we won't need to create and delete new branches.
> > * there is no "review and commit" process.
> > * there is no cherry-picking.
> > * there is no history rewrite.
> > * we would have release branches that are always (or most of the time)
> > stable.
> > * we have tags to our releases
> >
> >
> > []s,
> > Thiago.
> >
>

Reply via email to