You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Adam Kennedy <ad...@phase-n.com> on 2005/01/17 03:22:33 UTC
Solution to the Apache2 issue: Option 3
OK, alongside 1) Apache->Apache2 and 2) Parallel-Perl solutions here is
a potential third solution for people to ponder over.
This is meant to be a sort of absolutely minimal solution, that involves
as little change as possible and is more about containment of the
problem than fixing it.
It provides an option for the case where the PMC decides there is simply
nothing that can be done due to timing issues and the expectations from
the community of a quick release.
Rather than to fix mod_perl2 core itself, the goal instead of to
mitigate the problems on a wider scale, and limit them to just the core
package as much as possible.
For convenience, I'll label it Apache2-Modules.
In essence, it assumes not just that the core mod_perl package is not
going to be able to change in any way, but also that the workarounds
(despite their sheer number) can be made sufficient _for_the_core_package_.
However, it would appear that the same problems apply for the 318 other
Apache module, and are significantly more difficult to fix.
Applying the same arguments from the primary Apache->Apache2 solution
for applying a namespace change when there is an incompatible API change
(and optionally also for a generational change) most of the problems
can be mitigated by moving the other 318 modules to Apache2, or at least
giving them the option too.
This solution has the advantage that it a) Works with CPAN b) Requires
only documentation changes to core mod_perl c) Gives the 100 Apache::
authors choice over their migration strategy.
The documentation for the mod_perl2 core relating to recommendations for
other Apache:: authors would be updated to something similar to the
following.
----------------------------------------
As an author of an Apache:: module, you have several options when moving
to mod_perl 2.0.
1) If your Apache:: module has not changed its own API, and is able to
both install and run compatibly with both versions of mod_perl using the
same distribution tarball, you are recommended to keep the same Apache::
name for the module.
2) If you wish to do a rewrite of your Apache:: module with a new API or
architecture to take advantage of new features in mod_perl 2, you are
recommended to use Apache2:: and provide the new module as a separate
distribution.
3) If you wish to upgrade your Apache:: module to mod_perl 2, but cannot
do it compatibly and within the same distribution tarball, you should be
aware that having two different modules with the same name currently
causes significant problems with CPAN and other common perl
infrastructure. The recommended solutions at this time are to either
pull support for the mod_perl1 completely and remove it from CPAN, or to
move the new version of your module to Apache2::.
Regardless of the whether you move to Apache2:: or not, all Apache::
modules are recommended to include a section in their POD documentation
similar to the following, immediately following the =head1 NAME section.
=head1 COMPATIBILITY
Apache::Module is compatible with both mod_perl 1 and 2.
---OR---
=head1 COMPATIBILITY
Apache::Module is compatible with mod_perl 1 only.
See L<Apache2::Module> for the mod_perl 2 specific version of this module.
----------------------------------------
... or something along those lines.
At the moment there would appear to be an assumption (or at least, I get
the impression) that all of the other Apache:: authors have to follow
the same technique and solution.
If mod_perl itself is not to be fixed, and we accept that it is too late
to fix the problem in any way, the next best solution would be let the
other 100 AUTHORS know that they are allowed to move to Apache2:: as a
solution, with a set of circumstance-based recommendations.
It may well mean a little initial confusion for the people installing
modules, but as long as the Apache:: modules shove their compatibility
information right in the faces of anyone that cares to look, I don't
think this will be a problem.
Incidently, it appears that this is already starting to happen in CPAN,
with a number of authors uploading Apache2 modules to specify they work
with the mod_perl 2 API.
Adam
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: Solution to the Apache2 issue: Option 3
Posted by Randy Kobes <ra...@theoryx5.uwinnipeg.ca>.
On Mon, 17 Jan 2005, Joe Schaefer wrote:
> Adam Kennedy <ad...@phase-n.com> writes:
>
> [...]
>
> > Incidently, it appears that this is already starting to happen in
> > CPAN, with a number of authors uploading Apache2 modules to specify
> > they work with the mod_perl 2 API.
>
> Hmm, can you give more details about this? So far I only see
> Apache2::SOAP (which is Randy's module, I think) when I
> type "i /Apache2/ " in the CPAN shell. The other listings
> I see (MasonX, OpenFrame, etc.) have a different package prefix,
> so I don't see an immediate problem with those.
Apache2::SOAP is mine - this was more of an internal thing
for CPAN-Search-Lite that I was using to provide a mp2 SOAP
interface, as Apache::SOAP of SOAP-Lite, as of yet, doesn't
work with mp2. Certainly, if recommended, I'd be open to
renaming this, or arranging for PAUSE not to index it.
--
best regards,
randy
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: Solution to the Apache2 issue: Option 3
Posted by Adam Kennedy <ad...@phase-n.com>.
Well, there are two things here.
What I mean to say was that there is an emerging trend towards people
using a separate Apache2 module anyway, regardless of whether it is the
first Apache2:: or it is a web-server-driver type interfacing module
from something like OpenFrame.
A search on search.cpan.org shows a half-dozen or so Apache2 things.
As to the "locking" of namespaces, I don't believe it is possible, but
most CPAN stuff like that works quite well by convention.
DBI::, PPI::, FSI:: (another upcoming project of mine) and a few other
things state explicitly somewhere in the POD that "main namespace is for
me, you go use ..."
DBI:: -> DBD:: (drivers) or DBIx:: (extensions)
PPI:: -> Perl:: (end-use modules)
FSI:: -> FSD:: (drivers)
So if you want to keep relatively strict control over Apache2:: for
mod_perl's own use (for the potential Apache->Apache2 option) then it
might be a good idea to provide some fairly straight forward information
on this in the Apache2 module, and/or the mod_perl docs.
If of course by "lock" you mean "lock out" as in "we aren't going to let
you make Apache2:: modules" then I'm pretty sure that wouldn't fly. :)
If Apache2/mod_perl states this clearly, and the majority of people know
this, then anyone uploading an Apache2:: module without permission is
going to be jumped on pretty quickly and will generally pull things from
CPAN quite happily (Like last year when someone uploaded List::MoreUtils
when there was an existing module List::MoreUtil)
The modules@ list, if they know about it, will also tend to discourage
people doing bad things along the same lines.
Adam
Joe Schaefer wrote:
> Adam Kennedy <ad...@phase-n.com> writes:
>
> [...]
>
>
>>Incidently, it appears that this is already starting to happen in
>>CPAN, with a number of authors uploading Apache2 modules to specify
>>they work with the mod_perl 2 API.
>
>
> Hmm, can you give more details about this? So far I only see
> Apache2::SOAP (which is Randy's module, I think) when I
> type "i /Apache2/ " in the CPAN shell. The other listings
> I see (MasonX, OpenFrame, etc.) have a different package prefix,
> so I don't see an immediate problem with those.
>
> I think that, no matter how the pmc resolves the namespace issue,
> it will need to exercise some control over the things that CPAN
> indexes under Apache2::.
>
> Is it possible to lock the Apache2:: namespace on CPAN somehow,
> or is that already the case?
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: Solution to the Apache2 issue: Option 3
Posted by Joe Schaefer <jo...@sunstarsys.com>.
Adam Kennedy <ad...@phase-n.com> writes:
[...]
> Incidently, it appears that this is already starting to happen in
> CPAN, with a number of authors uploading Apache2 modules to specify
> they work with the mod_perl 2 API.
Hmm, can you give more details about this? So far I only see
Apache2::SOAP (which is Randy's module, I think) when I
type "i /Apache2/ " in the CPAN shell. The other listings
I see (MasonX, OpenFrame, etc.) have a different package prefix,
so I don't see an immediate problem with those.
I think that, no matter how the pmc resolves the namespace issue,
it will need to exercise some control over the things that CPAN
indexes under Apache2::.
Is it possible to lock the Apache2:: namespace on CPAN somehow,
or is that already the case?
--
Joe Schaefer
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org