# config

name: css
value:
  /* General settings for the entire page */
  body {
    margin: 0ex 1ex;
    padding: 0px;
    background-color: white;
    font-family: sans-serif;
  }

  /* The project logo in the upper left-hand corner of each page */
  div.logo {
    display: table-cell;
    text-align: center;
    vertical-align: bottom;
    font-weight: bold;
    color: #000084;
    min-width: 200px;
    white-space: nowrap;
  }

  /* The page title centered at the top of each page */
  div.title {
    display: table-cell;
    font-size: 2em;
    font-weight: bold;
    text-align: center;
    padding: 0 0 0 1em;
    color: #000084;
    vertical-align: bottom;
    width: 100%;
  }

  /* The login status message in the top right-hand corner */
  div.status {
    display: table-cell;
    text-align: right;
    vertical-align: bottom;
    color: #000084;
    font-size: 0.8em;
    font-weight: bold;
    min-width: 200px;
    white-space: nowrap;
  }

  /* The header across the top of the page */
  div.header {
    display: table;
    width: 100%;
  }

  /* The main menu bar that appears at the top of the page beneath
  ** the header */
  div.mainmenu {
    padding: 5px 10px 5px 10px;
    font-size: 0.9em;
    font-weight: bold;
    text-align: center;
    letter-spacing: 1px;
    background-color: #000084;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    color: white;
  }

  /* The submenu bar that *sometimes* appears below the main menu */
  div.submenu, div.sectionmenu {
    padding: 3px 10px 3px 0px;
    font-size: 0.9em;
    text-align: center;
    background-color: #000084;
    color: white;
  }
  div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
  div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
    padding: 3px 10px 3px 10px;
    color: white;
    text-decoration: none;
  }
  div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
    color: #000084;
    background-color: white;
  }

  /* All page content from the bottom of the menu or submenu down to
  ** the footer */
  div.content {
    padding: 0ex 1ex 1ex 1ex;
    border: solid #aaa;
    border-width: 1px;
  }

  /* Some pages have section dividers */
  div.section {
    margin-bottom: 0px;
    margin-top: 1em;
    padding: 1px 1px 1px 1px;
    font-size: 1.2em;
    font-weight: bold;
    background-color: #000084;
    color: white;
    white-space: nowrap;
  }

  /* The "Date" that occurs on the left hand side of timelines */
  div.divider {
    background: #a1c4d4;
    border: 2px #000084 solid;
    font-size: 1em; font-weight: normal;
    padding: .25em;
    margin: .2em 0 .2em 0;
    float: left;
    clear: left;
    white-space: nowrap;
  }

  /* The footer at the very bottom of the page */
  div.footer {
    clear: both;
    font-size: 0.8em;
    padding: 5px 10px 5px 10px;
    text-align: right;
    background-color: #000084;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    color: white;
  }

  /* Hyperlink colors in the footer */
  div.footer a { color: white; }
  div.footer a:link { color: white; }
  div.footer a:visited { color: white; }
  div.footer a:hover { background-color: white; color: #000084; }

  /* verbatim blocks */
  pre.verbatim {
    background-color: #f5f5f5;
    padding: 0.5em;
    white-space: pre-wrap;
  }


name: header
value:
  <html>
  <head>
  <base href="$baseurl/$current_page" />
  <title>$<project_name>: $<title></title>
  <link rel="alternate" type="application/rss+xml" title="RSS Feed"
        href="$home/timeline.rss" />
  <link rel="stylesheet" href="$home/style.css?default" type="text/css"
        media="screen" />
  </head>
  <body>
  <div class="header">
    <div class="logo">
      <img src="$home/logo" alt="logo" />
    </div>
    <div class="title"><small>$<project_name></small><br />$<title></div>
    <div class="status"><th1>
       if {[info exists login]} {
         puts "Logged in as $login"
       } else {
         puts "Not logged in"
       }
    </th1></div>
  </div>
  <div class="mainmenu">
  <th1>
  html "<a href='http://core.tcl.tk/akupries/self'>Myself <img src='http://wiki.tcl.tk/ext.png'></a>\n"
  html "<a href='$home$index_page'>Home</a>\n"
  if {[anycap jor]} {
    html "<a href='$home/timeline'>Timeline</a>\n"
  }
  if {[hascap oh]} {
    html "<a href='$home/dir?ci=tip'>Files</a>\n"
  }
  if {[hascap o]} {
    html "<a href='$home/brlist'>Branches</a>\n"
    html "<a href='$home/taglist'>Tags</a>\n"
  }
  if {[hascap r]} {
    html "<a href='$home/reportlist'>Tickets</a>\n"
  }
  if {[hascap j]} {
    html "<a href='$home/wiki'>Wiki</a>\n"
  }
  if {[hascap s]} {
    html "<a href='$home/setup'>Admin</a>\n"
  } elseif {[hascap a]} {
    html "<a href='$home/setup_ulist'>Users</a>\n"
  }
  if {[info exists login]} {
    html "<a href='$home/login'>Logout</a>\n"
  } else {
    html "<a href='$home/login'>Login</a>\n"
  }
  </th1></div>


# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    subsystem,
    title
  FROM ticket


# event

type: ci
user: andreask
comment:
  Reworked to match the notes on DSL specs for actions and arguments. Chain of command. Assoc data store.


type: ci
user: andreask
comment:
  Fixed typos in package names. Added kettle-based build code. Started a testsuite. Removed package index, superfluous, handled by kettle.


type: ci
user: andreask
comment:
  Tweaks to the implementation of the action specification DSL. Readability, plus prevention of exposure as public methods.


type: ci
user: aku
comment:
  Revamped internals of privates, parameters and parameter collections, per modified spec. Added basic validator commands. Extended testsuite going into parameters.


type: ci
user: andreask
comment:
  Split tests into multiple files, added support code, and changed state dumpers to generate output independent of the exact object instance commands (i.e. no ::oo::ObjXXX anymore).


type: ci
user: andreask
comment:
  Fixed issues with result comparison. Extended testsuite for parameter DSL. Split runtime tests to their own file.


type: ci
user: andreask
comment:
  More work on the parameter attribute contraints. Renumbering and -ordering in testsuite. syntax vs assert in code.


type: ci
user: andreask
comment:
  Continued the rework, mostly testsuite now... Small internal reorg of the parameter code, keep related things together.


type: ci
user: aku
comment:
  More tests of runtime processing. Fixed bugs in threshold calculation and argument processing in general they exposed. (Unsafe queue handling, missing checks, moved wrong#args tests earlier and into parameter instances)


type: ci
user: andreask
comment:
  More runtime tests, splat handling. Disentangled threshold calculation from the DSL implementation, now an explicit post-processing step, easy to understand. This also fixed some subtle bug uncovered by the new tests.


type: ci
user: andreask
comment:
  Put object cleanup into the highlevel testsuite support commands, given that we have we have try/finally anyway for the package itself.


type: ci
user: andreask
comment:
  Filled out the value method, finally, and updated the testsuite and its support to show/expect the data.


type: ci
user: aku
comment:
  Specified structure for help information. Implemented its generation, filling the placeholder help methods. Added test.


type: ci
user: andreask
comment:
  Implemented hidden parameters (not documented), forcing of parameter values before the command is called, and special common key *all* for parameter specifications shared across all actions. todo: test cases.


type: ci
user: andreask
comment:
  Modified heuristics to select a system validation type. argument, state => identity, option stasy with boolean. Updated tests.


type: ci
user: andreask
comment:
  Help generation fix, set the resolved name chain as command name prefix. Note issue with option documentation.


type: ci
user: andreask
comment:
  Moved various operations into actor, for future sharing/use in privates. Reworked to get rid of duplicate loops, use existing acessor method (known).


type: ci
user: andreask
comment:
  Simplified the recursion for command completion in officers, and added ability for dynamic extension of the command set.


type: ci
user: aku
comment:
  Changed boolean options name like --no-foo to have --foo as alias, not --no-no-foo. Changed flag memory to dictionary, enables the system to distinguish primary option from aliases and inverted aliases. The latter two get a generated description. Modified the help generation for a parameter collection to supply the necessary data. Extended testsuite to cover the changes and new feature.


type: ci
user: aku
comment:
  Refactored string definition, and exported the new low-level method. Simplified ProcessArgument. Put in command completion support.


type: ci
user: aku
comment:
  Multiple changes:
  - Updated testsuite for [00b6c20621].
  - Added 'interactive' setting to privates.
    Default no prevents testsuite from going into interactive mode.
  - Dropped undocumented options from shown state and command completion
    (Interactive entry of arguments for a private). Exceptions: Still
    available as commands, and shown/completed when user has already
    entered data, proving their knowledge of them.
  - New pseudo-command .help, show help for the current command.
  - Help formatting: No empty lines when description is empty.
  - Additional help formats: list, and short


type: ci
user: aku
comment:
  Added class method to parameters for easy access of their config instance from callbacks. Added a when-set callback invoked during parsing. Added ability to lock out parameters (parameter exclusion constraints).


type: ci
user: andreask
comment:
  Dropped the "force" property, and force the value of all parameters, always. No special commands for dependencies. Done in declaration order, this allows user to declare dependencies through said order.


type: ci
user: andreask
comment:
  New feature: Custom error handler which interposes on command parsing and execution, trapping any errors of interest. Traps on command parsing to capture issues reported during parameter definition (generate error, validation error, ...)


type: ci
user: aku
comment:
  Added global interactivity setting and extended the repls to take it into account. Further fixed issue with an officer invoking a repl despite having a default to punt to.


type: ci
user: andreask
comment:
  Fixed problems with [5a60529b70]. Handle case of actual parm exhausted, with args left, these have to check if they are ok (i.e. optional).


type: ci
user: andreask
comment:
  Shifted responsibility for excluding undocumented actors to the callers, not the actors themselves. Renamed help format "plain" to "full". Generate an automatic help command self-configured for the known formats (officers only, privates have pseudo-command ".help"). Bound into the general framework it can partake in completion, etc. Note: Argument completion currently not done, put possible (introspection on the command tree)


type: ci
user: andreask
comment:
  Store unmodified command into the data store, at the place where enters, for use by interposed error handlers. The repls are not aware of it yet.


type: ci
user: andreask
comment:
  Moved generate and default after user interaction in priority for delivering a parameter value. Fixed command scoping issues for ::list.


type: ci
user: aku
comment:
  Undone [914aab4169], and replaced with code to automatically locate the "config" command, regardless how deep in the stack we are.


type: ci
user: andreask
comment:
  Added dump method for debugging. Name validation extended to show full command name, for easier identification in the spec.


type: ci
user: andreask
comment:
  print-state changes. Fix alignment for list printing. Show empty strings with special value and color.


type: ci
user: aku
comment:
  Renamed everything from "xo" to "cmdr". Easier to speak and more direct connection between name and purpose of the package.


type: ci
user: aku
comment:
  Second charge of renaming "xo" to "cmdr". Plus tweak to processing of optional list arguments, preventing ahead-processing of options. They are made part of the splat.


type: ci
user: aku
comment:
  Parsing tweak. When encountering a bad option see if it can be handled as regular argument before bailing out.


type: ci
user: andreask
comment:
  Why am I catching all errors when forcing the config before invoking the command ? That effectively disables all validators.


type: ci
user: andreask
comment:
  Fixed isue with help generator. Handle possibility of more words to resolve after having reached a leaf of the command tree.


type: ci
user: andreask
comment:
  Moved the validation utility commands into separate package. Tweaked the handling of validation in parameters a bit, to avoid superfluous dis- and re-aggregation of the command prefix.


type: ci
user: andreask
comment:
  Added a convenience command for the easy dynamic creation of officer hierarchies. Commands are specified as patrh of words, plus regular and action specification for the private at the end.


type: ci
user: andreask
comment:
  Moved interactive definition of a parameter value into separate method, for external use. We now always define a prompt, to have it available should the user choose to run the new interaction method on a parameter which is normally non-interactive.


type: ci
user: andreask
comment:
  Fixed issue with separated interact. Stuff entered items into both string and value levels. I.e. treat as implied 'set'. Not handling the string level was ok while it was only part of definining a value when not defined. Outside setting of a parameter goes through string value however.


type: ci
user: andreask
comment:
  Tweaked config interaction. Removed indicator for required, implied in the color and (undefined) marker. Added marker for List arguments. Went from 'fullname' to new 'dname' to show actual command, not the internal officer hierarchy.


type: ci
user: andreask
comment:
  Fix oops in internal caller of interaction, caused by the movement into separate method. Implied return went away.


type: ci
user: andreask
comment:
  Extended debug narrative. Note: Found problem with PrintState - forgets config, forces invoke of generate hooks, which may "interact" with the user. Bad. See if we can work out if this can be done without a "forget".


type: ci
user: andreask
comment:
  Handled the issue noted in the previous commit. Full forget not required in printstate, as changed parameter already forgot thei value on set. This restricts the amount of recalculation. And the changed flag are defined, so will not reach intreaction or other hooks. Two, added flag to transiently disable interaction, used by PrintState to avoid interaction even for those parameters which were not defined (I.e. --debug cmdr narrastive should not interact)


type: ci
user: andreask
comment:
  Fixed two bugs: (1) Generate proper return value when aborting interaction, has to be boolean. (2) Distinguish a missing option value from a regular "not enough arguments" error and do not invoke the mini shell for this.


type: ci
user: andreask
comment:
  AS bug 99702. Fix handling of argument queue in code for splat. Did not take changing result type of struct::queue get into account.


type: ci
user: andreask
comment:
  Added defered/immediate distinction for parameters, with state defaulting to defered, and the others as immediate. Updated tests. Bumped version to 0.3.


type: ci
user: andreask
comment:
  Reworked the help data structures to show much more of the internals in the json format, and updated the standard formats for it.


type: ci
user: andreask
comment:
  Added help format: sql. Data is saved as sql schema and tables. Usecase: Query and explore without searching code.


type: ci
user: andreask
comment:
  Bump version to 0.4.

  Parameter API changes.

  * "defined?"     becomes "set?".

  * "when-defined" becomes "when-complete".

  * The "default" value is now handled as int.rep, not going through
    validation. (Like the result of the "generate" callback).

  * Updated validation type "default" to always provide something.

  * Standard VT fail now takes parameter instance command as first
    argument (see also below about callbacks), and uses it to generate
    an enhanced error message (naming the parameter at issue).

  Callback API changes.

  * All callbacks now take the parameter instance command as their first
    argument.

  * Removed the (class)methods to dynamically locate and access a
    innermost config instance on the stack.

  * As replacement added method "config" to make the container
    accessible from each parameter it contains, and thus all other
    parameters as well.

  * Update all validation types.


type: ci
user: andreask
comment:
  Dropped parameter class method "undefined", replaced by instance method "undefined!". Make parameter self available through method.


type: ci
user: andreask
comment:
  New feature: Parameter labels, override name shown in help. Plus new config method to query parameter existence.


type: ci
user: andreask
comment:
  Fix conflict between officer::has for declared methods, and actor::has for common blocks. Now actor::exists


type: ci
user: andreask
comment:
  Tweaked help system. Added option "--width" enabling explicit control of the line width to format for. Default via "linenoise columns".


type: ci
user: andreask
comment:
  Tweaked validation type helper command to generate clearer message for validation failures. Better identification of the parameter in question.


type: ci
user: andreask
comment:
  When printing config state, show parameter inheritance. Plus label now showing regular names, no titling.


type: ci
user: andreask
comment:
  cmdr::ask - Fixed a syntax problem. Fixed scope issue (string command). Tweaked the prompt setup. Plus example apps (also for interactive testing).


type: ci
user: andreask
comment:
  Move handling of global option to before checking for a command. We can now enter a main shell with global options set. Bump version numbers.


type: ci
user: andreask
comment: cmdr::ask - Added basic testsuite. More requires a linenoise mockup to prevent actual interaction.
ecomment:
  cmdr::ask - Added basic testsuite. More requires a linenoise mockup to prevent actual interaction while exercising the command implementation.


type: ci
user: andreask
comment:
  Added processing of options to officers. Note that this needs an updated tokenizer from Tcllib. Otherwise the main shell will treat cmd options as options of the tokenizer procedure itself, which breaks it. Help handling and generation is the only TODO left.


type: ci
user: andreask
comment:
  cmdr::parameter - Extended spec with description of option argument, if any. cmdr::help - Modified to make use of the new information in help texts.


type: ci
user: andreask
comment:
  Fixed varname typo in the error handling for escape code definitions. Plus extension of the general colorization command to allow use without a text. This simply returns the control characters.


type: t
user: aku
brief: Ticket [03940bc094]: 4 changes
comment:
  Ticket [03940bc094] <i>Add facility for animated progress output and the like</i> status still Open with 4 other changes


type: ci
user: andreask
comment:
  Pulled some stackato-cli utility packages into cmdr, incomplete work (tty, color, simple interaction)


type: ci
user: andreask
comment:
  Fix handling of *all*. Ignoring a missing definition is ok. Ignoring all other specification errors it may generate is not.


type: ci
user: andreask
comment:
  Bumped version number of the changed packages. Started on help. First, excluded imported parameters from help.


type: ci
user: andreask
comment:
  Bump versions of cmdr::color and cmdr::ask to 1. Fixed a prompt issue in cmdr::ask::string*. Extended debug narrative regarding prompt handling.


type: ci
user: andreask
comment:
  cmdr::parameter - Utility DSL commands for easy locking (disallow) and trivial accss to siblings (touch, touch?). Semantic change for when-* hooks. Now storing a list and multiple when-set definitions accumulate. Tweaking locking error message to use better name of the locked parameter.


type: ci
user: andreask
comment:
  cmdr::actor, cmdr::officer - Fix bug introduced with revision [7ab77ead21].

  The option handling added to "actor::set" in that revision means that
  the command "my set *command* ..." storing the actual command line
  (i.e. user information) can break, trying to interpret application
  specific option information as something for the internal command.

  Fixed by adding "--" to "actor::set"s option handling, and using it
  for the breakable command to force interpretation of the user data as
  such.


type: ci
user: andreask
comment:
  Started implementation of "global" options (and state) associated with officers and inherited to subordinates. Another way of sharing common options (like --debug, --trace, and the like) without cluttering command definitions via *all*. This commit has the specification changes done. Not yet done are recognition during cmdline processing, nor the needed changes to get uncluttered help output, nor the extended help output for officers.


type: ci
user: andreask
comment:
  cmdr::help - Extended the backend to invoke a pager if the help is too high for the terminal. Lots of things (not terminal, no support in linenoise, no pager) will disable this. Bumped version to 1.3.


type: ci
user: andreask
comment:
  Moved handling of option arguments in help to separate proc. Reworked the handling of global options to show arguments as well. Fixed sorting of section display when seeing options with arguments.


type: ci
user: andreask
comment:
  cmdr::config - Fix long-standing bug in forced parameter value
  calculation (method 'Force').

  Any error in the calculations left the flag 'myinforce' set, causing a
  future invokation to believe to be in a recursive call and do
  nothing. While this had no effect on regular operation, i.e. where the
  using application exits after the command, in interactive mode this
  disabled checks and validations for the command in question, and also
  retained old parameter values. Fixed by putting a try/finally around
  the section, resetting the flag even in the presence of errors thrown
  by it.

  cmdr::config version bumped to 1.1.1.


type: ci
user: andreask
comment:
  Updated help generation to show global options in categorized help. General update to handle officers now appearing in the help structures. Bumped version numbers. All parts done. Notes removed.


type: ci
user: andreask
comment:
  cmdr::help, cmdr::pager - Moved the paging support into a separate package, for use outside of the help code. Functiomnality tweak: Linenoise not supporting querying the height does not disable paging, just goes with a default height.


type: ci
user: andreask
comment: Extended the std validation types to support an undo flag for their release method.
ecomment:
  Moved to "mistake". This requires more thought.

  At issue is that the "recently" made validation types "wchan" and "rwchan" generate externally visible changes as part of their creation of the internal representation. Namely, they create a file. This is problematic as in some situations the VT is called on to simply check if the input is ok, and nothing more. And while the code path in question does call on the "release" method of the VT to cleanup the internal rep the external side-effect remains.

  The change here went with extending "release" to allow it to undo the external effect as well, on request. This then requires determining when to do that, and when not. And that is difficult as the same APIs are used internally and given to the user.

  A better path might be to change the VT API,. For compat we cannot change "validate", it has to keep doing validation + conversion. New method would be required for each of the two parts. Then the framework can defer the creation of the in.t rep until the last possibly moment, i.e. the user needs it, while the other places only requiring validation limit themselves to that, and no side-effects, in or outside of memory.

  ----
  Extended the std validation types to support an undo flag for their release method.


type: t
user: aku
brief: Ticket [30c4d13071]: 5 changes
comment:
  Ticket [30c4d13071] <i>Add facilities for user interaction</i> status still Open with 5 other changes


type: ci
user: andreask
comment:
  Tweaks to the history mgmt: Documented semantics of limits. Nicer output on changes and current. Allow application to overide initial default limits. Ensure saving of initial limits on first use.


type: g
user: aku
comment:
  Edit [0be2930b72424a4c]: Move to branch [/timeline?r=mistake&nd&dp=0be2930b72424a4c&unhide | mistake].. Edit check-in comment..


type: ci
user: aku
comment:
  Move the p-name helper command of validate::common into the parameter class, as a convenience method.


type: t
user: aku
brief: Ticket [82ea3572cb]: 5 changes
comment:
  Ticket [82ea3572cb] <i>Add facilities for user interaction</i> status still Open with 5 other changes


type: ci
user: andreask
comment:
  cmdr::validate - Tweaked the "integer" validation type to use decimal as internal representation, as we accept octal and hex as external strings.


type: ci
user: aku
ecomment:
  Extended the set of common validation types, added "percent" (double limited to [0,100]). Updated documentation.


type: t
user: aku
brief: Ticket [30c4d13071]: 3 changes
comment:
  Ticket [30c4d13071] <i>Add facilities for user interaction</i> status still Open with 3 other changes


type: ci
user: andreask
comment:
  Cross-reference usage of *prefix* in actors. Extended actor base to allow complete clearance of a common block along a chain of actors up to the root.


type: t
user: aku
brief: Ticket [a80ac87036]: 5 changes
comment:
  Ticket [a80ac87036] <i>Add facilities for user interaction</i> status still Open with 5 other changes


type: ci
user: andreask
comment:
  cmdr::validate - Replaced all uses of "OkDir" with the shared "ok-directory". Changed the "rw*" types to allow missing file/dir/path like the "w*" types.. Fixed the fail messages for "wfile" and "wchan". 


type: ci
user: andreask
comment:
  Added hooks for history mgmt, plus helper package to the system. Known issue: *prefix* handling for recursion (aliases).


type: ci
user: aku
comment: cmdr::actor - New feature "common -extend", enabling extension of a block instead of ovrwriting it.
ecomment:
  cmdr::actor - New feature "common -extend", enabling extension of a block instead of overwriting it.


type: ci
user: andreask
comment:
  cmdr::validate::common - Added commands to generate more specific error messages, while still general - From stackato client. Bumped version to 1.2.


type: ci
user: andreask
comment:
  Modified the checks for wfile/wchan to allow non-existing files which can be created (per permissions).


type: ci
user: andreask
comment:
  cmdr::help::json, cmdr::help::tcl - Fixed handling of category with sub-categories, but no commands. Bumped to version 1.0.1.


type: ci
user: andreask
comment:
  cmdr::validate (rpath) - Fixed bug in the path check. Removed bogus test for directory. This VT accepts files too. Bumped to version 1.3.1.


type: ci
user: andreask
comment:
  cmdr::validate::common - Consolidated multiple copies of "OkDir" in cmdr::validate into a single shared helper command "ok-directory".


type: ci
user: aku
comment:
  Fixed problems with the generation of categorized help when encountering sections with sub-sections, but no commands


type: ci
user: aku
comment:
  Remade "help::query-actor" as method "find" of officers and private. Simplified the internals of auto-help. Provides the path lookup to framework users as well. Updated the documentation.


type: ci
user: andreask
comment:
  Fixed buglet in the help setup.
  Add the main (root) name to the command prefix when not in a cli shell.
  Bumped cmdr::help to version 1.0.1.


type: ci
user: aku
comment:
  officer - Modified method extend to return the new command instance, for dynamic re-configuration post-creation.


type: ci
user: aku
comment:
  Added utility package cmdr::help::tcl, dumping the help as Tcl data structure. Like cmdr::help::json, with less overhead to read into other Tcl code.


type: ci
user: andreask
comment:
  Moved old docs into an attic. Completed the todos, except very minor parts. Includes backend example, reserved blocks. Added, completed DSL informaton, mainly where to find them, and how DSL commands map to methods.


type: ci
user: aku
comment:
  Moved document labeling (for toc, and sorting it) into definition. Tweaked labels to put internals at the end, intro and such at the top. Regenerated embedded docs.


type: ci
user: aku
comment:
  Continued the dev-guide in general, and completion internals in particular. Added draft diagram code for sequence diagrams. Snarfed from my 2012 kinetcl paper. Has to be modded for the completions. Todo: Document standard help formats, and how to write formats. Todo: Back-reference from the package docs to the completion internals.


type: ci
user: andreask
comment:
  Extended information about help formats and how to write them. Documented the DSL "section" command.


type: ci
user: aku
ecomment:
  Tweaked documented titles for better marking of internals. Fixed a few issues with validation types, mainly shuffling text blocks around, plus fix in API documentation.

comment:
  Tweaked documented titles for better marking of internals. Fixed a few issues with validation types, mainly shuffling text blocks around, plsu fix in API documentation.


type: ci
user: aku
comment:
  Moved dictsort utility into util for wider use. Sort parts of the help structures for easier testing. Fixed bugs in the help generation (1) Skip imported helper commands which are not formats. (2) Rendering of list inputs was off. -- Bumped version to 0.12, help (json, sql) to 0.2, fixed requirements -- Updated embedded documentation.


type: ci
user: andreask
comment:
  Extended the shells to note their activity in a root common block named *in-shell*. Bumped version to 0.11.


type: ci
user: andreask
comment:
  Modified officers. Auto-create an 'exit'-command, if not in conflict with user commands. Method as backend for private. Usable by others as well. Bumped version to 0.14.


type: ci
user: aku
comment:
  Added a behaviour flag "no-promote" to parameters, to allow rejection of promotion of unknown flag strings to input values on principle. Bumped version to 0.13, updated embedded documentation.


type: ci
user: aku
comment:
  Continued work on the dev guide. Complete architecture and package dependency information. Regenerated figures and embedded documentation.


type: ci
user: andreask
comment:
  DSL docs mostly complete. Still possible to split into multiple documents. Still to do related docs on execution flow.


type: ci
user: andreask
comment:
  Reworked the interaction for entry of scalar, and general calculation of the value
  - Show validation error message for proper feedback
  - Trap ^C properly, as done for the list-case already. Scalar was forgotten.
  - Report the ^C as 'undefined value'
  - Remember the undefined-ness and have additional attempts to retrieve the value abort early
    This prevents retries of computing the value where we cannot succeed.
    It also prevents additional attempts at interaction.
  Bumped version to 0.10.


type: ci
user: andreask
comment:
  Extended the json format with better section information, and outer structure. Version bumped to 0.9


type: ci
user: aku
comment:
  Extended the json help format with a map "opt2para" from options to controlling parameter (name to name).


type: ci
user: andreask
comment:
  Extended DSL for privates with command to record category/section information for help. Extended the help system with a by-category format, and made it default when not looking for a specific command. ATTENTION: The API between help core and formats did change, the root actor of the command tree is now supplied. New common block *category-order* to declare a bespoke ordering of categories.


type: ci
user: andreask
comment:
  Tweaked the auto-help command. Default to full format only when asking for a specific command, otherwise default to a simple list.


type: ci
user: andreask
comment:
  cmdr::help - Prevent the space allocated to descriptions in the categorized help from getting to small. Negatives trigger an error in adjust, and anything below 10 will generate very short tall columns. Better to misformat (cut at terminal edge, or wrap-around) for these cases. Bumped version to 1.3.2.


# ticketchng

login: aku
mimetype: text/x-fossil-plain
icomment:
  The interaction code to snarf from stackato-cli, for ticket [a80ac87036],
  requires color support (used to highlight of default values).

  Also snarfable from stackato-cli, although should be generalized to allow user customization, with a database of the standard settings.


login: aku
mimetype: text/x-fossil-plain
icomment:
  Done with
  * [ddd5e520dd] Fixes & tests
  * [e8bf343c87] tty support, fixes, tests
  * [7104561dd4] Initial import (tty, color, ask)


login: aku
mimetype: text/x-fossil-plain
icomment:
  Snarf code for progress animation in terminals from Tcllib (sak).
  This is generally useful for everything cli based.

  See the fx ticket 
    http://core.tcl.tk/akupries/fx/tktview/8cb7d00211
  This can then make use of this here in cmdr.


login: aku
mimetype: text/x-fossil-plain
icomment:
  The stackato-cli has a number of higher-level interaction commands (yes/no, string, menu, choice) in a utility package.

  This package was recently snarfed into fx (@ http://core.tcl.tk/akupries/fx).
  Better put it here into Cmdr.


login: aku
mimetype: text/x-fossil-plain
icomment:
  Other utilities for placement in cmdr would be colorization.
  Especially also configurable color mapping (symbolic names, color names, definitions).


login: aku
mimetype: text/x-fossil-plain
icomment:
  Done with:
  * [2fa5347d94] Basic tests
  * [1eeef53431] Fixes, tweaks, examples
  * [0c33d13e6e] Reactivated color support.
  * [7104561dd4] Initial import (tty, color, ask)


