Bugslist: Difference between revisions

From John's wiki
Jump to navigation Jump to search
(→‎Tasks: updating tasks...)
No edit summary
 
(172 intermediate revisions by the same user not shown)
Line 1: Line 1:
bugslist.php is [[User:Sixsigma|John]]'s TODO list management script. For other projects see [[projects]].
[[Bugslist]] has moved to ProgClub: https://www.progclub.org/wiki/bugslist
 
= Status =
 
[[#Version|Released]]! But there's stuff [[bugslist.php#TODO|TODO]].
 
== Version ==
 
bugslist.php v0.1.1135
 
Copyright © 2016 [https://www.jj5.net/ John Elliot V]
License GPLv3+: [https://gnu.org/licenses/gpl.html GNU GPL] version 3 or later.
This is [https://www.gnu.org/philosophy/free-sw.html 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-11 22:36:07 +1100 (Sun, 11 Dec 2016)
UTC timestamp...: 2016-12-11 11:36:07Z
Date............: 2016-12-11
Time............: 22:36:07
Author..........: [https://www.jj5.net/ jj5]
File............: bugslist.php
Revision........: 1135
URL.............: [https://svn.jj5.net/svn/public/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php bugslist.php]
 
= Administration =
 
== Contributors ==
 
People who have contributed to this project. Newest on top.
 
* [[User:Sixsigma|John]]
 
== Copyright ==
 
Copyright © 2016, [[bugslist.php#Contributors|Contributors]].
 
== License ==
 
Licensed under the [https://gnu.org/licenses/gpl.html 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-11 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 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, FIXME
  2:    M:  MEDIUM:  TODO
  3:    L:      LOW:  HACK, DONE, FIXED, 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: <nowiki><!-- --></nowiki>
  Perl #.......: comment labels begin after '# ' (the space is important)
  C/CSS........: comment labels are within: /* */
 
=== Filtering options ===
 
-u, --user=USER      include items for USER
                      USER is comma-separated list of usernames
                      Use '*' for all users; '?' for current user.
-d, --date=DATE      include items for DATE
                      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.
    --today          include items for today only (default if not debugging)
    --yesterday      include items for yesterday only
-t, --types=[TYPES|ALIAS] include items by type, will affect report order.
                      Note: you can have duplicates, if you wish.
                      TYPES is comma-separated list of item types:
                        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
                        TODO.......: something that needs to be done
                          FIXME.....: a HIGH priority TODO
                          NICE......: a LOW priority TODO
                        HACK.......: something that needs to be improved
                        CONSIDER...: something to consider
                        Stuff that's done:
                        DONE.......: something that has been done
                        FIXED......: a BUG that has been fixed
                        Notes:
                        REFERENCE..: a reference, e.g. a URL (alias REF, SEE)
                        NOTE.......: notes, or items without a label
                        DEBUG......: an item for debugging purposes
                      e.g. 'TODO, NOTE'
                      ALIAS is string of type aliases:
                        w: WARNING
                        m: TEMP
                        b: BUG
                        t: TODO
                        h: HACK
                        c: CONSIDER
                        d: DONE
                        f: FIXED
                        r: REFERENCE
                        n: NOTE
                        z: DEBUG
                      e.g. 'bht' is 'BUG, HACK, TODO'
                      Use '*' for all types.
-y, --priority=[PRIORITIES]  include items with particular PRIORITIES. Can
                      be priority number, priority letter/abbreviation, or
                      priority name. Use '*' for all priorities.
    --all            report on all users, dates, types, and priorities.
 
=== File-system options ===
 
-p, --path=PATH      process files in PATH, current directory if omitted
-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
 
=== Output options ===
 
-r, --report=REPORT  report aggregation. Duplicates are not supported.
                      REPORT is a string of abbreviations or comma-separated
                      list of report fields.
                      Supported report fields are:
                        user: group by user
                        date: group by date
                        type: group by item type
                        priority: group by item priority
                        both: group by file (prefixes path if not grouped
                              by path)
                        path: group by path
                        file: group by file, do not prefix path.
                              This may not be what you want, will merge
                              files from different directories.
                      Supported abbreviations are:
                        u: user
                        d: date
                        t: type
                        y: priority
                        b: both
                        p: path
                        f: file
                      Use uppercase abbreviations to sort descending.
                      Default sorting uses binary comparision rather than
                      locale sensitive comparison which is probably what
                      you want.
                      e.g. 'dUp' reports by date, user desc, and path
-o, --options=OPTIONS
                      report options. Duplicates are not supported.
                      OPTIONS is a string of abbreviations or
                      comma-separated list of report options.
                      Supported options are:
                        user: include username in output
                        date: include date in output
                        type: include type in output
                        both: include path/file in output
                        path: include path in output
                        file: include file in output
                        line: include line number in output
                        initials: include user initials in output
                        text: includes text in output (default)
                        html: output to HTML instead of wiki text
                        table: output to HTML/wiki table instead of list
                        no-user-link: don't create hyperlink for user
                        no-date-link: don't create hyperlink for date
                        no-both-link: don't create hyperlink for path/file
                        no-path-link: don't create hyperlink for path
                        no-file-link: don't create hyperlink for file
                        no-line-link: don't create hyperlink for line
                        no-initials-link: don't create hyperlink for initials
                      Supported abbreviations are:
                        u: user
                        d: date
                        t: type
                        b: both
                        p: path
                        f: file
                        l: line
                        i: initials
                        x: text
                        U: no-user-link
                        D: no-date-link
                        B: no-both-link
                        P: no-path-link
                        F: no-file-link
                        L: no-line-link
                        I: no-initials-link
                        h: html
                        a: table
                      e.g. 'dtx' selects date, type, and text.
-l, --level          level of wiki 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
-v, --version        display version information and exit
+D, --debug          some handy defaults, when debugging or not
 
=== Feedback ===
 
Report bugs to: [mailto:jj5@progclub.org?subject=bugslist.php jj5@progclub.org]
 
== Source code ==
 
You can [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php read the source code].
 
You can [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d browse the repository].
 
You can [https://svn.jj5.net/svn/public/jjrepo/jj5-bin/tags/latest/bin/bugslist.d/bugslist.php checkout the latest stable script], or the [https://svn.jj5.net/svn/public/jjrepo/jj5-bin/tags/latest/bin/bugslist.d full stable system] (including tests and release scripts).
 
You can [https://svn.jj5.net/svn/public/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php checkout the latest development script], or the [https://svn.jj5.net/svn/public/jjrepo/jj5-bin/trunk/bin/bugslist.d full development system] (including tests and release scripts).
 
== Links ==
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l13 13]: bugslist.php home page
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l154 154]: PHP assert()
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l179 179]: PHP set_exception_handler()
 
= Specifications =
 
== Functional specification ==
 
See [[#Help|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 [mailto:jj5@progclub.org?subject=bugslist.php 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 [mailto:jj5@progclub.org?subject=bugslist.php jj5@progclub.org] along with a statement that you are willing to be listed in the [[bugslist.php#Contributors|contributors]] section of the documentation and willing to license your contribution under the [[bugslist.php#License|license]].
 
For security reasons write access to [https://svn.jj5.net/jjrepo/ jjrepo] is only available for [[User:Sixsigma|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 [https://www.progclub.org/ ProgClub] and [https://www.progclub.org/wiki/Register register]?
 
== Notes from the code ==
 
Following are notes from the source code, generated by bugslist.php!
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/?pathrev=1127 /] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127 bugslist.php] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l88 88]: [[User:Sixsigma|JE]]: 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!
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l104 104]: [[User:Sixsigma|JE]]: 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.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l114 114]: [[User:Sixsigma|JE]]: we have a local config file... include it:
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l125 125]: [[User:Sixsigma|JE]]: there's a bunch of error handling stuff we setup up-front
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l267 267]: [[User:Sixsigma|JE]]: Main application logic and configuration starts here...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l270 270]: [[User:Sixsigma|JE]]: 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
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l289 289]: [[User:Sixsigma|JE]]: this is the global code:
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l300 300]: [[User:Sixsigma|JE]]: configure our global defines, this is done after loading the config file if one exists...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l390 390]: [[User:Sixsigma|JE]]: flag whether running in DEBUG mode or not...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l392 392]: [[User:Sixsigma|JE]]: can conditionally switch on debug output...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l395 395]: [[User:Sixsigma|JE]]: configure terminal width:
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l398 398]: [[User:Sixsigma|JE]]: item types. Does not include aliases like 'SEE', 'FIXME', 'NICE', etc.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l404 404]: [[User:Sixsigma|JE]]: FIXME is an alias for TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l410 410]: [[User:Sixsigma|JE]]: SEE/REF are aliases...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l412 412]: [[User:Sixsigma|JE]]: NICE is an alias for TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l425 425]: [[User:Sixsigma|JE]]: configure regular expressions:
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l446 446]: [[User:Sixsigma|JE]]: $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'...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l485 485]: [[User:Sixsigma|JE]]: exception_handler(...) will exit (at time of writing!) but just to be safe:
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l840 840]: [[User:Sixsigma|JE]]: Last in wins!
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l1117 1117]: [[User:Sixsigma|JE]]: filtering is now done at data-gather time...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l1163 1163]: [[User:Sixsigma|JE]]: we could imagine support for other types and/or is_numeric()...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l1679 1679]: [[User:Sixsigma|JE]]: bail if we don't have svn...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l1854 1854]: [[User:Sixsigma|JE]]: overwrite $type_filter array
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l1970 1970]: [[User:Sixsigma|JE]]: overwrite $report array
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2171 2171]: [[User:Sixsigma|JE]]: this is ugly, but it's fast and safe (at time of writing!)
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2210 2210]: [[User:Sixsigma|JE]]: at this point it's OK to override the $file variable
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2251 2251]: [[User:Sixsigma|JE]]: clear the progress report
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2799 2799]: [[User:Sixsigma|JE]]: priority for FIXME can be different to TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2806 2806]: [[User:Sixsigma|JE]]: priority for NICE can be different to TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2833 2833]: [[User:Sixsigma|JE]]: $item_type is null to return false on invalid spec
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2840 2840]: [[User:Sixsigma|JE]]: FIXME is a HIGH priority TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2848 2848]: [[User:Sixsigma|JE]]: NICE is LOW priority TODO
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2881 2881]: [[User:Sixsigma|JE]]: if we can't find the priority from the spec warn then fallthrough to get by item type...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l2899 2899]: [[User:Sixsigma|JE]]: we can't find a priority so assume CRITICAL
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l3264 3264]: [[User:Sixsigma|JE]]: START: reset lower headings
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l3274 3274]: [[User:Sixsigma|JE]]: END: reset lower headings
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l3346 3346]: [[User:Sixsigma|JE]]: wildcards are supported
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l3496 3496]: [[User:Sixsigma|JE]]: this function exits on error otherwise returns true. The return value is redundant at the moment but we could imagine porting this to a library routine which behaved differently...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1127#l3542 3542]: [[User:Sixsigma|JE]]: returns false if no directory, true on success, or exits otherwise.
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bin?pathrev=1127 bin] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bin/open-doco.sh?pathrev=1127 open-doco.sh] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bin/open-doco.sh?pathrev=1127#l15 15]: [[User:Sixsigma|JE]]: it's better to open the files directly in Kate rather than opening a file explorer...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bin/open-doco.sh?pathrev=1127#l22 22]: [[User:Sixsigma|JE]]: give Firefox time to open...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bin/open-doco.sh?pathrev=1127#l47 47]: [[User:Sixsigma|JE]]: give Kate time to open...
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test?pathrev=1127 test] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/fast.sh?pathrev=1127 fast.sh] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/fast.sh?pathrev=1127#l7 7]: [[User:Sixsigma|JE]]: list slow tests to skip here:
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test?pathrev=1127 test] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/new.sh?pathrev=1127 new.sh] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/new.sh?pathrev=1127#l13 13]: [[User:Sixsigma|JE]]: don't edit this file. Edit process.sh...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/new.sh?pathrev=1127#l31 31]: [[User:Sixsigma|JE]]: 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.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/new.sh?pathrev=1127#l36 36]: [[User:Sixsigma|JE]]: the process.sh script is not executed (it is sourced).
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args?pathrev=1127 test/args] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1127 run.sh] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1127#l315 315]: [[User:Sixsigma|JE]]: not a good idea to pass '/' or anything with lots of data in it...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1127#l327 327]: [[User:Sixsigma|JE]]: processing /tmp probably isn't a good idea...
 
=== [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd?pathrev=1127 test/pushd] : [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd/run.php?pathrev=1127 run.php] ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd/run.php?pathrev=1127#l11 11]: [[User:Sixsigma|JE]]: popd should fail if uninitialised...
 
= Tasks =
 
== TODO ==
[[Category:TODO]]
 
=== HIGH priority ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l573 573]: need to put current user in filter...
 
=== MEDIUM priority ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l33 33]: add 'both' option for path/file
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l34 34]: implement no-link options and update tests...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l44 44]: make $file_extension_include, etc. configurable in config file.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l46 46]: Wiki table reporting
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l47 47]: HTML list reporting
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l48 48]: HTML table reporting
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l49 49]: alias 'TASK' to 'TODO'..?
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l50 50]: option to output wiki tables instead of lists
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l51 51]: make priority filter and default priority a config file option.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l454 454]: check if 'ods' is plain text / XML format...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l455 455]: consider if 'phar' should be excluded...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l456 456]: just adding a third TODO for testing...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l457 457]: going for gold!
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l458 458]: still going for gold!
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l466 466]: consider if 'properties' should be included...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l467 467]: consider if 'xcf' should be included...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l1494 1494]: include reporting options, and other new options
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3010 3010]: there might be a better way to format this. On the bright side it sorts high so gets listed first which is probably what we want...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3379 3379]: should we support wildcards?
 
=== LOW priority ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l37 37]: MediaWiki integration would be nice. I.e. automatically insert reports into the MediaWiki database.
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l42 42]: linting for invalid comment labels, e.g. HAKK, missing/invalid punctuation, etc.
 
== HACK ==
 
=== LOW priority ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l2661 2661]: this might be a bad idea...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l2663 2663]: this might be a slightly less bad idea...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l2665 2665]: this might be a slightly better idea...
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3017 3017]: Maybe this should be managed at data gathering time, or maybe it should be something else..?
 
== CONSIDER ==
 
=== LOW priority ===
 
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l35 35]: add support for ';' list delimiters in addition to ','..?
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l39 39]: add support for multiple reports delimited with ';'..?
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l41 41]: add support for FEATURE/IMPROVEMENT items..?
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l2881 2881]: consider support for 'Z' => 'DEBUG'..?
* [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3122 3122]: we want PATH here?
 
== DONE ==
[[Category:Done]]
 
=== 2016-12-11 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l57 57]: added support for initals option, links to user wiki
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l58 58]: start heading level is configurable...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l952 952]: load the svn globals
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3125 3125]: remove 'path-file', it's 'both' now... 'path-file' => $path_file, 'path-file-wiki' => $path_file_wiki,
 
=== 2016-12-10 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l59 59]: 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).
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l62 62]: created project page and initial documentation.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l63 63]: require punctuation after item type.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l64 64]: support 'x-y' for PRIORITY spec? E.g. '0-3', 'H-L', etc.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l66 66]: ignore: START, END items...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l295 295]: don't run main in unit tests...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l388 388]: track if output sent:
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l1148 1148]: missing fields are now an error:
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l275 275]: invalid priority tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l291 291]: valid priority tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l336 336]: invalid file tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l346 346]: valid file tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l360 360]: invalid path/file tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l366 366]: valid path/file tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd/run.php?pathrev=1136#l3 3]: define TEST to flag as unit test... (doesn't run main());
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd/run.php?pathrev=1136#l14 14]: testing relative pushd's...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/pushd/run.php?pathrev=1136#l30 30]: testing absolute pushd's...
 
=== 2016-12-09 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l67 67]: don't output spurious leading/trailing new lines
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l68 68]: add support for formatting options and include optional line numbers.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l103 103]: check for application config file in script dir...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l123 123]: $config_path is of no further use... clear it.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l5 5]: required argument missing for command-line switch tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l45 45]: optional argument missing for command-line switch tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l87 87]: invalid command-line switch tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l97 97]: invalid username tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l105 105]: valid username tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l123 123]: invalid datespec tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l133 133]: valid datespec tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l147 147]: valid types tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l211 211]: invalid types aliases tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l225 225]: valid types aliases tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l309 309]: invalid path tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l315 315]: valid path tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l374 374]: invalid include tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l390 390]: valid include tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l406 406]: invalid exclude tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l422 422]: valid exclude tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l438 438]: valid skip tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l450 450]: valid keep tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l462 462]: valid reports tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l486 486]: invalid reports aliases tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l496 496]: valid reports aliases tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l532 532]: invalid options tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l538 538]: valid options tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l576 576]: invalid options aliases tests
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/test/args/run.sh?pathrev=1136#l584 584]: valid options aliases tests
 
=== 2016-12-07 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l70 70]: set default priority by type:
** TODO: MEDIUM
** HACK: LOW
** etc.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3433 3433]: don't blank if no stderr output
 
=== 2016-12-06 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l74 74]: support PRIORITY for TODO etc. By default:
** 0: CRITICAL
** 1: HIGH
** 2: MEDIUM
** 3: LOW
** 4: DEBUG
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l80 80]: option to print line numbers
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l81 81]: improved reporting to group by date, user, etc.
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l82 82]: implemented descending sorting
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l83 83]: implemented natural case sorting
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l84 84]: there's a problem with multiline comments below, see the PRIORITY TODO item. The issue is the preceding item about line numbers...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l100 100]: try for config file in program directory...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l113 113]: check for local config file in cwd...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l468 468]: added '' to included extensions, made excluded extensions override included extensions
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3348 3348]: added support for wildcard users...
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l3364 3364]: added support for wildcard dates...
 
=== 2016-12-05 ===
 
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l459 459]: changed support for files with no extension, changed from excluded by default to included by default (for shell scripts, etc).
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l499 499]: configure argument defaults
* [[User:Sixsigma|JE]]: [https://svn.jj5.net/jjrepo/jj5-bin/trunk/bin/bugslist.d/bugslist.php?pathrev=1136#l1718 1718]: don't allow empty path spec

Latest revision as of 17:15, 2 March 2020