blob: f66fa2495033a3e1c3bc47e98f9b0bd0e0ed6e3c [file] [log] [blame]
Last modified at [$Date$] -*-text-*-
/** @page apreq_status STATUS
2.05-dev in development.
Contributors looking for a mission:
- just do an egrep on "TODO" or "XXX" and see what's there
CURRENT RELEASE NOTES:
- This is the multi-env-unstable branch. It is a work-in-progress
which attempts to refactor our C interfaces to provide a more
robust module API. This refactoring effort will propagate
into the perl glue as well, once the C API changes settle into
place.
- This is a developer release, indicated by the "-dev" suffix on the
version string. We believe the core interfaces to be stable, but some
portions of the API may still need significant modification. Thus,
binary/source compatibility may be broken from one developer release to
the next. In particular the version numbering rules specified at
http://apr.apache.org/versioning.html
do not apply to developer releases.
RELEASE SHOWSTOPPERS:
- The api docs and perl glue are currently broken.
CURRENT VOTES:
- Should we switch to EU::MM for determining the full path to perl?
The problem is that some folks move their perl binary post-installation,
but never adjust Config.pm. EU::MM is smart, by accepting a
full path in $^X or by searching the user's $PATH for $^X, before
resorting to Config.pm. However, if we change apreq2, we should also
lobby test-dev to adopt the same solution for Apache::Test. Otherwise
our test suite will likely fail, even though the rest of the perl build
system will presumably still work.
+1: joes
0:
-1:
TODO:
- Introduce APR::Request::Parser and APR::Request::Hook. Implement
Apache2::Request::new's UPLOAD_HOOK using them.
- Move module/t to module/apache2/t.
- Figure out how and where the apreq_xs_ headers, and typemap file,
should be installed.
- Write tests for the apache 1.3.x module.
- Fix the broken make dependencies, especially in the module
and glue subdirs. The libtool workaround (for OSX IIRC)
that copies module/.libs to module/t is especially bogus.
- Consider dropping ExtUtils::XSBuilder as the C API is fairly
stable now. The header parsing + xs generation stuff may be too
difficult for the community to maintain over ordinary .xs files.
- Round out the unit tests in library/t. Ideally each
API function should have its own tests, and each possible
error status should be both tested & documented. Also
upgrade these tests to use the Apache::Test framework.
- Fix all the "//apreq_log" comments in the cgi tests.
- Let hooks interrupt parsers via APREQ_ERROR_INTERRUPT.
Need a delete_hook method to make interrupts a useful
way of tuning parser behavior.
[joes] Interrupts may not be worth the extra effort, so I don't
plan to pursue this. We have more important issues
to deal with prior to release, and nobody has ever
asked for this feature in apreq2.
- Add a "memory_limit" setting to apreq_parser_t and apreq_module_t,
which will control how much pool allocation the parser may use.
- Add a "header_limit" setting to control outgoing header size
(mainly for baking cookies) instead of using a compiled-in limit.
- in glue/perl/t/apreq/cgi.t on Win32, printing to the error log
hangs if the strings involved are about 10000 in size.
This doesn't occur in the env/cgi tests - why?
- Why must fprintf(stderr, ...), rather than
apr_file_printf(err, ...), be used on Win32 in
cgi_log() of src/apreq_env.c?
- Get env/ (Apache::Test) tests to work for --with-apache2-src option.
Also add a test to configure that prevents simultaneous use of
--with-apache2-src and --with-apache2-apxs.
- symbol exports files:
-# aix needs .exp files
- Install the html dox during "make install". Should we do this
for the doxy manpages also?
- Rework glue/perl build system to use apreq2-config instead of
relying on paths like "../../src".
OPEN ISSUES:
- Should we bundle an apr-based "application/xml" parser?
If so, how should we parse the xml data into an apr_table?
BUGS:
- Fix build automake/libtool/autoconf build system so it works
properly on OSX & AIX.
WISH LIST:
- I [joes] wish folks would contribute some glue code for
one of these:
- php,
- Rivet,
- mod_dtcl,
- mod_python,
- mod_jk,
- tomcat,
- mod_ruby,
- mod_parrot.
*/