Changes from previous:
4.50 Thu Jun 16, 2011
[FEATURES]
Better PSGI support in the core
- run_as_psgi() works like run, but directly returns the expected PSGI response structure
- psgi_app() wraps up all the PSGI bits to call and run the application and return a PSGI
code ref:
$psgi_coderef = WebApp->psgi_app({ ... args to new() ... });
[DOCUMENTATION]
- docs for header_props() were improved
[INTERNAL]
- source control management was moved from darcs to git. Those who prefer
darcs are are more familiar with it are advised to try the darcs-git.py
wrapper for git.
- The test file psgi_app.t is missing from this release and will be added later.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
pkgsrc changes:
- Adding license
Upstream changes since 4.21:
4.31 Wed Jul 29, 2009
[FEATURES]
- html_tmpl_class() now allows setting an an alternate HTML::Template class
at a run time. This makes it easy to set the class to be
'HTML::Template::Dumper' for debugging. You can then see and precisely
test the Perl data structure that would be sent your template, taking
into account the template tokens that are actually set there. (Mark Stosberg)
[DOCUMENTATION]
- More typo fixes (Lyle)
ChangeLog:
4.21 Sat Jan 3, 2009
[FEATURES]
- This now works:
$webapp->query($new_query_object);
Setting a new query object can be useful in combination with
CGI::Application::Server. (Jaldhar Vyas)
[DOCUMENTATION]
- More typo fixes (Lyle)
4.20 Sat Nov 1, 2008
[DOCUMENTATION]
- typo fix (Lyle)
4.19_1 Fri Sep 27, 2008
[FEATURES]
- New 'html_tmpl_class' method allows you to specify an alternative
HTML::Template class. This technique will eliminate the need to use
a plugin for HTML::Template-compatible classes. See the docs
for load_tmpl() for details.
Thanks to Rhesa Rozendaal for the initial patch, and Mark Stosberg for
documentation refinements.
[DOCUMENTATION]
- typo fix (George Hartzell)
- Revert back to documenting the use of "$self", not $c, after community
feedback.
[INTERNALS]
- Change how default run modes are declared for better compatibility
with AutoRunmode and RunmodeDeclare plugins. Thanks Rhesa via RT#39631.
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
ChangeLog:
4.10 Tue Jun 17, 2008
This release maintains the same API public from 4.06. Changes since the
last stable release include documentation updates and refactors to the internal
of CGI::Application.
[DOCUMENTATION]
Several documentation improvements (Mark Stosberg)
- Reformat POD so methods are easier browse on CPAN
- Highlight some specific, common plugins to use
- Mention that we now have two CGI::App specific testing tools to use
Test::WWW::Mechanize::CGIApp and Test::WWW::Selenium::CGIApp
- Introduce and recommend CGI::Application::Dispatch
- Consolidated the documentation on error_mode()
- Split out those application methods which are essential from
those that are not.
- Use and recommend "$c" instead of "$self" to cut down on
typing for something that is abstract anyway, and represented
a simple "." in Perl 6.
- Mention CGI::Application::Server for offline website development.
- Update the introduction to clarify that we are a proven, lightweight
option.
- Removed the "experimental" flag on the error hook.
- Mention in the second Perl.com article in the "more reading" section.
- Document darcs repo URL. (Suggested by Gabor)
4.07_03 Mon Jun 16, 2008
[INTERNALS]
- The refactor to split up run() in 4.07_01 started to always pass the run mode
name as an argument to run modes. The behavior has now been reverted to
only pass the run mode name in the AUTOLOAD case. (Mark Stosberg)
[DOCUMENTATION]
- Fix typo in example. Thanks to Lesley Binks.
- document that header_props() can be usefully called with no arguments
to return the current headers. Thanks to neuhaus, RT#33992.
4.07_02 Weds Oct 31, 2007
[DOCUMENTATION]
- typo corrections (Evan Zacks)
- The docs for header_type() have been improved, including an example of using
CGI::Applicatin::Plugin::Redirect (Mark Stosberg)
[INTERNALS]
- Reverted switch to Class::MOP in 4.07_01, which benchmarking showed
to be slower. (Mark Stosberg)
- Beautify the code for _send_headers (Chris Dolan, Mark Stosberg)
4.07_01 Sun Jul 2, 2006
[INTERNALS]
- Switched from using Class::ISA to Class::MOP for introspection. Class::MOP
models the way this will be done Perl6, providing the same result. (Mark Stosberg)
- better test diagnostics (rjbs)
- improve test coverage (rjbs)
- improve consistency of checks for false/0len/undef (rjbs)
- split &run up into chunks (not yet finalized). New methods currently include:
__get_runmode
__get_runmeth
__get_body
Feedback is welcome on whether these should be exposed to the user, with
(possibly) better names. (rjbs)
- new maintainer
- PKG_DESTDIR_SUPPORT
- ok by joerg
Changelog:
4.06 Wed Apr 12, 2006
(No code changes)
- Updated tests to work with status codes emitted before and after CGI.pm 3.16.
The requirement for CGI.pm 3.16 or newer has been relaxed, so any version
of CGI.pm will do. (Rhesa)
4.05 Wed Mar 1, 2006
(No code changes)
- Updated tests for redirects to check for 'Found', not 'Moved'.
This correctly matches the standard, and was changed in CGI.pm 3.16.
As a result, we now require CGI.pm 3.16 for consistent results.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
4.04 Wed Oct 11, 2005
- No code changes since 4.04_02. Declaring stable.
4.04_02 Thu Sep 8, 2005
- Add support for templates stored in file handles and scalarrefs to load_tmpl().
(Jason Purdy)
4.04_01 Wed Aug 31, 2005
- move load_tmpl hook to after we build $tmpl_file so it will always have a
(probably) valid file to work with.
- initial support for a default template name in load_tmpl(). That means
you can now do this:
my $t = $self->load_tmpl();
And it will default to a file named after the current run mode with a
.html extension.
4.03 Thu Aug 04, 2005
- Fixed important bug introduced in 4.02 in which a mode_param
set in a sub-class would have been ignored. A new automated test
was added to prevent this regression in the future.
4.02 Sat Jul 30, 2005
- Documented existence of CGI::Application::Plugin::FillInForm.
- path_info option to mode_param now supports negative index numbers
to grab the run mode name from the other end of the PATH_INFO.
(Thilo Planz)
- Altered how "start_mode" default is set, allowing it to be set
through the hook system in the 'init' phase. Existing applications
should be unaffected.
- Return value of run_modes() was documented.
- Integrate more examples of using plugins into the documentation.
- 'error' hook was added, which is executed just before error_mode() might
be called. An example use of this would be a logging plugin that wants to
log that the application died. Although it's unlikely to change, it is marked
as experimental for now.
4.01 Tue Jun 14, 2005
NOTE: This release has an important incompatibility from the 4.0 release
two days ago. The 'load_tmpl' hook which was just introduced has had it's
interface changed. The change allows plug-in authors to affect the parameters
passed to the 'new' constructor of the template object, instead of just adding
parameters later.
4.0 Fri Jun 10, 2005
This release adds a major new feature of special interest to plugin
authors: 'hooks'. This concept helps to create plugins that are more powerful
and simpler to use for end users. See the documentation on writing plugins for
details.
Special thanks to Cees Hek and Michael Graham for their effort to develop
and refine the hook system.
Since the last major release, there has been an explosion of new plugins
developed. This is an incomplete list of modules below the
'CGI::Application::Plugin' namespace. Expect more to be added and updated soon
with the advent of the hook system:
::AnyTemplate - Use any templating system with a unified interface
::Apache - Use Apache::* modules without interference
::AutoRunmode - Automatically register runmodes
::ConfigAuto - Integration with Config::Auto
::Config::Context - Integration with Config::Context
::Config::General - Integration with Config::General
::Config::Simple - Integration with Config::Simple
::CompressGzip - Add Gzip compression
::DBH - Integration with DBI
::LogDispatch - Integration with Log::Dispatch
::Session - Integration with CGI::Session
::Stream - Help stream files to the browser
::TT - Use Template::Toolkit as an alternative to HTML::Template
::ValidateRM - Integration with Data::FormValidator and HTML::FillInForm
The following additional changes are also present in this release:
- Enhanced tests and documentation for error_mode(). (Rob Kinyon).
- Clarified Plug-in documentation (Timothy Appnel)
- Avoid some warnings when getting run mode from PATH_INFO (Emanuele Zeppieri)
- Use query() object to get PATH_INFO, to workaround bug in IIS web server. (Mark Stosberg)
- Documented return value of header_props()
module directory has changed (eg. "darwin-2level" vs.
"darwin-thread-multi-2level").
binary packages of perl modules need to be distinguishable between
being built against threaded perl and unthreaded perl, so bump the
PKGREVISION of all perl module packages and introduce
BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct
dependencies are registered and the binary packages are distinct.
addresses PR pkg/28619 from H. Todd Fujinaka.
Added a HOMEPAGE pointing into CPAN.
Change log:
3.31 Sun Sep 26, 2004
- Documentation clean-ups. No code changes.
3.30 Sun Sep 26, 2004
- Refactored test suite to use Test::More (Gabor Szabo)
- Removed warnings being emitted for documented API calls
- minor code clean-up to load_tmpl() (Emanuele Zeppieri)
- Support for passing multiple template paths to HTML::Template
(Michael Peters)
- Added error_mode to support trapping runmodes dying (Rob Kinyon)
- Added Plug-in related documentation. (Mark Stosberg)
- mode_param() updated to more easily set the run mode from
$ENV{PATH_INFO} (Mark Stosberg)
3.22 Fri Feb 13, 2004
- The nocgicarp flag introduced in 3.2 has now been removed due
to ill importing side effects. Instead, we now simply use Carp
instead of CGI::Carp. You must now explicitly load CGI::Carp if you want
it. Any code that used the brief-lived 'nocgicarp' feature will need to
be updated.
- Support for run modes named '0'. (Josh Glover)
3.21 Wed Feb 4, 2004
- Updated some header tests to be compatible with old and new versions of
CGI.pm, which handled the capitalization of the header differently.
(Mark Stosberg)
3.2 Sat Jan 31, 2004
- header_add() has been added to allow setting extra headers, particularly
cookies, after header_props has already been called (Cees Hek,
Mark Stosberg)
- CGI::Carp is now optional. See docs for details. (Steve Hay)
- Avoid 'unitialized value' warning on redirects (Cees Hek)
- Some tests added (Mark Stosberg)
- Updated documentation to use term "Run Mode" consistently, versus
"Run-Mode" with a dash. Run-mode-with-a-dash is dead. Don't revive it.
Also added mentions of the CGI::Application wiki and
CGI::Application::ValidateRM (Mark Stosberg)
- Fixed typo in cgiapp_postrun documentation (Steve Hay)
- Improved exception handling (Steve Hay)
- delete() method added to remove items stored using param()
(Michael Peters)
- 'CGI_APP_RETURN_ONLY' environment variable that is used for testing is now
documented (Michael Peters)
- dump_html() is now properly HTML-escaped (podmaster, Brian Cassidy)
- Migrated from Makefile.PL to Build.PL. Either can now be used for
installation.
- Updated 'Changes' file to put new releases on top.
3.1 Mon Jun 2 07:54:31 EDT 2003
- Changed dump_html default run mode to be referenced by name
instead of sub-ref. This allows dump_html() to be overridden
in sub-class.
- Added current run mode to output of dump() and dump_html().
(Thanks to Mark Stosberg for the suggestion.)
- Added example of doing an HTTP redirect (suggested by Sam Tregar)
- Fixed bug where non-CGI.pm query objects couldn't be set
at initialization time via the new() method. (Thanks to Steve
Hay for the catch.)
- Added header_type("none") to surpress HTTP header output.
(Thanks to Steve Comrie for the suggestion.)
- Numerous typos corrected in POD.
- Added cgiapp_postrun() hook. This hook allows run mode output
to be "pipelined" through optional filters, modifying the
content and HTTP headers if so desired.
3.0 Sat Feb 1 02:27:19 EST 2003
- Changed run_modes() method to allow list of run modes to be
designated via an array reference. This will automatically
create a run modes table which maps from a run mode to a
run mode method of the same name. Bumped major revision
number to reflect this significant change in functionality.
- Clarified license for module (GPL or Artistic). Included
licenses in distribution package.
2.6 Mon Oct 7 07:34:35 EDT 2002
- Changed the run() method to use Perl's built-in dynamic method
call for all run modes, whether by name or by code ref. This
is intended to improve run-time performance somewhat. Thanks
to Darin McBride for this patch.
- Added new override-able method cgiapp_get_query(). This method
is called when CGI::Application first needs access to the CGI
query object. By default, this is a CGI.pm object. It is
possible to override the cgiapp_get_query() method to return
an object of some other module besides CGI.pm, providing
that it is sufficiently compatible. Thanks to Eric Andreychek
for the suggestion and his help troubleshooting the code.
2.5 Thu Jul 18 07:45:47 EDT 2002
- Changed mailing list address. The new mailing list address.
To subscribe: cgiapp-subscribe@lists.erlbaum.net
To post message: cgiapp@lists.erlbaum.net
2.4 Sat May 25 13:32:44 EDT 2002
- Modified tmpl_path() to propagate to HTML::Template's PATH
parameter. This provides much more useful and intuitive
behavior. Thanks to Sam Tregar for the patch!
- Added prerun_mode() method to allow the run mode to be
dynamically changed inside the cgiapp_prerun() method.
Thanks to Steve Comrie for the suggestion of using a
method call for this function. Thanks to many other list
members for further refining this idea.
- Refactored some test cases, general code clean-up.
- Refactored POD a bit to make it less intimidating for
new users.
2.3 Mon May 6 07:12:09 EDT 2002
- Fixed minor bug in build system for older Perl versions.
2.2 Sun Aug 19 12:20:21 EDT 2001
- Added new module CGI::Application::Mailform as both an
example of how to use CGI::Application and a useful
(albeit simple) reusable web-based application.
- CGI::Application::Mailform allows the contents of
data submitted through HTML forms to be easily sent
via email to a specified recipient. This application
is intended to be very easy to reuse, yet secure
and functional enough to replace some of the most
onerous "mailform" scripts which have been floating
around the Internet for ages.
- Added cgiapp_prerun() hook, for adding global behaviors
before the run mode method is called. The cgiapp_prerun()
gets the name of the run mode as a parameter. This would
allow the user to perform some action based on the
current run mode.
- Enhanced capabilities for creating general superclasses for your projects.
- All run modes may be referenced by method name, in addition to subref.
- Created cgiapp_init() hook to allow for inherited common behaviors.
- Added ability to set mode_param() to use a call-back instance method
(specified by subref) instead of a CGI parameter.
- HTML::Template is now only loaded if load_tmpl() is called.
- Run-modes may now return scalar-refs in addition to scalars.
- Added new run-mode of last resort: "AUTOLOAD". See POD for usage.
- The param() method has been extended to allow multiple parameters
to be set at one time, via a hash (or hashref).
- Fixed bug in run() method where a null-string run-mode would be
considered valid. A zero-length run-mode will now result in the
start_mode() being called.
- The run_mode() method now may be called a subsequent time to
amend the list of run-modes.
- Bug fixed and documentation updated
Fixes PR/15221 by Shell Hung.
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.