Hello community,

here is the log from the commit of package perl-App-CELL for openSUSE:Factory 
checked in at 2020-02-11 22:24:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-App-CELL (Old)
 and      /work/SRC/openSUSE:Factory/.perl-App-CELL.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-App-CELL"

Tue Feb 11 22:24:37 2020 rev:3 rq:773511 version:0.228

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-App-CELL/perl-App-CELL.changes      
2016-09-21 18:49:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-App-CELL.new.26092/perl-App-CELL.changes   
2020-02-11 22:25:42.915577759 +0100
@@ -1,0 +2,18 @@
+Tue Feb 11 18:36:49 UTC 2020 - Nathan Cutler <[email protected]>
+
+- updated to 0.228
+   see /usr/share/doc/packages/perl-App-CELL/Changes
+
+-------------------------------------------------------------------
+Mon Feb 10 22:00:50 UTC 2020 - Nathan Cutler <[email protected]>
+
+- updated to 0.225
+   see /usr/share/doc/packages/perl-App-CELL/Changes
+
+-------------------------------------------------------------------
+Mon Feb 10 21:51:51 UTC 2020 - Nathan Cutler <[email protected]>
+
+- updated to 0.223
+   see /usr/share/doc/packages/perl-App-CELL/Changes
+
+-------------------------------------------------------------------

Old:
----
  App-CELL-0.222.tar.gz

New:
----
  App-CELL-0.228.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-App-CELL.spec ++++++
--- /var/tmp/diff_new_pack.2WoMp7/_old  2020-02-11 22:25:43.651578163 +0100
+++ /var/tmp/diff_new_pack.2WoMp7/_new  2020-02-11 22:25:43.651578163 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-App-CELL
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,19 +12,19 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           perl-App-CELL
-Version:        0.222
+Version:        0.228
 Release:        0
 %define cpan_name App-CELL
 Summary:        Configuration, Error-handling, Localization, and Logging
 License:        BSD-3-Clause
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/App-CELL/
-Source0:        App-CELL-0.222.tar.gz
+Source0:        App-CELL-0.228.tar.gz
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
@@ -57,8 +57,8 @@
 Error-handling, Localization, and Logging framework for applications (or
 scripts) written in Perl.
 
-For details, read the POD in the App::CELL distro. For an introduction,
-read App::CELL::Guide.
+For details, read the POD in the the App::CELL manpage distro. For an
+introduction, read the App::CELL::Guide manpage.
 
 %prep
 %setup -q -n %{cpan_name}-%{version}

++++++ App-CELL-0.222.tar.gz -> App-CELL-0.228.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/Build.PL new/App-CELL-0.228/Build.PL
--- old/App-CELL-0.222/Build.PL 2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/Build.PL 2020-02-11 19:36:45.000000000 +0100
@@ -15,6 +15,7 @@
         dist => [ 'config' ], 
     },
     configure_requires => {
+        'File::ShareDir::Install' => 0.11,
         'Module::Build'      => 0,
         'Software::License'  => 0,
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/Changes new/App-CELL-0.228/Changes
--- old/App-CELL-0.222/Changes  2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/Changes  2020-02-11 19:36:45.000000000 +0100
@@ -869,3 +869,36 @@
 0.222 2016-09-14 07:32 CEST
 - build/ops: use File::ShareDir::Install in Makefile.PL
 
+0.223 2020-02-10 22:47 CET
+- Status: tweak whitespace in copyright notice
+- small spelling fixes in POD
+- cleanup: config/CELL_Config.pm: unify whitespace in set calls
+- README.rst: add more links to POD documentation
+- README.rst: attempt a bullet list
+- bin/CELLdemo.plx: fix demo script
+- Load.pm: make set() take flexible number of arguments
+
+0.224 2020-02-10 22:57 CET
+- Build.PL: add File::ShareDir::Install to configure_requires
+- Makefile.PL: delete the file
+
+0.225 2020-02-10 23:00 CET
+- MANIFEST: drop Makefile.PL
+
+0.226 2020-02-11 15:13 CET
+- bin: fix CELLdemo.plx script
+- Status.pm: implement dump method
+
+0.227 2020-02-11 17:53 CET
+- CELLdemo.plx: move to example/ directory
+- cleanup: add "cell => 1" to more log messages
+- CELL.pm: stop referring to non-existent variable
+- Guide.pm: mention how to log to STDERR
+- t/critic.t: add Perl::Critic-based testing
+- README.rst: add info for code maintainer
+
+0.228 2020-02-11 18:06 CET
+- README.rst: double up colons before indented passages
+- README.rst: mention "Check Manifest" tests explicitly
+- travis: try Perl 5.28 in addition to 5.24
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/MANIFEST new/App-CELL-0.228/MANIFEST
--- old/App-CELL-0.222/MANIFEST 2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/MANIFEST 2020-02-11 19:36:45.000000000 +0100
@@ -1,4 +1,3 @@
-bin/CELLdemo.plx
 Build.PL
 Changes
 config/CELL_Config.pm
@@ -17,7 +16,6 @@
 lib/App/CELL/Test/LogToFile.pm
 lib/App/CELL/Util.pm
 LICENSE
-Makefile.PL
 MANIFEST
 MANIFEST.SKIP
 META.json
@@ -34,12 +32,15 @@
 t/031-status_ok.t
 t/032-status-expurgate.t
 t/033-status-accessor.t
+t/034-status-dump.t
 t/050-load.t
 t/070-config.t
 t/100-cell.t
 t/110-site.t
 t/111-site.t
+t/critic.t
 t/manifest.t
+t/perlcriticrc
 t/pod-coverage.t
 t/pod.t
 WISHLIST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/MANIFEST.SKIP 
new/App-CELL-0.228/MANIFEST.SKIP
--- old/App-CELL-0.222/MANIFEST.SKIP    2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/MANIFEST.SKIP    2020-02-11 19:36:45.000000000 +0100
@@ -76,6 +76,9 @@
 \bOBS_PROJECT$
 \bVERSION_MODULE$
 
+# Avoid the example directory
+\bexample/
+
 # Avoid perlcritic, travis config files
 \B\.perlcriticrc\b
 \B\.travis.yml\b
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/META.json new/App-CELL-0.228/META.json
--- old/App-CELL-0.222/META.json        2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/META.json        2020-02-11 19:36:45.000000000 +0100
@@ -4,7 +4,7 @@
       "Smithfarm <[email protected]>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "Module::Build version 0.4205",
+   "generated_by" : "Module::Build version 0.4224",
    "license" : [
       "bsd"
    ],
@@ -27,6 +27,7 @@
       },
       "configure" : {
          "requires" : {
+            "File::ShareDir::Install" : "0.11",
             "Module::Build" : "0",
             "Software::License" : "0"
          }
@@ -48,14 +49,14 @@
    "provides" : {
       "App::CELL" : {
          "file" : "lib/App/CELL.pm",
-         "version" : "0.222"
+         "version" : "0.228"
       },
       "App::CELL::Config" : {
          "file" : "lib/App/CELL/Config.pm"
       },
       "App::CELL::Guide" : {
          "file" : "lib/App/CELL/Guide.pm",
-         "version" : "0.222"
+         "version" : "0.228"
       },
       "App::CELL::Load" : {
          "file" : "lib/App/CELL/Load.pm"
@@ -91,6 +92,6 @@
          "url" : "https://github.com/smithfarm/cell";
       }
    },
-   "version" : "0.222",
-   "x_serialization_backend" : "JSON::PP version 2.27203"
+   "version" : "0.228",
+   "x_serialization_backend" : "JSON::PP version 2.27400_02"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/META.yml new/App-CELL-0.228/META.yml
--- old/App-CELL-0.222/META.yml 2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/META.yml 2020-02-11 19:36:45.000000000 +0100
@@ -11,10 +11,11 @@
   Test::Warnings: '0'
   Try::Tiny: '0'
 configure_requires:
+  File::ShareDir::Install: '0.11'
   Module::Build: '0'
   Software::License: '0'
 dynamic_config: 1
-generated_by: 'Module::Build version 0.4205, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version 
2.150010'
 license: bsd
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -23,12 +24,12 @@
 provides:
   App::CELL:
     file: lib/App/CELL.pm
-    version: '0.222'
+    version: '0.228'
   App::CELL::Config:
     file: lib/App/CELL/Config.pm
   App::CELL::Guide:
     file: lib/App/CELL/Guide.pm
-    version: '0.222'
+    version: '0.228'
   App::CELL::Load:
     file: lib/App/CELL/Load.pm
   App::CELL::Log:
@@ -57,5 +58,5 @@
   bugtracker: https://github.com/smithfarm/cell/issues
   license: http://opensource.org/licenses/bsd-license.php
   repository: https://github.com/smithfarm/cell
-version: '0.222'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.012'
+version: '0.228'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/Makefile.PL 
new/App-CELL-0.228/Makefile.PL
--- old/App-CELL-0.222/Makefile.PL      2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/Makefile.PL      1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.4205
-require 5.012;
-use ExtUtils::MakeMaker;
-use File::ShareDir::Install;
-
-install_share dist => 'config';
-
-WriteMakefile(
-  'NAME' => 'App::CELL',
-  'VERSION_FROM' => 'lib/App/CELL.pm',
-  'PREREQ_PM' => {
-                   'Date::Format' => 0,
-                   'File::HomeDir' => 0,
-                   'File::Next' => 0,
-                   'File::ShareDir' => '1.00',
-                   'File::ShareDir::Install' => '0.11',
-                   'File::Spec' => 0,
-                   'File::Temp' => 0,
-                   'Log::Any' => 0,
-                   'Log::Any::Adapter' => '0.1',
-                   'Log::Any::Test' => 0,
-                   'Params::Validate' => 0,
-                   'Test::Warnings' => 0,
-                   'Try::Tiny' => 0
-                 },
-  'INSTALLDIRS' => 'site',
-  'EXE_FILES' => [
-                   'bin/CELLdemo.plx'
-                 ],
-  'PL_FILES' => {}
-);
-
-package App::CELL;
-use File::ShareDir::Install qw(postamble);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/README.rst 
new/App-CELL-0.228/README.rst
--- old/App-CELL-0.222/README.rst       2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/README.rst       2020-02-11 19:36:45.000000000 +0100
@@ -12,8 +12,58 @@
 Configuration, Error-handling, Localization, and Logging "framework"
 --------------------------------------------------------------------
 
-Documentation
-=============
+General Documentation
+=====================
 
-http://metacpan.org/pod/App::CELL
+* http://metacpan.org/pod/App::CELL::Guide
+
+* http://metacpan.org/pod/App::CELL
+* http://metacpan.org/pod/App::CELL::Config
+* http://metacpan.org/pod/App::CELL::Load
+* http://metacpan.org/pod/App::CELL::Log
+* http://metacpan.org/pod/App::CELL::Message
+* http://metacpan.org/pod/App::CELL::Status
+* http://metacpan.org/pod/App::CELL::Test
+* http://metacpan.org/pod/App::CELL::Test::LogToFile
+
+Maintainer Documentation
+========================
+
+Read on only if you are a maintainer of ``App::CELL``
+
+
+How to run tests
+----------------
+
+After cloning the git repo, you'll need to install all of the
+dependencies shown in Build.PL -- either using distro packages
+or ``cpanm``.
+
+Since ``App::CELL`` needs its configuration files installed
+in the system in order to run, install it::
+
+    $ perl Build.PL ; ./Build ; sudo ./Build install
+
+Then::
+
+    $ prove -l t/
+
+To include the "Perl Critic" and "Check Manifest" tests, do::
+
+    $ sudo cpanm Test::Perl::Critic
+    $ sudo cpanm Test::Check::Manifest
+    $ export TEST_AUTHOR=1
+    $ prove -l t/
+
+
+How to cut a release
+--------------------
+
+First, clone the ``smithfarm/dochazka.git`` repo::
+
+    $ git clone https://github.com/smithfarm/dochazka.git
+    $ cd dochazka
+
+From there, follow the instructions at
+https://github.com/smithfarm/dochazka#release-management
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/bin/CELLdemo.plx 
new/App-CELL-0.228/bin/CELLdemo.plx
--- old/App-CELL-0.222/bin/CELLdemo.plx 2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/bin/CELLdemo.plx 1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-#!perl
-use strict;
-use warnings;
-
-use App::CELL qw( $CELL $log $meta $core $site );
-use File::HomeDir;
-use File::Spec;
-use Log::Any::Adapter ('File', File::Spec->catfile ( 
-            File::HomeDir::my_home(), 'tmp', 'CELLdemo.log',
-        ) 
-    );
-
-print "App::CELL has not been initialized\n" if not 
$meta->CELL_META_INIT_STATUS_BOOL;
-$CELL->init( appname => 'CELLdemo', debug_mode => 1 );
-print "App::CELL has been initialized\n" if $meta->CELL_META_INIT_STATUS_BOOL;
-
-print "App::CELL supports the following languages: ", @{ 
$site->CELL_SUPPORTED_LANGUAGES }, "\n";
-
-print "CELL_CORE_SAMPLE: ", $site->CELL_CORE_SAMPLE, "\n";
-App::CELL::Config::set_site( 'CELL_CORE_SAMPLE', "foobar" );
-print "CELL_CORE_SAMPLE: ", $site->CELL_CORE_SAMPLE, "\n";
-$log->debug( "CELLtest.plx ending" );
-
-__END__
-
-=pod
-
-=head1 NAME
-
-demo.plx - demonstrate how App::CELL might be used
-
-=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/config/CELL_Config.pm 
new/App-CELL-0.228/config/CELL_Config.pm
--- old/App-CELL-0.222/config/CELL_Config.pm    2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/config/CELL_Config.pm    2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -49,17 +49,17 @@
 # CELL_DEBUG_MODE
 #        debug mode means that calls to $log->trace and $log->debug
 #        won't be suppressed - off by default
-set('CELL_DEBUG_MODE', 0);
+set( 'CELL_DEBUG_MODE', 0 );
 
 # boolean value expressing whether sharedir has been loaded
 # (defaults to 1 since the param is initialized only when distro sharedir
 # is loaded)
-set('CELL_SHAREDIR_LOADED', 1);
+set( 'CELL_SHAREDIR_LOADED', 1 );
 
 # CELL_SHAREDIR_FULLPATH
 #        full path of App::CELL distro sharedir
 #        overrided by site param when sharedir is loaded
-set('CELL_SHAREDIR_FULLPATH', '');
+set( 'CELL_SHAREDIR_FULLPATH', '' );
 
 # CELL_SUPP_LANG
 #        reference to a list of supported language tags
@@ -70,19 +70,19 @@
 # CELL_DEF_LANG
 #        the language that messages will be displayed in by default,
 #        when no language is specified by other means
-set('CELL_DEF_LANG', 'en');
+set( 'CELL_DEF_LANG', 'en' );
 
 # CELL_CORE_UNIT_TESTING
 #        used only for App::CELL unit tests
-set('CELL_CORE_UNIT_TESTING', [ 'nothing special' ] );
+set( 'CELL_CORE_UNIT_TESTING', [ 'nothing special' ] );
 
 # CELL_LOAD_SANITY_CORE
 #        used by App::CELL::Load::init sanity check
-set('CELL_LOAD_SANITY_CORE', 'Bar');
+set( 'CELL_LOAD_SANITY_CORE', 'Bar' );
 
 # CELL_CORE_SAMPLE
 #        sample core variable (for demo purposes)
-set('CELL_CORE_SAMPLE', 'layers of sediments' );
+set( 'CELL_CORE_SAMPLE', 'layers of sediments' );
 
 # CELL_LOG_SHOW_CALLER
 #        determine whether App::CELL::Log appends file and line number of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/config/CELL_Message_en.conf 
new/App-CELL-0.228/config/CELL_Message_en.conf
--- old/App-CELL-0.222/config/CELL_Message_en.conf      2016-09-14 
07:33:39.000000000 +0200
+++ new/App-CELL-0.228/config/CELL_Message_en.conf      2020-02-11 
19:36:45.000000000 +0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -52,9 +52,6 @@
 CELL_TEST_MESSAGE_WITH_ARGUMENT
 This a test message with a %s argument.
 
-CELL_BAD_PARAMHASH
-Function expects PARAMHASH but there is an odd number of arguments.
-
 CELL_SITEDIR_NOT_FOUND
 Site configuration directory %s (specified by %s) not found or not viable for 
reason: %s
 
@@ -104,12 +101,6 @@
 CELL_DIR_WALKED_ITEMS_LOADED
 Loaded ->%s<- %s from %s files in %s %s
 
-#CELL_ALREADY_INITIALIZED
-#App::CELL has already been initialized
-#
-CELL_ODD_ARGS
-Odd number of args passed to function %s (%s)
-
 # App::CELL::Load::init
 CELL_LOAD_SANITY_MESSAGE
 This is a sanity testing message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/config/CELL_MetaConfig.pm 
new/App-CELL-0.228/config/CELL_MetaConfig.pm
--- old/App-CELL-0.222/config/CELL_MetaConfig.pm        2016-09-14 
07:33:39.000000000 +0200
+++ new/App-CELL-0.228/config/CELL_MetaConfig.pm        2020-02-11 
19:36:45.000000000 +0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -57,9 +57,6 @@
 # list of sitedirs found and loaded
 set('CELL_META_SITEDIR_LIST', []);
 
-# boolean value whether App::CELL has been initialized
-set('CELL_META_INIT_STATUS_BOOL', 0);
-
 # date and time when App::CELL was initialized
 set('CELL_META_START_DATETIME', '');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/config/CELL_SiteConfig.pm 
new/App-CELL-0.228/config/CELL_SiteConfig.pm
--- old/App-CELL-0.222/config/CELL_SiteConfig.pm        2016-09-14 
07:33:39.000000000 +0200
+++ new/App-CELL-0.228/config/CELL_SiteConfig.pm        2020-02-11 
19:36:45.000000000 +0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Config.pm 
new/App-CELL-0.228/lib/App/CELL/Config.pm
--- old/App-CELL-0.222/lib/App/CELL/Config.pm   2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Config.pm   2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -269,7 +269,6 @@
                                'Line' => (caller)[2],
                                'Value' => $value,
                           };
-        #$log->debug( Dumper $meta );
     } elsif ( $self->{'CELL_CONFTYPE'} eq 'core' ) {
         if ( exists $core->{$param} ) {
             %ARGS = (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Guide.pm 
new/App-CELL-0.228/lib/App/CELL/Guide.pm
--- old/App-CELL-0.222/lib/App/CELL/Guide.pm    2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Guide.pm    2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -46,11 +46,11 @@
 
 =head1 VERSION
 
-Version 0.222
+Version 0.228
 
 =cut
 
-our $VERSION = '0.222';
+our $VERSION = '0.228';
 
 
 
@@ -62,19 +62,19 @@
 
 =head1 INTRODUCTION
 
-L<App::CELL> is the Configuration, Error-handling, Localization, and
-Logging (CELL) framework for applications written in Perl. In the
-L</APPROACH> section, this Guide describes the CELL approach to each of
-these four areas, separately. Then, in the </RATIONALE> section,
-it presents the author's reasons for bundling them together.
+L<App::CELL> is the Configuration, Error-handling, Localization, and Logging
+(CELL) framework for applications written in Perl. In the L</GENERAL APPROACH>
+section, this Guide describes the CELL approach to each of these four areas,
+separately. Then, in the L</RATIONALE> section, it presents the author's 
reasons
+for bundling them together.
 
 
 
 =head1 HISTORY
 
-CELL was written by Smithfarm in 2013 and 2014, initially as part of the
-Dochazka project [[ link to SourceForge ]]. Due to its generic nature, it
-was spun off into a separate project.
+The original L<App::CELL> was written by Nathan Cutler in 2013 and 2014,
+initially as part of the L<App::Dochazka::REST> project. Later, with a view to
+its generic nature, it was spun off into a separate project.
 
 
 
@@ -215,8 +215,11 @@
 
 To actually see your log messages, you have to do something like this:
 
-    use Log::Any::Adapter ('File', $ENV{'HOME'} . '/tmp/CELLtest.log');
+    use Log::Any::Adapter ( 'File', $ENV{'HOME'} . '/CELLtest.log' );
 
+or, even simpler:
+
+    use Log::Any::Adapter ( 'Stderr' );
 
 
 
@@ -244,7 +247,7 @@
 
 =head4 Core parameters
 
-As in Request Tracker, C<core> paramters have immutable values and are
+As in Request Tracker, C<core> parameters have immutable values and are
 intended to be used as "factory defaults", set by the developer, that the
 site administrator can override by setting site parameters. If the
 application is called FooApp, its core configuration settings could be
@@ -756,7 +759,7 @@
 
 =head2 Mutable and immutable parameters
 
-It is important to realize that, although core parameters can be overriden
+It is important to realize that, although core parameters can be overridden
 by site parameters, internally the values of both are immutable. Although
 it is possible to change them by cheating, the 'set' method of C<$core> and
 C<$site> will refuse to change the value of an existing core/site parameter.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Load.pm 
new/App-CELL-0.228/lib/App/CELL/Load.pm
--- old/App-CELL-0.222/lib/App/CELL/Load.pm     2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Load.pm     2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -138,26 +138,25 @@
 =cut
 
 sub init {
-    my @ARGS = @_;
-    # process args
-    return App::CELL::Status->new( 
-               level => 'err', 
-               code => 'Odd number of arguments provided to load routine',
-           ) if ( @ARGS % 2 );
-    my %ARGS = @ARGS;
+    my %ARGS = validate( @_, {
+        enviro => { type => SCALAR, optional => 1 },
+        sitedir => { type => SCALAR, optional => 1 },
+        verbose => { type => SCALAR, default => 0 },
+    } );
 
     # determine verbosity level
     my $args_string;
-    if ( @ARGS ) {
+    if ( %ARGS ) {
         $args_string = "with arguments: " . stringify_args( \%ARGS );
     } else {
         $args_string = "without arguments";
     }
     $meta->set('CELL_META_LOAD_VERBOSE', $ARGS{'verbose'} || 0);
 
-    $log->info( "Entering App::CELL::Load::init " . 
-        "from " . (caller)[0] . " $args_string",
-        cell => 1) if $meta->CELL_META_LOAD_VERBOSE;
+    $log->info(
+        "Entering App::CELL::Load::init from " . (caller)[0] . " $args_string",
+        cell => 1
+    ) if $meta->CELL_META_LOAD_VERBOSE;
 
     # check for taint mode
     if ( ${^TAINT} != 0 ) {
@@ -345,7 +344,7 @@
 
     foreach my $type ( 'meta', 'core', 'site' ) {
         my $fulltype = 'App::CELL::Config::' . $type;
-        #$log->debug( "\$fulltype is $fulltype");
+        #$log->debug( "\$fulltype is $fulltype", cell => 1 );
         my $file_list = find_files( $type, $confdir );
         foreach my $file ( @$file_list ) {
             no strict 'refs';
@@ -598,8 +597,10 @@
         # put first token on first line into $code
         my ( $code ) = $stanza->[0] =~ m/^\s*(\S+)/;
         if ( not $code ) {
-            $log->info( "ERROR: Could not process stanza ->"
-                . join( " ", @$stanza ) . "<- in $file" );
+            $log->info(
+                "ERROR: Could not process stanza ->" . join( " ", @$stanza ) . 
"<- in $file",
+                cell => 1,
+            );
             return 0;
         }
 
@@ -611,18 +612,26 @@
         }
         $text =~ s/^\s+//g;
         if ( $code and $lang and $text ) {
-            $log->debug( "Parsed message CODE ->$code<- LANG ->$lang<- TEXT 
->$text<-" );
+            $log->debug(
+                "Parsed message CODE ->$code<- LANG ->$lang<- TEXT ->$text<-",
+                cell => 1,
+            );
             # we have a candidate, but we don't want to overwrite
             # an existing entry with the same $code-$lang pair
             if ( $destref->{ $code }->{ $lang } ) {
                 my $existing_text = $destref->{ $code }->{ $lang }->{ 'Text' };
-                $log->error( "ERROR: not loading code-lang pair ->$code"
-                        . "/$lang<- with text ->$text<- because this would"
-                        . " overwrite existing pair from " .  
$destref->{$code}->{$lang}->{'File'} );
+                $log->error(
+                    "ERROR: not loading code-lang pair ->$code" .
+                    "/$lang<- with text ->$text<- because this would" .
+                    " overwrite existing pair from " . 
$destref->{$code}->{$lang}->{'File'},
+                    cell => 1,
+                );
                 return 0;
             } else {
-                $log->debug( "OK: loading code-lang pair ->$code/$lang<- with 
text ->$text<-" )
-                    if $meta->CELL_META_LOAD_VERBOSE;
+                $log->debug(
+                        "OK: loading code-lang pair ->$code/$lang<- with text 
->$text<-",
+                        cell => 1,
+                    ) if $meta->CELL_META_LOAD_VERBOSE;
                 $destref->{ $code }->{ $lang } = {
                     'Text' => $text,
                     'File' => $file,
@@ -631,16 +640,21 @@
                 return 1;
             }
         }
-        $log->error( "Parsed " . ( $code || "<NO_CODE>" ) . " but something 
missing!!" );
+        $log->error(
+            "Parsed " . ( $code || "<NO_CODE>" ) . " but something missing!!",
+            cell => 1,
+        );
         return 0;
     };
 
     # determine language from file name
     my ( $lang ) = $ARGS{'File'} =~ m/_Message_([^_]+).conf$/;
     if ( not $lang ) {
-        $log->warn( "Could not determine language from filename "
-            . "$ARGS{'File'} -- reverting to default language "
-            . "->en<-" );
+        $log->warn(
+            "Could not determine language from filename $ARGS{'File'} " .
+            "-- reverting to default language ->en<-",
+            cell => 1,
+        );
         $lang = 'en';
     }
 
@@ -655,7 +669,7 @@
     while ( <$fh> ) {
         chomp( $_ );
         $line += 1;
-        #$log->debug( "Read line =>$_<= from $ARGS{'File'}" );
+        #$log->debug( "Read line =>$_<= from $ARGS{'File'}", cell => 1 );
         $_ = '' if /^\s+$/;
         if ( $_ ) { 
             if ( ! /^\s*#/ ) {
@@ -677,8 +691,7 @@
     close $fh;
 
 #    $log->info( "Parsed and loaded $count configuration stanzas "
-#              . "from $ARGS{'File'}" );
-#    $log->info( Dumper( $ARGS{'Dest'} ) );
+#              . "from $ARGS{'File'}", cell => 1 );
     
     return $count;
 };
@@ -740,16 +753,48 @@
     
     # ideally this should be 'debug' for sharedir and 'info' for sitedir
     # but in this routine I have no easy way of telling one from the other
-    $log->debug( "Loading =>$ARGS{'File'}<=" );
+    $log->debug( "Loading =>$ARGS{'File'}<=", cell => 1 );
     if ( not ref( $ARGS{'Dest'} ) ) {
-        $log->warn("Something strange happened: destination is not a 
reference?!?");
+        $log->warn(
+            "Something strange happened: destination is not a reference?!?",
+            cell => 1,
+        );
     }
 
     {
         use Try::Tiny;
         try {
-            local *set = sub($$) {
-                my ( $param, $value ) = @_;
+            local *set = sub(@) {
+                my $number_of_params = scalar @_;
+                my @params = @_;
+                my $param;
+                my $value;
+                if ( $number_of_params == 0 ) {
+                    my $msg = "set() called with no parameters";
+                    $log->crit( $msg, cell => 1 );
+                    die $msg;
+                } elsif ( $number_of_params == 1 ) {
+                    $param = $params[0];
+                    $log->warn(
+                        "set() called with parameter $param but no value - set 
to \"\"",
+                        cell => 1,
+                    );
+                } elsif ( $number_of_params == 2 ) {
+                    $param = $params[0];
+                    $value = $params[1];
+                    $log->debug(
+                        "set() called with parameter $param and one value",
+                        cell => 1,
+                    );
+                } else {
+                    $param = $params[0];
+                    $value = $params[1];
+                    $log->warn(
+                        "set() called with $number_of_params parameters. Only 
" .
+                        "the first two were used; the rest were ignored.",
+                        cell => 1,
+                    );
+                }
                 my ( undef, $file, $line ) = caller;
                 $count += $self->_conf_from_config(
                     'Dest'  => $ARGS{'Dest'},
@@ -764,13 +809,16 @@
         catch {
            my $errmsg = $_;
            $errmsg =~ s/\012/ -- /g;
-           $log->err("CELL_CONFIG_LOAD_FAIL on file $ARGS{File} with error 
message: $errmsg");
-           $log->debug( "The count is $count" );
+           $log->err(
+               "CELL_CONFIG_LOAD_FAIL on file $ARGS{File} with error message: 
$errmsg",
+               cell => 1,
+           );
+           $log->debug( "The count is $count", cell => 1 );
            return $count;
         };
     }
     #$log->info( "Successfully loaded $count configuration parameters "
-    #          . "from $ARGS{'File'}" );
+    #          . "from $ARGS{'File'}", cell => 1 );
 
     return $count;
 }
@@ -812,10 +860,12 @@
 
     if ( keys( %{ $desthash->{ $param } } ) ) 
     {
-        $log->warn( "ignoring duplicate definition of config "
-                  . "parameter $param in line $line of config file $file "
-                  . "because it conflicts with a similar parameter in "
-                  . $desthash->{ $param }->{'File'} );
+        $log->warn(
+            "ignoring duplicate definition of config parameter $param in line 
$line " .
+            "of config file $file because it conflicts with a similar 
parameter in " .
+            $desthash->{ $param }->{'File'},
+            cell => 1,
+        );
         return 0;
     } else {
         $desthash->{ $param } = {
@@ -823,9 +873,11 @@
                                     'File'  => $file,
                                     'Line'  => $line,
                                 }; 
-        $log->debug( "Parsed parameter $param " .
-                    "from $file, line $line", suppress_caller => 1 )
-            if $meta->CELL_META_LOAD_VERBOSE;
+        $log->debug(
+                "Parsed parameter $param from $file, line $line",
+                cell => 1, 
+                suppress_caller => 1
+            ) if $meta->CELL_META_LOAD_VERBOSE;
         return 1;
     } 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Log.pm 
new/App-CELL-0.228/lib/App/CELL/Log.pm
--- old/App-CELL-0.222/lib/App/CELL/Log.pm      2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Log.pm      2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -37,6 +37,7 @@
 use 5.012;
 
 # IMPORTANT: this module must not depend on any other CELL modules
+#            except possibly App::CELL::Util
 use Data::Dumper;
 use File::Spec;
 use Log::Any;
@@ -288,7 +289,7 @@
     my %ARGS;
     %ARGS = @ARGS if @ARGS % 2 == 0;
     my ( $file, $line );
-    my $level;
+    my ( $level, $text );
     my $method_uc = uc $method;
     if ( $method_uc eq 'OK' or $method_uc eq 'NOT_OK' ) {
         $level = $method_uc;
@@ -318,14 +319,13 @@
         return unless $ENV{'CELL_DEBUG_MODE'};
     }
 
-    # if we were called with 'cell => 1', prepend '(CELL)' to the message
-    my $cell = '';
-    $cell = '(CELL) ' if $ARGS{cell};
-
     $log->init( ident => $ident ) if not $log_any_obj;
     die "No Log::Any object!" if not $log_any_obj;
     return if not $debug_mode and ( $method_lc eq 'debug' or $method_lc eq 
'trace' );
-    $log_any_obj->$method_lc( _assemble_log_message( "$cell$level: $msg_text", 
$file, $line ) );
+    if ( not $msg_text ) {
+        $msg_text = "<NO_TEXT>"
+    }
+    $log_any_obj->$method_lc( _assemble_log_message( "$level: $msg_text", 
$file, $line ) );
     return;
 }
 
@@ -338,12 +338,16 @@
 
 sub status_obj {
     my ( $self, $status_obj, $cell ) = @_;
-    my ( $level, $text, $caller, %ARGS );
+    my ( $level, $code, $text, $caller, %ARGS );
     $level  = $status_obj->level;
+    $code   = $status_obj->code;
     $text   = $status_obj->text;
     $caller = $status_obj->caller;
     $ARGS{caller} = $caller if $caller;
     $ARGS{cell} = $cell if $cell;
+    if ( $code ne $text ) {
+        $text = "($code) $text"
+    }
     $text = "<STATUS OBJECT WITHOUT TEXT OR CODE>" if not $text;
     #( $level, $text ) = _sanitize_level( $level, $text );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Message.pm 
new/App-CELL-0.228/lib/App/CELL/Message.pm
--- old/App-CELL-0.222/lib/App/CELL/Message.pm  2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Message.pm  2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -261,8 +261,6 @@
         $ARGS{text} = $text . " ARGS: $stringy";
     } else {
 
-        $log->debug( "About to try sprintf on ->$text<- with arguments 
->$stringy<-", 
-                     cell => 1 );
         # insert the arguments into the message text -- needs to be in an eval
         # block because we have no control over what crap the application
         # programmer might send us
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Status.pm 
new/App-CELL-0.228/lib/App/CELL/Status.pm
--- old/App-CELL-0.222/lib/App/CELL/Status.pm   2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Status.pm   2020-02-11 19:36:45.000000000 
+0100
@@ -1,22 +1,22 @@
-# ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
-# 
+# *************************************************************************
+# Copyright (c) 2014-2020, SUSE LLC
+#
 # All rights reserved.
-# 
+#
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are met:
-# 
+#
 # 1. Redistributions of source code must retain the above copyright notice,
 # this list of conditions and the following disclaimer.
-# 
+#
 # 2. Redistributions in binary form must reproduce the above copyright
 # notice, this list of conditions and the following disclaimer in the
 # documentation and/or other materials provided with the distribution.
-# 
+#
 # 3. Neither the name of SUSE LLC nor the names of its contributors may be
 # used to endorse or promote products derived from this software without
 # specific prior written permission.
-# 
+#
 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -28,7 +28,7 @@
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
-# ************************************************************************* 
+# *************************************************************************
 
 package App::CELL::Status;
 
@@ -38,6 +38,8 @@
 
 use App::CELL::Log qw( $log );
 use App::CELL::Util qw( stringify_args );
+use Data::Dumper;
+use Params::Validate qw( :all );
 use Storable qw( dclone );
 use Scalar::Util qw( blessed );
 use Try::Tiny;
@@ -169,40 +171,86 @@
 }
 
 
-#=head2 dump
-#
-#Dump an existing status object. Takes: PARAMHASH. Parameter 'to' determines
-#destination, which can be 'string' (default), 'log' or 'fd'.
-#
-#    # dump object to string
-#    my $dump_str = $status->dump();
-#       $dump_str = $status->dump( to => 'string' );
-#    
-#    # dump object to log
-#    $status->dump( to => 'log' );
-#
-#    # dump object to file descriptor
-#    $status->dump( fd => STDOUT );
-#    $status->dump( to => 'fd', fd => STDOUT );
-#
-#Always returns a true value.
-#
-#=cut
-#
-#sub dump {
-#    my ( $self, %ARGS ) = shift;
-#    if ( not %ARGS ) {
-#        $log->status_obj( $self );
-#    } else {
-#        if ( exists $ARGS{fd} ) {
-#            $log->debug( "Future dump-to-fd code goes here" );
-#        } else {
-#            $log->debug( "Doing nothing" );
-#        }
-#    }
-#
-#    return 1;
-#}
+=head2 dump
+
+Dump an existing status object. Takes: PARAMHASH. Parameter 'to' determines
+destination, which can be 'string' (default), 'log' or 'fd'.
+
+    # dump object to string
+    my $dump_str = $status->dump();
+       $dump_str = $status->dump( to => 'string' );
+
+    # dump object to log
+    $status->dump( to => 'log' );
+
+    # dump object to file descriptor
+    $status->dump( fd => STDOUT );
+    $status->dump( to => 'fd', fd => \*STDOUT );
+
+Always returns a true value.
+
+=cut
+
+sub dump {
+    my $self = shift;
+    my ( %ARGS ) = validate( @_, { 'to' => 0, 'fd' => 0 } );
+    my ( $action, $fh );
+    if ( not %ARGS ) {
+        $action = 'string';
+    } elsif ( exists $ARGS{'to'} ) {
+        if ( $ARGS{'to'} eq 'string' ) {
+            $action = 'string';
+        } elsif ( $ARGS{'to'} eq 'log' ) {
+            $action = 'log';
+        } elsif ( $ARGS{'to'} eq 'fd' and exists $ARGS{'fd'} ) {
+            $action = 'fd';
+            $fh = $ARGS{'fd'};
+        } else {
+            die "App::CELL->Status->dump() doing nothing (bad arguments)";
+        }
+    } elsif ( exists $ARGS{'fd'} ) {
+        $action = 'fd';
+        $fh = $ARGS{'fd'};
+    } else {
+        die "App::CELL->Status->dump() doing nothing (bad arguments)";
+    }
+    if ( $action eq "string" ) {
+        return _prep_dump_string(
+            level => $self->level,
+            code => $self->code,
+            text => $self->text,
+        );
+    } elsif ( $action eq "log" ) {
+        $log->status_obj( $self );
+    } elsif ( $action eq "fd" ) {
+        print $fh _prep_dump_string(
+            level => $self->level,
+            code => $self->code,
+            text => $self->text,
+        ), "\n";
+    } else {
+        die "App::CELL->Status->dump() doing nothing (bad things happening)";
+    }
+
+    return 1;
+}
+
+
+sub _prep_dump_string {
+    my %ARGS = validate( @_, {
+        'level' => 1,
+        'code' => 0,
+        'text' => 1,
+    } );
+
+    my $prepped_string = "$ARGS{'level'}: ";
+    if ( $ARGS{'code'} and $ARGS{'code'} ne $ARGS{'text'} ) {
+        $prepped_string .= "($ARGS{'code'}) ";
+    }
+    $prepped_string .= "$ARGS{'text'}";
+
+    return $prepped_string;
+}
 
 
 =head2 ok
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Test/LogToFile.pm 
new/App-CELL-0.228/lib/App/CELL/Test/LogToFile.pm
--- old/App-CELL-0.222/lib/App/CELL/Test/LogToFile.pm   2016-09-14 
07:33:39.000000000 +0200
+++ new/App-CELL-0.228/lib/App/CELL/Test/LogToFile.pm   2020-02-11 
19:36:45.000000000 +0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Test.pm 
new/App-CELL-0.228/lib/App/CELL/Test.pm
--- old/App-CELL-0.222/lib/App/CELL/Test.pm     2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Test.pm     2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -145,10 +145,9 @@
 sub _touch {
     my ( $file ) = @_;
     my $now = time;
-    local (*TMP);
 
     utime ($now, $now, $file)
-                || open (TMP, ">>$file")
+                || open my $fh, ">>", $file
                 || warn ("Couldn't touch file: $!\n");
 } 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL/Util.pm 
new/App-CELL-0.228/lib/App/CELL/Util.pm
--- old/App-CELL-0.222/lib/App/CELL/Util.pm     2016-09-14 07:33:39.000000000 
+0200
+++ new/App-CELL-0.228/lib/App/CELL/Util.pm     2020-02-11 19:36:45.000000000 
+0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -38,6 +38,7 @@
 
 use Data::Dumper;
 use Date::Format;
+use Params::Validate qw( :all );
 
 =head1 NAME
 
@@ -69,16 +70,18 @@
 
 =over 
 
-=item C<utc_timestamp>
-
 =item C<is_directory_viable>
 
+=item C<stringify_args>
+
+=item C<utc_timestamp>
+
 =back
 
 =cut 
 
 use Exporter qw( import );
-our @EXPORT_OK = qw( utc_timestamp is_directory_viable stringify_args );
+our @EXPORT_OK = qw( is_directory_viable stringify_args utc_timestamp );
 
 
 
@@ -93,15 +96,6 @@
 =head1 FUNCTIONS
 
 
-=head2 utc_timestamp
-
-=cut
-
-sub utc_timestamp {
-   return uc time2str("%Y-%m-%d %H:%M %Z", time, 'GMT');
-}
-
-
 =head2 is_directory_viable
 
 Run viability checks on a directory. Takes: full path to directory. Returns
@@ -160,5 +154,15 @@
     return $args_as_string;
 }
 
+
+=head2 utc_timestamp
+
+=cut
+
+sub utc_timestamp {
+   return uc time2str("%Y-%m-%d %H:%M %Z", time, 'GMT');
+}
+
+
 # END OF App::CELL::Util.pm
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/lib/App/CELL.pm 
new/App-CELL-0.228/lib/App/CELL.pm
--- old/App-CELL-0.222/lib/App/CELL.pm  2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/lib/App/CELL.pm  2020-02-11 19:36:45.000000000 +0100
@@ -1,5 +1,5 @@
 # ************************************************************************* 
-# Copyright (c) 2014-2015, SUSE LLC
+# Copyright (c) 2014-2020, SUSE LLC
 # 
 # All rights reserved.
 # 
@@ -54,11 +54,11 @@
 
 =head1 VERSION
 
-Version 0.222
+Version 0.228
 
 =cut
 
-our $VERSION = '0.222';
+our $VERSION = '0.228';
 
 
 
@@ -219,7 +219,7 @@
 =cut
 
 sub sitedir { 
-    return '' if not $App::CELL::Load::sitedir_loaded;
+    return '' if not $App::CELL::Load::sitedir;
     return $App::CELL::Load::sitedir;
 }
 
@@ -415,7 +415,7 @@
 
 =head1 LICENSE AND COPYRIGHT
 
-Copyright (c) 2014-2015, SUSE LLC
+Copyright (c) 2014-2020, SUSE LLC
 
 All rights reserved.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/001-log.t 
new/App-CELL-0.228/t/001-log.t
--- old/App-CELL-0.222/t/001-log.t      2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/t/001-log.t      2020-02-11 19:36:45.000000000 +0100
@@ -44,15 +44,15 @@
 $log->not_ok                  ( "NOT_OK log message" ); 
 $log->contains_only_ok( "NOT_OK log message", 'not_ok works' );
 
-my $status = App::CELL::Load::init( appname => 'CELLtest' );
+my $status = App::CELL::Load::init( verbose => 1 );
 is( $status->level, "WARN", "Messages from sharedir loaded" );
 
 $log->clear();
 $log->init( debug_mode => 0 );
 $status = App::CELL::Status->new( level => 'NOTICE', 
               code => 'CELL_TEST_MESSAGE' );
-diag( Dumper $status );
-$log->contains_only_ok( '\(CELL\) NOTICE: This is a test message', "NOTICE 
test message ok" );
+# diag( $status->dump() );
+$log->contains_only_ok( 'NOTICE: \(CELL_TEST_MESSAGE\) This is a test 
message', "NOTICE test message ok" );
 
 $log->trace("foo");
 $log->empty_ok("No trace when debug_mode off");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/034-status-dump.t 
new/App-CELL-0.228/t/034-status-dump.t
--- old/App-CELL-0.222/t/034-status-dump.t      1970-01-01 01:00:00.000000000 
+0100
+++ new/App-CELL-0.228/t/034-status-dump.t      2020-02-11 19:36:45.000000000 
+0100
@@ -0,0 +1,49 @@
+#!perl
+use 5.012;
+use strict;
+use warnings;
+use App::CELL qw( $CELL $log );
+use Data::Dumper;
+use Test::More;
+use Test::Warnings;
+
+#
+# To activate debugging, uncomment the following
+#
+#use App::CELL::Test::LogToFile;
+#$log->init( debug_mode => 1 );
+
+my $status;
+$log->init( ident => 'CELLtest' );
+$log->info( "-------------------------------------------------" );
+$log->info( "---             034-status-dump.t             ---" );
+$log->info( "-------------------------------------------------" );
+
+$log->info("*****");
+$log->info("***** TESTING \$CELL->load" );
+is( $CELL->loaded, 0, "CELL not loaded yet" );
+$status = $CELL->load( verbose => 1 );
+is( $CELL->loaded, 'SHARE', "CELL sharedir loaded" );
+# load routine will generate a warning because no sitedir specified,
+# but App::CELL's own sharedir will be loaded
+is( $status->level, 'WARN' );
+
+$log->info("*****");
+$log->info("***** TESTING \$status->dump without args" );
+$status = $CELL->status_warn( 'CELL_TEST_MESSAGE' );
+# diag( Dumper $status );
+$status->dump( 'to' => 'log' );
+my $dumped_string = $status->dump();
+is( $dumped_string, "WARN: (CELL_TEST_MESSAGE) This is a test message", 
"Message without args logged correctly to string" );
+$status->dump( fd => \*STDOUT );
+
+$log->info("*****");
+$log->info("***** TESTING \$status->dump with args" );
+$status = $CELL->status_warn( 'CELL_UNKNOWN_MESSAGE_CODE', args => [ 'bad news 
bears' ] );
+# diag( Dumper $status );
+$status->dump( 'to' => 'log' );
+$dumped_string = $status->dump();
+is( $dumped_string, "WARN: (CELL_UNKNOWN_MESSAGE_CODE) Unknown system message 
->bad news bears<-", "Message with args logged correctly to string" );
+$status->dump( fd => \*STDOUT );
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/050-load.t 
new/App-CELL-0.228/t/050-load.t
--- old/App-CELL-0.222/t/050-load.t     2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/t/050-load.t     2020-02-11 19:36:45.000000000 +0100
@@ -5,9 +5,7 @@
 use App::CELL::Load;
 use App::CELL::Log qw( $log );
 use App::CELL::Test;
-use Data::Dumper;
 use File::Spec;
-#use File::Touch;
 use Test::More;
 use Test::Warnings;
 
@@ -110,13 +108,12 @@
 set( 'TEST_PARAM_3', { 'one' => 1, 'two' => 2 } );
 set( 'TEST_PARAM_1', 'Now is the winter of our discontent' );
 set( 'TEST_PARAM_4', sub { 1; } );
-set( 'UNDEFINED_VALUE', undef );
 1;
 EOS
 App::CELL::Test::populate_file( $full_path, $stuff);
 my %params = ();
 my $count = App::CELL::Load::parse_config_file( File => $full_path, Dest => 
\%params );
-is( keys( %params ), 5, "Correct number of parameters loaded from file" );
+is( keys( %params ), 4, "Correct number of parameters loaded from file" );
 is( $count, keys( %params ), "Return value matches number of parameters 
loaded");
 ok( exists $params{ 'TEST_PARAM_1' }, "TEST_PARAM_1 loaded from file" );
 is( $params{ 'TEST_PARAM_1' }->{ 'Value' }, "Fine and dandy", "TEST_PARAM_1 
has the right value" );
@@ -126,20 +123,26 @@
 
 $log->info("*****");
 $log->info("***** TESTING wrong number of arguments in set" );
+$return_list = App::CELL::Load::find_files( 'site', $tmpdir );
+is( scalar @$return_list, 1, "Found right number of site config files");
+#diag( "scalar \@\$return_list == ", scalar @$return_list );
+$full_path = $return_list->[0];
 $stuff = <<'EOS';
 # This is a test
-set( 'TEST_PARAM_1', 'Fine and dandy' );
-set( 'TEST_PARAM_2', [ 0, 1, 2 ] );
-set( 'TEST_PARAM_3', { 'one' => 1, 'two' => 2 } );
-set( 'TEST_PARAM_1', 'Now is the winter of our discontent' );
-set( 'TEST_PARAM_4', sub { 1; } );
-set( 'WRONG_NUMBER_OF_ARGUMENTS', 1, 2 );
+set( 'ONE_ARGUMENT_NO_VALUE' );
+set( 'TOO_MANY_ARGUMENTS', 1, 2, 3 );
+set( 'EXPLICIT_UNDEF', undef );
 1;
 EOS
 $count = App::CELL::Test::populate_file( $full_path, $stuff );
 ok( $count > 0, "$count characters written; greater than zero" );
 %params = ();
 $count = App::CELL::Load::parse_config_file( File => $full_path, Dest => 
\%params );
-is( $count, 0 ); # FIXME
+is( $count, 3 );
+is( keys( %params ), 3, "Correct number of parameters loaded from file" );
+is( $count, keys( %params ), "Return value matches number of parameters 
loaded");
+is( $params{ 'ONE_ARGUMENT_NO_VALUE' }->{ 'Value' }, undef, 
'ONE_ARGUMENT_NO_VALUE is undef' );
+is( $params{ 'TOO_MANY_ARGUMENTS' }->{ 'Value' }, 1, 'TOO_MANY_ARGUMENTS is 1' 
);
+is( $params{ 'EXPLICIT_UNDEF' }->{ 'Value' }, undef, 'EXPLICIT_UNDEF is undef' 
);
 
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/070-config.t 
new/App-CELL-0.228/t/070-config.t
--- old/App-CELL-0.222/t/070-config.t   2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/t/070-config.t   2020-02-11 19:36:45.000000000 +0100
@@ -43,7 +43,7 @@
 $status = $meta->CELL_META_TEST_PARAM_BLOOEY;
 is( $status, "Blooey", "Blooey has the right value via get_param" );
 
-$status = App::CELL::Load::init( appname => 'CELLtest' );
+$status = App::CELL::Load::init( verbose => 1 );
 is( $status->level, "WARN", "Load without sitedir gives warning" );
 
 # 'exists' returns undef on failure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/critic.t 
new/App-CELL-0.228/t/critic.t
--- old/App-CELL-0.222/t/critic.t       1970-01-01 01:00:00.000000000 +0100
+++ new/App-CELL-0.228/t/critic.t       2020-02-11 19:36:45.000000000 +0100
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+use File::Spec;
+use Test::More;
+use English qw(-no_match_vars);
+ 
+if ( not $ENV{TEST_AUTHOR} ) {
+    my $msg = 'Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.';
+    plan( skip_all => $msg );
+}
+ 
+eval { require Test::Perl::Critic; };
+ 
+if ( $EVAL_ERROR ) {
+   my $msg = 'Test::Perl::Critic required to criticise code';
+   plan( skip_all => $msg );
+}
+ 
+my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' );
+Test::Perl::Critic->import( -profile => $rcfile );
+all_critic_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/manifest.t 
new/App-CELL-0.228/t/manifest.t
--- old/App-CELL-0.222/t/manifest.t     2016-09-14 07:33:39.000000000 +0200
+++ new/App-CELL-0.228/t/manifest.t     2020-02-11 19:36:45.000000000 +0100
@@ -8,7 +8,7 @@
     plan( skip_all => "Detected Travis environment - skipping test" );
 }
 
-unless ( $ENV{RELEASE_TESTING} ) {
+unless ( $ENV{TEST_AUTHOR} ) {
     plan( skip_all => "Author tests not required for installation" );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-CELL-0.222/t/perlcriticrc 
new/App-CELL-0.228/t/perlcriticrc
--- old/App-CELL-0.222/t/perlcriticrc   1970-01-01 01:00:00.000000000 +0100
+++ new/App-CELL-0.228/t/perlcriticrc   2020-02-11 19:36:45.000000000 +0100
@@ -0,0 +1,12 @@
+severity = 5
+verbose = %f: [%p] %m at line %l, column %c.\n
+theme = core
+
+[TestingAndDebugging::RequireUseWarnings]
+severity = 6
+
+[TestingAndDebugging::ProhibitNoStrict]
+allow = refs
+
+[Subroutines::RequireArgUnpacking]
+short_subroutine_statements = 3


Reply via email to