Config-Model

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    * AnyId: avoid deref of undef value
    * Loader: fix parsing of list assignment with quotes
    * Value: do not store warnings from computed value
    * Node: warn only once about deprecated elements
    * CheckList: accept non_upstream_default mode

  Doc improvements:
    * AnyId: clarify doc and error message
    * Add doc for container method
    * Value: clarify load_data doc
    * Value: fix typos in doc

  API changes:
    * Value: provide has_warnings along has_warning
    * DumpAsData, Dumper:
      * deprecate full_mode parameter
      * full dump is now mode => user

2.136 2019-07-29

  Bug fix:
    * also tweak ~ dir for tests in Path::Tiny coercion
      (fixes Config::Model::Systemd tests that was broken with
      Config::Model 2.134)

  Doc update:
    * Mention force option in Instance doc

2.135 2019-06-05

  Bug fix:
    * Fix undef start_node error occuring with 'cme run' command
      (this regression from previous version broke app-cme tests) 
    * Instance: clear changes after reset

  Doc update:
    * remove mention of long gone privilege parameter

2.134 2019-05-05

  Bug fix:
    * Fix Instance->reset_config method
    * improve error handling of get_model_doc

  Minor behavior changes:
    * dump_tree: add quote around value or if that contain '~'

  Deprecation:
    * Instance: remove deprecated read_root_dir method

  Misc:
    * update copyright year
    * Tests require Config::Model::Tester 4.002

2.133 2019-01-13

  Read/write backend improvements:
    * Backend::Any: add auto_delete and auto_create
    * IniFile: delete empty file when auto_delete is set
      and config file contains no data
    * warn when restoring backup file

2.132 2018-12-22

  Bug fix:
    * Value: really use old_value to track changes
    * restore "return undef" in Value.pm to avoid breaking apply_fix

  Add long forgotten credit (sorry):
    * add Ylya Arosov to credit

2.131 2018-12-16

  With this release, this distribution no longer provides YAML
  backend. The YAML backend is now delivered in its own
  distribution. Look for Config::Model::Backend::Yaml on CPAN.

  Other changes:
    * Value: use warn_if warn_unless label in warning message shown to user.
    * BackendMgr: throw correctly "unknown backend" exception
    * Exception: trap missing object parameter

  Doc update
    * remove mention of old config-model-users mailing list (dead)
    * BackendMgr: mention that Yaml backend is now external

2.130 2018-12-07

  Dependency changes:
    * require boolean module (really)

2.129 2018-12-05

  Usability improvements:
    * Value" improve warning message about multi line value

  Perl backend improvement:
    * Convert cme boolean values (i.e. value of value_type boolean) to 
      Perl boolean values

  Dependency changes:
    * build require boolean module

2.128 2018-11-21
  
  Usability improvements:
    * CheckList: die or warn (with cme -force) when storing unknown item
      in check list. Bad values used to be silently dropped.

  Test fixes:
    * add \n at end of yaml test files (gh #22)

  Internal changes:
    * improve code quality thanks to the feedbacks provided by kritika.io

  Doc change:
    * Improve navigation in doc: move parameters from header line to paragraph.
    * Instance: add doc for backend_arg
    * Instance: improve doc of data method

2.127 2018-09-30

Changes  view on Meta::CPAN


2.123 2018-05-01

  On-going improvements of R/W backends:
    * io_handle backend parameter is deprecated
    * use file_path in all backends instead of io_handle

  Test improvements:
    * build dep on Config::Model::Tester 3.006
    * document prove command in t/README.pod
    * tests run without showing any warnings
    * all tests accept --log --error --trace parameters
    * all test models are updated to remove all
      deprecated declarations

  Bug fix:
    * fix parameter sanitisation in Instance
    * Value: remove self assignment (tx kritika.io)
    * update WarpedNode synopsis

2.122 2018-04-17

  Bug fix:
    * Warper: fix crash when a warper (aka warp master)
      is a computed value

2.121 2018-04-15

    * BackendMgr: fix handling of file argument
    * Instance: fix compat with Perl < 5.20

  Log improvements:
    * use User class to log warning for User
    * Model: add doc for initialize_log4perl
    * Model: moved log4perl default conf in a separate file
      (lib/Config/Model/log4perl.conf)

  Test improvements:
    * add README for the tests
    * some tests can be run with --log, --trace and --error
      options. See t/README.pod for details

2.120 2018-04-08

  Bug fix:
    * fix config file location declared with absolute
      path (i.e. all system application like ssh, systemd)

2.119 2018-04-02

  Main change:
    * use logger to warn about issues. By default, logged warnings
      are shown on STDOUT. These warnings can be suppressed
      using ~/.log4config-model file.   

  API change:
    * Instance: root_dir parameter can be a Path::Tiny object
      or a string

  Bug fixes:
    * BackendMgr: fix broken file backup
    * Backend: create dir before creating file
    * Yaml backend: avoid redefined sub warning

2.118 2018-03-26

  On-going backend deprecation:
    * BackendMgr: deprecate using STDIN to load config file. Which
      means using '-' with cme '-file' option is deprecated.

  Backend:
    * Improve global comment extraction

  Other changes:
    * remove unused modules from BackendMgr
    * Exception: improve Model error message

2.117 2018-02-03

  Bug fixes:
    * notify about addition of hash key only when needed
    * fix error message of "missing file" exception

2.116 2017-12-15

  Fix broken cme:
    * Instance: fix regression about root_dir param

2.115 2017-12-14

  On-going backend deprecation (which might be breaking):
    * Backend: deprecate using instance name as config file name
    * All backends: suffix method is deprecated

  Backend:
    * ShellVar backend: don't reorder when writing back (experimental)
    * trap when backend class has no implementation

  New features:
    * Loader: provide "english" operator foreach_match, rm rm_value,
      rm_match, substitute. These are equivalent to :-~ :- :-= :-~ :=~
      operators (cme gh#2)

  Bug fixes:
    * Node gist: no need to show that value is undef
    * WarpedNode: forward fetch_gist instead of gist
    * Instance: add doc for root_path parameter

2.114 2017-11-11

  On-going backend deprecation (which might be breaking):
    * support for multiple backends is now removed. Attempting to
      configure multiple backend leads to an error message with
      explanations.
    * when possible (i.e. when only one backend is specified),
      translate read_config and write_config in new rw_config. This
      should limit breakage to the minimum as multiple backends are
      seldom (if ever) used.

  New features:
    * AnyId: add fetch method

Changes  view on Meta::CPAN

    * value.t: avoid smoke test failures
    * Avoid new perl 5.20 warning (Debian #758320)
    * Value: improved notify change message (computed vs preset vs default)
    * fix pod doc in cme (RT 97605, Debian #756433)
    * depends directly on YAML, not YAML::Any which will be deprecated

2.059 2014-06-29

  New features:

    * cme:
      + added shell command as a shortcut to 'cme edit -ui shell'.
	    E.g 'cme shell ssh' to edit ssh_config through a shell like UI
      + add :@ and :.sort sub command for ordered hash.
        E.g.: "cme modify  dpkg-control ~~ 'binary:~/.*/ Depends:.sort' -save"
        or "cme modify dpkg-copyright ~~ 'Files:.sort' -save "
    * Config::Model::Value: added warn_if parameter

  Bug fixes:

    * cme shell mode:
      * fix or add completion for several commands
      * added shell style pattern match to ll and ls command (e.g 'ls foo*')
    * remove version req from use YAML::Any 0.303 (resolve issues with
      Debian FTBS)
    * Value: fix crash when default value raises a warning and code fix
      returns undef.

2.058 2014-06-19

    Bug fix release

    * cme: modify cryptic user message about "Fixing stuff"
    * Value: tweak migrate_value to always return something, even undef.
      This fixes 'cme check dpkg-copyright' crash (thanks gregoa)
    * Loader: fix pod doc about list operators
    * AnyThing: avoid undef warning that breaks test on freebsd perl 5.10.1

2.057 2014-06-12

  New features:

    * Config::Model: initialise log4perl during construction
    * Value: added file and dir value type. A warning is issued when file
      or dir is not found.

  Other bug fixes:

    * Shortens long index to limit the length of warning and error messages
    * Value: fix check done during apply_fixes...
    * ObjTreeScanner: tolerate deprecated experience parameter.

2.056 2014-05-18

	This release deprecates experience associated with configuration element.
    experience specification in models is now ignored.

	Other Changes:
    * added bash_completion snippet associated to a model. This will be useful
 	  for dpkg-patch model
    * C::M::Lister: skip backup files when listing available applications
	* replace File::Slurp with Path::Tiny in yaml backend test and gen-class-pod
      (RT #95692). (which changes the dependencies)
    * replaced Path::Class with Path::Tiny dependency

2.055 2014-05-02

    This release removes all code related to asynchronous stores.  This code was
    buggy. Making this work correctly would require re-writing most of
    Config::Model.

    * Config::Model::Value:
      * added deprecation warning about callback parameter
      * C::M::Value: removed async code
    * perltidy run on all files
    * removed dependency on namepace::autoclean
    * Removed AnyEvent dependency

2.054 2014-04-01

  Bug fix release:
    * Loader Dumper: fix quote handling (Closes Debian 743097)
    * Loader: return 'ok' after dispatching an action (avoid undef warning
      during tests)
    * cme: -save options force a save even if no semantic change was done
    * ListId: sort may trigger notify_change is elements are actually
      moved around, so 'cme modify stuff list:.sort' will save the file
      as expected.

2.053 2014-03-25

   Bug fix release:
   * Loader: fix broken list leaf assignment (like 'list:4=foo')

2.052 2014-03-23

    This release provides new functionalities to 'cme modify stuff'
    and to the shell like interface ('cme edit -ui shell stuff). See
    Config::Model::Loader doc for details:

      + added remove by value on list and hash ( :-= and :-~ )
        (Closes Debian #741453)
	  + added lots of list and hash operator usable on 'cme modify stuff'.
        E.g. :.insort :.insert_before :.insert_at :.unshift  :.push :.sort
      + handle list/hash value substitution ( e.g. list:=~s/foo/bar/ )
      * warn when trying to remove a list element with a non numeric index
      * rationalize list and hash commands: list assignment is now
        list:=a,b,c instead of list=a,b,c

	Other changes:

    * Dumper: use new syntax when dumping a list of value (i.e. list:=a,b,c)
    * Instance: don't print change if old and new value are undef

2.051 2014-03-06

    * cme: fix command like "cme modify foo ~~ <load_instructions>"
    * ValueComputer: formula with eval no longer mess with $& and ${^MATCH}
      variables used in regexp

2.050 2014-02-27

Changes  view on Meta::CPAN

2.049 2014-02-26

    Bug fix and minor new feature release:
    * C::M::AnyThing: added has_warning fallback method (always return 0)
	  (RT 93329)
    * C::M::Anything: added clear_annotation method

2.048 2014-02-23

    The main changes of this release are the new features of cme
    command:

      * add possibility to override config file (for appli with
        allow_config_file_override) (part of Debian #739387) if config
        file override is '-', open STDIN to read and STDOUT to write.
        This way, cme can be used as a filter.
      * added -strict option so cme exits 1 when warnings are found
        (Closes Debian #736972)
      * added -save option to force save. Useful when just reformatting
        is desired
      * modify command can apply Perl substitution (s/foo/bar) to
        configuration values

    Other changes:

    * C::M::Loader:
      * changed hash selection =~ sub-command to :~
      + added =~ subcommand to apply Perl substitution to values
    * Config::Model: load EV at compile time (Debian #738975)
    * C::M::Value: limit the number of re-try when applying fix to
      avoid deep recursion errors
    * C::M::Node: force a save when reading a deprecated parameter (RT 92639)
    * C::M::Instance: use msg parameter when listing changes
    * C::M::AnyThing: added doc for notify_change

2.047 2014-01-25

    * Value: store a good value cancels the error stored in Instance
    * Term UI:
      * list unsaved changes and propose to save on exit or quit
      * fixed "save" command
      * added 'changes' command to list unsaved changes
      * allow also delete command on leaf element
      * added reset command to set a leaf element to undef
      * allow spaces around '=' and ':'
    * tweak cme-gen-class-pod so it can be run without cme (handy for tests)
    * Model generate_doc: write file if new doc is different from old
      (don't try to be smart with timestamps)

2.046 2013-12-15

    * cme:
      + added -create option to force creation of missing configuration
        file
      * improved message about applied changes and don't show '0' as <undef>
      * added examples in pod doc
    * BackendMgr:
      + add note about cme in header of saved file (if comments
         are supported in the configuration file format)
      * Improved error message when no config file is found
      * skip backup copy if no original file is found
    * Node: avoid unknown element failure when check is 'no'
    * ValueComputer:
      * added note in doc about compute variable usage
      * correctly handles &index(-x) where x is a number > 1
      * improved error message if 'follow' parameter does not point to
        a leaf in configuration tree
    * overdue doc changes: s/WarpedThing/Warper/g in pod docs

2.045 2013-10-18

  * Manually restored dep on MouseX::NativeTraits
  * bumped dep on Config::Model::Tester to 2.046
  * cme: print an error message when no application is
    specified (Closes Debian #726447)

2.044 2013-10-13

   The main change of this release is the addition of a JSON backend
   so that cme can read and write JSON configuration files. Given that
   JSON is more and more used, this new backend is bound to be useful.

   Other fixes:
    * cme:
	  * force write back if -force option is used
      * updated doc

2.043 2013-09-20

	* build depends on Config::Model::Tester 2.046 to avoid dependency
      issues 
    * Value: accept yes/no true/false as default value for Boolean.
      This can make model declaration more consistent when boolean
      value must be written as true/false, yes/no. In this case, 
      forcing model developer to write default value as 0/1 was not
      cool and prevented generation of model like LcdProc's model. 

2.042 2013-09-15

    * Config::Model: load AnyEvent as soon as possible to avoid
      test issues
    * ListId: fix typos in pod doc
    * scripts: use /usr/bin/env to be more portable (e.g. for Mac OSX)

2.041 2013-08-14

    Main changes for this release are:

    * The ENCRYPT parameter of Popularity contest model was changed from
      boolean type to a yes,maybe,no value, thus allowing a
      "réponse de Normand" ;) This follows up resolution of Debian
      bug #714917.

    * Config::Model::Tester class was moved in its own distribution.
      Hence this distribution now build depends on Config::Model::Tester

	Other bug fixes:
    * Avoid warning with 'cme list' (Closes Debian #719197)
    * ShellVar backend: Allow variable assignement like "foo = value".
      This is not legal is Shell but sometimes used in configuration files
      using a shell like syntax (Closes Debian #719256)

    Other changes:
    * Removed build-dep on File::Copy::Recursive

2.040 2013-07-20
   * Fix '~' in path substitution in BackendMgr
   * Skip cme command test on non unix-like systems

2.039 2013-07-18

  Framework changes:
    * CheckList: 
	  + Added clear_item and clear_layered methods
	  + added user mode to retrieve data
      * clear now reset (undefs) a check-list instead of setting items to 0
      * load_data accepts hash ref
      * get_check_list_as_hash: added user mode, don't return 0 for undef items
      * set_checked_list_as_hash: Missing items in the given list of parameters are now reset
    * Added dependency on Module::Runtime to avoid test failure on Mac and Windows

  Backends:
    * BackendAny: lack of suffix method is now an info not a warning
    * BackendMgr: 
      + added $home override for tests
      + added default_layer backend parameter
      + added os_config_dir parameter
      - die if obsolete read_config_dir or write_config_dir is specified

  Test framework:
    * Tester: 
      + allow override of home directory for tests
      +  can also use $model for internal tests
      * check test item now accepts array refs

  Doc:
    * added log config file in contrib

2.038 2013-07-03

  Framework changes:
    * cme: added -backup option.

  Application changes:
    * popcon model: 
	  * replace yes/no enum value with boolean written as yes/no
      + added ENCRYPT support

  Backends:
    * all: don't loose part of comment when '#' is embedded in comment
    * Ini backend: handle storage to non available element by ditching data

2.037 2013-06-15

  Framework changes:
    * renamed ChangeLog in Changes to conform to Perl standards
    * added missing dep on File::Slurp
    * cme: added -try-app-as-model option (experimental)
    * Most pod docs: Replaced obsolete links to Config::Model::AutoRead 
      with Config::Model::BackendMgr

  Application changes:
    * Removed LcdProc model (now in its own Perl distribution)

2.036 2013-05-25

  Framework changes:
    * config-edit: added deprecation warning
    * Value:
	* fix pod doc error in L<> which tripped smoke tests
        * apply_fixes: check after fix must be asynchronous
    * Node::load_data: use a predictable order to accept elements.
      This change fixes the smoke test error in t/backend_ini.t
      (Closes Debian #709785)

  Test changes:
    * make t/pod.t run only when AUTHOR_TESTING is set
      (Closes RT 8533 and Debian #709784)

2.035 2013-04-27

    * Node has_element: small optimisation for common case
    * cme:
      * make sure that async store is used before actual check
      * load Tk only when using edit command (avoids issues on exit
	with AnyEvent)

2.034 2013-04-17

    * Model: fix generation of model doc that broke with 2.032

2.033 2013-04-15

    * Model: load returns loaded class in the correct order. Otherwise
      Config::Model::Itself will write back config classes in a random
      order (for files declaring more than one class)

2.032 2013-04-15

  Framework Changes:
    * Model: completely re-organized the way a model is loaded to
      be able to add model extensions to an included class

Changes  view on Meta::CPAN

          enable search in tree element, values and tree documentation. 
        * config-edit: cleaned up option names (always accept '-' in place of '_')
        * Config/Model/AnyThing.pm: fix location string and fix grab function

1.243 2011-05-02

    * Application changes:
        * dpkg control: bumped standard version to 3.9.2
        * dpkg: fix spelling . Closes RT# 67783 and 67784. Thanks carnil
        * dpkg control license: tweaked grammar to accept commas in license
          fields. Closes Debian #624305. Thanks Niko Tyni.
        * Dpkg/Control/Source.pl : added XS-Python-Version ans X-Python-Version
          (first steo to solve Debian #624321)
        * Debian Dpkg Meta model: package filter is computed from group-filter
          OR private policy
          
    * Framework changes:
        * reworked warp registration mechanism (Changed inherited WarpedThing into
          delegation to Warper)
        * t/debian*.t: Put back Apt::Pkg test to avoid smoke test failure
        * ValueComputer: Fixed bug to allow temporary variables and $_ in eval'ed 
          formulas

1.242 2011-04-07

    * Application changes:
        * dpkg control: added Build-Conflicts field
        * dpkg: Added model for debian/source/options and debian/clean files

    * Framework changes:
       * Value: don't perform value check when fetching standard or default value
       * Backend/Plainfile: now support list element in the form of multi line file.
         Each line of the file is a value of the list.
       * t/fuse_ui.t: skip test if lsmod cannot be used (e.g. Mandriva)
       * t/debian*.t: skip test when /etc/debian_version is not found

1.241 2011-04-07
    
    * Framework changes:
       * Build depend on Test::Differences
       * Load and grab: fix to accept '-' in element names 
       * Model.pm: Added value help and summary in generated documentation
       * DumpAsData: skip hash keys containing undef values

1.240 2011-04-05
    
    * Framework changes:
        * Most *.pm: replaced 'no Moose' by 'no Any::Moose' 
        
1.238 2011-04-05
    
    * Framework changes:
        * Build.PL: removed dead code that cause downstream pacaking problems.
        * Model.pm: fix cosmetic issue with doc generation.
        
1.237 2011-04-04
    
    * Framework changes:
        * added MouseX::NativeTraits dependency (fix RT #67196)
        * config-edit: fixed typo (fix RT #66403)
        * Value, Node, AnyId: use dclone to backup constructor parameters
        * Model: Correctly write author and copyright in doc (i.e not as ARRAY0x0...)
        * Yaml backend: fill full_dump option (did not work when set to 0)
    * Application changes:
        * dpkg control dependency: 
            - Dependency filtering mechanism uses source package name to find
              filter value in Meta. This makes more sense than using binary package
              name
              
1.236 2011-04-01
    
    * Application changes:
        * dpkg control dependency: 
          - Dependency filtering mechanism now use dpkg meta 
            package_dependency_filter value (i.e. a user parameter).
            Debian_perl package will be filtered on lenny by default
            Filter mechanism can be overriden in a package by package basis
            See Debian::Dpkg::Meta config class for details. 
          - Warn if a package is unknown.
          - Accepts version specified with dpkg variables.
        * dpkg control and copyright: warn if dh-make-perl boilerplate is found
        * dpkg control: added Package-Type parameter (Peter Pentchev)
        * Dpkg meta: new class to enable user to customize dpkg editor. 
          (email-updates and dependency-filter). Content of meta is saved in
          ~/.dpkg-meta.yml
        * Dpkg control: change e-mail address based on content of meta 
          email-updates

    * Framework changes:
        * Value: added replace_follow parameter to specify automatic
          replacement based on a hash somewhere in the configuration
          tree (used by dpkg e-mail update)
        * Extracted initialisation of reader and writer from new() and moved in 
          init() method to avoid deep recursion on startup.
        * Use Any::Moose instead of plain Moose
        * Removed dependency on MooseX::Singleton
        * Model: added author, copyright, license fields. This data is not used by
          Config::Model, but can be used in the user interface or to generate config
          class doc
        * AnyThing: Fix parsing of multi line annotations. Now use Pod::POM 
          to load annocation from Pod document
        * dist.ini: Depends on Pod::POM
        * Model.pm: added generate_doc method
        * config-edit: new -gen-pod option to generate pod document from config class
        * HashId: fix default_with_init to be able to auto-create leaf values 
          specified in the model

1.235 2011-03-01
    
    * Application changes:
        * dpkg control source model: Encourage Standard-Version 3.9.1
        * dpkg control dependency: only versions older than old-stable (i.e. 
          not found on madison) will trigger a warning
        * dpkg copyright: Handle license in header (Closes Debian #614776)
        * Dpkg copyright backend: skip empty copyright lines
        
    * Framework changes:
        * WarpedThing: Can warp based on the location in a tree. For instance to make
        an element mandatory in one place and not in another. Used by Debian copyright model
        * Value: mandatory values also require non-empty strings
        * config-edit: Force to load all sub-models (i.e. control, copyright) of



( run in 2.000 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )