Revision history for perl-CELL

NOTE: versions 0.001-0.040 were developed in the 'dochazka' project on
SourceForge (under the top-level directory 'api'). Versions 0.041 and
later are in the perl-CELL project repo.

0.001   2014-JAN-01 16:47
- start coding

0.002   2014-JAN-01 19:43
- add "version bump" functionality to dev.sh script

0.003   2014-JAN-01 23:22
- work on initialization

0.004   2014-JAN-02 15:13
- revamp CELL.pm
- use Log::Fast instead of Sys::Syslog
- some changes to top-level README

0.005   2014-JAN-03 11:52
- break out logging into CELL::Log
- lots of work on CELL::Config

0.006   2014-JAN-03 15:23
- finish _import_sysconfig in CELL::Config

0.007   2014-JAN-03 23:01
- refactor _import_sysconfig ( broke it into pieces, 
  iterate over array of subroutine references )

0.008   2014-JAN-04 17:00
- first crack at Config::Error (inspired by brian d foy)

0.009   2014-JAN-07 12:48
- point release

0.010    2014-JAN-07 16:57
- refactor CELL.pm
- refactor and merged Error.pm and Log.pm
- start refactoring Config.pm

0.011    2014-JAN-08 03:28
- get 'make test' running on refactored modules
- WIP: ticket #25

0.012    2014-JAN-08 10:38
- fix argument passing issue with CELL::Error->new

0.013    2014-JAN-08 16:18
- first crack at CELL::Message (mostly POD for now)

0.014    2014-JAN-09 17:37
- CELL::Message now working; testing in progress

0.015    2014-JAN-09 21:54
- CELL::Config tweaked 
- ready to continue working ticket #13

0.016    2014-JAN-10 23:45
- Config.pm now loading core configuration parameters

0.017    2014-JAN-11 05:40
- Message.pm refinements
- bring in OBS stuff

0.018    2014-JAN-11 20:09
- work on OBS stuff (including new release.sh script)

0.019    2014-JAN-11 22:27
- close tickets #13 and #17

0.020  2014-JAN-12 15:50
- start testing api/bin/release.sh

0.021  2014-JAN-12 15:56
- minor change to api/bin/release.sh

0.022  2014-JAN-12 16:26
- implement CELL->config method

0.023  2014-JAN-12 18:16
- implement CELL::Config::config and CELL->config
- implement CELL::Config::set_meta and CELL->set_meta
- basic unit tests for the above

0.024  2014-JAN-12 21:19
- add more unit tests and configuration parameters 

0.025  2014-JAN-13 09:00  
- work on ticket #38

0.026  2014-JAN-13 10:29
- move former api/bin/ to api-dev/ to keep api/ free of distractions

0.027  2014-JAN-13 10:32
- another tweak on api-dev/release.sh

0.028  2014-JAN-13 12:09
- make API pass manifest.t

0.029  2014-JAN-13 12:52
- add unit test for CELL::Util and fix bug in that module

0.030  2014-JAN-13 15:30
- rename CELL::Error to CELL::Status

0.031  2014-JAN-13 21:47
- stop using tags after they possibly cause origin to get into detached
  HEAD state

0.032  2014-JAN-14 10:14
- revamp Status.pm to enable "OK" status level 

0.033  2014-JAN-14 11:58
- add class diagram
- start working on ticket #44 "Add an 'OK' status to CELL::Status"
- refactor CELL.pm

0.034  2014-JAN-14 15:47
- revamp Status.pm 

0.035  2014-JAN-14 16:56
- start splitting off CELL::Config::Meta

0.036  2014-JAN-14 21:31
- finish initial write-up of Meta.pm 

0.037  2014-JAN-15 11:00
- work on ticket #44 

0.038  2014-JAN-15 16:21
- work on tickets

0.039  2014-JAN-15 17:07
- now passing all unit tests

0.040  2014-JAN-16 03:43
- Log.pm: add new 'arbitrary' function so we can write higher-level log
  messages without requiring Status.pm
- Status.pm: avert possible circular dependency problems

0.041  2014-JAN-17 19:00
- change all occurrences of 'dochazka' to 'CELL'

0.042  2014-JAN-17 19:21
- debug release scripts

0.043  2014-JAN-17 23:19
- start initial write-up of CELL.pm (mainly POD)

0.044  2014-JAN-21 09:44
- start implementing new features:
  - multiple config files
  - flexible names
  - config files can be in subdirectories of config dir
  - meta parameters in config files instead of hard-coded
  - messages in config files instead of hard-coded

0.045  2014-JAN-21 12:02
- Config.pm: implement get_param() and set_meta()
- Load.pm: first crack at find_files()

0.046  2014-JAN-22 00:12
- debugging in progress

0.047  2014-JAN-22 00:27
- start testing Message.pm

0.048  2014-JAN-22 20:07
- implement unit test for CELL::Load::find_files
- fix some bugs found by unit testing

0.049  2014-JAN-22 22:42
- move get_and_load_config_files to CELL::Load and prepare for use with
  'message' type config files

0.050  2014-JAN-22 23:17
- make Load.pm deal with messages better 

0.051  2014-JAN-23 23:03
- new Test.pm module for re-useable testing code
- change t/03-load.pm to use the new module
- start working on new format for message config files
  (staging/message-slurp.plx)

0.052  2014-JAN-25 11:58
- put message file parsing code into Load.pm
- write some unit tests for parsing message files and configuration files
- start CELL Localization Guide (in staging/)

0.053  2014-JAN-27 11:39
- implement caching in find_files
- pass over (and log) duplicate config parameters

0.054  2014-JAN-27 21:52
- put finishing touches on Load.pm
- add a number of unit tests for Load.pm

0.055  2014-JAN-28 11:58
- put standard CELL configuration files in dist/config/
- fixed a weird glitch in dist/dev.sh

0.056  2014-JAN-28 12:44
- fix bugs

0.057  2014-JAN-28 15:22
- in Load.pm, make parse_message_file get language tag from the
  filename, so the user doesn't have to enter a language tag for each
  message she defines

0.058  2014-JAN-28 15:23
- fix release script
- add language tags verbiage to Localization Guide

0.059  2014-JAN-28 17:00
- work on Localization Guide 

0.060  2014-JAN-29 09:53
- caress Load.pm and get ready to start testing CELL::Config::init 

0.061  2014-JAN-29 11:40
- unit tests for Load.pm more or less done

0.062  2014-JAN-29 13:20
- Config.pm: _import_config strip double quotes as well as single
- Log.pm: do not use CELL::Status, convert package variable to state
- Status.pm: include message object in status object
- add more unit tests (almost ready to test CELL::Config::init)

0.063  2014-JAN-29 16:23
- CELL::Config::init working now
- CELL::Message::init working now 

0.064  2014-JAN-30 10:02
- CELL.pm: work on POD and code
- Log.pm: accept lower/mixed-case level
- Util.pm: no newline in timestamp
- 07-cell.t: new unit tests for CELL.pm
- Config.pm: fix regex

0.065  2014-JAN-30 13:02
- Config.pm: don't use meta param for re-entrantness
- Message.pm: make init be re-entrant and report errors
- put unit test of CELL::Message::init in the right file

0.065  2014-JAN-30 15:26
- rename to App::CELL (from just plain CELL) 

0.066  2014-JAN-31 16:54
- refactor Localization Guide
- draft Apologia (attempt to justify App::CELL's existence to CPAN gurus)

0.067  2014-APR-25 17:21
- start work on File::ShareDir based 'config' directory (ticket #17)

0.068  2014-APR-26 22:11
- some minor changes left over on laptop from months ago
- fix bug in Perl script used by release.sh to determine the current version

0.069  2014-APR-26 22:48
- initial File::ShareDir support 

0.070  2014-MAY-03 12:05
- dependencies to Makefile.PL
- File::ShareDir to testing dependencies in t/00-dependencies.t

0.071  2014-MAY-04 23:22
- basic ShareDir functionality (ticket #17) 

0.071  2014-MAY-05 16:30
- separate CELL and site configuration directories (rewrite config/README)
- try to pass CPAN Testers smoke test

0.072  2014-MAY-05 21:20
- edit Changes file for style
- clean up comments in release script

0.073  2014-MAY-05 22:10
- fix bug: "App::CELL->init not processing argument correctly"
- note that dist/dev.sh bump depends on Perl::Version

0.074  2014-MAY-05 22:10
- oops (no changes)

0.075  2014-MAY-06 12:26
- remove obsolete dependencies 

0.076  2014-MAY-06 17:33
- add some error-checking to the release script
- use regexp quote-like operator instead of single-quotes (Load.pm)
- chang App::CELL::Load::find_file so it can walk multiple directories
  (ticket #18)

0.077  2014-MAY-07 22:46
- add tickets/ directory with README
- Status.pm: croak on CRIT errors
- start implementing major design change: first, load App::CELL's own
  internal configuration from the distro sharedir and _then_ load from site
  configuration directory if it exists

0.078  2014-MAY-08 21:16
- Status.pm: remove croaking on CRIT errors
- move directory functions from Config.pm to Load.pm
- move is_directory_viable() to Util.pm
- major refactoring to implement design change referred to in 0.077

0.079  2014-MAY-08 22:33
- clean up unit test files
- add new unit test 003-debug.t
- minor POD fix in CELL.pm
- Config.pm: initialize meta, core, site package variables; fix bug in
  get_param
- Load.pm: improve error checking; more useful debugging messages

0.080  2014-MAY-08 23:09
- Config.pm: fix bug "get_param, set_meta, and _set_core_site do not
  respect hash structure"

0.081  2014-MAY-09 10:23
- general cleanup

0.082  2014-MAY-09 14:16
- Test.pm: 
  - new cleartmpdir function, use it in unit tests
  - write proper SYNOPSIS
  - new unit tests (t/003-test.t)
- t/030-status.t: add more tests
- update dependencies in t/000-dependencies.t and Makefile.PL
- expand release/README

0.083  2014-MAY-09 17:15
- CELL.pm: remove 'status_ok' and 'status' wrappers
- CELL_Config.pm and CELL_MetaConfig.pm: prefix all params with 'CELL_',
  add comments
- Message.pm: fix bug "'new' method suffers from flawed logic"

0.084  2014-MAY-09 17:47
- CELL.pm: move 'config' logic to Config.pm and make it a wrapper
- Message.pm: add some comments
- t/100-cell.t: add a test, fix a test

0.085  2014-MAY-09 22:23
- Config.pm: improve error-checking in get_param
- Log.pm: add $log_level package variable, add 'set_log_level' subroutine,
- Load.pm: revamp SYNOPSIS, fix POD for 'init' subroutine (close ticket
  #19), fix white-space bug in parse_message_file
- CELL.pm: change re-entrancy processing, avoid referring to config params
  and messages before they have been loaded
- CELL_Message_en.pm: prefix all messages with CELL_ (close ticket #9)

0.086  2014-MAY-09 23:21
- t/050-find-and-parse.t: add whitespace to trigger bug in event of
  regression
- config/CELL_Message_en.conf: add CELL_OVERWRITE_META_PARAM message
- Config.pm: use CELL_OVERWRITE_META_PARAM
- Load.pm: make functions and log messages easier to follow
- open bug #23 Put sprintf into eval block in Message->new

0.087  2014-MAY-11 13:36
- (Perl::Critic) add .perlcriticrc, disable "no strict 'refs'" warnings
- (Perl::Critic) use two-argument form of 'bless' 
- (Perl::Critic) convert nested subroutine into anonymous subroutine 
- (Perl::Critic) avoid explicit 'return undef'
- replace 'eval' with Try::Tiny, update dependencies
- Message.pm turn warnings into exceptions in 'new' (close ticket #23)

0.088  2014-MAY-11 17:15
- add 'Testing with Perl::Critic' section to release README
- (Perl::Critic) unpack @_ in CELL.pm
- (Perl::Critic) use @ARGV with 'local' in Test.pm
- Log.pm: remember $ident and re-use it when necessary
- Message.pm: add 'error' attribute to message class, add 'stringify'
  method to message class revamp error checking in 'new'

0.089  2014-MAY-11 20:01
- implement major design change: migrate to Log::Any (ticket #27)
- t/001-log.t: rewrite to use Log::Any::Test
- remove dependency on Log::Fast

0.090  2014-MAY-11 21:23
- Log.pm: rename 'configure' subroutine to 'init', tweak POD,
  expand permitted levels (ticket #28)
- audit all calls to App::CELL::Status->new (ticket #5)

0.091  2014-MAY-11 22:29
- CELL_Config.pm, Message.pm: add CELL_SUPPORTED_LANGUAGES and
  CELL_LANGUAGE core params (ticket #15)
- CELL.pm, t/100-cell.t: initialize package variables in Message.pm
- Config.pm: unpack @_ in 'config' subroutine

0.092  2014-MAY-12 13:18
- Load.pm: improve error checking in 'init' (ticket #21); tweak variable
  names, subroutine names, param names, message names; fix return status
- tweak param names, variable names, message names in unit test files
- t/004-debug.t: indicate how to activate logging in a test

0.093  2014-MAY-12 16:48
- completely revamp logging in light of migration to Log::Any

0.094  2014-MAY-12 23:36
- t/004-log.t: use $ENV{'HOME'} instead of ~
- CELL.pm, Load.pm: optionally take PARAMHASH (appname, sitedir)

0.095  2014-MAY-13 17:10
- add bin/ directory and start demo.plx script there
- CELL_Message_en.conf: add some testing messages
- t/001-log.t: test logging via Status->new with testing message
- Log.pm: attempt to inherit from Log::Any (not working yet)

0.096  2014-MAY-14 22:23
- bin/demo.plx now actually does something
- Config.pm: removed obsolete dependencies
- t/004-debug.plx: remove obsolete CELL_DEBUG_MODE test and add comment
  explaining purpose of this unit test file, so I'm not tempted to delete
  it later

0.097  2014-MAY-15 14:04
- CELL_Config.pm: get rid of CELL_DEBUG_MODE
- Load.pm: generate debug message for each meta/core/site param loaded;
  make process_stanza slightly less verbose; improve debug messages
  generated by sitedir search routine; no longer look in home directory or
  /etc/sysconfig because application developer can now specify a literal
  sitedir path to App::CELL->init
- Makefile.PL, t/000-dependencies.t: remove dependency on Config::General
- Status.pm: log using $log object; fix bug in 'log' method that was
  causing "at [FILE] line [LINE]" to be appended twice; add 'text' accessor
  method

0.098  2014-MAY-15 21:56
- Load.pm: clean up get_sitedir some more -- now, application is expected
  to specify sitedir in call to 'App::CELL->init' by providing either a
  'sitedir' parameter specifying a full path, or an 'enviro' parameter
  specifying name of environment variable containing a full path. The only
  alternative considered is the CELL_SITEDIR environment variable. This
  makes more sense than what we were attempting before, and streamlines the
  code.
- t/050-find-and-parse.t renamed -> t/050-load.t
- t/070-config.h: rewriting (ticket #33) - WIP
- add LICENSE and WISHLIST files to dist/ directory

0.099  2014-MAY-16 10:42
- Load.pm: tweaked log messages, fixed bug in _report_load_status: "success
  log message not being logged because status code 'OK'"

0.100  2014-MAY-16 21:29
- t/070-config.t: add more tests (ticket #33)
- Status.pm: add boolean methods for 'notice', 'warn', 'err', etc.
- config/: add CELL_SiteConfig.pm, add unit testing params

0.101  2014-MAY-20 10:48
- t/050-load.t: fix diagnostic log messages
- add LICENSE file with GPLv3 text
- add item to WISHLIST

0.102  2014-MAY-21 12:45
- CELL.pm, Log.pm: minor cleanup
- Status.pm: fix bug in 'new' -> "status log messages displaying the wrong
  caller"

0.103  2014-MAY-22 21:56
- Log.pm: change initialization routine so it takes a PARAMHASH, and added
  a 'show_caller' param to it
- adapted CELL.pm and t/* to change in Log.pm

0.104  2014-MAY-22 22:17
- CELL.pm: fixed bug "App::CELL->init not recognizing appname param"
- Log.pm: add 'ident' accessor routine
- demo.plx: expanded demo script

0.105  2014-MAY-23 21:16
- CELL.pm, CELL_Config.pm: move verbiage to doc/guide.pod, implement
  CELL_LOG_SHOW_CALLER
- Config.pm: spam the log less
- Message.pm: cleanup 'new', make it return a status object (ticket #26)
- Status.pm: make it handle status object from Message->new
- t/005-message.t: adapt tests, add more tests

0.106  2014-MAY-23 22:54
- CELL.pm: honor "debug_mode" flag 
- Log.pm: honor debug_mode flag, replace a bunch of wrappers with a single
  AUTOLOAD routine
- t/001-log.t: add some debug_mode-related tests

0.107  2014-MAY-24 10:19
- Load.pm: add sanity check to constructor (ticket #21)
- config/: fix spelling of params, add params for sanity check
- Message.pm: tell Data::Dumper to not include any newlines

0.108  2014-MAY-24 12:26
- Load.pm: suppress caller info in "parsed message" $log->debug call,
  generate more useful warnings/errors in find_files
- Log.pm: expand AUTOLOAD routine, improve caller handling, eliminate ok
  and not_ok wrappers
- Message.pm: improve caller handling in constructor
- Status.pm: improve caller handling in constructor, make 'caller' accessor
  return array ref instead of array
- t/070-config.t: turn on debug_mode
- Config.pm, CELL_Message_en.conf: add value to CELL_OVERWRITE_META_PARAM,
  remove unused error/warning messages

0.109  2014-MAY-24 15:18
- Config.pm: cleanup 'get_param'
- Log.pm: work on POD, fix AUTOLOAD so it passes all calls through to
  Log::Any, applying pre-processing selectively.
- t/001-log.t: get rid of $log_any_obj since we can now access testing
  methods through the App::CELL::Log singleton
- Guide.pm: new POD-only module with new high-level introduction to
  App::CELL
- remove doc/ directory from the distro

0.110  2014-MAY-24 18:04
- Guide.pm: include verbiage from config/README (ticket #22) and
  staging/CELL-Localization-Guide.pod (ticket #13)
- config/README: make it a stub

