Re: [fw-general] Re: Lifecycle Handling

2007-07-18 Thread Darby Felton
Hi all,

I added some minor changes to the version lifecycle document today.
Included is a note and svn checkout example about checking out the
release branch and trunk separately:

http://framework.zend.com/wiki/x/HYo

You can click the envelope icon in the upper right-hand part of the page
to "watch" the page and receive e-mail when a change is made.

Still no comments on the document... who will be the brave first poster?

Best regards,
Darby

Thomas Weidner wrote:
> I use also tools which are able to do such things...
> UltraCompare is my choice.
> 
> I think we should also write this "best practice" into the document.
> Just to mention: Even if the things are clear to me, I asked this
> questions because documentation did not make this clear enough ;-)
> 
> Greetings
> Thomas
> I18N Team Leader
> 
> - Original Message - From: "Bill Karwin" <[EMAIL PROTECTED]>
> To: 
> Sent: Wednesday, July 18, 2007 12:20 AM
> Subject: RE: [fw-general] Re: Lifecycle Handling
> 
> 
> Yes, the best working practice is to maintain two svn working copies.
> One for trunk, and one for the branch (remember to "svn update" in both
> trees regularly!)
> 
> Here's a recommendation:  I use a tool for comparing two directory
> trees, called zsCompare.  It allows me to compare full directories, and
> see which files are different.  Then I can open an individual file in
> both trees to compare side by side.  Then I can merge lines of code from
> one tree to the other on a case-by-case basis.
> http://www.zizasoft.com/products/zsCompare/index.shtml
> 
> The Lite version costs only US$35 for a single license.  I think it's
> perfect for cases like this where you are comparing and merging bits
> between two similar trees of files.
> 
> I started using zsCompare when I was programming in Java, because the
> tool can compare collections of files even inside .zip or .jar archives!
> It saved me a lot of time.
> 
> Of course other tools exist that can be used in a similar way, but
> zsCompare works well for me.
> 
> Regards,
> Bill Karwin
> 
>> -----Original Message-
>> From: Thomas Weidner [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, July 17, 2007 3:00 PM
>> To: Bill Karwin; fw-general@lists.zend.com
>> Subject: Re: [fw-general] Re: Lifecycle Handling
>>
>> Hy,
>>
>> which means that core-contributors have to have two released
>> on their workstations.
>> The trunk for new features and the branch for maintenance releases.
>>
>> That's what I asked for and noone was able to definitly say yes or no.
>> I expect most people would not be very amused if I fix bugs
>> only for 1.1
>> (trunk) instead of 1.0.x (branch) ;-)
>>
>> Greetings
>> Thomas
>> I18N Team Leader
>>
>> - Original Message -
>> From: "Bill Karwin" <[EMAIL PROTECTED]>
>> To: 
>> Sent: Tuesday, July 17, 2007 11:15 PM
>> Subject: RE: [fw-general] Re: Lifecycle Handling
>>
>>
>>
>> > -Original Message-
>> > From: Thomas Weidner [mailto:[EMAIL PROTECTED]
>> >
>> > For example Zend_Date
>> > I've integrated new features (array access).
>> > But when there is a new bug I have to integrate it in trunk
>> > (where the new feature resists) and in maintenance.
>> > Otherwise the maintenance branch would also have the new
>> > feature integrated which is not allowed.
>>
>> This means there are a few choices:
>>
>> (a) Implement the same bug fix in a different way, to work
>> with the code
>> in the branch.  But depending on the nature of the bug, this
>> may be too
>> much work.
>>
>> (b) Implement the bug fix in both trunk and branch,
>> implemented in a way
>> that doesn't rely on the new features.  Sometimes this is
>> possible, but
>> sometimes it's not possible or it's too much work.
>>
>> (c) Fix the bug in the trunk but don't fix it in the branch.
>> Users must
>> wait until 1.1.0 to get some bug fixes.
>>
>> I think all cases will fit into the three choices above.  :-)
>>
>> Regards,
>> Bill Karwin
>>
>>
> 
> 


Re: [fw-general] Re: Lifecycle Handling

2007-07-18 Thread Thomas Weidner

I use also tools which are able to do such things...
UltraCompare is my choice.

I think we should also write this "best practice" into the document.
Just to mention: Even if the things are clear to me, I asked this questions 
because documentation did not make this clear enough ;-)


Greetings
Thomas
I18N Team Leader

- Original Message - 
From: "Bill Karwin" <[EMAIL PROTECTED]>

To: 
Sent: Wednesday, July 18, 2007 12:20 AM
Subject: RE: [fw-general] Re: Lifecycle Handling


Yes, the best working practice is to maintain two svn working copies.
One for trunk, and one for the branch (remember to "svn update" in both
trees regularly!)

Here's a recommendation:  I use a tool for comparing two directory
trees, called zsCompare.  It allows me to compare full directories, and
see which files are different.  Then I can open an individual file in
both trees to compare side by side.  Then I can merge lines of code from
one tree to the other on a case-by-case basis.
http://www.zizasoft.com/products/zsCompare/index.shtml

The Lite version costs only US$35 for a single license.  I think it's
perfect for cases like this where you are comparing and merging bits
between two similar trees of files.

I started using zsCompare when I was programming in Java, because the
tool can compare collections of files even inside .zip or .jar archives!
It saved me a lot of time.

Of course other tools exist that can be used in a similar way, but
zsCompare works well for me.

Regards,
Bill Karwin


-Original Message-
From: Thomas Weidner [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 17, 2007 3:00 PM
To: Bill Karwin; fw-general@lists.zend.com
Subject: Re: [fw-general] Re: Lifecycle Handling

Hy,

which means that core-contributors have to have two released
on their workstations.
The trunk for new features and the branch for maintenance releases.

That's what I asked for and noone was able to definitly say yes or no.
I expect most people would not be very amused if I fix bugs
only for 1.1
(trunk) instead of 1.0.x (branch) ;-)

Greetings
Thomas
I18N Team Leader

- Original Message -
From: "Bill Karwin" <[EMAIL PROTECTED]>
To: 
Sent: Tuesday, July 17, 2007 11:15 PM
Subject: RE: [fw-general] Re: Lifecycle Handling



> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED]
>
> For example Zend_Date
> I've integrated new features (array access).
> But when there is a new bug I have to integrate it in trunk
> (where the new feature resists) and in maintenance.
> Otherwise the maintenance branch would also have the new
> feature integrated which is not allowed.

This means there are a few choices:

(a) Implement the same bug fix in a different way, to work
with the code
in the branch.  But depending on the nature of the bug, this
may be too
much work.

(b) Implement the bug fix in both trunk and branch,
implemented in a way
that doesn't rely on the new features.  Sometimes this is
possible, but
sometimes it's not possible or it's too much work.

(c) Fix the bug in the trunk but don't fix it in the branch.
Users must
wait until 1.1.0 to get some bug fixes.

I think all cases will fit into the three choices above.  :-)

Regards,
Bill Karwin






Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andries Seutens


Hi,

I do similar, with a tool named WinMerge, gotta love Open Source :).

http://winmerge.org/

Best,

--
Andries Seutens
http://andries.systray.be


Bill Karwin schreef:

Yes, the best working practice is to maintain two svn working copies.
One for trunk, and one for the branch (remember to "svn update" in both
trees regularly!)

Here's a recommendation:  I use a tool for comparing two directory
trees, called zsCompare.  It allows me to compare full directories, and
see which files are different.  Then I can open an individual file in
both trees to compare side by side.  Then I can merge lines of code from
one tree to the other on a case-by-case basis.
http://www.zizasoft.com/products/zsCompare/index.shtml

The Lite version costs only US$35 for a single license.  I think it's
perfect for cases like this where you are comparing and merging bits
between two similar trees of files.

I started using zsCompare when I was programming in Java, because the
tool can compare collections of files even inside .zip or .jar archives!
It saved me a lot of time.

Of course other tools exist that can be used in a similar way, but
zsCompare works well for me.

Regards,
Bill Karwin

  

-Original Message-
From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 17, 2007 3:00 PM

To: Bill Karwin; fw-general@lists.zend.com
Subject: Re: [fw-general] Re: Lifecycle Handling

Hy,

which means that core-contributors have to have two released 
on their workstations.

The trunk for new features and the branch for maintenance releases.

That's what I asked for and noone was able to definitly say yes or no.
I expect most people would not be very amused if I fix bugs 
only for 1.1

(trunk) instead of 1.0.x (branch) ;-)

Greetings
Thomas
I18N Team Leader

- Original Message -
From: "Bill Karwin" <[EMAIL PROTECTED]>
To: 
Sent: Tuesday, July 17, 2007 11:15 PM
Subject: RE: [fw-general] Re: Lifecycle Handling





-Original Message-
From: Thomas Weidner [mailto:[EMAIL PROTECTED]

For example Zend_Date
I've integrated new features (array access).
But when there is a new bug I have to integrate it in trunk
(where the new feature resists) and in maintenance.
Otherwise the maintenance branch would also have the new
feature integrated which is not allowed.
  

This means there are a few choices:

(a) Implement the same bug fix in a different way, to work 
with the code
in the branch.  But depending on the nature of the bug, this 
may be too

much work.

(b) Implement the bug fix in both trunk and branch, 
implemented in a way
that doesn't rely on the new features.  Sometimes this is 
possible, but

sometimes it's not possible or it's too much work.

(c) Fix the bug in the trunk but don't fix it in the branch.  
Users must

wait until 1.1.0 to get some bug fixes.

I think all cases will fit into the three choices above.  :-)

Regards,
Bill Karwin 




Gecontroleerd op virussen door de JOJO Secure Gateway.


RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andi Gutmans
 

> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 2:58 PM
> To: Andi Gutmans; Darby Felton
> Cc: fw-general@lists.zend.com; Alexander Veremyev
> Subject: Re: [fw-general] Re: Lifecycle Handling
> 
> Just to mention:
> Dont only rely on code-quality... also documentation quality 
> should be archived.
> Many of our contributors are no english natives. We should 
> also think about having someone looking over documentation 
> parts before they are integrated

yes, I agree. The only issue with that is that it should really be a
technical writer and I don't have such a resource available right now. I
will try and see what can be done though but not sure how much I can do.

Andi


RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andi Gutmans
Hi Thomas,

You obviously can't do what you can't do. If you can't reproduce but had
someone else validated that the fix is good then that's in the spirit of
what we wrote. In most cases you should still be able to write a unit
test that would fail on his system (otherwise how did he verify that it
was fixed). Note: You did ask another person to verify your patch which
is in the spirit of what we wrote.

It's important to understand that these guidelines are trying to help
everyone stick to a good high-quality process. We will have to tweak as
we implement them in real-life.
I think most would agree though that if we can follow this process we
will end up a higher-quality project than most others. Just the notion
of asking people to get peer review is something which is not
implemented explicitly in most other projects. 

With the Zend Framework we don't only want to deliver best practices
with the framework itself but also lead by example in how we develop,
test and document.
Andi

> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 2:34 PM
> To: Willie Alberty; Zend Framework
> Subject: Re: [fw-general] Re: Lifecycle Handling
> 
> Hy,
> 
> >> And exact here is my personal problem ;-)
> >>
> >> I am the main author and only person who codes all the 
> I18N classes.
> >> There is no other contributor. So I must ask Zend to 
> review my code.
> >
> > There may be no other core contributors for the i18n classes, but  
> > there are dozens of contributors to the framework. I 
> monitor the i18n  
> > list as I'm sure many others do. if you need a reviewer, 
> I'm sure any  
> > one of us would be happy to look at your code.
> 
> Would be great...
> As always I am of course speaking out loud what others dont 
> want to say because they are to shy ;-)
> 
> >> And what about fixes which do not include unit tests ?
> >> For example...
> >> I am not able to write tests for issues which are related to 64bit 
> >> machines only or for race conditions.
> >
> > Then how can you be sure that the bug has been fixed? Bug 
> fixing is  
> > where unit tests truly shine: before you fix a bug, you 
> write a test  
> > that shows the bug exists. Then you fix the bug. In this 
> way, you can  
> > be assured that you will never re-introduce the bug because there  
> > will always be a test for it.
> 
> Speaking of the two mentioned cases:
> 
> There was a bug within the gettext adapter which only occur 
> on big endian encoding with particular 64bit machines.
> On other 64bit machines the problem did not show. The reason 
> is a bug within php itself.
> 
> How should I code a test, when I am not able to reproduce it ?
> And in my opinion the already written tests were broken 
> within these machines.
> But the people who committed the bugs were not able to run 
> unit tests on their machines.
> 
> And I know that the bug was fixed because I gave the changed 
> lines to the one who had the bug and he said it worked.
> 
> The second bug I mentioned could not be reproduced...
> Wether by me nor by the one who wrote us the bug.
> I only added two exceptions for handling such impossible conditions.
> If this conditions arise someone has changed the locale 
> source files and this is something I am not able to write a test for.
> 
> Speaking of normal bugs, I am of course always writing the 
> unit tests...
> If you look at the testbed for Zend_Date you will see that it 
> is the biggest of the whole framework.
> This is normal coding process...
> 
> >> No I can not...
> >> For example Zend_Date
> >> I've integrated new features (array access).
> >> But when there is a new bug I have to integrate it in trunk (where 
> >> the new feature resists) and in maintenance.
> >> Otherwise the maintenance branch would also have the new feature 
> >> integrated which is not allowed.
> >
> > You should simply checkout two working copies, one from the 
> branch,  
> > and one from the trunk. This is how I've handled 
> maintenance branches  
> > for years.
> 
> That's exactly what I expected and asked for, but noone 
> wanted to answer this definitly.
> 
> Review:
> 
> So I need review and integration of the following trunk changes:
> 5636
> 5720
> 5721
> I would have to integrate them into the next tag release.
> All other changes could be reviewed
> 5693
> 5628
> 5618
> 5586 - 5613
> and are for 1.1.0
> 
> 
> Greetings
> Thomas
> I18N Team Leader 
> 
> 


RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andi Gutmans
Yep this is the case. We do the same in the PHP project. Actually right
now we have three (4.4.x, 5.2.x and 6.x). There's really no other way
but we will try and aim to only have two at any given time (pray...).
 

> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 3:00 PM
> To: Bill Karwin; fw-general@lists.zend.com
> Subject: Re: [fw-general] Re: Lifecycle Handling
> 
> Hy,
> 
> which means that core-contributors have to have two released 
> on their workstations.
> The trunk for new features and the branch for maintenance releases.
> 
> That's what I asked for and noone was able to definitly say yes or no.
> I expect most people would not be very amused if I fix bugs 
> only for 1.1
> (trunk) instead of 1.0.x (branch) ;-)
> 
> Greetings
> Thomas
> I18N Team Leader
> 
> - Original Message -
> From: "Bill Karwin" <[EMAIL PROTECTED]>
> To: 
> Sent: Tuesday, July 17, 2007 11:15 PM
> Subject: RE: [fw-general] Re: Lifecycle Handling
> 
> 
> 
> > -Original Message-
> > From: Thomas Weidner [mailto:[EMAIL PROTECTED]
> >
> > For example Zend_Date
> > I've integrated new features (array access).
> > But when there is a new bug I have to integrate it in trunk
> > (where the new feature resists) and in maintenance.
> > Otherwise the maintenance branch would also have the new
> > feature integrated which is not allowed.
> 
> This means there are a few choices:
> 
> (a) Implement the same bug fix in a different way, to work 
> with the code
> in the branch.  But depending on the nature of the bug, this 
> may be too
> much work.
> 
> (b) Implement the bug fix in both trunk and branch, 
> implemented in a way
> that doesn't rely on the new features.  Sometimes this is 
> possible, but
> sometimes it's not possible or it's too much work.
> 
> (c) Fix the bug in the trunk but don't fix it in the branch.  
> Users must
> wait until 1.1.0 to get some bug fixes.
> 
> I think all cases will fit into the three choices above.  :-)
> 
> Regards,
> Bill Karwin 
> 
> 


RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Bill Karwin
Yes, the best working practice is to maintain two svn working copies.
One for trunk, and one for the branch (remember to "svn update" in both
trees regularly!)

Here's a recommendation:  I use a tool for comparing two directory
trees, called zsCompare.  It allows me to compare full directories, and
see which files are different.  Then I can open an individual file in
both trees to compare side by side.  Then I can merge lines of code from
one tree to the other on a case-by-case basis.
http://www.zizasoft.com/products/zsCompare/index.shtml

The Lite version costs only US$35 for a single license.  I think it's
perfect for cases like this where you are comparing and merging bits
between two similar trees of files.

I started using zsCompare when I was programming in Java, because the
tool can compare collections of files even inside .zip or .jar archives!
It saved me a lot of time.

Of course other tools exist that can be used in a similar way, but
zsCompare works well for me.

Regards,
Bill Karwin

> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 3:00 PM
> To: Bill Karwin; fw-general@lists.zend.com
> Subject: Re: [fw-general] Re: Lifecycle Handling
> 
> Hy,
> 
> which means that core-contributors have to have two released 
> on their workstations.
> The trunk for new features and the branch for maintenance releases.
> 
> That's what I asked for and noone was able to definitly say yes or no.
> I expect most people would not be very amused if I fix bugs 
> only for 1.1
> (trunk) instead of 1.0.x (branch) ;-)
> 
> Greetings
> Thomas
> I18N Team Leader
> 
> - Original Message -
> From: "Bill Karwin" <[EMAIL PROTECTED]>
> To: 
> Sent: Tuesday, July 17, 2007 11:15 PM
> Subject: RE: [fw-general] Re: Lifecycle Handling
> 
> 
> 
> > -Original Message-
> > From: Thomas Weidner [mailto:[EMAIL PROTECTED]
> >
> > For example Zend_Date
> > I've integrated new features (array access).
> > But when there is a new bug I have to integrate it in trunk
> > (where the new feature resists) and in maintenance.
> > Otherwise the maintenance branch would also have the new
> > feature integrated which is not allowed.
> 
> This means there are a few choices:
> 
> (a) Implement the same bug fix in a different way, to work 
> with the code
> in the branch.  But depending on the nature of the bug, this 
> may be too
> much work.
> 
> (b) Implement the bug fix in both trunk and branch, 
> implemented in a way
> that doesn't rely on the new features.  Sometimes this is 
> possible, but
> sometimes it's not possible or it's too much work.
> 
> (c) Fix the bug in the trunk but don't fix it in the branch.  
> Users must
> wait until 1.1.0 to get some bug fixes.
> 
> I think all cases will fit into the three choices above.  :-)
> 
> Regards,
> Bill Karwin 
> 
> 


Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Thomas Weidner

Hy,

which means that core-contributors have to have two released on their 
workstations.

The trunk for new features and the branch for maintenance releases.

That's what I asked for and noone was able to definitly say yes or no.
I expect most people would not be very amused if I fix bugs only for 1.1 
(trunk) instead of 1.0.x (branch) ;-)


Greetings
Thomas
I18N Team Leader

- Original Message - 
From: "Bill Karwin" <[EMAIL PROTECTED]>

To: 
Sent: Tuesday, July 17, 2007 11:15 PM
Subject: RE: [fw-general] Re: Lifecycle Handling




-Original Message-
From: Thomas Weidner [mailto:[EMAIL PROTECTED]

For example Zend_Date
I've integrated new features (array access).
But when there is a new bug I have to integrate it in trunk
(where the new feature resists) and in maintenance.
Otherwise the maintenance branch would also have the new
feature integrated which is not allowed.


This means there are a few choices:

(a) Implement the same bug fix in a different way, to work with the code
in the branch.  But depending on the nature of the bug, this may be too
much work.

(b) Implement the bug fix in both trunk and branch, implemented in a way
that doesn't rely on the new features.  Sometimes this is possible, but
sometimes it's not possible or it's too much work.

(c) Fix the bug in the trunk but don't fix it in the branch.  Users must
wait until 1.1.0 to get some bug fixes.

I think all cases will fit into the three choices above.  :-)

Regards,
Bill Karwin 



Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Thomas Weidner

Hy,


The reason we asked for commits to the stable branch to be reviewed by
another person (Zend or community) is so that we have another eye on
commits that go into the stable releases. My past experience has been
that sometimes bad fixes or API breaking fixes get commited (by
accident) and I think this could help mitigate the risk.


Yeah...
I just remember the change which gavin made to the Zend_Date API which
broke the complete class where I was nearly in giving up my work for
Zend Framework. And it was a Zender who broke it. ;-)


We intentionally don't limit this to Zenders. We think anyone who is well
versed in the Zend Framework can be another helping eye on the commit.
The person will not always be an expert on your code but might be able
to catch some issues with the commit. Btw, you'd commit to trunk first
so people would have an easy time to see the commit.


I am with you in having things checked by minimum 4 eyes.
But it seems that I am the only one who has questions on the
practical useage for all... ;-)

Better to have this questions answered early than too late ;-)


In your case btw, Alex from our team would be a good person to have
review the commits but anyone is fine.


I know, otherwise I would have cc'ed my mails to another Zend'er ;-))


I know it's a bit of overhead but I think the additional process would
help make sure we release high quality mini releases. Quality is really
one of the key things which should set our project apart.


Definitly...

Just to mention:
Dont only rely on code-quality... also documentation quality should be 
archived.

Many of our contributors are no english natives. We should also think about
having someone looking over documentation parts before they are integrated

Greetings
Thomas
I18N Team Leader 



Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Thomas Weidner

Hy,


And exact here is my personal problem ;-)

I am the main author and only person who codes all the I18N classes.
There is no other contributor. So I must ask Zend to review my code.


There may be no other core contributors for the i18n classes, but  there 
are dozens of contributors to the framework. I monitor the i18n  list as 
I'm sure many others do. if you need a reviewer, I'm sure any  one of us 
would be happy to look at your code.


Would be great...
As always I am of course speaking out loud what others dont want to say 
because they are to shy ;-)



And what about fixes which do not include unit tests ?
For example...
I am not able to write tests for issues which are related to 64bit 
machines only

or for race conditions.


Then how can you be sure that the bug has been fixed? Bug fixing is  where 
unit tests truly shine: before you fix a bug, you write a test  that shows 
the bug exists. Then you fix the bug. In this way, you can  be assured 
that you will never re-introduce the bug because there  will always be a 
test for it.


Speaking of the two mentioned cases:

There was a bug within the gettext adapter which only occur on big endian 
encoding with particular 64bit machines.
On other 64bit machines the problem did not show. The reason is a bug within 
php itself.


How should I code a test, when I am not able to reproduce it ?
And in my opinion the already written tests were broken within these 
machines.
But the people who committed the bugs were not able to run unit tests on 
their machines.


And I know that the bug was fixed because I gave the changed lines to the 
one who had the bug and he said it worked.


The second bug I mentioned could not be reproduced...
Wether by me nor by the one who wrote us the bug.
I only added two exceptions for handling such impossible conditions.
If this conditions arise someone has changed the locale source files and 
this is something I am not able to write a test for.


Speaking of normal bugs, I am of course always writing the unit tests...
If you look at the testbed for Zend_Date you will see that it is the biggest 
of the whole framework.

This is normal coding process...


No I can not...
For example Zend_Date
I've integrated new features (array access).
But when there is a new bug I have to integrate it in
trunk (where the new feature resists) and in maintenance.
Otherwise the maintenance branch would also have the
new feature integrated which is not allowed.


You should simply checkout two working copies, one from the branch,  and 
one from the trunk. This is how I've handled maintenance branches  for 
years.


That's exactly what I expected and asked for, but noone wanted to answer 
this definitly.


Review:

So I need review and integration of the following trunk changes:
5636
5720
5721
I would have to integrate them into the next tag release.
All other changes could be reviewed
5693
5628
5618
5586 - 5613
and are for 1.1.0


Greetings
Thomas
I18N Team Leader 



Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Simon Mundy

Hi All

I've got some small commits for Zend_Mail that should be released  
ASAP, as it affects SMTP - it was revision 5724


Could someone please review these and give me a heads-up on the best  
way to merge into the 1.0.1 branch?


Cheers


Hi Thomas,

My comments are inline below:

Thomas Weidner wrote:

Hy Zend'ers,

I just read through the newly created "lifecycle" description from  
darby.

So now I wanted to add my last changes as the next mini release is
proposed.

I was not able to see the branch 1.0.1... only the old branch 1.0


There is no 1.0.1 branch. The 1.0.1 release will be tagged from the
release-1.0 branch. A 1.0.2 release, though we may not have one before
1.1.0, would also be produced from this branch. When 1.1.0 is
approaching, we'll create a release-1.1 branch, from which 1.1.0,  
1.1.1,
etc. would be tagged. This is illustrated with an image in the  
lifecycle
document. (We _could_ create further release branches, such as for  
1.0.1

and 1.0.2 separately, but such additional complexity is probably not
warranted for this project at this time.)

And I dont want to loose my commit rights as stated in this  
description
for not commiting the changes to the new branch only because the  
branch
is not avaiable ;-) (who has to do the work if the team leader and  
main

author gets suspended ? ;-) )


You aren't likely to lose your commit rights, Thomas, but we have to
reserve the right to revoke committers' privileges should they  
decide to

continually ignore our contribution policies. There will be plenty of
questions, particularly during this initial stage of post-1.0.0
development, and I expect a high degree of leniency as everyone learns
the process together.

If anyone should have trouble with their SVN commit access, please
contact me personally, and I will see to it that such issues are  
resolved.



The next point is that we have first to find a zend member who looks
through the changes before we commit them.


No, in most cases, you can simply have another contributor review your
work. Of course, you can always ask a Zend liaison to review your  
work,

but we have limited bandwidth, and we have to delegate as much of this
work as possible to the community itself. We just want to make sure  
that

unit tests pass and that the changes have been reviewed for potential
risks to stability before they are merged on to a release branch.


Sounds a little bit complicated for bug fixes like the one I made
yesterday. 3 lines added for an not reproducable race condition.
No unit tests and no documentation possible or needed.
It should also be clearified if issues can be closed when they are
commited to trunk, or only after they were commited to branch.


The PHP project is managed in much the same way, actually, where
contributors are required to commit their changes to two places. The
main point of the review requirement is to help maintain the stability
of the release branches.

JIRA issues can be resolved as soon as passing unit tests for the fix
are committed to the trunk, though the issue should be marked as fixed
for the affected versions. (For us right now this means that resolving
an issue in the trunk fixes 1.1.0, and once the changes are merged to
the release branch, it would also fix 1.1.1.)


How about improvements to the documentation ???
I will improve the documentation of the I18N components from time  
to time.

Add new pages to answer often asked questions and so on...
How should we handle this ? Until now we commited them to trunk...
Should they also be reviewed by a Zend member ?


As mentioned in the lifecycle document, no documentation is to be  
merged

to release branches. Documentation improvements will go out with minor
and major releases (e.g., 1.1.0 and 2.0.0, respectively).

Should improvements always be commited to incubator, reviewed and  
then

commited to core ?
Because I normally code all, write documentation and unit tests and  
then

I commit the complete change to trunk.


It depends on the scope of the work and how long you expect the work  
to

take. We don't want you to be stuck holding back committing your
incomplete work. If you write 200 lines of code today, you should  
have a
place to commit it, even if it is not complete. This creates an  
instant

backup and facilitates review before completion.


So as I see it in sum the new workflow from now on is,
to commit all to incubator, let verify through Zend and after all  
say,

your 3 lines of code are ok, commit to trunk.


No, minor and backward compatible changes may be made directly to the
trunk, but they should be accompanied by passing unit tests to confirm
the desired behavior from the changes.


Also I will have to have two working copies in my eclipse...
One for the trunk and one for the actual maintenance branch or is  
there

a better way to handle this within eclipse ?


I don't know about eclipse specifically, but you can switch a single
working copy between two branches. Again, t

RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andi Gutmans
Btw, as Darby mentioned in his initial email, we are very open to
feedback re: the lifecycle document. This is our stab at putting
something out there which we think will not be too hard but will also
enable high-quality. Any suggestions for tweaks/changes should
definitely be voiced. We'll definitely need to strike a balance here
(which we tried to do). 

Andi

> -Original Message-
> From: Andi Gutmans [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 2:08 PM
> To: Thomas Weidner; Darby Felton
> Cc: fw-general@lists.zend.com; Alexander Veremyev
> Subject: RE: [fw-general] Re: Lifecycle Handling
> 
> Hi Thomas,
> 
> The reason we asked for commits to the stable branch to be 
> reviewed by another person (Zend or community) is so that we 
> have another eye on commits that go into the stable releases. 
> My past experience has been that sometimes bad fixes or API 
> breaking fixes get commited (by
> accident) and I think this could help mitigate the risk. We 
> intentionally don't limit this to Zenders. We think anyone 
> who is well versed in the Zend Framework can be another 
> helping eye on the commit.
> The person will not always be an expert on your code but 
> might be able to catch some issues with the commit. Btw, 
> you'd commit to trunk first so people would have an easy time 
> to see the commit.
> In your case btw, Alex from our team would be a good person 
> to have review the commits but anyone is fine.
> 
> I know it's a bit of overhead but I think the additional 
> process would help make sure we release high quality mini 
> releases. Quality is really one of the key things which 
> should set our project apart.
> 
> Andi
> 
> > -Original Message-
> > From: Thomas Weidner [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, July 17, 2007 1:31 PM
> > To: Darby Felton
> > Cc: fw-general@lists.zend.com; Alexander Veremyev
> > Subject: [fw-general] Re: Lifecycle Handling
> > 
> > Hy Darby,
> > 
> > >> I was not able to see the branch 1.0.1... only the old branch 1.0
> > >
> > > There is no 1.0.1 branch. The 1.0.1 release will be 
> tagged from the 
> > > release-1.0 branch. A 1.0.2 release, though we may not have
> > one before
> > > 1.1.0, would also be produced from this branch. When 1.1.0 is 
> > > approaching, we'll create a release-1.1 branch, from which 1.1.0, 
> > > 1.1.1, etc. would be tagged. This is illustrated with an
> > image in the
> > > lifecycle document. (We _could_ create further release
> > branches, such
> > > as for 1.0.1 and 1.0.2 separately, but such additional
> > complexity is
> > > probably not warranted for this project at this time.)
> > 
> > So we should always use the Zend Branch 1.0 when committing 
> as long as 
> > its for fixing bugs.
> > Right ? But only if it has been reviewed by someone.
> > 
> > >> The next point is that we have first to find a zend member
> > who looks
> > >> through the changes before we commit them.
> > >
> > > No, in most cases, you can simply have another contributor
> > review your
> > > work. Of course, you can always ask a Zend liaison to review your 
> > > work, but we have limited bandwidth, and we have to
> > delegate as much
> > > of this work as possible to the community itself. We just
> > want to make
> > > sure that unit tests pass and that the changes have been
> > reviewed for
> > > potential risks to stability before they are merged on to a
> > release branch.
> > 
> > And exact here is my personal problem ;-)
> > 
> > I am the main author and only person who codes all the I18N classes.
> > There is no other contributor. So I must ask Zend to review my code.
> > 
> > > JIRA issues can be resolved as soon as passing unit tests
> > for the fix
> > > are committed to the trunk, though the issue should be
> > marked as fixed
> > > for the affected versions. (For us right now this means
> > that resolving
> > > an issue in the trunk fixes 1.1.0, and once the changes are
> > merged to
> > > the release branch, it would also fix 1.1.1.)
> > 
> > And what about fixes which do not include unit tests ?
> > For example...
> > I am not able to write tests for issues which are related to 64bit 
> > machines only or for race conditions.
> > 
> > >> Should they also be reviewed by a Zend member ?
> > >
> > > As mentioned in the lifecycle document, no documentation is to be 
> > > merged to release 

RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Bill Karwin
 
> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
>
> For example Zend_Date
> I've integrated new features (array access).
> But when there is a new bug I have to integrate it in trunk 
> (where the new feature resists) and in maintenance.
> Otherwise the maintenance branch would also have the new 
> feature integrated which is not allowed.

This means there are a few choices:

(a) Implement the same bug fix in a different way, to work with the code
in the branch.  But depending on the nature of the bug, this may be too
much work.

(b) Implement the bug fix in both trunk and branch, implemented in a way
that doesn't rely on the new features.  Sometimes this is possible, but
sometimes it's not possible or it's too much work.

(c) Fix the bug in the trunk but don't fix it in the branch.  Users must
wait until 1.1.0 to get some bug fixes.

I think all cases will fit into the three choices above.  :-)

Regards,
Bill Karwin


RE: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Andi Gutmans
Hi Thomas,

The reason we asked for commits to the stable branch to be reviewed by
another person (Zend or community) is so that we have another eye on
commits that go into the stable releases. My past experience has been
that sometimes bad fixes or API breaking fixes get commited (by
accident) and I think this could help mitigate the risk. We
intentionally don't limit this to Zenders. We think anyone who is well
versed in the Zend Framework can be another helping eye on the commit.
The person will not always be an expert on your code but might be able
to catch some issues with the commit. Btw, you'd commit to trunk first
so people would have an easy time to see the commit.
In your case btw, Alex from our team would be a good person to have
review the commits but anyone is fine.

I know it's a bit of overhead but I think the additional process would
help make sure we release high quality mini releases. Quality is really
one of the key things which should set our project apart.

Andi

> -Original Message-
> From: Thomas Weidner [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 17, 2007 1:31 PM
> To: Darby Felton
> Cc: fw-general@lists.zend.com; Alexander Veremyev
> Subject: [fw-general] Re: Lifecycle Handling
> 
> Hy Darby,
> 
> >> I was not able to see the branch 1.0.1... only the old branch 1.0
> >
> > There is no 1.0.1 branch. The 1.0.1 release will be tagged from the 
> > release-1.0 branch. A 1.0.2 release, though we may not have 
> one before 
> > 1.1.0, would also be produced from this branch. When 1.1.0 is 
> > approaching, we'll create a release-1.1 branch, from which 1.1.0, 
> > 1.1.1, etc. would be tagged. This is illustrated with an 
> image in the 
> > lifecycle document. (We _could_ create further release 
> branches, such 
> > as for 1.0.1 and 1.0.2 separately, but such additional 
> complexity is 
> > probably not warranted for this project at this time.)
> 
> So we should always use the Zend Branch 1.0 when committing 
> as long as its for fixing bugs.
> Right ? But only if it has been reviewed by someone.
> 
> >> The next point is that we have first to find a zend member 
> who looks 
> >> through the changes before we commit them.
> >
> > No, in most cases, you can simply have another contributor 
> review your 
> > work. Of course, you can always ask a Zend liaison to review your 
> > work, but we have limited bandwidth, and we have to 
> delegate as much 
> > of this work as possible to the community itself. We just 
> want to make 
> > sure that unit tests pass and that the changes have been 
> reviewed for 
> > potential risks to stability before they are merged on to a 
> release branch.
> 
> And exact here is my personal problem ;-)
> 
> I am the main author and only person who codes all the I18N classes.
> There is no other contributor. So I must ask Zend to review my code.
> 
> > JIRA issues can be resolved as soon as passing unit tests 
> for the fix 
> > are committed to the trunk, though the issue should be 
> marked as fixed 
> > for the affected versions. (For us right now this means 
> that resolving 
> > an issue in the trunk fixes 1.1.0, and once the changes are 
> merged to 
> > the release branch, it would also fix 1.1.1.)
> 
> And what about fixes which do not include unit tests ?
> For example...
> I am not able to write tests for issues which are related to 
> 64bit machines only or for race conditions.
> 
> >> Should they also be reviewed by a Zend member ?
> >
> > As mentioned in the lifecycle document, no documentation is to be 
> > merged to release branches. Documentation improvements will go out 
> > with minor and major releases (e.g., 1.1.0 and 2.0.0, respectively).
> 
> But should new documentation be reviewed by Zend ???
> 
> > It depends on the scope of the work and how long you expect 
> the work 
> > to take. We don't want you to be stuck holding back committing your 
> > incomplete work. If you write 200 lines of code today, you 
> should have 
> > a place to commit it, even if it is not complete. This creates an 
> > instant backup and facilitates review before completion.
> 
> When I integrate new features to a class I can not committ 
> only parts
> This would brake the existing class in the trunk or incubator.
> And I dont want to get flamed for things which I know not to 
> work for now.
> 
> Coding a new class for example is no problem...
> but changing existing classes is a problematic thing.
> The other thing is that I can  not code every day...
> often I have several days where no progress is done.
> 
> I think noone would b

Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Willie Alberty

On Jul 17, 2007, at 1:31 PM, Thomas Weidner wrote:


The next point is that we have first to find a zend member who looks
through the changes before we commit them.


No, in most cases, you can simply have another contributor review  
your

work...


And exact here is my personal problem ;-)

I am the main author and only person who codes all the I18N classes.
There is no other contributor. So I must ask Zend to review my code.


There may be no other core contributors for the i18n classes, but  
there are dozens of contributors to the framework. I monitor the i18n  
list as I'm sure many others do. if you need a reviewer, I'm sure any  
one of us would be happy to look at your code.



JIRA issues can be resolved as soon as passing unit tests for the fix
are committed to the trunk,..


And what about fixes which do not include unit tests ?
For example...
I am not able to write tests for issues which are related to 64bit  
machines only

or for race conditions.


Then how can you be sure that the bug has been fixed? Bug fixing is  
where unit tests truly shine: before you fix a bug, you write a test  
that shows the bug exists. Then you fix the bug. In this way, you can  
be assured that you will never re-introduce the bug because there  
will always be a test for it.



I don't know about eclipse specifically, but you can switch a single
working copy between two branches. Again, this is documented in the
lifecycle document; perhaps some elaboration is needed to make it  
more

clear? To strike a balance, we also do not want to be overwhelmingly
verbose, but where clarifications can be made, all the better. :)


No I can not...
For example Zend_Date
I've integrated new features (array access).
But when there is a new bug I have to integrate it in
trunk (where the new feature resists) and in maintenance.
Otherwise the maintenance branch would also have the
new feature integrated which is not allowed.


You should simply checkout two working copies, one from the branch,  
and one from the trunk. This is how I've handled maintenance branches  
for years.


--

Willie Alberty, Owner
Spenlen Media
[EMAIL PROTECTED]

http://www.spenlen.com/



[fw-general] Re: Lifecycle Handling

2007-07-17 Thread Thomas Weidner

Hy Darby,


I was not able to see the branch 1.0.1... only the old branch 1.0


There is no 1.0.1 branch. The 1.0.1 release will be tagged from the
release-1.0 branch. A 1.0.2 release, though we may not have one before
1.1.0, would also be produced from this branch. When 1.1.0 is
approaching, we'll create a release-1.1 branch, from which 1.1.0, 1.1.1,
etc. would be tagged. This is illustrated with an image in the lifecycle
document. (We _could_ create further release branches, such as for 1.0.1
and 1.0.2 separately, but such additional complexity is probably not
warranted for this project at this time.)


So we should always use the Zend Branch 1.0 when committing as long as its 
for fixing bugs.

Right ? But only if it has been reviewed by someone.


The next point is that we have first to find a zend member who looks
through the changes before we commit them.


No, in most cases, you can simply have another contributor review your
work. Of course, you can always ask a Zend liaison to review your work,
but we have limited bandwidth, and we have to delegate as much of this
work as possible to the community itself. We just want to make sure that
unit tests pass and that the changes have been reviewed for potential
risks to stability before they are merged on to a release branch.


And exact here is my personal problem ;-)

I am the main author and only person who codes all the I18N classes.
There is no other contributor. So I must ask Zend to review my code.


JIRA issues can be resolved as soon as passing unit tests for the fix
are committed to the trunk, though the issue should be marked as fixed
for the affected versions. (For us right now this means that resolving
an issue in the trunk fixes 1.1.0, and once the changes are merged to
the release branch, it would also fix 1.1.1.)


And what about fixes which do not include unit tests ?
For example...
I am not able to write tests for issues which are related to 64bit machines 
only

or for race conditions.


Should they also be reviewed by a Zend member ?


As mentioned in the lifecycle document, no documentation is to be merged
to release branches. Documentation improvements will go out with minor
and major releases (e.g., 1.1.0 and 2.0.0, respectively).


But should new documentation be reviewed by Zend ???


It depends on the scope of the work and how long you expect the work to
take. We don't want you to be stuck holding back committing your
incomplete work. If you write 200 lines of code today, you should have a
place to commit it, even if it is not complete. This creates an instant
backup and facilitates review before completion.


When I integrate new features to a class I can not committ only parts
This would brake the existing class in the trunk or incubator.
And I dont want to get flamed for things which I know not to work for now.

Coding a new class for example is no problem...
but changing existing classes is a problematic thing.
The other thing is that I can  not code every day...
often I have several days where no progress is done.

I think noone would be happy if I for example integrate the new 
SQL-translate

adapter but the base class work not anymore in incubator because I commited
to early.


I don't know about eclipse specifically, but you can switch a single
working copy between two branches. Again, this is documented in the
lifecycle document; perhaps some elaboration is needed to make it more
clear? To strike a balance, we also do not want to be overwhelmingly
verbose, but where clarifications can be made, all the better. :)


No I can not...
For example Zend_Date
I've integrated new features (array access).
But when there is a new bug I have to integrate it in
trunk (where the new feature resists) and in maintenance.
Otherwise the maintenance branch would also have the
new feature integrated which is not allowed.

As in maintenance no new features are being integrated
this is the only possible way as I see it.

Ok...
So who can review my changes since the last release ?
I've made several changes and bug fixes which should be integrated.

Greetings
Thomas
I18N Team Leader 



Re: [fw-general] Re: Lifecycle Handling

2007-07-17 Thread Darby Felton
Darby Felton wrote:
> Thomas Weidner wrote:
> JIRA issues can be resolved as soon as passing unit tests for the fix
> are committed to the trunk, though the issue should be marked as fixed
> for the affected versions. (For us right now this means that resolving
> an issue in the trunk fixes 1.1.0, and once the changes are merged to
> the release branch, it would also fix 1.1.1.)

Oops - here 1.1.1 should be 1.0.1 instead. :)




[fw-general] Re: Lifecycle Handling

2007-07-17 Thread Darby Felton
Hi Thomas,

My comments are inline below:

Thomas Weidner wrote:
> Hy Zend'ers,
> 
> I just read through the newly created "lifecycle" description from darby.
> So now I wanted to add my last changes as the next mini release is
> proposed.
> 
> I was not able to see the branch 1.0.1... only the old branch 1.0

There is no 1.0.1 branch. The 1.0.1 release will be tagged from the
release-1.0 branch. A 1.0.2 release, though we may not have one before
1.1.0, would also be produced from this branch. When 1.1.0 is
approaching, we'll create a release-1.1 branch, from which 1.1.0, 1.1.1,
etc. would be tagged. This is illustrated with an image in the lifecycle
document. (We _could_ create further release branches, such as for 1.0.1
and 1.0.2 separately, but such additional complexity is probably not
warranted for this project at this time.)

> And I dont want to loose my commit rights as stated in this description
> for not commiting the changes to the new branch only because the branch
> is not avaiable ;-) (who has to do the work if the team leader and main
> author gets suspended ? ;-) )

You aren't likely to lose your commit rights, Thomas, but we have to
reserve the right to revoke committers' privileges should they decide to
continually ignore our contribution policies. There will be plenty of
questions, particularly during this initial stage of post-1.0.0
development, and I expect a high degree of leniency as everyone learns
the process together.

If anyone should have trouble with their SVN commit access, please
contact me personally, and I will see to it that such issues are resolved.

> The next point is that we have first to find a zend member who looks
> through the changes before we commit them.

No, in most cases, you can simply have another contributor review your
work. Of course, you can always ask a Zend liaison to review your work,
but we have limited bandwidth, and we have to delegate as much of this
work as possible to the community itself. We just want to make sure that
unit tests pass and that the changes have been reviewed for potential
risks to stability before they are merged on to a release branch.

> Sounds a little bit complicated for bug fixes like the one I made
> yesterday. 3 lines added for an not reproducable race condition.
> No unit tests and no documentation possible or needed.
> It should also be clearified if issues can be closed when they are
> commited to trunk, or only after they were commited to branch.

The PHP project is managed in much the same way, actually, where
contributors are required to commit their changes to two places. The
main point of the review requirement is to help maintain the stability
of the release branches.

JIRA issues can be resolved as soon as passing unit tests for the fix
are committed to the trunk, though the issue should be marked as fixed
for the affected versions. (For us right now this means that resolving
an issue in the trunk fixes 1.1.0, and once the changes are merged to
the release branch, it would also fix 1.1.1.)

> How about improvements to the documentation ???
> I will improve the documentation of the I18N components from time to time.
> Add new pages to answer often asked questions and so on...
> How should we handle this ? Until now we commited them to trunk...
> Should they also be reviewed by a Zend member ?

As mentioned in the lifecycle document, no documentation is to be merged
to release branches. Documentation improvements will go out with minor
and major releases (e.g., 1.1.0 and 2.0.0, respectively).

> Should improvements always be commited to incubator, reviewed and then
> commited to core ?
> Because I normally code all, write documentation and unit tests and then
> I commit the complete change to trunk.

It depends on the scope of the work and how long you expect the work to
take. We don't want you to be stuck holding back committing your
incomplete work. If you write 200 lines of code today, you should have a
place to commit it, even if it is not complete. This creates an instant
backup and facilitates review before completion.

> So as I see it in sum the new workflow from now on is,
> to commit all to incubator, let verify through Zend and after all say,
> your 3 lines of code are ok, commit to trunk.

No, minor and backward compatible changes may be made directly to the
trunk, but they should be accompanied by passing unit tests to confirm
the desired behavior from the changes.

> Also I will have to have two working copies in my eclipse...
> One for the trunk and one for the actual maintenance branch or is there
> a better way to handle this within eclipse ?

I don't know about eclipse specifically, but you can switch a single
working copy between two branches. Again, this is documented in the
lifecycle document; perhaps some elaboration is needed to make it more
clear? To strike a balance, we also do not want to be overwhelmingly
verbose, but where clarifications can be made, all the better. :)

Thanks for these