[jifty-devel] Jifty 0.60912

Jesse Vincent jesse at bestpractical.com
Tue Sep 12 20:35:59 EDT 2006

I'm pleased to announce the release of Jifty 0.60912 to CPAN. Over 20 people contributed commits and others contributed patches, questions and improvements resulting in a total of about 280 commits over a period of about 7 weeks. I'd like to thank the following committers (listed by the number of commits made):

  64   nelhage 
  45   jesse 
  32   audreyt 
  26   trs 
  23   schwern 
  18   clkao 
  10   bartb 
   9   zev 
   9   ishigaki 
   7   srl 
   6   mark 
   4   seanmil 
   3   gugod 
   2   wolfgang 
   2   hlb 
   1   nnunley 
   1   jpeacock 
   1   glasser 
   1   ewilhelm 
   1   dpavlin 
   1   alexmv 

A categorized changelog follows:


 * force to use Jifty::TestServer on Win32, though both JTS and THSS doesn't work properly at the moment. 
 * Give a description for get_html_ok so that you know what URLs fail/succeed in test output
 * Small stylistic cleanup to t/01-dependencies
 * Honour coverage options.
 * make sure to remove remnant test db before we test (Jifty on Win32 fails to unlink them right now)
 * Add Jifty::Test->test_in_isolation
 * Document Jifty::Test->is_done.
 * Added Jifty::Test->is_passing and is_done
 * Basic SYNOPSIS for Jifty::Test as well as mentioning the Test::More passthrough.
 * Add Jifty::Test->teardown_mailbox to mirror setup_mailbox
 * use safer File::Spec->rel2abs for SubTest
 * TestServer: use File::Spec->rel2abs; it's safer than Cwd::abs_path which croaks
 * Jifty::Test->test_file() accepting and returning a list causes problems
   because people will try to do:  my $file = Jifty::Test->test_file($file) and
   it ain't gonna DWIM.
 * Mention Shell::Command and Jifty::Test->temp_file in the style guide.
 * Add Jifty::Test->test_file() to declare files created only for testing and
   which should be cleaned up.
 * Fixing tests when using JDBI::Record::Memcached and setting things in the database from test scripts
 * Added explicit tests for Jifty::Action::Redirect
 * Script for running client and server side combined code coverage.
 * Give a description for get_html_ok so that you know what URLs fail/succeed in test output
 * Ignore "fluff" errors in HTML validation since they cause non-W3C attributes like "autocomplete" to be warned about
 * Add html_ok method for checking the mech's current content so tests can use it while we retain control over Test::HTML::Lint


 * jifty model --name now uses the new schema {} sub.
 * Made the display of a friendly string for picking a record from a list a lot more flexible. 
 * canonicalization wasn't being properly run on models before validation
 * Added Jifty::Filter::DateTime, a JDBI filter that promotes DateTime
   objects to Jifty::DateTime objects on read, setting the time zone
 * Added a concept of "virtual" arguments to actions. These won't be passed on to Record classes, even if they're sumbitted. We use this for Password confirmation arguments, so that we don't pass password_confirm on to the database, which is kinda useless (and breaks the db ;)
 * Added a as_superuser method to Jifty::Record to make it easier for
 * code to briefly dodge around ACLs when needed.

Admin UI

 * __jifty/admin: use ->models reflection to build the nav bar.
 * Integer C<gt> or C<lt> searching.
 * Added substring search and date comparison to J::A::R::Search
 * Basic search in admin mode using Jifty::Action::Record::Search. Still buggy, especially UI-wise, but functional.
 * Initial version of Jifty::Action::Record::Search. It only supports
 * exact positive searches on fields at the moment.
 * There's no point in rendering confirm fields for passwords when we're
   viewing records in admin mode.
 * Don't create _gt and _lt search fields for magic _id refers_to fields.
 * Make the admin UI look slightly less crappy.
 * Make admin mode DTRT with columns that end in _id and refer to another model.


 * REST Dispatcher: model list reflection
 * Basic placeholder for REST plugin tests
 * REST Dispatcher skeleton that actually works
* Jifty::Plugin::REST::Dispatcher - /=/action/ now works across HTML+HTTP.
* J::P::REST::Dispatcher - all GET model URLs work, with 404s.
* Jifty::Plugin::REST::Dispatcher - model fetch actually works!


 * No longer generating arguments on C<Jifty::Action::Record> for fields
   that C<refer_to> C<Jifty::DBI::Collection>s, since we can't do
   anything useful with them right now anyways.
 * Get the _confirm items on passwords to respect sort ordering
 * Debugging improvements to stop stupid developer mistakes like passing the wrong sort of object to a Jifty::Action::Record. 
 * Now we do proper escaping of values in select-one lists.
 * Canonicalise {onclick}{submit} using the accessor wrapper.
 * Only call moniker when {onclick}{submit} isa Jifty::Action.


 * Wolfgang Kinkeldei: added a pod on models 
 * Patch from Todd Chapman to fix tutorial
 * The beginnings of a Jifty code style guide.
 * Jifty::Manual::Continuations: reflect tangent() in the manual.
 * Developer documentation for the Jifty::Web::Form::Field::* hierarchy.
 * Add "How do I Add Atom/RSS Feeds" to Cookbook.
 * Add a recipe about running fastcgi server, which, in fact, only points
   to 'jifty help fastcgi'.
 * lib/Jifty/Manual/FAQ.pod - a start on an FAQ
 * Standardizing on referring to share/web everywhere in the tutorial.
 * Todd Chapman noticed a typo in the docs about autocompleters
 * Tutorial patch from rindolf++
 * documented logger_component argument
 * Add a small bit of doc about creating your own classes that are normally created by J::ClassLoader
 * A start at some docs on upgrading, needs reviewing and some more examples

Perfomance and optimization

 * Don't try to lowercase session information on postgres
 * Don't bother with session when serving static files.
 * Don't need ExtUtils::MakeMaker in Jifty::Util.  This is about 7% of total compile time loading jifty.
 * Kill Jifty::Web::Menu circular references.
 * Transform actions in {onclick}{submit} to their monikers, to avoid
   circular references.

Javascript and HTML

 * Fix AJAX canonicalization of date fields
 * Some browsers don't like trailing commas in JS arrays and hashes.
 * You can now pass confirm => 'question?' to javascript hooks (i.e. onclick) and get a confirm dialog in the browser. This doesn't work without javascript yet.
 * Use a local copy of the icons in our calendar widget, rather than the version that yahoo points to on akamai
 * fix the unexpected behavior in context menu for IE users.
 * Fix bug that didn't allow calendar months to be changed
 * Show calendar widget on focus and hide it on blur
 * If we don't have XMLHttpRequest, fall back on page loads
 * More thorough normalization of the submit parameter to Javascript handlers
 * Accesskey support added to buttons and links. It just uses the same keys as our javascript key bindings.
 * A little more Element/Clickable refactoring, and implementing a
   C<disable> option to onclick handlers that toggles whether or not to
   disable form fields for an action.
 * We now write out state variables at the start of forms, instead of at the end. 
 * Moved "Dismiss" buttons on messages and errors into Behaviour, so they only show up in javascripty contexts where they'd be useful
 * Added the ability to support target attributes in menu items and clickables
 * IE doesn't support element.setAttribute("class", "foo"), so use element.className instead
 * Explicitly specify a radix of 10 (decimal) for the parseInt calls used in Yahoo's calendar widget when parsing the date to initially display
 * Don't attempt to disable hidden inputs, since this sometimes causes IE to die
 * Use our own "enter" handler to select the button to click, since Safari sometimes gets it wrong with complex fields
 * The setAttribute call doesn't work for "class" in IE
 * Fixing the calendar widget to create a new calendar every time, so
   that the calendar reflects any changes the user makes in the text
 * Support turning off autocomplete on a per-form basis.  We still need per-field, but that's for later.


 * debian packaging files for jifty
 * Removed duplicated share/web (it was copied to lib/auto/Jifty)
 * CGI.pm 3.17 (and possibly earier) had a bug where regex metacharacters in
   the PATH_INFO would cause it to puke.  We now depend on CGI 3.19 which fixed
   that bug.
 * Update Module::Install to 0.64.  The important thing here is it gets us
   a fixed Module::AutoInstall which works when you run Makefile.PL from the
   command line without CPANPLUS installed.
 * Don't index the t directory
 * add "use Jifty::YAML" before all uses.
 * Moved some modules to feature sections in Makefile.PL, updated 01-dependencies.t to recognise recommends sections as well as requires
 * Win32 requires File::ShareDir 0.04
 * Removed Text::Autoformat dependency and usage.


 * Dispatcher: Support tangent($url) as sugar for Jifty->web->tangent(url=>$url).
 * Dispatcher: Allow "**" in glob pattern to mean anychar including slash.
 * Dispatcher did not have a ->{cgi}, so ->method certainly could not
   work.  Use the env variable for now.
 * Jifty::Dispatcher: abort(404) now works as the doc promised.


 * Jifty->web->return in void context is now an immediate return.
 * Jifty::ClassLoader - Make Jifty::Handle a CL'ed module as well,
   so MyApp::Handle can implement scary magick of its own.
 * Don't blow up when trying to check if action mixins are autogenerated
 * Let's be better about not redirect-looping when calling continuations
   to paths that contain multibyte characters. This solution is a hack,
   but it's better than looping.
 * Fix placeholders on browser forward/back
 * Replace hard tabs with spaces for consistency
 * Jifty::Web::state_variables no longer prefixes keys with J:V- before
   returning them, and Clickables now serialize the *outgoing* state
   vars, instead of the previous request's.
 * When rendering a page region, mark actions as inactive, don't remove
   them, so that their arguments are available inside fragments.
 * If we receive an action's arguments, but it's not in J:ACTIONS, or
   we don't run it for some other reason, don't consider it to have
   failed for the purposes of stickiness.
 * moniker_for and action_form now behave more cleanly with forms which
   have no non-continuation fields other than their submit buttons.
 * No longer lose if you do a Jifty::Action::Redirect to the same page
   you're already on. Also, add the ability to force Web to redirect,
   even if it's to the current page.
 * Jifty.pm: Change all __PACKAGE__ to Jifty.
 * Jifty::ClassLoader: provide ->models accessor to list the model classes.
 * added Jifty::Request::clear_state_variables
 * Form::Clickable: Don't mix self accessors and args.
 * Refactor the constructors for Jifty::Web::Form::*, which takes initial
   hash and values to be overridden with accessors.

 * LetMes' escaping should be utf8 aware
 * Email addresses probably shouldn't ever be utf8, but using the utf8 escaper is more Right(tm)
 * Properly UTF-safeing Jifty::LetMe
 Sean E. Millichamp and clkao both pointed out that Locale::Maketext could choke on overloaded objects like DateTimes. This change makes sure that doesn't happen any more.
 * Locale::Maketext doesn't always do the right thing with user-generated strings. So let's do that for it.
 * Properly encode arguments when generating LetMe URLs.


 * add UTF-8 charset to message body on notifications
 * added infrastructure to do mime mails
 * make Jifty notifications be UTF-8


 * Jifty::Web::Session::ClientSide - Client-side sessions.
 * Added a ProfileBehaviour plugin to aid profiling Javascript
   Behaviours (see app_behaviour.js in the Jifty source for some more
 * Some Behaviour profiling UI fixes.
 * Removing profiling code from behaviour.js
 * Get the signup form in the login plugin to respect locally defined schema for the user class
 * Added information about the environment to the EmailErrors plugin
 * Making the Login plugin play nice with admin mode.
 * Plugin static roots should take precendence over jifty's


 * Win32 complains when you try to unlink open DB


More information about the jifty-devel mailing list