Bugslist
bugslist.php is John's TODO list management script. If you use this script you might be interested in ProgClub Timestamp so you can copy/paste the comment label syntax. For other projects see projects.
Status
Released! But there's stuff TODO.
Version
bugslist.php v0.1.1237
Copyright © 2016 John Elliot V License GPLv3+: GNU GPL version 3 or later. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Version control info
Timestamp.......: 2016-12-14 03:08:18 +1100 (Wed, 14 Dec 2016) UTC timestamp...: 2016-12-13 16:08:18Z Date............: 2016-12-14 Time............: 03:08:18 Author..........: jj5 File............: bugslist.php Revision........: 1237 URL.............: bugslist.php
Administration
Contributors
People who have contributed to this project. Newest on top.
Copyright
Copyright © 2016, Contributors.
License
Licensed under the GNU GPL version 3 or later.
Resources
Help
Usage: php path/to/bugslist.php [OPTION]... This is a source code processing and reporting tool to help with software development project management. It processes files in the specified directory and matches special comment syntax to get notes and work items which it then reports on. Output reports are in MediaWiki wiki text syntax designed to be included in your project wiki.
Comment label syntax
The heart of bugslist.php is the comment label syntax you use in your source code. It's basically: DATE USER DASH TYPE[PRIORITY][:!] TEXT For example: 2016-12-14 jj5 - HACK[HIGH]: expedient, you say? The date is in ISO format, the user must be a valid UNIX user, and the dash is just to try and limit false positives. The TYPE indicates what sort of item this is; it can be one of the types listed below. Your type can be suffixed with an optional priority within square brackets. After the optional priority your type must be suffixed with punctuation, either ':' or '!'. The TEXT follows until the end of the line and on to subsequent lines too.
Item types
The following item types are supported in comment labels:
Type................: Description..............................: Priority..: Red-flags..........: WARNING...........: something to be careful of...............: HIGH TEMP..............: a note for code that should be removed...: HIGH Stuff to do........: BUG...............: something that needs to be fixed.........: HIGH TEST..............: something that needs to be tested........: HIGH TODO..............: something that needs to be done..........: MEDIUM FIXME............: a HIGH priority alias for TODO...........: HIGH NICE.............: a LOW priority alias for TODO............: LOW HACK..............: something that needs to be improved......: LOW CONSIDER..........: something to consider or think about.....: LOW THINK............: an alias for CONSIDER....................: LOW Stuff that's done..: FIXED.............: a BUG that has been fixed................: HIGH DONE..............: something that has been done.............: MEDIUM COMMIT............: a VCS commit log.........................: LOW Notes..............: REFERENCE.........: a reference, e.g. a URL..................: LOW REF..............: an alias for REFERENCE...................: LOW SEE..............: an alias for REFERENCE...................: LOW NOTE..............: notes, or items without a label..........: LOW DEBUG.............: an item for debugging purposes...........: DEBUG
Item priority
You can use a priority number, priority letter, or priority name to indicate a priority: #: Abbr: Name: Default: 0: C, !: CRITICAL: N/A 1: H: HIGH: WARNING, TEMP, BUG, TEST, FIXME, FIXED 2: M: MEDIUM: TODO, DONE 3: L: LOW: HACK, COMMIT, REFERENCE, NOTE, NICE, CONSIDER 4: D: DEBUG: DEBUG
Comment syntax
Comment syntax for various programming languges is supported: Plain text...: comment labels begin at the first character on the line C++, etc //..: comment labels begin after '// ' (the space is important) HTML/XML.....: comment labels are within: <!-- --> Perl #.......: comment labels begin after '# ' (the space is important) C/CSS........: comment labels are within: /* */
Filtering options
-u, --user=USER include items for USER -d, --date=DATE include items for DATE --today include items for today only (default if not debugging) --yesterday include items for yesterday only -t, --type=TYPE include items by type, will affect report order. Duplicates are ignored. -y, --priority=PRIORITY include items with particular PRIORITY. --all report on all users, dates, types, and priorities.
File-system options
-p, --path=PATH process files in PATH, current directory if omitted -f, --file=LIST process files in comma-separated LIST, relative to PATH -i, --include=EXTENSIONS comma-separated list of included file extensions -e, --exclude=EXTENSIONS comma-separated list of excluded file extensions Note: excludes override includes. This is useful when you want to exclude missing extensions () which are included by default. -s, --skip=DIRS comma-separated list of directory paths to skip -k, --keep=DIRS comma-separated list of directory paths to keep ** BE VERY CAREFUL ** e.g.: 'bin,obj' matches 'p/t/colbbin' and 'p/t/my-obj' '/bin,/obj' matches 'path/to/bin' and 'path/to/obj' a warning is emitted for DIRS with no leading '/' Note: keeps override skips
Report options
-a, --aggregate=FIELD report aggregation. Duplicates are ignored. A heading is printed for each aggregated field. -c, --collate=FIELD report sorting. Duplicates are ignored. Default sorting uses binary comparision rather than locale sensitive comparison which is probably what you want. For --aggregate and --collate uppercase FIELD sorts descending. e.g. 'dUp' selects by date, user desc, and path -h, --heading=FORMAT heading format options. Duplicates are ignored. -o, --output=FIELD|FORMAT|OPTIONS report output options. Duplicates are ignored. -l, --level level of heading to start at (default 2) +N, --natural use locale sensitive sorting instead of binary sorting +B, --binary use binary sorting (This is the default. Redundant? :) +Q, --quiet disable warnings, stats, and progress on stderr +S, --show-stats enable statistics report on stderr -S, --hide-stats disable statistics report on stderr (default) +P, --show-progress enable progress report on stderr -P, --hide-progress disable progress report on stderr (default) +O, --show-options report on user options on stderr -O, --hide-options disable user options report (default) +W, --show-warnings report warnings on stderr (default) -W, --hide-warnings disable warnings
Other options
--help display this help text and exit --version display version information and exit +V, --vcs parse version control (Subversion) logs +D, --debug some handy defaults, when debugging or not +X, --exit exit without reporting (useful with --show-stats)
Format specifications
USER is comma-separated list of usernames. Use '*' for all users; '?' for current user.
DATE is ISO formatted date prefix, e.g.: '2016' for all items in 2016, '2016-01' for items in Jan 2016, '2016-,01,02' for items in Jan/Feb 2016, '2016-01-,01,02' for items on 1st/2nd Jan 2106, '2016-01-02,2016-01-04' for 2nd/4th Jan 2016. Use '*' for all dates.
TYPE is a string of abbreviations or comma-separated list of item types. Supported types are: Red-flags: WARNING....: something to be careful of TEMP.......: a note for code that should be removed Stuff to do: BUG........: something that needs to be fixed TEST.......: something that needs to be tested TODO.......: something that needs to be done HACK.......: something that needs to be improved CONSIDER...: something to consider Stuff that's done: FIXED......: a BUG that has been fixed DONE.......: something that has been done COMMIT.....: a VCS commit log Notes: REFERENCE..: a reference, e.g. a URL NOTE.......: notes, or items without a label DEBUG......: an item for debugging purposes e.g. 'TODO, NOTE' Supported abbreviations are: w: WARNING m: TEMP b: BUG e: TEST t: TODO h: HACK c: CONSIDER f: FIXED d: DONE v: COMMIT r: REFERENCE s: REFERENCE n: NOTE g: DEBUG e.g. 'bht' is 'BUG, HACK, TODO' Use '*' for all types.
PRIORITY is a comma-separeted list of priorities or a range of priorities. A priority can be indicated by a priority number, a priority letter or abbreviation, or a priority name. Use '*' for all priorities. See the item proirity section above for supported values.
FIELD is a string of abbreviations or comma-separated list of fields. Supported fields are: user: group/sort by user date: group/sort by date type: group/sort by item type priority: group/sort by item priority both: group/sort by path and file path: group/sort by path file: group/sort by file, do not prefix path. This may not be what you want, will merge files from different directories. line: group/sort by line number name: group/sort by name link: group/sort by link reference: group/sort by reference initials: group/sort by initials new-lines: group/sort by number of new lines old-lines: group/sort by number of old lines line-diff: group/sort by lines difference revision: group/sort by VCS revision number, text: group/sort by text Supported abbreviations are: u: user d: date t: type y: priority b: both p: path f: file l: line m: name k: link s: reference i: initials n: new lines o: old lines c: line diff r: VCS revision number x: text
FORMAT is a string of abbreviations or comma-separated list of format options. Supported format options are: plain-user: don't format user plain-date: don't format date plain-type: don't format type plain-priority: don't format priority plain-both: don't format path/file plain-path: don't format path plain-file: don't format file plain-line: don't format line plain-name: don't format name plain-link: don't format link plain-reference: don't format reference plain-initials: don't format initials plain-new-lines: don't format new lines plain-old-lines: don't format old lines plain-line-diff: don't format line diff plain-revision: don't format VCS revision number Supported abbreviations are: U: plain-user D: plain-date T: plain-type Y: plain-priority B: plain-both P: plain-path F: plain-file L: plain-line M: plain-name K: plain-link S: plain-reference I: plain-initials N: plain-new-lines O: plain-old-lines C: plain-line-diff R: plain-revision e.g. 'UT' disables formatting for user and type values.
OPTIONS is a string of abbreviations or comma-separated list of report options. Supported report options are: html: output to HTML instead of wiki text table: output to HTML/wiki table instead of list Supported abbreviations are: h: html a: table e.g. 'ha' selects HTML with tables
Feedback
Report bugs to: jj5@progclub.org
Source code
You can read the source code.
You can browse the repository.
You can checkout the latest stable script, or the full stable system (including tests and release scripts).
You can checkout the latest development script, or the full development system (including tests and release scripts).
Links
- bugslist.php: bugslist.php home page
- bugslist.php: PHP assert()
- bugslist.php: PHP set_exception_handler()
Specifications
Functional specification
See help for information about how the script is supposed to work.
Technical specification
The script is a PHP CLI script.
Notes
Notes for implementers
If you are interested in incorporating this software into your project, here's what you need to know:
Just copy-and-paste your way to victory! Feel free to ask questions.
Notes for developers
If you're interested in contributing to this software, here's what you need to know:
Send your patch to jj5@progclub.org along with a statement that you are willing to be listed in the contributors section of the documentation and willing to license your contribution under the license.
For security reasons write access to jjrepo is only available for John. It's basically my private repository. If you'd like to hack on projects where you do have checkin permissions on the Subversion repository, along with infrastructure for running your code, then why not head over to ProgClub and register?
Notes from the code
Following are notes from the source code, generated by bugslist.php!
/ : bugslist.php
- JE: bugslist.php: Windows is unsupported... no effort has been made to be compatible with the Windows file system. If you would like to fix that I will accept your patch!
- JE: bugslist.php: there's a bunch of error handling stuff we setup up-front
- JE: bugslist.php: program errors are things which shouldn't happen, they are numbered from 10 to 19. User errors are things that happen when the user makes a mistake or certain runtime conditions occur, they are numbered from 20 to 99. External program errors are between 100 and 199.
- JE: bugslist.php: Following is the meta-data from SVN. Note that the svn keyward 'Header' is not used. To configure svn keywords: svn propset svn:keywords "Date Revision Author HeadURL Id" bugslist.php
- JE: bugslist.php: we set constants and configure globals before loading the config file(s)...
- JE: bugslist.php: this is the global code:
- JE: bugslist.php: we load the config file(s) here...
- JE: bugslist.php: we have an application config file, include it. note that if it's the same as the local config file it will only be included once.
- JE: bugslist.php: we have a local config file... include it:
- JE: bugslist.php: Main application logic starts here...
- JE: bugslist.php: configure our global defines, this is done after loading the config file if one exists...
- JE: bugslist.php: flag whether running in DEBUG mode or not...
- JE: bugslist.php: can conditionally switch on debug output...
- JE: bugslist.php: configure terminal width:
- JE: bugslist.php: item types. Doesn't include aliases like 'SEE', 'FIXME', 'NICE', etc.
- JE: bugslist.php: FIXME is an alias for TODO
- JE: bugslist.php: SEE/REF are aliases...
- JE: bugslist.php: NICE is an alias for TODO
- JE: bugslist.php: FIXME is a HIGH priority TODO
- JE: bugslist.php: NICE is LOW priority TODO
- JE: bugslist.php: configure regular expressions:
- JE: bugslist.php: $file_extension_include and $file_extension_exclude are file extensions supported or not. For debugging purposes an included 'phar' and excluded 'properties' and 'xcf' are omitted so they should show up in 'unknown file types'...
- JE: bugslist.php: exception_handler(...) will exit (at time of writing!) but just to be safe:
- JE: bugslist.php: Last in wins!
- JE: bugslist.php: parse_svn() will have potentially stale data if 'svn up' isn't called prior. But we don't want to call 'svn up' all the time (especially from unit tests) because it's slooooooowwwww. So better to just live with the stale revision info from parse_svn() when it's not really needed. Read the code for parse_svn() to see what might be out-of-date.
- JE: bugslist.php: overwrite $type_filter array
- JE: bugslist.php: $counter tracks the number of pushd()'s so we can undo with popd()...
- JE: bugslist.php: $type can be 'none', 'svn', or 'git' presently
- JE: bugslist.php: if we pushd( '..' ) on '/' the current directory doesn't change, and we're done.
- JE: bugslist.php: we don't call shell() because we don't want to exit on error (we ignore errors here)...
- JE: bugslist.php: bail if we don't have svn...
- JE: bugslist.php: this function assumes we're in the project directory
- JE: bugslist.php: svn commits are LOW priority COMMIT items
- JE: bugslist.php: being a bit anal here, probably only need to test either $path or $file for null...
- JE: bugslist.php: add previous item:
- JE: bugslist.php: $slash_index won't be zero.
- JE: bugslist.php: being a bit anal here, probably only need to test either $path or $file for null...
- JE: bugslist.php: add last item:
- JE: bugslist.php: this is ugly, but it's fast and safe (at time of writing!)
- JE: bugslist.php: at this point it's OK to override the $file variable
- JE: bugslist.php: clear the progress report
- JE: bugslist.php: priority for FIXME can be different to TODO
- JE: bugslist.php: priority for NICE can be different to TODO
- JE: bugslist.php: $item_type is null to return false on invalid spec
- JE: bugslist.php: if we can't find the priority from the spec warn then fallthrough to get by item type...
- JE: bugslist.php: we can't find a priority so assume CRITICAL
- JE: bugslist.php: we could imagine support for other types and/or is_numeric()...
- JE: bugslist.php: START: reset lower headings
- JE: bugslist.php: END: reset lower headings
- JE: bugslist.php: wildcards are supported
- JE: bugslist.php: if $fail is false then a boolean success value is returned. If $fail is true (the default) the process is terminated on error.
- JE: bugslist.php: returns false if no directory, true on success, or exits otherwise.
bin : open-doco.sh
- JE: open-doco.sh: open up a file explorer to optionally review log files...
- JE: open-doco.sh: give Firefox time to open...
- JE: open-doco.sh: give Firefox time to open...
- JE: open-doco.sh: give Firefox time to open...
- JE: open-doco.sh: give Firefox time to open...
- JE: open-doco.sh: give Firefox time to open...
- JE: open-doco.sh: give Kate time to open...
- JE: open-doco.sh: give Kate time to open...
- JE: open-doco.sh: give Kate time to open...
- JE: open-doco.sh: give Kate time to open...
- JE: open-doco.sh: give Kate time to open...
test : fast.sh
test : new.sh
- JE: new.sh: don't edit this file. Edit process.sh...
- JE: new.sh: don't edit this file. Edit process.sh...
- JE: new.sh: include your arguments on the following line. If you have multiple equivalent tests (same input/output) you can duplicate the following line with different arguments.
- JE: new.sh: the process.sh script is not executed (it is sourced).
test : test.inc.sh
- JE: test.inc.sh: this file is sourced by a script runner. It defines a bunch of functions to run various kinds of tests.
test/args : run.sh
- JE: run.sh: not a good idea to pass '/' or anything with lots of data in it...
- JE: run.sh: processing /tmp probably isn't a good idea...
test/pushd : run.php
test/vcs-type : run.sh
- JE: run.sh: just succeed if we're not on John's machine (but print
- JE: run.sh: tests for 'none'
- JE: run.sh: tests for 'svn'
- JE: run.sh: tests for 'git'
Tasks
TODO
MEDIUM priority
- bugslist.php: test duplicate command-line options
- bugslist.php: VCS support should probably include git in addition to svn.
- bugslist.php: make config override a command-line option. e.g.
- --config=user,jj5,initials=JE;user,jj5,wiki-user=Sixsigma
- bugslist.php: ignore extra punctuation after item type/priority
- bugslist.php: make $file_extension_include, etc. configurable in config file.
- bugslist.php: make priority filter and default priority a config file option.
- bugslist.php: check if 'ods' is plain text / XML format...
- bugslist.php: consider if 'phar' should be excluded...
- bugslist.php: consider if 'properties' should be included...
- bugslist.php: consider if 'xcf' should be included...
- bugslist.php: implement revision filter
- bugslist.php: HTML table reporting
- bugslist.php: HTML list reporting
- bugslist.php: wiki table reporting
- bugslist.php: check for newlines in value and remove them
- run.sh: plain-* output options
LOW priority
- bugslist.php: MediaWiki integration would be nice. I.e. automatically insert reports into the MediaWiki database. Might be smarter to go in through the front-end via HTTP (need HTTP auth and a valid cookie for that... doable.)
- bugslist.php: linting for invalid comment labels, e.g. HAKK, missing/invalid punctuation, etc.
HACK
LOW priority
- bugslist.php: We just bail if previous revision is zero.
CONSIDER
LOW priority
- bugslist.php: for svn items is the line number 'svn' or is it the first changed line in the associated file?
- bugslist.php: add MAINT type w/ --maint option to report on maintenance gotchas? (i.e. stuff you need to know about for doing a release etc.)
- bugslist.php: add support for ';' list delimiters in addition to ','..?
- bugslist.php: add support for multiple reports delimited with ';'..?
- bugslist.php: add support for FEATURE/IMPROVEMENT items..?
- bugslist.php: alias 'TASK' to 'TODO'..?
- bugslist.php: consider support for 'Z' => 'DEBUG'..?
- bugslist.php: make null headings a command-line/config option? At the moment null headings are skipped, not reported.
DONE
2016-12-14
- JE: bugslist.php: read options into globals.
- JE: bugslist.php: we use '.debug' files for testing...
- JE: bugslist.php: we fixup some filter options which might not be arrays when they should be.
- JE: bugslist.php: fix up our directory filters...
- JE: bugslist.php: $options are now validated.
- JE: bugslist.php: if we have a path option chdir to it.
- JE: bugslist.php: file options are validated.
- JE: bugslist.php: initialise our main local variables.
- JE: bugslist.php: our VCS type is now auto-detected.
- JE: bugslist.php: do our svn stuff if we're in an svn working copy.
- JE: bugslist.php: if user has specified files with --file then process them.
- JE: bugslist.php: if user hasn't specified files with --file then process the root directory.
- JE: bugslist.php: exit if --exit was specified.
- JE: bugslist.php: sort our $data. Sorting is by --aggregate then --collate.
- JE: bugslist.php: default order is based on the 'order' integer which is the order we discovered our items. (It's a counter.)
- JE: bugslist.php: report based on user options. Not that only report_wiki_list() is actually implemented at the moment.
- JE: bugslist.php: all user options are now initialised in get_default_options().
- JE: bugslist.php: counters are now initialised in get_initial_count().
- JE: bugslist.php: help has been rewritten to avoid duplication.
- JE: bugslist.php: print_options() has been updated to use new $options array and report on more options (e.g. vcs type, exit, etc.)
- JE: bugslist.php: print_stats() now reports number of warnings.
- JE: bugslist.php: $type_regex is now an unconcatenated string because string concatenation for a constant didn't seem to work in PHP v5.3... it's annoying that it doesn't fit in 80 cols!
- JE: bugslist.php: get_priority() now collects $warnings...
- JE: bugslist.php: configure_globals() is now comprehensive. All globals (that aren't entirely managed inside a function, such as $pushd_stack in pushd() and popd()) are now initialised here.
- JE: bugslist.php: $*_options and $*_abbreviations have now been standardised and initialised in configure_globals().
- JE: bugslist.php: shell() now returns an error level between 100 and 199. It's the exec'd error level plus 100.
- JE: bugslist.php: we now have a $changed output variable on pushd() which indicates if the current directory was actually changed or not. This is useful if you find yourself calling pushd( '..' ) on /.
- JE: bugslist.php: report --heading options
- JE: bugslist.php: the 'name' and 'line' options no longer include the revision number... need an option which does: that option is 'link'
- JE: bugslist.php: change 'name' from 'n' to 'm'.
- JE: bugslist.php: default options have been factored into get_default_options().
- JE: bugslist.php: user options have been factored into $options array.
- JE: bugslist.php: command-line argument parsing has been factored into read_*_arg() methods.
2016-12-13
- JE: bugslist.php: current user '?' is not added to filter...
- JE: bugslist.php: initialise $config
- JE: bugslist.php: refactored documentation to remove duplication.
- JE: bugslist.php: fixed issue where we processed svn working copies that weren't svn working copies...
- JE: bugslist.php: refactored options globals
- JE: bugslist.php: changed --option to --output
2016-12-12
- JE: open-doco.sh: we load the wiki edit URLs in Firefox and open the generated wiki text reports in Kate (Kate is a text editor...)
- JE: bugslist.php: cancel duration reporting during debugging
- JE: bugslist.php: there's an issue where if no-link options are specified and no cell options are specified we get a report with blank list items. The fix is to check if any cell items have been specified and if not automatically add 'text'.
- JE: bugslist.php: path is '/' for base/project directory...
- JE: bugslist.php: removed revision from line/name links
- JE: bugslist.php: type wildcards are resolved at parse time.
- JE: bugslist.php: reporting by text be might be useful..?
- JE: bugslist.php: add svn items to COMMIT type rather than importing them as DONE.
- JE: bugslist.php: svn integration
- JE: bugslist.php: removed 'path-file', it's 'both' now...
- JE: bugslist.php: terminology change: 'alias' to 'abbreviation', an alias is a type alias like FIXME and SEE.
- JE: bugslist.php: update args unit tests with new command-line args
- JE: bugslist.php: DEBUG is 'g', not 'z'.
- JE: bugslist.php: changed --types to --type for consistency, same with --headings and --options.
- JE: bugslist.php: added --file doco
- JE: bugslist.php: fixed issue where newline was emitted after empty report.
- JE: bugslist.php: issue where sub wiki items weren't indented
- JE: run.sh: invalid level tests
- JE: run.sh: valid level tests
- JE: run.sh: invalid type tests
- JE: run.sh: invalid aggregate tests
- JE: run.sh: invalid heading tests
- JE: run.sh: valid heading options tests
- JE: run.sh: invalid heading option abbreviation tests
- JE: run.sh: invalid output options tests
2016-12-11
- JE: bugslist.php: added support for 'line' and 'line-number'.
- JE: bugslist.php: basic unit testing framework has been implemented.
- JE: bugslist.php: user can exit without reporting with +X. In this case error level is zero.
- JE: bugslist.php: implement no-link heading options
- JE: bugslist.php: implement no-link options
- JE: bugslist.php: add 'both' option for path/file
- JE: bugslist.php: don't output cells in report if they are missing
- JE: bugslist.php: added support for initals option, links to user wiki
- JE: bugslist.php: start heading level is configurable...
- JE: bugslist.php: added --level for initial heading level, defaults to 2.
- JE: bugslist.php: load the svn globals
- JE: bugslist.php: priority suffix is a config option now.
- JE: bugslist.php: have counter for total LOC processed.
- JE: bugslist.php: have "no link" options for headings and cells. The no-link option removes URLs from wiki/html output for the value specified.
- JE: bugslist.php: removed support for NICE priority level, it added complexity and was kinda unclear. Gone now.
- JE: bugslist.php: added support for wiki user links (with initials). Configure in config file with e.g.:
- $config[ 'user' ][ 'jj5' ][ 'initials' ] = 'JE';
- $config[ 'user' ][ 'jj5' ][ 'wiki-user' ] = 'John';
- JE: bugslist.php: we have support for emitting wiki categories now. Configured in config file as e.g.:
- $config[ 'wiki' ][ 'category' ][ $type ][ $value ] = $category_name
- JE: bugslist.php: integer values are sorted numerically now (not as strings...)
2016-12-10
- JE: bugslist.php: numerical sorting for priority and line number.
- JE: bugslist.php: support to show/hide warnings
- JE: bugslist.php: use define( 'TEST', true ) to avoid running main() when loading script.
- JE: bugslist.php: --file overrides --skip etc.
- JE: bugslist.php: added 'y' for priority
- JE: bugslist.php: added priority filters
- JE: bugslist.php: improved newline outputs between optional sections
- JE: bugslist.php: added 'text' to report (for sorting, removes duplicates)
- JE: bugslist.php: FIXME is HIGH priority TODO
- JE: bugslist.php: added support for --today and --yesterday
- JE: bugslist.php: run.sh and debug.sh unit tests call process.sh with an argument for what mode to run in (so command-line can be specified once-only and not duplicated between scripts).
- JE: bugslist.php: created project page and initial documentation.
- JE: bugslist.php: require punctuation after item type.
- JE: bugslist.php: support 'x-y' for PRIORITY spec? E.g. '0-3', 'H-L', etc.
- JE: bugslist.php: ignore: START, END items...
- JE: bugslist.php: have stdout() and stderr() functions and they track if output sent in global variables.
- JE: bugslist.php: don't run main in unit tests...
- JE: bugslist.php: missing fields are now an error:
- JE: bugslist.php: track if output sent:
- JE: run.sh: invalid priority tests
- JE: run.sh: valid priority tests
- JE: run.sh: invalid file tests
- JE: run.sh: valid file tests
- JE: run.sh: invalid path/file tests
- JE: run.sh: valid path/file tests
- JE: run.php: testing relative pushd's...
- JE: run.php: define TEST to flag as unit test... (doesn't run main());
- JE: run.php: testing absolute pushd's...
- JE: test.inc.sh: added '$$' (process ID) to temp files.
- JE: run.php: define TEST to flag as unit test... (doesn't run main());
2016-12-09
- JE: bugslist.php: don't output spurious leading/trailing new lines
- JE: bugslist.php: add support for formatting options and include optional line numbers.
- JE: bugslist.php: check for application config file in script dir...
- JE: bugslist.php: $config_path is of no further use... clear it.
- JE: run.sh: invalid command-line switch tests
- JE: run.sh: invalid username tests
- JE: run.sh: valid username tests
- JE: run.sh: invalid datespec tests
- JE: run.sh: valid datespec tests
- JE: run.sh: valid type tests
- JE: run.sh: invalid type abbreviation tests
- JE: run.sh: valid type abbreviation tests
- JE: run.sh: invalid path tests
- JE: run.sh: valid path tests
- JE: run.sh: invalid include tests
- JE: run.sh: valid include tests
- JE: run.sh: required argument missing for command-line switch tests
- JE: run.sh: invalid exclude tests
- JE: run.sh: valid exclude tests
- JE: run.sh: valid skip tests
- JE: run.sh: valid keep tests
- JE: run.sh: valid aggregate tests
- JE: run.sh: optional argument missing for command-line switch tests
- JE: run.sh: invalid aggregate abbreviation tests
- JE: run.sh: valid aggregate abbreviation tests
- JE: run.sh: valid heading option abbreviation tests
- JE: run.sh: valid output options tests
- JE: run.sh: invalid output option abbreviation tests
- JE: run.sh: valid output option abbreviation tests
2016-12-07
- JE: bugslist.php: set default priority by type:
- TODO: MEDIUM
- HACK: LOW
- etc.
- JE: bugslist.php: don't blank if no stderr output
2016-12-06
- JE: bugslist.php: support PRIORITY for TODO etc. By default:
- 0: CRITICAL
- 1: HIGH
- 2: MEDIUM
- 3: LOW
- 4: DEBUG
- JE: bugslist.php: option to print line numbers
- JE: bugslist.php: improved reporting to group by date, user, etc.
- JE: bugslist.php: implemented descending sorting
- JE: bugslist.php: implemented natural case sorting
- JE: bugslist.php: there's a problem with multiline comments below, see the PRIORITY TODO item. The issue is the preceding item about line numbers...
- JE: bugslist.php: include reporting options, and other new options
- JE: bugslist.php: try for config file in program directory...
- JE: bugslist.php: check for local config file in cwd...
- JE: bugslist.php: added support for wildcard users...
- JE: bugslist.php: added support for wildcard dates...
- JE: bugslist.php: added to included extensions, made excluded extensions override included extensions
2016-12-05
- JE: bugslist.php: don't allow empty path spec
- JE: bugslist.php: changed support for files with no extension, changed from excluded by default to included by default (for shell scripts, etc).