Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Paul J. Reder
Bojan Smojver wrote:


Quoting Glenn <[EMAIL PROTECTED]>:



-0.5  to using odd for stable, and even for development

The model of parallel stable and development branches is similar to
numerous other projects, including the Linux kernel and Perl, except that
the meaning of the sub-version numbers is **reversed** in Bill's proposal.
While I am not saying we should copy the Linux and Perl versioning "just
because", I am suggesting that it is counter-intuitive and confusing to
end-users (and suits!) who are familiar with them.  Therefore, I would
like to see X.even == stable and X.odd == development.



To me, as an Apache user (and would-be developer), this makes sense. Why not tag
the current CVS head as 2.1.0 (unstable) and then work towards a stable 2.2?
This would achieve two goals within the user/developer community:

- show them that the versioning system changed and give them time to get used to
it by spreading the word

- let them now that the time to break the API is now, if they want the change to
appear in the next stable release

- look forward (positively) to the next "stable stable" release, which will even
guarantee a great deal of binary compatibility

- make significant psychological impact with 2.2 as compared to 2.0, which would
convey the meaning of "stable stable" release more convincingly

- let them know that the moment 2.2 has settled, the new development branch will
be created (2.3)



Okay, I finally caught up on all this. Here's my 2 cents worth...


I am *very* much in favor of providing a stable location to make 3rd party
developers and end users comfortable while providing a parallel dev location for
the new and possibly unstable work to be happening.

With a small amount of cleanup/polish, I think the ROADMAP looks great. We can

hash out the details over the next days/weeks.

I also agree with Bojan above, but would like to offer one added twist...

there is some question about odd=stable vs. even=stable. I would submit that we
go with the following:
X.0.y = wild, wooly, no-holds-barred, pie-in-the-sky, dreamland. Feel free
to completely redesign the world, introduce new models, change the
whole way internals work, whatever...

Then, when the dust starts to settle and the wild becomes more mild...

X.1.y = Becomes the first serious development stream. We have a direction,
a solid base to build from, and a certain level of stability for
developers to trust. Things can change (including APIs and MMN), but
there are some limits (i.e. 2.1 would not decide to use another
portability layer...)

From that point on X.odd.y=dev, X.even.y=stable and follows the rules of
the ROADMAP...

X.0.y is always special because it signifies a dramatic shift in concepts for
a product. Handling X.0.y in the way described above officially recognizes why
most people are leary of X.0.y releases. It gives folks the opportunity to have
total freedom of design. Then, once there has been a proof of concept, the
prototype is working well, and there is a clear direction, we move it into an
official X.1.y development stream. In *theory* we could start a new X+1.0.y
stream as soom as we create a X.1.y stream.

In essence, this is how 2.0 came about. Several different sandboxes existed. Once
things settled down and we decided on Apache+APR, that became the development path.
The difference is, according to my comments above, we should have moved to 2.1
when 2.0 became an acceptable and stable proof of concept with a clear direction.
Our first GA would have resulted in creation of 2.2-stable and 2.3-dev.

Anyway, the long and short of it is, I like the parallel streams, I like the

rules setup in the ROADMAP, I like odd=dev and even=stable, and I like officially
recognizing the wild, unstable, and fun nature of X.0.y.



--
Paul J. Reder
---
"The strength of the Constitution lies entirely in the determination of each
citizen to defend it.  Only if every single citizen feels duty bound to do
his share in this defense are the constitutional rights secure."
-- Albert Einstein





RE: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread William A. Rowe, Jr.
At 12:32 PM 10/17/2002, Bill Stoddard wrote:

>> One way to summarize this would be: upgrading from a stable release to 
>> the next minor number should be painless:
>> config.nice
>> make
>> make install
>> apachectl restart
>> 
>> That implies:
>> - No non-backwards compatible config changes (runtime or compile-time)
>> - No removing modules ("deprecating" is fine; that means "to discourage 
>> use of", not "to remove")
>> - No MMN changes
>> 
>> These rules shouldn't be set in stone: if a security fix or other 
>> crucial bug fix requires a MMN change, then so be it.  These should just 
>> be guidelines.
>> 
>> Joshua.
>> 
>
>+1 on all of Joshua's comments.

+1 here, too.  Joshua, care to encapsulate this thought in ROADMAP?

One bit concerns me, we cannot state that "we will break MMN compat
between security fixes" and "modules are always forward compatible
within a version (e.g. 2.1).

So we have two options;

 *) make the bar for breaking the MMN very, very high.  I really have never
seen where an MMN *must* have been bumped for a security fix.  However,
I agree it could happen.
 *) upon such a (very rare) change, do we release the next 2.odd/2.even pair?

The odds are so unlikely I'd suggest we can go with #2.  Even the big changes
for Win32 shellcode/PATH_INFO argument fixes were an internal API change,
not external, and that's the biggest security reorg I've seen in a long time.

Bill




RE: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Bill Stoddard

> 
> >
> >
> > STABLE RELEASES, 2.{odd}.{revision}
> > 
> > All even numbered releases will be considered stable revisions.  That 
> > means;
> 
> 
> One way to summarize this would be: upgrading from a stable release to 
> the next minor number should be painless:
> config.nice
> make
> make install
> apachectl restart
> 
> That implies:
> - No non-backwards compatible config changes (runtime or compile-time)
> - No removing modules ("deprecating" is fine; that means "to discourage 
> use of", not "to remove")
> - No MMN changes
> 
> These rules shouldn't be set in stone: if a security fix or other 
> crucial bug fix requires a MMN change, then so be it.  These should just 
> be guidelines.
> 
> Joshua.
> 

+1 on all of Joshua's comments.

Bill



Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Jeff Trawick
"William A. Rowe, Jr." <[EMAIL PROTECTED]> writes:

> APACHE 2.x ROADMAP
> ==
> Last modified at [$Date: 2002/10/01 19:13:06 $]

In general I think this is very positive and sends the right message
to the user community...  I separated any significant concerns into a
previous post :)  I'm staying out of the version number issue, so this
isn't an endorsement or a complaint about your numering choice.

As far as modules in the experimental directory: I for one would want
mod_ext_filter in stable ASAP; a number of people seem to rely on it.

My hope is that we don't allow a development to go for years before it
becomes stable; otherwise, there is more pressure to move features or
extensive fixes to the existing stable tree, which means more churn,
more potential breakage, and more work required to maintain it.  We'll
need to move to a new stable release (2.2?) in no more than 9 months.
We shouldn't postpone moving up to APR 1.x any longer than that.

Of course, bleeding edge development has to be allowed to proceed to
without screwing up the timeline for stuff like moving to APR 1.x or
the auth rework or whatever.

-- 
Jeff Trawick | [EMAIL PROTECTED]
Born in Roswell... married an alien...



RE: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Bill Stoddard
Justin, I think this answers most of your questions?

Comments:
* +1, this is an extremely good start to drafting the rules for working on
stable releases. I could quibble with a point or two but this captures the
spirit nicely.

* Activity in the stable release would be limited to security and high
impact bug fixes and perhaps the occasional new function.  Effort to
maintain the stable release should be minimal.  This give us freedom to
continue to work on the 2.* development code base while providing users and
third party module developers some incentive to invest in the 2.0 codebase.

* Consider using the Linux versioning system... stable release is 2.x where
x >0 and x == even. Developmemt release is 2.x where x is odd.

Bill

> APACHE 2.x ROADMAP
> ==
> Last modified at [$Date: 2002/10/01 19:13:06 $]
>
>
> INTRODUCTION
> 
> The Apache HTTP Server project must balance two competing and disjoint
> objectives; maintain stable code for third party authors, distributors and
> most importantly users so that bug and security fixes can be
> quickly adopted
> without significant hardship due to API changes; and continue the
> development
> process that requires ongoing redesign to work around earlier
> oversights in
> the implementation of a fluid and flexible API.
>
> The Apache HTTP Server versions, through 2.0, used the Module Magic Number
> to reflect the relatively frequent API changes.  This had the shortcoming
> of often leaving binary download users hunting to replace their
> loaded third
> party modules.  This left the third party module authors searching through
> the API change histories to determine the new declarations, APIs and side
> effects of making the necessary code changes.
>
> With the simultaneous release of Apache 2.1-stable and Apache
> 2.2-development,
> the Apache HTTP Server project is moving to a more predictable stable code
> branch, while opening the development to forward progress without concern
> for breaking the stable branch.  This document explains the
> rational between
> the two versions and their behavior, going forward.
>
>
> STABLE RELEASES, 2.{odd}.{revision}
> 
> All even numbered releases will be considered stable revisions.
> That means;
>
>   * Forward Compatibility; users are not be required to find new
> downloads of
> currently loaded modules to upgrade from another revisions of
> the same
> version.  To upgrade from 2.1.0 and 2.1.27 will require no
> new modules.
> However, the third party modules may break from buggy code,
> or code that
> used an undocumented side effect of an API call, which may be
> changed to
> close bugs or security vulnerabilities.  Modules should be retested.
> Moreover, new APIs may be introduced within the lifespan of
> the release,
> and it is up to the third party module author to call out what version
> forward this module is compatible with (e.g. "Compatible with Apache
> HTTP Server version 2.1.12 and foward.")  The next stable
> release that
> causes module incompatibility for 2.1.x users will be an upgrade to
> either the current 2.2.x-development releases or the
> 2.3.0-stable release.
>
>   * No Deprecated modules; although new modules may be introduced
> within the
> stable release, no loadable modules or their directives will
> be removed
> within the lifetime of a given stable release version.  The
> next release
> that deprecates old modules for 2.1.x users will be an
> upgrade to either
> the 2.2.x-development release or the 2.3.0-stable release.
>
>   * Warnings should be provided in the documentation to give
> users a heads up
> that a given module or directive will disappear in the future release,
> and advise developers that a given API will change.  However,
> it is always
> best to check the corresponding development release to
> determine the full
> impact of such changes.
>
>   * No 'Experimental' modules; while it may be possible (based on
> API changes
> required to support a given module) to load a 2.2-development
> module into
> a 2.1-stable build of Apache, there are no guarantees.  Experimental
> modules will be introduced to the 2.2-development versions and either
> added to 2.1-stable once they are proven and compatible, or deferred
> to the 2.3-stable release if they cannot be incorporated in
> the current
> stable release due to API change requirements.
>
>   * The stable CVS tree must not remain unstable at any time.
> Atomic commits
> must be used to introduce code from the development version
> to the stable
> tree.  At any given time a security release may be in preparation,
> unbeknownst to other contributors.  At any given time, testers may be
> checking out CVS head to confirm that a bug has been
> corrected.  And as
> all code was well-tested in development prior to committing
> to the stable
> tree, there is r

Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread William A. Rowe, Jr.
At 12:03 PM 10/17/2002, Jeff Trawick wrote:
>"William A. Rowe, Jr." <[EMAIL PROTECTED]> writes:
>
>> BINARY PACKAGES
>> ---
>> All emphasis will be focused on providing binary packages of stable release
>> versions.  While they are a volunteer effort, and the project makes them
>> available only as a convenience and not on demand, the project will frown 
>> on contributors providing development release binary packages when there 
>> are no available binary packages available for the current stable release 
>> for the platform in question.
>
>if I volunteer to provide a binbuild for a development release for a
>certain platform and don't volunteer to provide a binbuild for a
>stable release, anybody who frowns can kiss my ass

:-)  I'd be happy to delete that paragraph.  Remember tho... it's only the
project who looks bad, not you :-)

Agreed, this section can get lost for a while until someone wants to
take it up.  Deleted.

Bill




Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Joshua Slive
William A. Rowe, Jr. wrote:




STABLE RELEASES, 2.{odd}.{revision}

All even numbered releases will be considered stable revisions.  That 
means;


One way to summarize this would be: upgrading from a stable release to 
the next minor number should be painless:
config.nice
make
make install
apachectl restart

That implies:
- No non-backwards compatible config changes (runtime or compile-time)
- No removing modules ("deprecating" is fine; that means "to discourage 
use of", not "to remove")
- No MMN changes

These rules shouldn't be set in stone: if a security fix or other 
crucial bug fix requires a MMN change, then so be it.  These should just 
be guidelines.

Joshua.



Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Scott Hess
On Thu, 17 Oct 2002, William A. Rowe, Jr. wrote:
> With the simultaneous release of Apache 2.1-stable and Apache
> 2.2-development, the Apache HTTP Server project is moving to a more
> predictable stable code branch, while opening the development to forward
> progress without concern for breaking the stable branch.  This document
> explains the rational between the two versions and their behavior, going
> forward.

This is great.  I'm our "Apache guy", and 2.0 has been a non-starter.  I
can fairly easily keep up with the 1.3 changes, because it doesn't involve
revision to our codebase, so we get the best of both worlds.  What I think
this arrangement would allow me to do is make local adjustments to our 2.1
codebase, and if they prove out in production, I can repackage them as a
patch to 2.2.  Right now, the likelihood that I'll contribute to the most
current development tree is nil, because it's just too different from
where most of my work is done.

Excellent,
scott




Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread William A. Rowe, Jr.
At 05:47 PM 10/17/2002, Andrew Ho wrote:
>I personally think maintaining stable/dev branches is a fine idea. I like
>the x.0 rationale for keeping even numbered versions development, and it
>also fits with Apache 1.3.x... but I also think it could be confusing if
>many other open source projects use odd numbered versions for development
>and Apache is the exception. And while I'm not by any means a core Apache
>developer I agree it seems a little premature to vote on this change right
>this instant.

The ROADMAP is progressing, but that doesn't mean it will ever be adopted.
Obviously everyone doesn't have cycles right now, or wants to see what
direction folks are trying to take this.

It needs some discussion.  The critical juncture comes up when someone
wants to pull a release.  Since that is a few weeks off, I don't think we will
jump to premature judgement, but make sure that everyone is heard over
the next week or few.

Bill




Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Jeff Trawick
"William A. Rowe, Jr." <[EMAIL PROTECTED]> writes:

> BINARY PACKAGES
> ---
> All emphasis will be focused on providing binary packages of stable release
> versions.  While they are a volunteer effort, and the project makes them
> available only as a convenience and not on demand, the project will frown 
> on contributors providing development release binary packages when there 
> are no available binary packages available for the current stable release 
> for the platform in question.

if I volunteer to provide a binbuild for a development release for a
certain platform and don't volunteer to provide a binbuild for a
stable release, anybody who frowns can kiss my ass

best wishes,
-- 
Jeff Trawick | [EMAIL PROTECTED]
Born in Roswell... married an alien...



Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread William A. Rowe, Jr.
At 11:34 AM 10/17/2002, Jeff Stuart wrote:
>On Thu, 2002-10-17 at 12:10, William A. Rowe, Jr. wrote:
>> APACHE 2.x ROADMAP
>> ==
>> Last modified at [$Date: 2002/10/01 19:13:06 $]
>[...rest of the roadmap deleted...]
>
>If I may make 3 suggestions.
>
>1) If we want to match the kernel/perl versioning system, then make 2.2
>the stable version and make 2.3 the devel version and just SKIP 2.1. :) 

Nope... for this reason.  2.0 was never 'stable' by this new definition.  So we
can consider that 2.0 was a development branch for it's entire life.  Not that
it was bad code, but we changed things many times.  Now 2.1 we state that
the odds never change.  Actually matches 1.3 well (it no longer changes and
hasn't since 1.3.14.  Talk about a great track record :-)

This is not linux/perl, in that we don't have the same even/odds.  But it's
pretty nice that when we start 3.0, it too will be development, and when we
are ready, we fall nicely into the 3.1/3.2 pattern all over again.

>2) THROW CVS out and switch over to using Subversion as the SCM for
>Apache.  Tags/branches are EASY to do! :)  Besides, it USES apache 2.0
>for the remote repository access.  What better way to promote both
>programs? :)

That's a seperate topic :-)  But a good point.  Are we anywhere near ready?
If we debate this, please pull out this point as subject: "SVN already?"

>3) Possibly add in the roadmap something about using -pr and -rc
>versions for testing before release.  Especially on the stable branches.

Absolutely.  I sort of called that out by suggesting the _worktag (for use
by everyone,) then the_RC# (only to be tweaked by the RM.)

I could say more, but do you want to offer an edit instead?

Bill




Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Jeff Stuart
On Thu, 2002-10-17 at 12:48, William A. Rowe, Jr. wrote:
> At 11:34 AM 10/17/2002, Jeff Stuart wrote:
> >On Thu, 2002-10-17 at 12:10, William A. Rowe, Jr. wrote:
> >> APACHE 2.x ROADMAP
> >> ==
> >> Last modified at [$Date: 2002/10/01 19:13:06 $]
> >[...rest of the roadmap deleted...]
> >
> >If I may make 3 suggestions.
> >
> >1) If we want to match the kernel/perl versioning system, then make 2.2
> >the stable version and make 2.3 the devel version and just SKIP 2.1. :) 
> 
> Nope... for this reason.  2.0 was never 'stable' by this new definition.  So we
> can consider that 2.0 was a development branch for it's entire life.  Not that
> it was bad code, but we changed things many times.  Now 2.1 we state that
> the odds never change.  Actually matches 1.3 well (it no longer changes and
> hasn't since 1.3.14.  Talk about a great track record :-)
> 
> This is not linux/perl, in that we don't have the same even/odds.  But it's
> pretty nice that when we start 3.0, it too will be development, and when we
> are ready, we fall nicely into the 3.1/3.2 pattern all over again.
> 
> >2) THROW CVS out and switch over to using Subversion as the SCM for
> >Apache.  Tags/branches are EASY to do! :)  Besides, it USES apache 2.0
> >for the remote repository access.  What better way to promote both
> >programs? :)
> 
> That's a seperate topic :-)  But a good point.  Are we anywhere near ready?
> If we debate this, please pull out this point as subject: "SVN already?"
> 
> >3) Possibly add in the roadmap something about using -pr and -rc
> >versions for testing before release.  Especially on the stable branches.
> 
> Absolutely.  I sort of called that out by suggesting the _worktag (for use
> by everyone,) then the_RC# (only to be tweaked by the RM.)
> 
> I could say more, but do you want to offer an edit instead?
> 
> Bill

Well... Umm... It's not needed. LOL... 

#1 wasn't all that "important" to me.  It was "if we want to follow..."
type thing. :)  
#2 of course is as you point out a seperate discussion.  
#3 Hmm... I'm not sure if that even belongs in the roadmap now that I
think about it.  That's more just the guidelines for the RM.  More I
think about it... that's a guideline/suggestion for the RM.

-- 
Jeff Stuart <[EMAIL PROTECTED]>



signature.asc
Description: This is a digitally signed message part


Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Jeff Stuart
On Thu, 2002-10-17 at 12:10, William A. Rowe, Jr. wrote:
> APACHE 2.x ROADMAP
> ==
> Last modified at [$Date: 2002/10/01 19:13:06 $]
[...rest of the roadmap deleted...]

If I may make 3 suggestions.

1) If we want to match the kernel/perl versioning system, then make 2.2
the stable version and make 2.3 the devel version and just SKIP 2.1. :) 

2) THROW CVS out and switch over to using Subversion as the SCM for
Apache.  Tags/branches are EASY to do! :)  Besides, it USES apache 2.0
for the remote repository access.  What better way to promote both
programs? :)

3) Possibly add in the roadmap something about using -pr and -rc
versions for testing before release.  Especially on the stable branches.

-- 
Jeff Stuart <[EMAIL PROTECTED]>



signature.asc
Description: This is a digitally signed message part


Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Joshua Slive
William A. Rowe, Jr. wrote:



One bit concerns me, we cannot state that "we will break MMN compat
between security fixes" and "modules are always forward compatible
within a version (e.g. 2.1).



I agree that is a conflict, and I can't really decide which way I favor. 
 It seems attractive to say that we will bump the minor version number 
(in Major.Minor.Revision style) whenever we lose forward-compatibility. 
 But then we could wind up with weird things like having to bump from 
2.2.x to 2.4.0, but not integrate the changes from 2.3.x (because they 
are not ready for stable).  That would be way too confusing.

I guess I therefore lean towards saying that we will maintain as much 
foward compatibility as possible within a Minor version, but we will 
break it if necessary.

(One other alternative would be to call the unstable tree 3.x.  Then 
each time 3.x becomes stable we pull it into 2.x and start again with 
3.(x+1).  When we want a Major revision to stable we call it 4.0. I'm 
guessing that is a little too big a numerical leap for most people to 
think about.)

Joshua.



A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread William A. Rowe, Jr.
APACHE 2.x ROADMAP
==
Last modified at [$Date: 2002/10/01 19:13:06 $]


INTRODUCTION

The Apache HTTP Server project must balance two competing and disjoint
objectives; maintain stable code for third party authors, distributors and
most importantly users so that bug and security fixes can be quickly adopted
without significant hardship due to API changes; and continue the development
process that requires ongoing redesign to work around earlier oversights in
the implementation of a fluid and flexible API.

The Apache HTTP Server versions, through 2.0, used the Module Magic Number
to reflect the relatively frequent API changes.  This had the shortcoming
of often leaving binary download users hunting to replace their loaded third
party modules.  This left the third party module authors searching through
the API change histories to determine the new declarations, APIs and side 
effects of making the necessary code changes.  

With the simultaneous release of Apache 2.1-stable and Apache 2.2-development,
the Apache HTTP Server project is moving to a more predictable stable code
branch, while opening the development to forward progress without concern
for breaking the stable branch.  This document explains the rational between
the two versions and their behavior, going forward.


STABLE RELEASES, 2.{odd}.{revision}

All even numbered releases will be considered stable revisions.  That means;

  * Forward Compatibility; users are not be required to find new downloads of 
currently loaded modules to upgrade from another revisions of the same 
version.  To upgrade from 2.1.0 and 2.1.27 will require no new modules.  
However, the third party modules may break from buggy code, or code that 
used an undocumented side effect of an API call, which may be changed to 
close bugs or security vulnerabilities.  Modules should be retested.
Moreover, new APIs may be introduced within the lifespan of the release,
and it is up to the third party module author to call out what version
forward this module is compatible with (e.g. "Compatible with Apache
HTTP Server version 2.1.12 and foward.")  The next stable release that 
causes module incompatibility for 2.1.x users will be an upgrade to
either the current 2.2.x-development releases or the 2.3.0-stable release.

  * No Deprecated modules; although new modules may be introduced within the
stable release, no loadable modules or their directives will be removed
within the lifetime of a given stable release version.  The next release 
that deprecates old modules for 2.1.x users will be an upgrade to either
the 2.2.x-development release or the 2.3.0-stable release.  

  * Warnings should be provided in the documentation to give users a heads up
that a given module or directive will disappear in the future release,
and advise developers that a given API will change.  However, it is always
best to check the corresponding development release to determine the full
impact of such changes.

  * No 'Experimental' modules; while it may be possible (based on API changes
required to support a given module) to load a 2.2-development module into
a 2.1-stable build of Apache, there are no guarantees.  Experimental 
modules will be introduced to the 2.2-development versions and either
added to 2.1-stable once they are proven and compatible, or deferred
to the 2.3-stable release if they cannot be incorporated in the current
stable release due to API change requirements.

  * The stable CVS tree must not remain unstable at any time.  Atomic commits 
must be used to introduce code from the development version to the stable 
tree.  At any given time a security release may be in preparation, 
unbeknownst to other contributors.  At any given time, testers may be
checking out CVS head to confirm that a bug has been corrected.  And as
all code was well-tested in development prior to committing to the stable
tree, there is really no reason for this tree to be broken for more than 
a few minutes during a lengthy commit.


DEVELOPMENT RELEASES, 2.{even}.{revision}
-
All even numbered releases designate the 'next' possible stable release,
therefore te current development version will always be one greater than
the stable release.  Work proceeds on development releases, permitting
the modification of the MMN at any time in order to correct deficiencies 
or shortcomings in the API.  This means that third party modules from one 
revision to another may not be binary compatible, and may not successfully
compile without modification to accomodate the API changes.

The only 'supported' development release at any time will be the most
recently released version.  Developers will not be answering bug reports
of older development releases once a new release is available, it becomes
the res

Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Bojan Smojver
Quoting Bojan Smojver <[EMAIL PROTECTED]>:

> This would achieve two goals within the user/developer community:

Concentrate Bojan... 1, 2, 3, 4, 5. Got it! Five goals :-)

Bojan



Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Andrew Ho
Hello,

Am I the only person confused by this?

WR>STABLE RELEASES, 2.{odd}.{revision}
WR>
WR>All even numbered releases will be considered stable revisions.

WR>DEVELOPMENT RELEASES, 2.{even}.{revision}
WR>-
WR>All even numbered releases designate the 'next' possible stable release,
WR>therefore te current development version will always be one greater than
WR>the stable release.

Is the former sentence a typo? Shouldn't that say "All odd numbered
releases" under the "STABLE RELEASES" header?

I personally think maintaining stable/dev branches is a fine idea. I like
the x.0 rationale for keeping even numbered versions development, and it
also fits with Apache 1.3.x... but I also think it could be confusing if
many other open source projects use odd numbered versions for development
and Apache is the exception. And while I'm not by any means a core Apache
developer I agree it seems a little premature to vote on this change right
this instant.

Humbly,

Andrew

--
Andrew Ho   http://www.tellme.com/   [EMAIL PROTECTED]
Engineer   [EMAIL PROTECTED]  Voice 650-930-9062
Tellme Networks, Inc.   1-800-555-TELLFax 650-930-9101
--





Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Glenn
I just caught up on the torrent of emails to this list. :-)

My understanding of the major issues which may aid Apache2 adoption:
- avoid breaking user configuration files between releases
- avoid breaking 3rd party modules between releases
- present clearer meaning of version numbers to those external to
  Apache development

At the same time, it is important to keep the Apache project fun for
developers, which includes (whenever possible) not blocking developers
from playing and not blocking progress of the Apache project.

I had opposed a 2.1 for the auth modules because it didn't fit well with
my understanding of the way Apache development worked at the time.  Since
we're discussing modifying the versioning of development on the whole, my
choice is different.  Bill's proposal goes a long way towards addressing
the issues above.

+1to concurrent stable and development branches

-0.5  to using odd for stable, and even for development

The model of parallel stable and development branches is similar to
numerous other projects, including the Linux kernel and Perl, except that
the meaning of the sub-version numbers is **reversed** in Bill's proposal.
While I am not saying we should copy the Linux and Perl versioning "just
because", I am suggesting that it is counter-intuitive and confusing to
end-users (and suits!) who are familiar with them.  Therefore, I would
like to see X.even == stable and X.odd == development.

-Glenn



Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Bojan Smojver
My user only comments sprinkled below...

On Fri, 2002-10-18 at 02:10, William A. Rowe, Jr. wrote:

> STABLE RELEASES, 2.{odd}.{revision}
> 
> All even numbered releases will be considered stable revisions.  That means;

You really meant odd in the above sentence, right?

>   * Forward Compatibility; users are not be required to find new downloads of 
> currently loaded modules to upgrade from another revisions of the same 
> version.  To upgrade from 2.1.0 and 2.1.27 will require no new modules.  
> However, the third party modules may break from buggy code, or code that 
> used an undocumented side effect of an API call, which may be changed to 
> close bugs or security vulnerabilities.  Modules should be retested.
> Moreover, new APIs may be introduced within the lifespan of the release,
> and it is up to the third party module author to call out what version
> forward this module is compatible with (e.g. "Compatible with Apache
> HTTP Server version 2.1.12 and foward.")  The next stable release that 
> causes module incompatibility for 2.1.x users will be an upgrade to
> either the current 2.2.x-development releases or the 2.3.0-stable release.

OK, no more MMN bumps in the stable branch. Sounds good.

>   * No Deprecated modules; although new modules may be introduced within the
> stable release, no loadable modules or their directives will be removed
> within the lifetime of a given stable release version.  The next release 
> that deprecates old modules for 2.1.x users will be an upgrade to either
> the 2.2.x-development release or the 2.3.0-stable release.  
> 
>   * Warnings should be provided in the documentation to give users a heads up
> that a given module or directive will disappear in the future release,
> and advise developers that a given API will change.  However, it is always
> best to check the corresponding development release to determine the full
> impact of such changes.

This is almost like Java API's. I like.

>   * No 'Experimental' modules; while it may be possible (based on API changes
> required to support a given module) to load a 2.2-development module into
> a 2.1-stable build of Apache, there are no guarantees.  Experimental 
> modules will be introduced to the 2.2-development versions and either
> added to 2.1-stable once they are proven and compatible, or deferred
> to the 2.3-stable release if they cannot be incorporated in the current
> stable release due to API change requirements.

Hmm, I'm not sure how this is going to work given that unstable code
will be different then stable code. Something that works perfectly in
2.2.x might break in 2.1.x. You really should roll pre-releases and
release candidates in the stable branch so that people can test. I think
current Linux 2.4.x development is an excellent example here.

>   * The stable CVS tree must not remain unstable at any time.  Atomic commits 
> must be used to introduce code from the development version to the stable 
> tree.  At any given time a security release may be in preparation, 
> unbeknownst to other contributors.  At any given time, testers may be
> checking out CVS head to confirm that a bug has been corrected.  And as
> all code was well-tested in development prior to committing to the stable
> tree, there is really no reason for this tree to be broken for more than 
> a few minutes during a lengthy commit.

Huh, this sounds very unrealistic. I'd say it's better to make sure that
the stable RELEASE is stable. CVS might break, maybe not even compile on
occasion. That's what the pre-releases and release candidates are for.

> DEVELOPMENT RELEASES, 2.{even}.{revision}
> -
> All even numbered releases designate the 'next' possible stable release,
> therefore te current development version will always be one greater than
> the stable release.  Work proceeds on development releases, permitting
> the modification of the MMN at any time in order to correct deficiencies 
> or shortcomings in the API.  This means that third party modules from one 
> revision to another may not be binary compatible, and may not successfully
> compile without modification to accomodate the API changes.
> 
> The only 'supported' development release at any time will be the most
> recently released version.  Developers will not be answering bug reports
> of older development releases once a new release is available, it becomes
> the resposibility of the reporter to use the latest development version
> to confirm that the bug still exists.
> 
> Any new code, new API features or new ('experimental') modules may be
> promoted at any time to the next stable release, by a vote of the project
> contributors.  This vote is based on the technical stability of the new
> code and the stability of the interface.  Once moved to stable, that fe

RE: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Ask Bjoern Hansen
On Thu, 17 Oct 2002, Bill Stoddard wrote:

> * Consider using the Linux versioning system... stable release is 2.x where
> x >0 and x == even. Developmemt release is 2.x where x is odd.

+100.

The Apache HTTPd versioning system has been plenty confusing to
people not following the httpd related ASF lists. Please make it
stop.

We did call Apache 2.0 stable, so the argument that 2.0 wasn't
stable so 2.{even} should be unstable seems pretty bogus to me.

-- 
ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();




Re: A suggested ROADMAP for working 2.1/2.2 forward?

2002-10-18 Thread Bojan Smojver
Quoting Glenn <[EMAIL PROTECTED]>:

> -0.5  to using odd for stable, and even for development
> 
> The model of parallel stable and development branches is similar to
> numerous other projects, including the Linux kernel and Perl, except that
> the meaning of the sub-version numbers is **reversed** in Bill's proposal.
> While I am not saying we should copy the Linux and Perl versioning "just
> because", I am suggesting that it is counter-intuitive and confusing to
> end-users (and suits!) who are familiar with them.  Therefore, I would
> like to see X.even == stable and X.odd == development.

To me, as an Apache user (and would-be developer), this makes sense. Why not tag
the current CVS head as 2.1.0 (unstable) and then work towards a stable 2.2?
This would achieve two goals within the user/developer community:

- show them that the versioning system changed and give them time to get used to
it by spreading the word

- let them now that the time to break the API is now, if they want the change to
appear in the next stable release

- look forward (positively) to the next "stable stable" release, which will even
guarantee a great deal of binary compatibility

- make significant psychological impact with 2.2 as compared to 2.0, which would
convey the meaning of "stable stable" release more convincingly

- let them know that the moment 2.2 has settled, the new development branch will
be created (2.3)

I reckon one of the main reasons for slow Apache 2 adoption is the fact that PHP
and Perl are still in their early stages of offically supporting it. So, maybe
it would be a good idea to target 2.2 to be released in some sort of loose
coordination with those projects. Jakarta has excellent support for Apache 2
(mod_jk - stable, mod_jk2- beta, I think), so that should be already covered.

All this, together with its own performance and scaleability improvements, would
give Apache 2.2 a much better chance to grab serious numbers quickly.

Bojan

PS. Current RedHat Rawhide has 2.0.40 in it and no traces of 1.3.x. This is
excellent news!