[Jifty-commit] jifty branch, master, updated. 1.50430

Jifty commits jifty-commit at lists.jifty.org
Thu Apr 30 16:47:40 EDT 2015


The branch, master has been updated
       via  53fc67152580a418ad2981c4d5bf64d092ddfd5a (commit)
       via  090ec94b16ed1377443e3c3859d4eb27d2d844a5 (commit)
       via  6422ab8098a86efe67147cf8b5bacdfbf2475e72 (commit)
       via  35bb2635637ea1354bfe87c3419ff9e18556aa18 (commit)
       via  81ec82a83bdfe455e02414778aa6d5cd0ce234c1 (commit)
       via  221db0b3e28a5a62cf46e4bf9cddc4aecc0e44af (commit)
       via  07b9736b160a9459097d0201dc75cea97e7b5559 (commit)
       via  db83b10be98f9823f330a789448211764507fa80 (commit)
      from  113f5e2f2044d8b05f7e496695fd19ae2ac40084 (commit)

Summary of changes:
 .gitignore                               |  36 +++---
 Changelog                                |  12 ++
 MANIFEST                                 |   1 +
 inc/Module/AutoInstall.pm                |  44 ++++---
 inc/Module/Install.pm                    |  22 ++--
 inc/Module/Install/AutoInstall.pm        |   2 +-
 inc/Module/Install/Base.pm               |   2 +-
 inc/Module/Install/Can.pm                |   2 +-
 inc/Module/Install/Fetch.pm              |   2 +-
 inc/Module/Install/Include.pm            |   2 +-
 inc/Module/Install/Makefile.pm           |   4 +-
 inc/Module/Install/Metadata.pm           |   6 +-
 inc/Module/Install/Scripts.pm            |   2 +-
 inc/Module/Install/Share.pm              |   2 +-
 inc/Module/Install/Win32.pm              |   2 +-
 inc/Module/Install/WriteAll.pm           |   2 +-
 lib/Jifty.pm                             |   4 +-
 lib/Jifty/API.pm                         |   2 +-
 lib/Jifty/Action.pm                      |   2 +-
 lib/Jifty/DateTime.pm                    |   7 +-
 lib/Jifty/Manual/Actions_zhtw.pod        |   2 +
 lib/Jifty/Manual/JavaScript_zhtw.pod     |   2 +
 lib/Jifty/Manual/Models.pod              |   2 +-
 lib/Jifty/Manual/PageRegions.pod         |   2 +-
 lib/Jifty/Manual/Tutorial_de.pod         | 214 ++++++++++++++++---------------
 lib/Jifty/Manual/Tutorial_zhtw.pod       |   2 +-
 lib/Jifty/Plugin/ViewDeclarePage/Page.pm |   2 +-
 lib/Jifty/Request.pm                     |   3 +-
 28 files changed, 205 insertions(+), 182 deletions(-)

- Log -----------------------------------------------------------------
commit db83b10be98f9823f330a789448211764507fa80
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 15:19:37 2015 -0400

    Switch to the modern "use utf8"
    
    Fixes CPAN #102760

diff --git a/lib/Jifty.pm b/lib/Jifty.pm
index 835493f..a70500f 100644
--- a/lib/Jifty.pm
+++ b/lib/Jifty.pm
@@ -1,9 +1,9 @@
 use warnings;
 use strict;
+use utf8;
 
 package Jifty;
 use Data::UUID;
-use encoding 'utf8';
 use Class::Trigger;
 
 BEGIN {

commit 07b9736b160a9459097d0201dc75cea97e7b5559
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 15:20:31 2015 -0400

    Fix typos found by Debian
    
    Fixes CPAN #75581

diff --git a/lib/Jifty/Action.pm b/lib/Jifty/Action.pm
index aeddb7a..e519fcd 100644
--- a/lib/Jifty/Action.pm
+++ b/lib/Jifty/Action.pm
@@ -491,7 +491,7 @@ sub _form_widget {
         # It is in fact a form field for this action
 
         my $sticky = 0;
-        # $sticky can be overriden per-parameter
+        # $sticky can be overridden per-parameter
         if ( defined $field_info->{sticky} ) {
             $sticky = $field_info->{sticky};
         }
diff --git a/lib/Jifty/Manual/Models.pod b/lib/Jifty/Manual/Models.pod
index 1cf88a7..0e5d691 100644
--- a/lib/Jifty/Manual/Models.pod
+++ b/lib/Jifty/Manual/Models.pod
@@ -60,7 +60,7 @@ Creating a model has important side effects:
 
 =back
 
-To get all these things done, Jifty allows to describe the schema
+To get all these things done, Jifty allows one to describe the schema
 definition in a simply comprehensible but powerful syntax that looks
 more like written text than a programming language. The schema
 definition is made inside the C<MyApp::Model::XXX::Schema> package and
diff --git a/lib/Jifty/Manual/PageRegions.pod b/lib/Jifty/Manual/PageRegions.pod
index ae3cb07..d37dae1 100644
--- a/lib/Jifty/Manual/PageRegions.pod
+++ b/lib/Jifty/Manual/PageRegions.pod
@@ -199,7 +199,7 @@ First of all you'll need a region's component F<templates/additional_info>:
 In this component we have one argument C<$collapsed> that controls either
 we show link or information. By default we prefer hidden state and in this
 case we show only the link with an C<onclick> action that refreshes the
-current region, however value of the argument is overriden.
+current region, however value of the argument is overridden.
 
 You can add any arguments you want to this component that may be required
 to show the additional information, for example an id of some object, but
diff --git a/lib/Jifty/Manual/Tutorial_zhtw.pod b/lib/Jifty/Manual/Tutorial_zhtw.pod
index b128215..995c28a 100644
--- a/lib/Jifty/Manual/Tutorial_zhtw.pod
+++ b/lib/Jifty/Manual/Tutorial_zhtw.pod
@@ -453,7 +453,7 @@ F<PostCollection.pm>。 Jifty 使用 C<Jifty::ClassLoader> 來自動產生許多
         $self->render_header();
         body {
 
-            # so that we dont show menu template here.
+            # so that we don't show menu template here.
 
             $self->render_pre_content_hook();
             $body_code->();
diff --git a/lib/Jifty/Plugin/ViewDeclarePage/Page.pm b/lib/Jifty/Plugin/ViewDeclarePage/Page.pm
index e051af1..a035076 100644
--- a/lib/Jifty/Plugin/ViewDeclarePage/Page.pm
+++ b/lib/Jifty/Plugin/ViewDeclarePage/Page.pm
@@ -31,7 +31,7 @@ Page classes implement such layouts.
 
 It's very hard to extended L<Jifty::View::Declare::Page> class as
 it's written in such a way that forces you to copy&paste some
-internals from the class to make overriden method work and don't
+internals from the class to make overridden method work and don't
 break things.
 
 I think this implementation is much better thing. To use this class

commit 221db0b3e28a5a62cf46e4bf9cddc4aecc0e44af
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 15:33:23 2015 -0400

    Anchor expressions, and ignore MYMETA.json

diff --git a/.gitignore b/.gitignore
index 13d2d51..d8515a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,23 @@
-MANIFEST
-MANIFEST.bak
-META.yml
-MYMETA.yml
-Makefile
-Makefile.old
-SIGNATURE
-blib/
-inc/
-pm_to_blib
-jiftyapp
-t/*/mason*/
-t/*/t/mailbox*
-var/
-mason*/
-.prove
+/MANIFEST
+/MANIFEST.bak
+/META.yml
+/MYMETA.*
+/Makefile
+/Makefile.old
+/SIGNATURE
+/blib/
+/inc/
+/pm_to_blib
+/jiftyapp
+/t/*/mason*/
+/t/*/t/mailbox*
+/var/
+/mason*/
+/.prove
 
 *.swp
 \#*#
 .#*
 
-t/TestApp-Plugin-SetupWizard/etc/site_config.yml
-t/TestApp-Plugin-SetupWizard/testapp_plugin_setupwizard*
+/t/TestApp-Plugin-SetupWizard/etc/site_config.yml
+/t/TestApp-Plugin-SetupWizard/testapp_plugin_setupwizard*

commit 81ec82a83bdfe455e02414778aa6d5cd0ce234c1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 15:33:43 2015 -0400

    Stop altering hash reference during "each" iteration

diff --git a/lib/Jifty/Request.pm b/lib/Jifty/Request.pm
index a7dbd7d..18c3d1b 100644
--- a/lib/Jifty/Request.pm
+++ b/lib/Jifty/Request.pm
@@ -1057,7 +1057,8 @@ sub do_mapping {
         $self->argument($key => $value);
     }
     for my $request_action ($self->actions) {
-        while (my ($arg, $map) = each %{$request_action->arguments || {}}) {
+        for my $arg (keys %{$request_action->arguments || {}}) {
+            my $map = $request_action->arguments->{$arg};
             my ($key, $value) = Jifty::Request::Mapper->map(destination => $arg, source => $map, %args);
             next unless $key ne $arg or not defined $value or $value ne $map;
             $request_action->delete($arg);

commit 35bb2635637ea1354bfe87c3419ff9e18556aa18
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 16:45:12 2015 -0400

    Fix a backwards L<> in POD

diff --git a/lib/Jifty/API.pm b/lib/Jifty/API.pm
index 557d00d..ae01d83 100644
--- a/lib/Jifty/API.pm
+++ b/lib/Jifty/API.pm
@@ -228,7 +228,7 @@ Method that L</allow>, L</deny>, L</hide>, and L</show> call internally;
 I<POLARITY> is one of C<allow>, C<deny>, C<hide>, or C<show>. Limits are
 evaluated in the order they're called. The last limit that applies will be the
 one which takes effect. Regexes are matched against the class; strings are
-fully L</qualify|qualified> and used as an exact match against the class name.
+fully L<qualified|/qualify> and used as an exact match against the class name.
 The base set of restrictions (which is reset every request) is set in
 L</reset>, and usually modified by the application's L<Jifty::Dispatcher> if
 need be.

commit 6422ab8098a86efe67147cf8b5bacdfbf2475e72
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 16:45:33 2015 -0400

    Modern Date::Manip has deprecated ConvTZ, in favor of a more expressive ForceDate

diff --git a/lib/Jifty/DateTime.pm b/lib/Jifty/DateTime.pm
index a60861c..4295ccb 100644
--- a/lib/Jifty/DateTime.pm
+++ b/lib/Jifty/DateTime.pm
@@ -299,16 +299,11 @@ sub new_from_string {
             $args{time_zone} ? (time_zone => $args{time_zone}) : (),
         );
 
-        my $dt_now = $class->now;
-        my $now = $dt_now->ymd . '-' . $dt_now->hms;
-
         require Date::Manip;
 
-        # TZ sets the timezone for parsing
-        # ConvTZ sets the output timezone
         # ForceDate forces the current date to be now in the user's timezone,
         #    if we don't set it then DM uses the machine's timezone
-        Date::Manip::Date_Init("TZ=$offset", "ConvTZ=+0000", "ForceDate=$now");
+        Date::Manip::Date_Init("ForceDate=now,$offset");
         $epoch = Date::Manip::UnixDate( $string, "%o" );
     }
 

commit 090ec94b16ed1377443e3c3859d4eb27d2d844a5
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 16:46:12 2015 -0400

    Set explicit =encoding on non-ASCII pod files; switch to UTF-8 from ISO-8859-1

diff --git a/lib/Jifty/Manual/Actions_zhtw.pod b/lib/Jifty/Manual/Actions_zhtw.pod
index 8a3a7d4..260707f 100644
--- a/lib/Jifty/Manual/Actions_zhtw.pod
+++ b/lib/Jifty/Manual/Actions_zhtw.pod
@@ -1,3 +1,5 @@
+=encoding utf8
+
 =head1 NAME
 
 Jifty::Manual::Actions - 讓 Jifty 做事
diff --git a/lib/Jifty/Manual/JavaScript_zhtw.pod b/lib/Jifty/Manual/JavaScript_zhtw.pod
index 89dedde..09e2dfa 100644
--- a/lib/Jifty/Manual/JavaScript_zhtw.pod
+++ b/lib/Jifty/Manual/JavaScript_zhtw.pod
@@ -1,3 +1,5 @@
+=encoding utf8
+
 =head1 NAME
 
 Jifty::Manual::JavaScript_zhtw - Jifty 之 JavaScript 程式設計指引
diff --git a/lib/Jifty/Manual/Tutorial_de.pod b/lib/Jifty/Manual/Tutorial_de.pod
index bcfc6f9..42419bb 100644
--- a/lib/Jifty/Manual/Tutorial_de.pod
+++ b/lib/Jifty/Manual/Tutorial_de.pod
@@ -1,6 +1,8 @@
+=encoding utf8
+
 =head1 NAME
 
-Jifty::Manual::Tutorial_de - Einführung in Jifty
+Jifty::Manual::Tutorial_de - Einführung in Jifty
 
 =head1 BESCHREIBUNG
 
@@ -18,28 +20,28 @@ es schreiben.
 
 =head2 Jifty installieren
 
-Nicht wirklich eine große Sache. Wir glauben stark an das DRY (Don't
+Nicht wirklich eine große Sache. Wir glauben stark an das DRY (Don't
 Repeat Yourself -- Keine Wiederholungen) Prinzip. Das ist einer der
-großen Gründe, warum wir Perl und das CPAN lieben. Jifty benutzt viel
-Code aus dem CPAN. Bei der letzten Zählung waren es wenigstens 60
+großen Gründe, warum wir Perl und das CPAN lieben. Jifty benutzt viel
+Code aus dem CPAN. Bei der letzten Zählung waren es wenigstens 60
 Pakete. Die meisten Module sind auf vielen Plattformen einsetzbare
 nur in Perl geschriebene Module und sollten ohne Probleme funktionieren.
 
 Wir haben einige Anstrengungen unternommen, damit Sie nicht Ihre Zeit
-damit verbringen müssen, Abhängigkeiten aufzulösen, nur um Jifty zu
+damit verbringen müssen, Abhängigkeiten aufzulösen, nur um Jifty zu
 installieren. Das Jifty Installationsprogramm stellt fest, welche
-Module Ihr System benötigt und lädt bei Bedarf die erforderlichen
+Module Ihr System benötigt und lädt bei Bedarf die erforderlichen
 Module nach. Also machen Sie sich keine Sorgen, Sie werden immer
-gefragt, bevor Änderungen vorgenommen werden.
+gefragt, bevor Änderungen vorgenommen werden.
 
 Auf den meisten Systemen wird Perl mit dem CPAN Modul ausgeliefert,
 womit die Jifty Installation einfach wird:
 
-  # perl -MCPAN -e'install Jifty'       # auf Unix-ähnlichen Systemen
+  # perl -MCPAN -e'install Jifty'       # auf Unix-ähnlichen Systemen
   # perl -MCPAN -e"install Jifty"       # auf Win32 Systemen
 
 Falls Sie lieber eine C<.tar.gz> Datei von Jifty herunterladen wollen,
-können Sie diese wie folgt installieren:
+können Sie diese wie folgt installieren:
 
   # tar xzvf jifty-<version>.tgz
   # cd jifty-<version>
@@ -48,28 +50,28 @@ k
   # make test
   # make install
 
-Falls die Tests nicht erfolgreich verlaufen, wäre eine Rückmeldung an
+Falls die Tests nicht erfolgreich verlaufen, wäre eine Rückmeldung an
 uns interessannt. Bitte melden Sie sich bei der Liste
 C<jifty-devel at lists.jifty.org> und melden den Fehler. (Oder sehen Sie
 nach unter L</HILFE> weiter unten wo beschrieben ist, wie Sie sich uns
-anschließen können.)
+anschließen können.)
 
 =head2 Erstellung eines Rumpfes
 
-Wenn Sie Jifty erfolgreich installiert haben, können Sie Ihre erste
+Wenn Sie Jifty erfolgreich installiert haben, können Sie Ihre erste
 Applikation erstellen.
 
-Jifty ist geplantermaßen Minimalistisch. Wenn Sie eine Applikation
-erstellen möchten, kopieren Sie einfach das F<jifty>
+Jifty ist geplantermaßen Minimalistisch. Wenn Sie eine Applikation
+erstellen möchten, kopieren Sie einfach das F<jifty>
 Kommandozeilenprogramm in das F<bin/> Unterverzeichnis in Ihr
 Applikations-Verzeichnis.
 
-OK, es ist natürlich hilfreich, ein wenig strukturierter
+OK, es ist natürlich hilfreich, ein wenig strukturierter
 vorzugehen. Jifty wird mit Werkzeugen geliefert, die Ihnen helfen, die
 notwendigen Strukturen anzulegen.
 
 Wechseln Sie in ein sicheres Verzeichnis, in dem Sie Ihre Applikation
-anlegen möchten (Jifty erstellt das notwendige Unterverzeichnis für Sie).
+anlegen möchten (Jifty erstellt das notwendige Unterverzeichnis für Sie).
 
   # jifty app --name MyWeblog
   Can't guess application root from current path (/tmp) or bin path (/usr/bin)
@@ -101,16 +103,16 @@ Sehen wir uns die einzelnen Verzeichnisse genauer an.
 Innerhalb des F<bin/> Verzeichnisses liegt F<jifty>, die Jifty
 Kommandozentrale. Einige der wichtigsten Befehle sind C<schema>,
 welches ein Datenbank-Schema erstellt oder erneuert und C<server>,
-womit ein funktionsfähiger Webserver gestartet wird. Um die von
+womit ein funktionsfähiger Webserver gestartet wird. Um die von
 F<jifty> verstandenen Kommandos herauszufinden, tippen Sie:
 
     jifty help
 
 =item etc
 
-Konfigurationsdateien leben in F<etc/> und Jifty wird vernünftige
+Konfigurationsdateien leben in F<etc/> und Jifty wird vernünftige
 Standardwerte verwenden, sollte keine Konfigurationsdatei vorhanden
-sein oder benötigte Einträge fehlen.
+sein oder benötigte Einträge fehlen.
 
 =item doc
 
@@ -125,7 +127,7 @@ F<server.log> und F<error.log> in das F<log/> Verzeichnis.
 
 =item share/web/templates
 
-Jifty nutzt L<HTML::Mason> als sein primäres Template System. Legen
+Jifty nutzt L<HTML::Mason> als sein primäres Template System. Legen
 Sie die Templates Ihrer Appkikation in F<share/web/templates/>. Von
 Haus aus wird Jifty mit einer vordefinierten Applikation geliefert,
 die im Verzeichnis F<share/web/templates/> installiert wird. Diese
@@ -133,14 +135,14 @@ vordefinierte Applikation ist ein bequemer Weg um eine einfache eigene
 Applikation schnell zum Laufen zu bringen, jedoch sind sicher
 Anpassungen notwendig, wenn Ihre Applikation komplexer wird.
 
-Sie können schnell herausfinden, wo Jifty seine vordefinierten
+Sie können schnell herausfinden, wo Jifty seine vordefinierten
 Templates ablegt:
 
   perl -MJifty::Util -e 'print Jifty::Util->share_root'
 
 =item share/web/static
 
-Einige einfache Dinge, die zu Ihrer Applikation gehören, brauchen
+Einige einfache Dinge, die zu Ihrer Applikation gehören, brauchen
 nicht (oder I<sollten nicht>) durch das Template-System laufen.
 
 Stecken Sie solche Dateien einfach in das F<share/web/static/>
@@ -154,11 +156,11 @@ wo Jifty seine Standard-Templates ablegt.
 
 =item lib/MyWeblog
 
-Eine nähere Beschreibung des Objekt Modells und der
+Eine nähere Beschreibung des Objekt Modells und der
 Verzeichnishierarchie finden Sie unter L<Jifty::Manual::ObjectModel>
 
-Zum Bau einer funktionsfähigen einfachen Applikation brauchen Sie sich
-nur Gedanken über zwei Arten von Klassen, B<Models> und B<Actions> zu
+Zum Bau einer funktionsfähigen einfachen Applikation brauchen Sie sich
+nur Gedanken über zwei Arten von Klassen, B<Models> und B<Actions> zu
 machen.
 
 =item lib/MyWeblog/Model
@@ -171,38 +173,38 @@ Aktualisieren des Datenbank-Schemas, wenn dies notwendig sein sollte.
 
 =item lib/MyWeblog/Action
 
-Als wir gesagt haben, daß Sie sich nur über B<Models> und B<Actions>
-den Kopf zerbrechen müssen, haben wir nicht die ganze Wahrheit
-gesagt. Jifty kümmert sich um grundlegende Datenbank Interaktionen
+Als wir gesagt haben, daß Sie sich nur über B<Models> und B<Actions>
+den Kopf zerbrechen müssen, haben wir nicht die ganze Wahrheit
+gesagt. Jifty kümmert sich um grundlegende Datenbank Interaktionen
 (C<CREATE (Anlegen), READ (Lesen), UPDATE (Aktualisieren), DELETE
-(Löschen)>). Entsprechend benötigte B<Actions> werden für die
-jeweiligen B<Models> automatisch erzeugt und können jederzeit
-verändert werden, sollte dies notwendig werden.
+(Löschen)>). Entsprechend benötigte B<Actions> werden für die
+jeweiligen B<Models> automatisch erzeugt und können jederzeit
+verändert werden, sollte dies notwendig werden.
 
 =item t
 
-Jifty legt bereits Test-Routinen für Ihre Applikation an, kann
-allerdings nicht die Tests für Sie schreiben. (Es erstellt jedoch
-einfache Tests für die Model-Klassen, die Sie anlegen.)
+Jifty legt bereits Test-Routinen für Ihre Applikation an, kann
+allerdings nicht die Tests für Sie schreiben. (Es erstellt jedoch
+einfache Tests für die Model-Klassen, die Sie anlegen.)
 
 =item var
 
-Jifty speichert Cache-Dateien hier, während der Server
-läuft. Normalerweise werden Sie hier nichts tun müssen.
+Jifty speichert Cache-Dateien hier, während der Server
+läuft. Normalerweise werden Sie hier nichts tun müssen.
 
 =back
 
 =head2 Erstellung eines Datenmodells
 
-Wie Sie sich aus der Tatsache, daß diese Tutorial-Applikation
-B<MyWeblog> heißt, vorstellen können, ist das hier vorgestellte
-Beispiel ein einfaches Weblog. Künftige Tutorials werden
+Wie Sie sich aus der Tatsache, daß diese Tutorial-Applikation
+B<MyWeblog> heißt, vorstellen können, ist das hier vorgestellte
+Beispiel ein einfaches Weblog. Künftige Tutorials werden
 Authentifizierung, Kommentare sowie RSS und Atom Feeds beschreiben.
 
 =head3 Posts
 
 Weblogs konzentrieren sich rund um Posts, daher ist es keine
-Überraschung, daß unser erstes Model, das wir erzeugen werden, ein
+Überraschung, daß unser erstes Model, das wir erzeugen werden, ein
 C<Post> ist.
 
   # cd MyWeblog
@@ -210,10 +212,10 @@ C<Post> ist.
   Writing file /tmp/MyWeblog/t/00-model-Post.t
   Writing file /tmp/MyWeblog/lib/MyWeblog/Model/Post.pm
 
-Großartig! Nun haben Sie ein B<Post> Model (Nur, daß es im Augenblick
+Großartig! Nun haben Sie ein B<Post> Model (Nur, daß es im Augenblick
 noch nichts modelliert).
 
-Öffnen Sie F<lib/MyWeblog/Model/Post.pm> in Ihrem Lieblings-Editor.
+Öffnen Sie F<lib/MyWeblog/Model/Post.pm> in Ihrem Lieblings-Editor.
 
 Sie sollten etwas sehen wie:
 
@@ -231,18 +233,18 @@ Sie sollten etwas sehen wie:
   
   1;
 
-Nun ist es an der Zeit, der Model Klasse etwas über Posts zu
-erzählen. Fangen wir damit an, einem Post einen C<body> (Rumpf) und
+Nun ist es an der Zeit, der Model Klasse etwas über Posts zu
+erzählen. Fangen wir damit an, einem Post einen C<body> (Rumpf) und
 einen C<title> (Titel) zu geben. (In einem kommenden Tutorial wird die
-Applikation voll "Folksonomy"-tauglich werden, was wir durch Anfügen
+Applikation voll "Folksonomy"-tauglich werden, was wir durch Anfügen
 einer C<category> (Kategorie) und Erweitern der C<category> zu einer
-C<tags> (Indexierung, Etikett) Tabelle erreichen könnten.)
+C<tags> (Indexierung, Etikett) Tabelle erreichen könnten.)
 
 Editieren Sie unter dieser Zeile:
 
   use MyWeblog::Record schema {
 
-Fügen Sie diese Zeilen an:
+Fügen Sie diese Zeilen an:
 
   column title =>
         type is 'text',
@@ -258,11 +260,11 @@ Abspeichern bitte nicht vergessen.
 
 =head2 Erstellung der Datenbank
 
-Gut. Nun ist es an der Zeit, die Datenbank zu erstellen. Standardgemäß
+Gut. Nun ist es an der Zeit, die Datenbank zu erstellen. Standardgemäß
 benutzt Jifty eine SQLite Datenbank. Wenn Sie lieber PostgreSQL oder
-MySQL verwenden möchten, dann können Sie Anpassungen an
+MySQL verwenden möchten, dann können Sie Anpassungen an
 F<etc/jifty.yml> vornehmen. (Sehen Sie dazu in C<Jifty::Config> nach,
-um mehr darüber zu erfahren.)
+um mehr darüber zu erfahren.)
 
   # jifty schema --setup
   INFO - Generating SQL for application MyWeblog...
@@ -274,7 +276,7 @@ um mehr dar
 
 =head2 Start des Jifty Application Server
 
-OK. Nun haben Sie eine lauffähige, aber noch einfache
+OK. Nun haben Sie eine lauffähige, aber noch einfache
 Applikation. Starten Sie den Webserver und schauen Sie sich um. Werfen
 Sie einen Blick auf die AJAX gesteuerte Administrations-Umgebung, die
 Online Dokumentation und das Pony.
@@ -289,7 +291,7 @@ sein.
 Auf den meisten Plattformen wird ein einfaches "jifty server" Kommando
 ebenfalls funktionieren. :)
 
-=head2 Erstellung der Benutzeroberfläche
+=head2 Erstellung der Benutzeroberfläche
 
 Die Administrations-Umgebung gibt Ihnen zwar alles, was Sie brauchen,
 um mit den Daten der Applikation zu arbeiten, ist aber noch lange kein
@@ -302,7 +304,7 @@ Erstellen Sie eine Seite zum Posten eines neuen Weblog Eintrages:
   # cd share/web/templates/
 
 Erstellen Sie eine neue Datei namens F<post> in Ihrem Editor. Stellen
-Sie sicher, daß diese so aussieht:
+Sie sicher, daß diese so aussieht:
 
   <%init>
   my $action = Jifty->web->new_action(class => 'CreatePost');
@@ -318,29 +320,29 @@ Sie sicher, da
   </&>
 
 Ja, dies ist eine Template Datei in L<HTML::Mason> Syntax. Wenn Sie
-noch nicht genug über Mason wissen, empfehlen wir dessen Online
-Dokumentation für mehr Details. I<Mason Templates> sollten jeweils in
+noch nicht genug über Mason wissen, empfehlen wir dessen Online
+Dokumentation für mehr Details. I<Mason Templates> sollten jeweils in
 der ersten Spalte der Datei beginnen. Besonders wichtig sind die
-C<E<lt>%initE<gt>> und C<E<lt>/%initE<gt>> Blöcke, die unbedingt
-lingsbündig geschrieben werden müssen.
+C<E<lt>%initE<gt>> und C<E<lt>/%initE<gt>> Blöcke, die unbedingt
+lingsbündig geschrieben werden müssen.
 
 =head3 Anzeige
 
-Es ist relativ einfach, eine I<einfache> Auflistung von Einträgen zu
-erhalten und ein wenig aufwändiger, eine AJAX gesteuerte seitenweise
+Es ist relativ einfach, eine I<einfache> Auflistung von Einträgen zu
+erhalten und ein wenig aufwändiger, eine AJAX gesteuerte seitenweise
 Darstellung zu bekommen. Hier beschreiben wir, wie man beides macht;
-Sie können entscheiden, welches Ihnen besser gefällt.
+Sie können entscheiden, welches Ihnen besser gefällt.
 
-(Falls Sie per Kopieren und Einfügen den Beispiel-Code von unten
-übertragen, stellen Sie sicher, daß er in einer Spalte erscheint,
+(Falls Sie per Kopieren und Einfügen den Beispiel-Code von unten
+übertragen, stellen Sie sicher, daß er in einer Spalte erscheint,
 ansonsten wird es nicht funktionieren.)
 
 =head4 Der schnelle Weg
 
 Erstellen Sie eine neue Datei F<index.html> im F<share/web/templates>
 Verzeichnis in Ihrem Editor. (Der Webserver wird die URL
-C</index.html> als die I<Standard> Seite für Ihre Applikation
-annehmen.) Befüllen Sie die Datei wie folgt:
+C</index.html> als die I<Standard> Seite für Ihre Applikation
+annehmen.) Befüllen Sie die Datei wie folgt:
 
   <%init>
   my $posts = MyWeblog::Model::PostCollection->new();
@@ -358,22 +360,22 @@ annehmen.) Bef
 
 (Entfernen Sie die Leerzeichen am Zeilenanfang!)
 
-=head4 Die aufwändige Art, mit der Sie viele coole Dinge bekommen
+=head4 Die aufwändige Art, mit der Sie viele coole Dinge bekommen
 
-Die I<aufwändige Art> benutzt eines von Jifty's fortgeschrittenen
+Die I<aufwändige Art> benutzt eines von Jifty's fortgeschrittenen
 Eigenschaften: I<PageRegions> (Seitenbereiche). Diese Bereiche
 erlauben Ihrer Applikation einzelne Bestandteile einer Seite
-unabhängig voneinander neu zu laden. Das funktioniert sowohl unter
+unabhängig voneinander neu zu laden. Das funktioniert sowohl unter
 Benutzung von AJAX auf modernen Browsern, als auch mit GET Requests
-auf nicht JavaScript fähigen Browsern wie C<lynx>, C<w3m> oder dem
+auf nicht JavaScript fähigen Browsern wie C<lynx>, C<w3m> oder dem
 Browser Ihres Handys.
 
-Der Nachteil dieser Methode ist, daß jeder Seiten-Bereich in einer
-eigenen I<Fragment> Datei vorliegen muß.
+Der Nachteil dieser Methode ist, daß jeder Seiten-Bereich in einer
+eigenen I<Fragment> Datei vorliegen muß.
 
-Die aufwändige Art beginnt zunächst genauso wie der schnelle
+Die aufwändige Art beginnt zunächst genauso wie der schnelle
 Weg. Erstellen Sie eine neue Datei mit dem Namen
-F<share/web/templates/index.html> in Ihrem Editor. Befüllen Sie die
+F<share/web/templates/index.html> in Ihrem Editor. Befüllen Sie die
 Datei mit:
 
   <&| /_elements/wrapper, title => Jifty->config->framework('ApplicationName') &>
@@ -382,10 +384,10 @@ Datei mit:
                         path => "/fragments/page_of_posts") %>
   </&>
 
-Wenn Sie mitgedacht haben, dann haben Sie bestimmt schon erraten, daß
-Sie als nächstes eine Datei
+Wenn Sie mitgedacht haben, dann haben Sie bestimmt schon erraten, daß
+Sie als nächstes eine Datei
 F<share/web/templates/fragments/page_of_posts> mit dem nachfolgenden
-Inhalt anlegen dürfen:
+Inhalt anlegen dürfen:
 
   <%args>
   $page => 1
@@ -396,7 +398,7 @@ Inhalt anlegen d
   $posts->set_page_info( current_page => $page,
                          per_page     => 15
                        );
-  $m->out("Keine Einträge.") if ($posts->pager->total_entries == 0);
+  $m->out("Keine Einträge.") if ($posts->pager->total_entries == 0);
 
   </%init>
   % if ($posts->pager->last_page > 1) {
@@ -413,15 +415,15 @@ Inhalt anlegen d
     <% Jifty->web->link( label => "vorherige Seite", onclick => { args => { page => $posts->pager->previous_page } } ) %>
   % }
   % if ($posts->pager->next_page) {
-    <% Jifty->web->link( label => "nächste Seite", onclick => { args => { page => $posts->pager->next_page } } ) %>
+    <% Jifty->web->link( label => "nächste Seite", onclick => { args => { page => $posts->pager->next_page } } ) %>
   % }
 
 Nun starten Sie den Jifty Webserver erneut. Erstellen Sie einen Post
 indem Sie die URL C</post> auf Ihrem Webserver anfahren. Erstellen Sie
-wenigstens 15 Einträge und beobachten Sie dabei, wie Jifty Ihnen die
-AJAX Knöpfe C<vorherige Seite> und C<nächste Seite> erstellt. Schalten
+wenigstens 15 Einträge und beobachten Sie dabei, wie Jifty Ihnen die
+AJAX Knöpfe C<vorherige Seite> und C<nächste Seite> erstellt. Schalten
 Sie JavaScript aus oder verwenden Sie lynx und beobachten Sie wie AJAX
-automatisch zurückfällt zum vollständigen Laden der jeweils neuen
+automatisch zurückfällt zum vollständigen Laden der jeweils neuen
 Seite. Alles umsonst. Danke, Jifty!
 
 =head3 Hey, woher kam diese Klasse?
@@ -429,34 +431,34 @@ Seite. Alles umsonst. Danke, Jifty!
 Wenn Sie genau aufgepasst haben, dann haben Sie sich sicher gefragt,
 woher die C<MyWeblog::Model::PostCollection> Klasse kam. Es gibt keine
 Datei mit dem Namen F<PostCollection.pm>. Jifty setzt
-C<Jifty::ClassLoader> ein, um einige Klassen für Sie zu
-erstellen. Selbstverständlich könnten Sie das ebenfalls tun. Lesen Sie
-unter L<Jifty::ClassLoader> mehr darüber.
+C<Jifty::ClassLoader> ein, um einige Klassen für Sie zu
+erstellen. Selbstverständlich könnten Sie das ebenfalls tun. Lesen Sie
+unter L<Jifty::ClassLoader> mehr darüber.
 
 =head2 Navigation
 
-Natürlich ist es unschön, sich die URL der Post Seite merken zu
-müssen. Um einen B<Post> Eintrag im Menü zu bekommen, müssen Sie die
-Standard Menüs überschreiben.
+Natürlich ist es unschön, sich die URL der Post Seite merken zu
+müssen. Um einen B<Post> Eintrag im Menü zu bekommen, müssen Sie die
+Standard Menüs überschreiben.
 
-Jifty's I<Standard> Menüs werden durch F<_elements/nav> in den
+Jifty's I<Standard> Menüs werden durch F<_elements/nav> in den
 Standard Applikations Templates (die mit dem Pony) erzeugt. Im
-Augenblick bleibt Ihnen nichts anderes übrig, als F<_elements/nav> zu
-überschreiben. (Wir arbeiten an Methoden, dies besser zu gestalten.)
+Augenblick bleibt Ihnen nichts anderes übrig, als F<_elements/nav> zu
+überschreiben. (Wir arbeiten an Methoden, dies besser zu gestalten.)
 
 Legen Sie innerhalb des Verzeichnisses F<share/web/templates> Ihrer
 Applikation ein Verzeichnis F<_elements> an.
 
   mkdir share/web/templates/_elements
 
-Sie möchten bestimmt mit den normalen Jifty Templates arbeiten, also
-müssen wir nur den C<< $top->child( Post... ) >> Teil anfügen.
+Sie möchten bestimmt mit den normalen Jifty Templates arbeiten, also
+müssen wir nur den C<< $top->child( Post... ) >> Teil anfügen.
 
   cat $(perl -MJifty::Util -e 'print Jifty::Util->share_root' \
     )/web/templates/_elements/nav > share/web/templates/_elements/nav
 
-Ansonsten können Sie innerhalb F<_elements> auch gerne eine neue Datei
-namens C<nav> anlegen, die so aussehen könnte:
+Ansonsten können Sie innerhalb F<_elements> auch gerne eine neue Datei
+namens C<nav> anlegen, die so aussehen könnte:
 
   <%init>
   my $top = Jifty->web->navigation;
@@ -465,15 +467,15 @@ namens C<nav> anlegen, die so aussehen k
                        label => "Neuen Eintrag");
   </%init>
 
-Mehr Information über das Menü System können Sie der Dokumentation
+Mehr Information über das Menü System können Sie der Dokumentation
 unter L<Jifty::Web::Menu> entnehmen.
 
 =head2 Das war's
 
-Das war alles, das Sie benötigen, um anzufangen, Jifty Applikationen
+Das war alles, das Sie benötigen, um anzufangen, Jifty Applikationen
 zu erstellen. Wir arbeiten hart daran, Jifty noch einfacher einsetzbar
 zu machen und die I<dicken Brocken> dieses Tutorials so bald als
-möglich zu vereinfachen.
+möglich zu vereinfachen.
 
 Bitte nehmen Sie auf der C<jifty-devel> Mailing Liste Kontakt mit uns
 auf, wenn Sie Fragen haben, wie man Jifty benutzt oder was Sie
@@ -493,40 +495,40 @@ Funktion.
 
 Wenn Ihr Server mit eingeschaltetem Administrations-Modus arbeitet
 (die Konfigurations-Einstellung C<AdminMode> fehlt oder sie ist
-ungleich Null), dann können Sie den "Online Docs" Link in Ihrem
-Browser benutzen, um eine ausführliche modulweise Dokumentation zu
+ungleich Null), dann können Sie den "Online Docs" Link in Ihrem
+Browser benutzen, um eine ausführliche modulweise Dokumentation zu
 Jifty zu erhalten.
 
 =head2 Beitreten der Mailing Liste
 
 C<jifty-devel at lists.jifty.org> ist der Ort, an dem wir besprechen, wie
-wir Jifty erstellen, was es an Problemen oder Vorschlägen gibt und so
+wir Jifty erstellen, was es an Problemen oder Vorschlägen gibt und so
 weiter.
 
 Um der Liste beizutreten, senden Sie eine Mail an
-C<jifty-devel-subscribe at lists.jifty.org>. Bitte beachten Sie, daß die
-Kommunikation in dieser Liste in englischer Sprache geführt wird.
+C<jifty-devel-subscribe at lists.jifty.org>. Bitte beachten Sie, daß die
+Kommunikation in dieser Liste in englischer Sprache geführt wird.
 
 =head2 Unser Wiki
 
-Wir haben ein Wiki! (Tatsächlich ist das Wiki die hauptsächliche
+Wir haben ein Wiki! (Tatsächlich ist das Wiki die hauptsächliche
 Website von Jifty).
 
 Besuchen Sie uns unter L<http://jifty.org/>, lesen Sie und tragen Sie
 etwas bei!
 
 Das Wiki wird von I<Wifty> betrieben, einem Wiki das auf Jifty
-basiert. Sein Code ist frei verfügbar in unserem Subversion
+basiert. Sein Code ist frei verfügbar in unserem Subversion
 Repository.
 
 =head1 FEHLER MELDEN
 
-In dieser frühen Phase von Jifty melden Sie bitte alle Fehler, die
+In dieser frühen Phase von Jifty melden Sie bitte alle Fehler, die
 Ihnen auffallen, an C<jifty-devel at lists.jifty.org>.
 
-=head1 KÜNFTIGE TUTORIALS
+=head1 KÃœNFTIGE TUTORIALS
 
-Künftige Tutorials werden enthalten:
+Künftige Tutorials werden enthalten:
 
 =over 4
 

commit 53fc67152580a418ad2981c4d5bf64d092ddfd5a
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu Apr 30 16:46:39 2015 -0400

    Version 1.50430 releng

diff --git a/Changelog b/Changelog
index 0de85a8..4ca7243 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,15 @@
+--------------------------------
+Jifty 1.50430 - April 30th, 2015
+--------------------------------
+ * Stop including cssquery back-compat JS
+ * Make the CAS into a durable store
+ * Rewrite pubsub framework, using websockets and AnyMQ
+ * Remove clientside sessions
+ * Refactor how halos work; this changes the default wrapper
+ * Instead of just using Hash::Merge, use a "!" suffix on hash keys to
+   explicitly override the associated site_config value, instead of
+   merging.
+
 ------------------------------
 Jifty 1.10518 - May 17th, 2011
 ------------------------------
diff --git a/MANIFEST b/MANIFEST
index e8cb3cd..256f07f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -350,6 +350,7 @@ Makefile.PL
 MANIFEST			This list of files
 MANIFEST.SKIP
 META.yml
+MYMETA.json
 README
 share/dtd/xhtml-lat1.ent
 share/dtd/xhtml-special.ent
diff --git a/inc/Module/AutoInstall.pm b/inc/Module/AutoInstall.pm
index aa7aa92..f7a9f42 100644
--- a/inc/Module/AutoInstall.pm
+++ b/inc/Module/AutoInstall.pm
@@ -8,7 +8,7 @@ use ExtUtils::MakeMaker ();
 
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 }
 
 # special map on pre-defined feature sets
@@ -115,7 +115,7 @@ sub import {
     print "*** $class version " . $class->VERSION . "\n";
     print "*** Checking for Perl dependencies...\n";
 
-    my $cwd = Cwd::cwd();
+    my $cwd = Cwd::getcwd();
 
     $Config = [];
 
@@ -166,7 +166,7 @@ sub import {
         $modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' );
 
         unshift @$modules, -default => &{ shift(@$modules) }
-          if ( ref( $modules->[0] ) eq 'CODE' );    # XXX: bugward combatability
+          if ( ref( $modules->[0] ) eq 'CODE' );    # XXX: bugward compatibility
 
         while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) {
             if ( $mod =~ m/^-(\w+)$/ ) {
@@ -345,22 +345,26 @@ sub install {
     my $i;    # used below to strip leading '-' from config keys
     my @config = ( map { s/^-// if ++$i; $_ } @{ +shift } );
 
-    my ( @modules, @installed );
-    while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
+	my ( @modules, @installed, @modules_to_upgrade );
+	while (my ($pkg, $ver) = splice(@_, 0, 2)) {
 
-        # grep out those already installed
-        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
-            push @installed, $pkg;
-        }
-        else {
-            push @modules, $pkg, $ver;
-        }
-    }
+		# grep out those already installed
+		if (_version_cmp(_version_of($pkg), $ver) >= 0) {
+			push @installed, $pkg;
+			if ($UpgradeDeps) {
+				push @modules_to_upgrade, $pkg, $ver;
+			}
+		}
+		else {
+			push @modules, $pkg, $ver;
+		}
+	}
 
-    if ($UpgradeDeps) {
-        push @modules, @installed;
-        @installed = ();
-    }
+	if ($UpgradeDeps) {
+		push @modules, @modules_to_upgrade;
+		@installed          = ();
+		@modules_to_upgrade = ();
+	}
 
     return @installed unless @modules;  # nothing to do
     return @installed if _check_lock(); # defer to the CPAN shell
@@ -533,7 +537,7 @@ sub _install_cpan {
     while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
         ( $args{$opt} = $arg, next )
           if $opt =~ /^(?:force|notest)$/;    # pseudo-option
-        $CPAN::Config->{$opt} = $arg;
+        $CPAN::Config->{$opt} = $opt eq 'urllist' ? [$arg] : $arg;
     }
 
     if ($args{notest} && (not CPAN::Shell->can('notest'))) {
@@ -611,7 +615,7 @@ sub _under_cpan {
     require Cwd;
     require File::Spec;
 
-    my $cwd  = File::Spec->canonpath( Cwd::cwd() );
+    my $cwd  = File::Spec->canonpath( Cwd::getcwd() );
     my $cpan = File::Spec->canonpath( $CPAN::Config->{cpan_home} );
 
     return ( index( $cwd, $cpan ) > -1 );
@@ -927,4 +931,4 @@ END_MAKE
 
 __END__
 
-#line 1193
+#line 1197
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index 4ecf46b..d56e828 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -17,7 +17,7 @@ package Module::Install;
 #     3. The ./inc/ version of Module::Install loads
 # }
 
-use 5.005;
+use 5.006;
 use strict 'vars';
 use Cwd        ();
 use File::Find ();
@@ -31,7 +31,7 @@ BEGIN {
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -156,10 +156,10 @@ END_DIE
 sub autoload {
 	my $self = shift;
 	my $who  = $self->_caller;
-	my $cwd  = Cwd::cwd();
+	my $cwd  = Cwd::getcwd();
 	my $sym  = "${who}::AUTOLOAD";
 	$sym->{$cwd} = sub {
-		my $pwd = Cwd::cwd();
+		my $pwd = Cwd::getcwd();
 		if ( my $code = $sym->{$pwd} ) {
 			# Delegate back to parent dirs
 			goto &$code unless $cwd eq $pwd;
@@ -239,7 +239,7 @@ sub new {
 
 	# ignore the prefix on extension modules built from top level.
 	my $base_path = Cwd::abs_path($FindBin::Bin);
-	unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+	unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) {
 		delete $args{prefix};
 	}
 	return $args{_self} if $args{_self};
@@ -338,7 +338,7 @@ sub find_extensions {
 		if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) {
 			my $content = Module::Install::_read($subpath . '.pm');
 			my $in_pod  = 0;
-			foreach ( split //, $content ) {
+			foreach ( split /\n/, $content ) {
 				$in_pod = 1 if /^=\w/;
 				$in_pod = 0 if /^=cut/;
 				next if ($in_pod || /^=cut/);  # skip pod text
@@ -378,6 +378,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
 sub _read {
 	local *FH;
 	open( FH, '<', $_[0] ) or die "open($_[0]): $!";
+	binmode FH;
 	my $string = do { local $/; <FH> };
 	close FH or die "close($_[0]): $!";
 	return $string;
@@ -386,6 +387,7 @@ END_NEW
 sub _read {
 	local *FH;
 	open( FH, "< $_[0]"  ) or die "open($_[0]): $!";
+	binmode FH;
 	my $string = do { local $/; <FH> };
 	close FH or die "close($_[0]): $!";
 	return $string;
@@ -416,6 +418,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
 sub _write {
 	local *FH;
 	open( FH, '>', $_[0] ) or die "open($_[0]): $!";
+	binmode FH;
 	foreach ( 1 .. $#_ ) {
 		print FH $_[$_] or die "print($_[0]): $!";
 	}
@@ -425,6 +428,7 @@ END_NEW
 sub _write {
 	local *FH;
 	open( FH, "> $_[0]"  ) or die "open($_[0]): $!";
+	binmode FH;
 	foreach ( 1 .. $#_ ) {
 		print FH $_[$_] or die "print($_[0]): $!";
 	}
@@ -434,7 +438,7 @@ END_OLD
 
 # _version is for processing module versions (eg, 1.03_05) not
 # Perl versions (eg, 5.8.1).
-sub _version ($) {
+sub _version {
 	my $s = shift || 0;
 	my $d =()= $s =~ /(\.)/g;
 	if ( $d >= 2 ) {
@@ -450,12 +454,12 @@ sub _version ($) {
 	return $l + 0;
 }
 
-sub _cmp ($$) {
+sub _cmp {
 	_version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
-sub _CLASS ($) {
+sub _CLASS {
 	(
 		defined $_[0]
 		and
diff --git a/inc/Module/Install/AutoInstall.pm b/inc/Module/Install/AutoInstall.pm
index 6efe4fe..50d6080 100644
--- a/inc/Module/Install/AutoInstall.pm
+++ b/inc/Module/Install/AutoInstall.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index 802844a..78d7bdf 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 }
 
 # Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 22167b8..ae03eff 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -8,7 +8,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index bee0c4f..34d8485 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index 8310e4c..f4ee5f9 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 7052f36..38e08c4 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -133,7 +133,7 @@ sub makemaker_args {
 	return $args;
 }
 
-# For mm args that take multiple space-seperated args,
+# For mm args that take multiple space-separated args,
 # append an argument to the current list.
 sub makemaker_append {
 	my $self = shift;
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index 58430f3..f6e8e25 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -347,7 +347,7 @@ sub name_from {
 		^ \s*
 		package \s*
 		([\w:]+)
-		\s* ;
+		[\s|;]*
 		/ixms
 	) {
 		my ($name, $module_name) = ($1, $1);
@@ -705,7 +705,7 @@ sub _write_mymeta_data {
 	my @yaml = Parse::CPAN::Meta::LoadFile('META.yml');
 	my $meta = $yaml[0];
 
-	# Overwrite the non-configure dependency hashs
+	# Overwrite the non-configure dependency hashes
 	delete $meta->{requires};
 	delete $meta->{build_requires};
 	delete $meta->{recommends};
diff --git a/inc/Module/Install/Scripts.pm b/inc/Module/Install/Scripts.pm
index 419286f..ca1e072 100644
--- a/inc/Module/Install/Scripts.pm
+++ b/inc/Module/Install/Scripts.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Share.pm b/inc/Module/Install/Share.pm
index 4e2b602..cfa66d3 100644
--- a/inc/Module/Install/Share.pm
+++ b/inc/Module/Install/Share.pm
@@ -8,7 +8,7 @@ use ExtUtils::Manifest ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index eeaa3fe..e32ef8f 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index 85d8018..e511539 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.06';
+	$VERSION = '1.15';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }
diff --git a/lib/Jifty.pm b/lib/Jifty.pm
index a70500f..c25c82d 100644
--- a/lib/Jifty.pm
+++ b/lib/Jifty.pm
@@ -12,7 +12,7 @@ BEGIN {
     require Time::Local;
 
     # Declare early to make sure Jifty::Record::schema_version works
-    $Jifty::VERSION = '1.20221';
+    $Jifty::VERSION = '1.50430';
 }
 
 =head1 NAME

-----------------------------------------------------------------------


More information about the Jifty-commit mailing list