Revision history for Ubic

1.43_04 2012-06-20
    * fix SimpleDaemon to work on perl <5.14

1.43_03 2012-06-20
    * fix tests for systems which don't set LOGNAME or USERNAME

1.43_02 2012-06-19
    * dependency on BSD::Resource is optional in code and tests

1.43_01 2012-06-19
    * ulimit support in SimpleDaemon
    * json-style configs
    * 'start_hook' option in start_daemon()

1.43    2012-06-16
    * actually merge the fix

1.42    2012-06-15
    * critical bugfix: fix credentials application order
    (all non-root services were broken when operated from root, 1.39-1.41 releases were affected)

1.41    2012-06-11
    * pid2cmd doesn't die on errors
    * Ubic::Run supports the explicit service names
    * lots of minor POD spelling fixes and improvements

1.40    2012-05-27
    * improve tests stability

1.39    2012-05-23
    * new SimpleDaemon options:
     - reload_signal
     - daemon_user/daemon_group
    * 'credentials' option in start_daemon()
    * various doc improvements

1.38_01 2012-04-23
    * freebsd credentials fix - set real uid first and effective uid after that

1.38    2012-04-14
    * stable release

1.37_03 2012-04-13
    * log early exiting daemons correctly; fix tests

1.37_02 2012-03-28
    * non-root dir multiservices allow operations without --force
    * minor docs improvements, including replacing "flexible perl-based" with "polymorphic" everywhere

1.37_01 2012-03-27
    * Ubic::Daemon::OS::Linux: fix guid calculating code
    * Ubic::Daemon:
     - better logging
     - die if can't calculate guid

1.37    2012-03-15
    * Ubic::UA pod
    * prohibit building on Solaris

1.36_02 2012-02-15
    * ubic.ping improvements:
     - use Ubic::UA instead of LWP::UserAgent to reduce the number of dependencies
     - increase timeout options to avoid start failures on slow systems

1.36    2011-12-09
    * Ubic::Multiservice::Dir: don't warn about configs with taboo extensions

1.35_02 2011-11-17
        * custom service loaders:
         - ini-style syntax for configs with .ini extension
         - extension-based polimorphism which will let us implement more config syntaxes in the future
        * always sync pidfiles and status files to disk
        * small doc and output message improvements

1.35_01 2011-11-04
        * ubic-admin:
         - fix local installation mode
         - document all command-line options

1.35    2011-10-07
        * fix build - ubic-daemon doesn't fail compile test if ubic is not installed

1.34    2011-09-25
        * example system paths in setup depend on os
        * contrubitors section in Ubic.pm

1.33_04 2011-09-20
        * use pure perl for mkdir and chmod operations

1.33_03 2011-09-20
        * fix typo in the path to freebsd ubic.cfg

1.33_02 2011-09-20
        * comply to hier(7) on freebsd
        * ubic-daemon improvements:
         - pod advicing not to use this script
         - --stop and --list features
         - use Ubic::Settings instead of hard-coded pid_dir path

1.33_01 2011-09-02
        * fix setup.t - don't fail if ubic is already installed
        * more questions in Ubic::Manual::FAQ, other various doc improvements
        * partially align status column on 'ubic status' command
        * silently skip configs with taboo extensions, complain about others to stderr
          (see https://github.com/berekuk/Ubic/issues/15)
        * Ubic::Daemon on linux doesn't fail if can't read from /proc cmdline file:
          there are cases when it is a possible state (usually after reboot)

1.33    2011-07-22
        * stable release

1.32_04 2011-07-18
        * don't mess with crontab on setup tests
        (see https://github.com/berekuk/Ubic/issues/17)

1.32_03 2011-07-17
        * fix daemon tests

1.32_02 2011-07-13
        * Ubic::Daemon improvements:
         - 'cwd' and 'env' options (SimpleDaemon now just passes them to start_daemon())
         - log signal name, exit code and other events to ubic_log prettier and more consistently
        * document 'cwd' and 'env' options in Ubic::Service::SimpleDaemon

1.32_01 2011-07-13
        * new options in Ubic::Service::SimpleDaemon:
         - cwd - set daemon working dir
         - env - set daemon environment
        * minimal setup test

1.32    2011-07-07
        * Fix ubic-admin setup again. Sorry.

1.31    2011-06-30
        * fix ubic-admin setup - forgot to import IO::Handle
        (https://github.com/berekuk/Ubic/issues/13)

1.30    2011-06-28
        * Ubic::AtomicFile for storing any file safely
        * POD improvements:
         - Ubic::Manual::Overview
         - Ubic::Service::SimpleDaemon now makes sense

1.29    2011-06-07
        * ubic-admin script: fix crontab install when user doesn't have previous crontab
        * ubic script: fix 'ubic unknown-cmd' error reporting
        * watchdog improvements:
         - don't ask for status twice if service works
         - permanently set credentials instead of using forks for non-root services
         - log status obtained by status check, instead of just logging 'service is broken'
        * POD improvements:
         - Ubic::Manual::Intro
         - Ubic::Manual::Multiservices
         - various POD fixes

1.28    2011-04-21
        * 'ubic status' always shows non-cached statuses if called by root
        * ubic.ping status now uses sane timeout when it checks service via http

1.27    2011-04-17
        * ubic-admin script:
         - system-wide setup with one command 'ubic-admin setup'
         - home directory setup with the same 'ubic-admin setup' command
         - batch-mode with flag "--batch-mode"
        * configurable default_user (very helpful for home directory setup)
        * 'ubic status' changes:
         - real status will be checked and printed if current user is equal
           to service user
         - "Not a root, printing cached statuses" message removed;
           instead, 'ubic status' will print "[cached]" note for every cached status
        * ubic-ping service renamed to ubic.ping
        * ubic-watchdog and ubic-update now run as ubic.watchdog and ubic.update services
        instead of cron jobs; "ubic-watchdog ubic.watchdog" cron job is still recommended.
        * ubic-periodic script for recurrent job running

1.26    2011-04-10
        Hotfix release (https://github.com/berekuk/Ubic/issues/12):
        * don't depend on Win32 modules
        * stale Win32 code removed
        (it didn't work anyway, so there is no point in packaging it in CPAN releases).

1.25    2011-03-31
        * MacOSX support (and probably other POSIX systems too, including FreeBSD)
        * lots of refactoring:
         - Ubic::Daemon::OS modules family for OS-specific daemonization tasks
         - Ubic::Credentials::OS modules family for OS-specific user/group tasks

1.24    Wed Feb 23, 2011
        * ubic-watchdog: change process name while checking specific service
        * check that uid change was successful before calling service action methods
        * default check_timeout() lowered from 10 minutes to 1 minute

1.23    Thu Dec 02, 2010
        * ubic-ping: 404 message content fixed
        * ubic-watchdog:
         - set check_timeout alarm a bit earlier
         - another alarm before compiling services

1.22    Sun Nov 07, 2010
        * Ubic::Multiservice:
         - default implementation of 'has_simple_service' method
         - POD improvements

1.21_01 Thu Oct 21, 2010
        * fixed races in t/daemon.t

1.21    Tue Oct 19, 2010
        * Ubic.pm:
         - set_ubic_dir() renamed to set_data_dir()
         (set_ubic_dir still remains in code for backward compatibility)
         - get_data_dir() and get_service_dir() methods
         - UBIC_LOCK_DIR, UBIC_TMP_DIR and UBIC_WATCHDOG_DIR env variables are deprecated;
         UBIC_DIR variable or set_data_dir() method should be used instead
         - bugfix in forked_call() method - it thrown "temp file not found after fork" exception occasionally in some cases
         - more consistent params validation in many methods
        * ubic-watchdog improvements:
         - separate non-blocking per-service lock (http://github.com/berekuk/ubic/issues#issue/1)
         - ubic-watchdog can now check selected set of services by name or glob
         - ubic-watchdog kills itself after $service->check_timeout() seconds
        * deprecated Ubic::Catalog module removed (it was renamed into Ubic::Multiservice long time ago)


1.20    Wed Oct 13, 2010
        * documentation improvements

1.19    Tue Sep 14, 2010
        * ubic-watchdog always uses Ubic->status interface to check service status

1.18    Tue Sep 14, 2010
        * critical bugfix: ubic-watchdog correctly interpret extended statuses
        (thanks to Sawyer X for noticing this, see http://github.com/berekuk/Ubic/issues#issue/7)
        * Ubic::Lockf::Alarm moved to separate file, so PODs are now correct

1.17    Mon Sep 13, 2010
        * Ubic::Run: recognize RedHat init script names
        (thanks to Sawyer X for the patch, see http://github.com/berekuk/Ubic/issues/#issue/5)
        * test improvements:
         - ubic-ping uses Config.pm to determine full perl binary path
         - memory-leak.t is more robust

1.16    Tue Sep 07, 2010
        * Ubic::Daemon:
         - check_daemon() now returns proper Ubic::Daemon::Status object
         - don't log warning if daemon exited by sigterm
         - minor logging cleanup
        * Ubic::Service::SimpleDaemon returns daemon pid in status msg
        * test improvements:
         - using Test::TCP when testing ubic-ping
         - watchdog.t skips all tests if 'fakeroot' is not present
        * Ubic::Cmd: print 'running' result as good when it contains extended message

1.15    Mon Sep 06, 2010
        * tests fixed to work under root user (http://github.com/berekuk/Ubic/issues#issue/4)

1.14    Thu Sep 02, 2010
        * handle supplementary groups correctly
        * ubic-watchdog doesn't require root privileges anymore (unless service requires them, of course)
        * repo and bugtracker resources in META.yml
        * PodWeaver in dist.ini config, so all modules now have proper AUTHOR and COPYRIGHT sections
        * SimpleDaemon and Common services accept arrayref as 'group' value

1.13    Wed Sep 01, 2010
        * Perl6::Slurp removed from dependencies
        * Ubic::Manual::FAQ now is actually added
        * group() method in services:
         - services can specify group(s) from which service should run, analogous to user() method
         - ubic will call setgid() before invoking any service methods
         - default group list consists only of main user's group, as returned by getpwnam; supplementary groups are not supported yet

1.12    Thu Aug 26, 2010
        * Ubic::Manual::FAQ with first 2 questions
        * Ubic::Log documentation updated according to 1.11 changes

1.11    Thu Aug 26, 2010
        * ubic-watchdog prints errors to stdout only

1.10    Wed Aug 18, 2010
        * security bugfix: store all statuses in JSON format

1.09    Thu Aug 12, 2010
        * bugfix: custom commands print 'ok' using green color and exit with zero
        code when there are not errors

1.08    Tue Aug 03, 2010
        * bugfix: has_service for nested unexistent services
        * debian/ dir in distribution too

1.07    Fri Jul 30, 2010
        * localize $@ in destructors
        * Ubic::Cmd refactoring, more consistent console results printing

1.06    Fri Jun 18, 2010
        * using $Config{perlpath} in tests - should fix CPAN tests
        * Dist::Zilla

1.05    Sun Jun 13, 2010
        MANIFEST up-to-date.
        Small POD improvements.

1.04    Tue May 25, 2010
        - important bugfix: service locks fixed!
        - Ubic::Daemon: join all bin args if bin is arrayref.
        - Remove old configs from old yandex-ubic package.

1.02    Tue May 4, 2010
        Remove old configs from old yandex-ubic package.

1.01    Thu Apr 29, 2010
        Just fixing debian dependency issues.

1.00    Wed Apr 28, 2010
        First opensource release.