Re: what is which branch up for?

2015-01-30 Thread Thiago Veronezi
>>@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 
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"  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 ..." to update what will be committed)
> > #   (use "git checkout -- ..." 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.

Re: what is which branch up for?

2015-01-30 Thread Romain Manni-Bucau
@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"  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 ..." to update what will be committed)
> #   (use "git checkout -- ..." 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 +---
>  

Re: useless branches and branch deletes at asf git repos

2015-01-30 Thread Alan D. Cabrera
Let’s GID!  :)


Regards,
Alan

> On Jan 28, 2015, at 11:39 AM, Mark Struberg  wrote:
> 
> I personally would suggest we disable history rewrite for our whole ASF repo. 
> This is a single config line in the repo. 
> 
> History rewrite has a huge potential to crack the repo beyond repair anyway.
> 
> 
> 
> LieGrue,
> strub
> 
> 
> 
> 
> 
>> On Wednesday, 28 January 2015, 20:12, Romain Manni-Bucau 
>>  wrote:
>>> Nothing forbids it so it is responsability of everyone.
>> 
>> Le 28 janv. 2015 19:59, "Alan D. Cabrera"  
>> a écrit :
>> 
>>> Ahh, ok, your warnings did seem overly broad to me.
>>> 
>>> How is that enforced on ASF infrastructure?  Is it by an “honor system”
>>> that we assume no history rewrites are taking place?
>>> 
>>> 
>>> Regards,
>>> Alan
>>> 
>>> 
 On Jan 28, 2015, at 10:12 AM, Mark Struberg  
>> wrote:
 
 Deleting those is fine. But we must make sure that no essential commit
>>> gets lost. And this is only doable by totally forbidding history rewrite on
>>> the repo.
 
 LieGrue,
 strub
 
 
 
 
 
> On Wednesday, 28 January 2015, 18:27, Alan Cabrera <
>>> l...@toolazydogs.com> wrote:
>> Deleting committed changes is definitely bad. Deleting 
>> branches that
>>> ultimately
> participate in the release is also bad.
> 
> However, deleting tags for "failed" releases is fine as 
>> is deleting a
> branch that never transitively participated in a release should be 
>> fine
>>> as well.
> 
> Do I misunderstand something?  Is there some infrastructure 
>> limitation?
> 
> Sent from my iPhone
> 
> 
>> On Jan 28, 2015, at 6:07 AM, Mark Struberg 
>>  wrote:
>> 
>> Hi folks!
>> 
>> I've found another thing which is ugly
>> 
>> release-tomee-1.7.2 and
>> tomee-1.7.2 branches which are actually just leftovers it 
>> seems?
>> 
>> 
>> Please be aware that we MUST NOT DELETE anything at ASF repos! 
>> We must
>>> not
> do history rewrite!
>> 
>> So think REALLY hard before creating branches which are just 
>> utter
>>> garbage.
> In git you just cannot get rid of them that easily. They get 
>> mirrored
>>> downstream
> automatically and we have no whatever control about them anymore!
>> 
>> Please read how we handle GIT over at DeltaSpike.
>> 
>> We e.g. release with localCheckout=true and pushChanges=false.
>> 
>> 
>> Just ping me if I need to go into details.
>> 
>> LieGrue,
>> strub
> 
>>> 
>>> 
>> 



Re: what is which branch up for?

2015-01-30 Thread Thiago Veronezi
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 ..." to update what will be committed)
#   (use "git checkout -- ..." 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 th

Re: what is which branch up for?

2015-01-30 Thread Marius Kruger
On 28 January 2015 at 22:34, Romain Manni-Bucau 
wrote:

> well while master = 2.x.x I wouldn't create it but yes...
>

Exactly develop in `master` and only when stabilizing for a release do you
branch off `2.x.x`. .

I agree that not using `master` for development would cause more confusion
than benefit. One could maintain a `released` branch with points to the
latest released branch `1.7.1` (pushed into `released` at end release
process) - but it is extra work, so don't do this unless somebody in the
world actually want this.

As I mentioned a while ago I think there will be more benefit to maintain a
`master-tests-passed` branch which is kept up to date by the buildbot:
build master every day and if all tests passed, push into
`master-tests-passed`. And if it gets more than a week out of date maybe
mail dev@ or the devs that contributed the breaking changes.  This way
occasional developers can easily track a stable-ish master branch that at
least is guaranteed to pass all tests..

-- 
✝ Marius


Re: what is which branch up for?

2015-01-30 Thread Alan D. Cabrera

> On Jan 29, 2015, at 10:28 PM, Mark Struberg  wrote:
> 
> Hi Alan!
> 
>> Where do you see that?  I keep reading that Atlasssian document and I don’t 
>> see
>> where it requires cherry picking each and every commit.
> 
> 
> You have a master branch and a development branch. All work happens on the 
> development branch but releases happen from master branch, right? So how do 
> all the commits end up on the master branch? Someone has to pick the 'good' 
> ones from the development branch over to the master branch. Especially when a 
> release comes near.

Well, I do agree that’s cumbersome and error prone but I thought that the 
master was *merged* from a release branch.

>> Can you point me to the parts that justify your allegations?
> 
> My 'musts' listed below are not from gitflow. Those are requirements we do 
> have as ASF project. As an ASF project we are required to maintain a clean 
> code provenance and a immutable project source history. This means we must 
> not do any history rewrite of stuff which already hit the ASF repo (of course 
> a local! rebase or your own work which you did not push to some ASF repo is 
> perfectly fine).
> 
> So we should really disable history rewrite on our cannonical ASF git repo.
> 
> As to my argument about branch deletes. Gitflow requires that you create an 
> own branch for every feature someone does. But that would have us end up with 
> 400++ branches pretty soon. I guess you see that this is not really easy to 
> maintain. Of course after a feature got merged in to some 'upstream' branch 
> then we can delete this feature branch technically. But the problem is that 
> it's really easy to trash a GIT repo with branch deletes. And there is no way 
> back other than a full file restore from a backup. 
> 
> What people don't get most of the time:
> 
> A delete of a branch in SVN is really just an additional commit which sets a 
> 'deleted' flag. So you can always do an undelete in SVN. But that's not the 
> way it works with GIT. If you delete a branch in GIT then it is gone. 
> Especially if there was a git-prune or git-gc scheduled afterwards.
> 
> So I'd rather forbid all history rewrite (including deletess) on our repos 
> and do experimental stuff on a different repo (either an own sandbox repo at 
> ASF or on github).

Thanks for providing detail.  I agree that if a feature branch is worked on by 
more than one person it probably shouldn’t be deleted; I think it’s more likely 
s/shouldn’t/must not/.  But that’s a problem w/ git.  It’s too bad that there 
can’t be two repos per project, one is for feature development and the other is 
for official releases.

I don’t see the requirement to squash commits in GitFlow.

Thanks for taking the time to bring me up to speed.  Frankly, I didn’t have the 
bandwidth to keep up w/ the initial git discussions.  Is there an ASF position 
document on git usage?

With that said, I haven’t been doing a lot of development here lately and so 
I’ve been reticent on the issue with the exception being where there are gaps 
in my understanding of things.  But, I do want to make one very important 
observation.

The "Apache Way” is not a set of rules.  The Apache Way is community over code. 
 That’s it.  Nothing else.

The biggest aspect of that is treating your colleagues on this project with 
respect and not trying to bully others to get your way.  Take a personal pause 
on this thread and redouble your efforts to attain your goal while realizing 
that since this is not a technical issue you will need to garner the consensus 
of your colleagues. Using expletives and couching accusations of development 
immaturity will only cause others to “circle the wagons”, making for yet 
another interminable thread that I have to slog through.

We have probably one of the best developer groups on this project in the planet 
here.  They are smart, articulate, and will listen to calm, respectful, 
reasoning.


Regards,
Alan




Re: what is which branch up for?

2015-01-30 Thread Thiago Veronezi
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 ..." to update what will be committed)
#   (use "git checkout -- ..." 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 th

Re: what is which branch up for?

2015-01-30 Thread Romain Manni-Bucau
point is if you dont do it then this workflow is useless and doesnt
bring anything since stable sources are in tags


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2015-01-30 13:01 GMT+01:00 Andy Gumbrecht :
> Hi Mark,
>
> This is a great discussion and I am really starting to see both sides. Again
> I am pretty neutral, but still lean to Gitflow.
>
> However (there is always one of those), I have to agree with Alan on the
> 'cherry picking' issue. It does not tie in with the documentation at all? I
> have read
> https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
> over and over to try and see where all this work you suggest is coming from,
> and I still don't see it?
>
>>> Where do you see that?  I keep reading that Atlasssian document and I
>>> don’t see
>>> where it requires cherry picking each and every commit.
>>>
>>>
>>> You have a master branch and a development branch. All work happens on
>>> the development branch but releases happen from master branch, right? So how
>>> do all the commits end up on the master branch? Someone has to pick the
>>> 'good' ones from the development branch over to the master branch.
>>> Especially when a release comes near.
>>>
>>>
> Releases are taken from develop - 'Once the release is ready to ship, Mary
> merges it into master and develop' - This is where I cannot understand the
> nature of it's / your dismissal, as it is virtually a one liner? Someone
> does play the release manager at some point and all this Gitflow is just to
> allow a buffer zone during it's preparation so devs can carry on oblivious
> to it.
>
> The first picture in the mentioned docs really paints it for me. I played
> out Gitflow step by step on a simple hello world repo and still can't find
> 'all this work'?
>
> We have of course jumped ahead of the game with 1.7.x and develop branches,
> because we don't have a 2.x release in master yet (ie. the only thing that
> should be in master is 2.0.0-Milestone1). It is just to save a back peddle
> when we finally get there. Really, as it stands today, the develop branch
> 'should' be 1.7.x and 2.x should be in it's own branch until it takes over
> as the main release. It would have been that way if we'd made the transition
> to git earlier.
>
> What you suggest is, as mentioned in the thread, that we basically do it the
> svn way (with the advantages of git locally). We still freeze checking in
> potentially unstable stuff while the release is ongoing and collaborate via
> the lists as usual. Totally cool with it if that's really what you want. I
> was totally cool with svn ;-)
>
> Andy.
>
>
> --
>   Andy Gumbrecht
>   https://twitter.com/AndyGeeDe
>   http://www.tomitribe.com
>


Re: what is which branch up for?

2015-01-30 Thread Andy Gumbrecht

Hi Mark,

This is a great discussion and I am really starting to see both sides. 
Again I am pretty neutral, but still lean to Gitflow.


However (there is always one of those), I have to agree with Alan on the 
'cherry picking' issue. It does not tie in with the documentation at 
all? I have read 
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow 
over and over to try and see where all this work you suggest is coming 
from, and I still don't see it?



Where do you see that?  I keep reading that Atlasssian document and I don’t see
where it requires cherry picking each and every commit.


You have a master branch and a development branch. All work happens on the 
development branch but releases happen from master branch, right? So how do all 
the commits end up on the master branch? Someone has to pick the 'good' ones 
from the development branch over to the master branch. Especially when a 
release comes near.


Releases are taken from develop - 'Once the release is ready to ship, 
Mary merges it into master and develop' - This is where I cannot 
understand the nature of it's / your dismissal, as it is virtually a one 
liner? Someone does play the release manager at some point and all this 
Gitflow is just to allow a buffer zone during it's preparation so devs 
can carry on oblivious to it.


The first picture in the mentioned docs really paints it for me. I 
played out Gitflow step by step on a simple hello world repo and still 
can't find 'all this work'?


We have of course jumped ahead of the game with 1.7.x and develop 
branches, because we don't have a 2.x release in master yet (ie. the 
only thing that should be in master is 2.0.0-Milestone1). It is just to 
save a back peddle when we finally get there. Really, as it stands 
today, the develop branch 'should' be 1.7.x and 2.x should be in it's 
own branch until it takes over as the main release. It would have been 
that way if we'd made the transition to git earlier.


What you suggest is, as mentioned in the thread, that we basically do it 
the svn way (with the advantages of git locally). We still freeze 
checking in potentially unstable stuff while the release is ongoing and 
collaborate via the lists as usual. Totally cool with it if that's 
really what you want. I was totally cool with svn ;-)


Andy.

--
  Andy Gumbrecht
  https://twitter.com/AndyGeeDe
  http://www.tomitribe.com



Re: tomee git commit: tomee embedded maven plugin enhancements: double exclusions cause if you specify classpath exclude you can miss few exclusions impacting with maven for instance + fixing jndi nam

2015-01-30 Thread Romain Manni-Bucau
Hello Thiago

true, will fix it quickly


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2015-01-30 12:05 GMT+01:00 Thiago Veronezi :
> Hi Romain,
>
> Heads up. It looks like this change breaks "tomee-embedded-maven-plugin".
>
> []s,
> Thiago.
>
>
> On Tue, Jan 27, 2015 at 4:27 AM,  wrote:
>
>> Repository: tomee
>> Updated Branches:
>>   refs/heads/develop 0ee520090 -> db433d69a
>>
>>
>> tomee embedded maven plugin enhancements: double exclusions cause if you
>> specify classpath exclude you can miss few exclusions impacting with maven
>> for instance + fixing jndi names for webapps
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/db433d69
>> Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/db433d69
>> Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/db433d69
>>
>> Branch: refs/heads/develop
>> Commit: db433d69a6bf618a0202b45c50e5d8d5f5708063
>> Parents: 0ee5200
>> Author: Romain Manni-Bucau 
>> Authored: Tue Jan 27 10:26:11 2015 +0100
>> Committer: Romain Manni-Bucau 
>> Committed: Tue Jan 27 10:26:11 2015 +0100
>>
>> --
>>  .../main/java/org/apache/tomee/embedded/Container.java   | 11 +--
>>  1 file changed, 9 insertions(+), 2 deletions(-)
>> --
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/tomee/blob/db433d69/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
>> --
>> diff --git
>> a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
>> b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
>> index 72bb056..0337570 100644
>> ---
>> a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
>> +++
>> b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
>> @@ -79,6 +79,7 @@ import org.apache.velocity.app.Velocity;
>>  import org.apache.velocity.app.VelocityEngine;
>>  import org.apache.velocity.runtime.log.NullLogChute;
>>  import
>> org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
>> +import org.apache.xbean.finder.UrlSet;
>>  import org.apache.xbean.finder.filter.Filters;
>>  import org.codehaus.swizzle.stream.ReplaceStringsInputStream;
>>
>> @@ -153,7 +154,11 @@ public class Container implements AutoCloseable {
>>  }
>>  }
>>
>> -return deployPathsAsWebapp(context, jarList, docBase);
>> +try {
>> +return deployPathsAsWebapp(context,
>> NewLoaderLogic.applyBuiltinExcludes(new UrlSet(jarList), null).getUrls(),
>> docBase);
>> +} catch (final MalformedURLException e) {
>> +return deployPathsAsWebapp(context, jarList, docBase);
>> +}
>>  }
>>
>>  public Container deployPathsAsWebapp(final String context, final
>> List jarList, final File docBase) {
>> @@ -166,7 +171,7 @@ public class Container implements AutoCloseable {
>>  }
>>
>>  final File jarLocation = docBase == null ? fakeRootDir() :
>> docBase;
>> -final WebModule webModule = new WebModule(new WebApp(),
>> contextRoot, loader, jarLocation.getAbsolutePath(), contextRoot);
>> +final WebModule webModule = new WebModule(new WebApp(),
>> contextRoot, loader, jarLocation.getAbsolutePath(),
>> contextRoot.replace("/", ""));
>>  if (docBase == null) {
>>  webModule.getProperties().put("fakeJarLocation", "true");
>>  }
>> @@ -189,6 +194,8 @@ public class Container implements AutoCloseable {
>>
>>  final AppModule app = new AppModule(loader, null);
>>  app.setStandloneWebModule();
>> +app.setStandaloneModule(true);
>> +app.setModuleId(webModule.getModuleId());
>>  try {
>>
>>  
>> webModule.getAltDDs().putAll(DeploymentLoader.getWebDescriptors(jarLocation));
>>  DeploymentLoader.addWebModule(webModule, app);
>>
>>


Re: tomee git commit: tomee embedded maven plugin enhancements: double exclusions cause if you specify classpath exclude you can miss few exclusions impacting with maven for instance + fixing jndi nam

2015-01-30 Thread Thiago Veronezi
Hi Romain,

Heads up. It looks like this change breaks "tomee-embedded-maven-plugin".

[]s,
Thiago.


On Tue, Jan 27, 2015 at 4:27 AM,  wrote:

> Repository: tomee
> Updated Branches:
>   refs/heads/develop 0ee520090 -> db433d69a
>
>
> tomee embedded maven plugin enhancements: double exclusions cause if you
> specify classpath exclude you can miss few exclusions impacting with maven
> for instance + fixing jndi names for webapps
>
>
> Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
> Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/db433d69
> Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/db433d69
> Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/db433d69
>
> Branch: refs/heads/develop
> Commit: db433d69a6bf618a0202b45c50e5d8d5f5708063
> Parents: 0ee5200
> Author: Romain Manni-Bucau 
> Authored: Tue Jan 27 10:26:11 2015 +0100
> Committer: Romain Manni-Bucau 
> Committed: Tue Jan 27 10:26:11 2015 +0100
>
> --
>  .../main/java/org/apache/tomee/embedded/Container.java   | 11 +--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> --
>
>
>
> http://git-wip-us.apache.org/repos/asf/tomee/blob/db433d69/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
> --
> diff --git
> a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
> b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
> index 72bb056..0337570 100644
> ---
> a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
> +++
> b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
> @@ -79,6 +79,7 @@ import org.apache.velocity.app.Velocity;
>  import org.apache.velocity.app.VelocityEngine;
>  import org.apache.velocity.runtime.log.NullLogChute;
>  import
> org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
> +import org.apache.xbean.finder.UrlSet;
>  import org.apache.xbean.finder.filter.Filters;
>  import org.codehaus.swizzle.stream.ReplaceStringsInputStream;
>
> @@ -153,7 +154,11 @@ public class Container implements AutoCloseable {
>  }
>  }
>
> -return deployPathsAsWebapp(context, jarList, docBase);
> +try {
> +return deployPathsAsWebapp(context,
> NewLoaderLogic.applyBuiltinExcludes(new UrlSet(jarList), null).getUrls(),
> docBase);
> +} catch (final MalformedURLException e) {
> +return deployPathsAsWebapp(context, jarList, docBase);
> +}
>  }
>
>  public Container deployPathsAsWebapp(final String context, final
> List jarList, final File docBase) {
> @@ -166,7 +171,7 @@ public class Container implements AutoCloseable {
>  }
>
>  final File jarLocation = docBase == null ? fakeRootDir() :
> docBase;
> -final WebModule webModule = new WebModule(new WebApp(),
> contextRoot, loader, jarLocation.getAbsolutePath(), contextRoot);
> +final WebModule webModule = new WebModule(new WebApp(),
> contextRoot, loader, jarLocation.getAbsolutePath(),
> contextRoot.replace("/", ""));
>  if (docBase == null) {
>  webModule.getProperties().put("fakeJarLocation", "true");
>  }
> @@ -189,6 +194,8 @@ public class Container implements AutoCloseable {
>
>  final AppModule app = new AppModule(loader, null);
>  app.setStandloneWebModule();
> +app.setStandaloneModule(true);
> +app.setModuleId(webModule.getModuleId());
>  try {
>
>  
> webModule.getAltDDs().putAll(DeploymentLoader.getWebDescriptors(jarLocation));
>  DeploymentLoader.addWebModule(webModule, app);
>
>