The following module was proposed for inclusion in the Module List:
modid: Config::Versioned
DSLIP: cdpOp
description: Versioned access to configuration data
userid: MRSCOTTY (Scott T. Hardin)
chapterid: 12 (Opt_Arg_Param_Proc)
communities:
OpenXPKI mailing list
similar:
rationale:
ABOUT THE MODULE:
Config::Versioned allows an application to access configuration
parameters not only by parameter name, but also by version number.
This allows for the configuration subsystem to store previous
versions of the configuration parameters. When requesting the value
for a specific attribute, the programmer specifies whether to fetch
the most recent value or a previous value.
This is useful for long-running tasks such as in a workflow-based
application where task-specific values (e.g.: profiles) are static
over the life of a workflow, while global values (e.g.: name of an
LDAP server to be queried) should always be the most recent.
Config::Versioned handles the versions by storing the configuration
data in an internal Git repository. Each import of configuration
files into the repository is documented with a commit. When a value
is fetched, it is this commit that is referenced directly when
specifying the version.
The access to the individual attributes is via a named-parameter
scheme, where the key is a dot-separated string.
Currently, C<Config::Std> is used for the import of the data files
into the internal Git repository. Support for other configuration
modules (e.g.: C<Config::Any>) is planned.
ABOUT THE NAMING CHOICE:
I chose "Config::Versioned" because, obviously, it is a module for
accessing configuration parameters and fits well with the other
"Config::*" modules. The "Versioned" highlights the primary focus of
this module: to allow multiple versions of a configuration data set
to be accessed from within the application. I also wanted to avoid
"Version" without the "-ed" suffix because that could be confused
with $VERSION, which is used to store the version number of a module
itself.
enteredby: MRSCOTTY (Scott T. Hardin)
enteredon: Tue Aug 9 11:43:51 2011 GMT
The resulting entry would be:
Config::
::Versioned cdpOp Versioned access to configuration data MRSCOTTY
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fc600000_282ca849871010e9&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fc600000_282ca849871010e9&SUBMIT_pause99_add_mod_insertit=1
Peek at the current permissions:
https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=Config%3A%3AVersioned