================= Changes in 3.0.18 ================= 04MAY2001 o Add an entry field to the print dialog to collect a title to put at the top of a printed report. If the title entered is blank the default is used. (Thanks to jamie.briggs@computalog.com) o Fixes to the DeletePR function (only available when accessing the GNATS database directly on disk (not recommended)). (thanks to John Zuckerman ). 27APR2000 o The Help for Category, Submitter-Id and Responsible is now dynamic and descriptions are taken from the categories, submitters and responsibles files as configured in gnats-adm. (This info is retrieved via gnatsd or [n]query-pr. 09MAR2000 o In SendPr, unqualified names in the Notify-List only get the default domainname appended if the name is _not_ found in the responsibles list. For this to work, it is assumed that the first and third fields of the responsible entry are different. For example, this will not get the default domainname appended: rickm:Rick Macdonald:rickm@example.com but this will: rickm:Rick Macdonald: o A new config variable TkGnats(QueryFileMenu) adds items to the File menu of the main Query window. See tkgnats.config for examples. 18FEB2000 o Fixed error when handling gnatsd access denied problems: Error in startup script: can't read "TkGnats(UserAccess)": no such element in array while executing "if {$TkGnats(UserAccess) == "noaccess"} { # The userid/password isn't valid or otherwise returned access=none. if {[info exist..." (procedure "get_gnats_config" line 13) invoked from within "get_gnats_config" (file "/opt/tkgnats/share/tkgnats/tkquerypr.tcl" line 64) o Updated delete_pr to work. It's been broken since about gnats-3.107. 16FEB2000 o Line wrapping in the Full, Raw and Description_Summary reports has been fixed, again. o The Full PR report now begins a new page for each PR. 04FEB2000 o If you edit a PR where the Responsible person has been removed from the responsibles file, the PR would get saved with a blank Responsible field. This triggers a bug in gen-index which causes the previous index record to be duplicated and the one with the blank Responsible person gets lost. To fix this, the Responsible field is now hard-wired as mandatory for the EditPr window, and the user is warned about the invalid value. ================= Changes in 3.0.16 ================= TkGnats 3.0.16 requires at least gnats-3.113-beta. 23JAN2000 o *** INCOMPABILITY WARNING *** The value of GNATS_ADDR in the gnats server's gnats-adm/config file now overrides the GNATS_ADDR field of the servers file. Therefore, in order for your database passwords to still be found in the TkGnats(ServerPasswords) variable you must ensure that the gnats-adm/config GNATS_ADDR is fully qualified (eg bugs@foo.com, not just bugs) and that the password entry keys match. Alternatively, it's better to switch to the new password variable and format in TkGnats(DatabasePasswords) which uses the database alias and hostname instead of GNATS_ADDR email address. o *** INCOMPABILITY WARNING *** Set the minimum version of GNATS required to 3.113. o A new file, "UserDir"/servers, is loaded if it exists. Use this to override or append to the global servers file. All variables matching TkGnats(Servers*) are sorted and then concatenated. Thus, TkGnats(Servers2) would append server entries to the TkGnats main menu (TkGnats(Servers)). Specifying TkGnats(Servers) in "UserDir"/servers would completely override the global server list. o You can now save a startup default query that is executed when the Query window is first opened. This makes the Query, Sort and Fields menus consistant: all have SaveCurrent/AsStartupDefault options, and all three have menu items to reset to the start default (if startup defaults have been saved). o New configuration variable TkGnats(${field}IsMandatory) allows users to specify additional mandatory fields for themselves but not override server-set mandatory fields. This is handy in help desk and other shared-account situations. For example: set TkGnats(X-GNATS-NotifyIsMandatory) 1 20JAN2000 o Fields in the Query listbox are now truncated if too long in order required to keep the listbox columns lined up. New variables (TkGnats(Query${field}_width)) allow some control. See tkgnats.config for details. The current defaults lean towards squishing up the fields to allow more of the Synopsis to be visible. o Query listbox heading abbreviations may now be specified for all fields except Number, which has the hard-wired abbreviation "Id". TkGnats(Query${field}Abbreviation) o You can now specify abbreviations for all non-text and non-date fields to help squish up the Query listbox width. Before, just Class and State allowed abbreviations. Priority and Severity now have new default abbreviations. Note that this variable name has changed from TkGnats(${field}Abbreviations) to TkGnats(Query${field}Abbreviations). 08JAN2000 o Reworked the initialization and password handling for the new feature that gets all the aliases from a server and builds the main TkGnats menu automatically. o Changed the recommended "ServerDir" to use database alias and server name instead of GNATS_ADDR components. *** WARNING *** If you switch to the special "*" feature of the main menu title, you will have to manually rename your global and personal ServerDirs to match this default naming convention. Otherwise, it will appear that you've lost your saved queries and other information. o Changed the TkGnats(ServerPasswords) variable (now depricated) to TkGnats(DatabasePasswords), which uses database alias and server name instead of GNATS_ADDR components. See README.config for details. 05JAN2000 o Fixed line wrapping in the Description Summary. 04JAN2000 o All available cusomizable variables are now listed in the tkgnats.config file. 03JAN2000 o Improved error message if a PR that appears in the Query listbox can't be accessed (send follow-up email, printed, viewed or editted) because it's missing or has bad directory or file permissions. o The (g)troff macro "yr" returns "100" instead of "00" (in the year 2000) so the footer at the bottom of the various Print reports has been changed from "100 / 1 / 3" to "Mon Jan 3 12:13 2000" (for example). 02JAN2000 o Fixed normalize_date function to return null if input date string is blank or null. This caused "today's date" to be filled into Date-Required every time a PR with a blank Date-Required was editted. Yikes! 02DEC1999 o Better error checking for batch sendmail errors. 30NOV1999 o A Server entry of "* server port" will cause the TkGnats main menu to query the gnats server for all available databases and automatically create a button for each one. *** WARNING *** If you switch to the special "*" feature of the main menu title, you will have to manually rename your global and personal ServerDirs to match this default naming convention. Otherwise, it will appear that you've lost your saved queries and other information. 27NOV1999 o Two new variables set the number of States and Classes in each row of radio and checkbuttons in the SendPr, EditPr and Query windows: TkGnats(ClassPerRow) and TkGnats(StatePerRow). The default is to put all in one row or buttons. ================= Changes in 3.0.14 ================= TkGnats 3.0.14 requires at least gnats-3.112-beta. TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. A few Windows users have reported socket communication problems with Windows version 8.0p2 which were fixed in Tcl/Tk 8.0.3. 20OCT1999 o Set the minimum version of GNATS required to 3.112. o Fixed broken query for Submitter-Id when TkGnats is configured for batch mode ([n]query-pr, etc, instead of gnatsd). 20SEP1999 o Changed index separator in "DELETE PERMANENTLY" from ":" to "|". 03SEP1999 o People were entering "now" for Date-Required. This is valid, but when check-db is run, "now" evaluates to a different time so the gnats index appears to be in error. TkGnats now converts Date-Required to the YY-MM-DD format to ensure that this doesn't happen. now, today, yesterday and tomorrow are all valid dates where this could occur. ================= Changes in 3.0.13 ================= TkGnats 3.0.13 requires at least gnats-3.111-beta. TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. It no longer runs with Tcl/Tk 7.6/4.2. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 29AUG1999 o Set the minimum version of GNATS required to 3.111. This should have also been set in TkGnats-3.0.12 but I forgot to do it. :-( o Improved error handling when filing edited PRs. Email isn't sent until after the PR has been successfully filed. o Added Cancel buttons to a few text entry dialogs (Edit Reasons, Saved Query commands, etc). o Removed two files that shouldn't be included in the distribution: NEWCONFIGOPTS and TKGNATSPATCH2. ================= Changes in 3.0.12 ================= TkGnats 3.0.12 requires at least gnats-3.111-beta. TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. It no longer runs with Tcl/Tk 7.6/4.2. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 06AUG1999 o Added bindings for Cut/Copy/Paste operations and the Query listbox for upper case characters so these functions all work when the CapsLock is on. o Changed the default of SUPPRESSED_EDIT_FIELDS to "none" instead of "Audit-Trail(admin)". 24JUL1999 o Fixed handling email address of the form "Rick Macdonald" . o MS email sometimes has addresses (in Reply-To, IE the Originator) with commas. eg: "Macdonald, Rick" . TkGnats internally parses and changes this to "Rick Macdonald" because TkGnats can't handle the comma. This change is _not_ saved in the PR even when the PR is editted and saved. 06JUL1999 o New config variable TkGnats(QueryDefaultAction) defaults to "view" but can be set to "edit" to control the action for double-clicking and pressing Enter in the Query listbox. 02JUL1999 o Added FIELD_ALIASES to the client hints. You can now "rename" any field in the PR! o Reinstated the TkGnats(Quarter) config variable for Paul Triana. o Fixed some background colours under Windows. o Added Delete to the Cut/Copy/Paste popup menu, and disabled functions when inappropriate such as Cut/Copy when there is no selection. o Fixed SendPr when Responsible is blank but not mandatory. o Fixed missing domain name in Send Email. 30JUN99 o Query listbox now takes input focus and has these bindings: - PageUp, PageDown, UpArrow, DownArrow, LeftArrow, RightArrow - e: Edit Pr (if authorized) - d: Delete Pr (if authorized) - v,Enter: View Pr - r: View Raw Data - h: Hide from List - m: Send Email o Improved busy stopwatch cursor setting and clearing. o New configuration variable TkGnats(DefaultDomainName). If specified, this will be added to all email addresses without a domain name. o New configuration variables for the default setting of fields in SendPr. Any field can be set with: set TkGnats(CreateDefault${field}) value where $field is any field such as Release. For example: set TkGnats(CreateDefaultRelease) "1.00 99" 24JUN99 o Added pop-up right mouse menu for Clipboard Cut/Copy/Paste operations in all text and entry widgets. Cut/Copy/Paste operations are also bound to the ^x, ^c and ^v keys respectively. Details are in the new Help/Cut,Copy,Paste menu item. 21JUN99 o Added support for multiple databases when UNIX platforms have direct disk access. See README.config and README.unix. The "ServerDir" is was a poor name choice and should have been called the DatabaseDir, but I'm leaving it as ServerDir in the README and CONFIG files for now. 18JUN99 o The File/EditReport menu item of the ViewPr dialog wasn't being disabled if the user didn't have edit permission. (Thanks to Richard McGowen ) 31MAY99 o TkGnats now searches the GNATS config file (--list-config|LCFG) for these "client hint" parameters. See README.config for details and defaults. REQUIRE_AUDIT_TRAIL_ENTRY REQUIRE_AUDIT_TRAIL_REASON REQUIRE_AUDIT_TRAIL_EMAIL SUPPRESSED_FIELDS SUPPRESSED_SEND_FIELDS SUPPRESSED_EDIT_FIELDS MANDATORY_FIELDS FIELD_ALIASES o TkGnats now searches the GNATS config file (--list-config|LCFG) for TKGNATS_MIN_VERSION, in which case it will abort if you are running a version of TkGnats older than that specified. The numbers are compared as strings, so 3.0.2 is greater than 3.0.19. I'll have to make sure that all future TkGnats versions are compatable with this check. This is documented in README.config. o Changed Reply-To to Notify-List, which now internally uses the email header X-GNATS-Notify instead of Reply-To. When parsing a PR, the following occurs: - if X-GNATS-Notify doesn't exist but Reply-To does, Reply-To is copied to X-GNATS-Notify and Reply-To is set to From. o Changed references to "ServerKey" to GNATSDatabaseAlias in the various README and CONFIG files. o Added sample server (gnatsd) passwords to CONFIG-user.ini and CONFIG-single-user.ini. ================= Changes in 3.0.11 ================= TkGnats 3.0.11 requires at least gnats-3.108-beta. This release was never used outside of my office. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0 or newer is recommended for performance and font handling. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 29MAY99 o Fixed bug where the continuation lines of long Reply-To headers were not being parsed, and therefore lost. 28APR99 o Fixed Help menus when using local disk access to GNATS. It was failing with the error: can't read "TkGnats(UserAccess)": no such element in array. (thanks to "Kitchener, Steve" ) o The Query window no longer resizes with the Query listbox xscroll. (thanks to "Kitchener, Steve" ) 21APR99 o The Create New PR dialog now removes "pending" from the category list. o Added an example TkGnats(CreateDefaultCategory) to tkgnats.config. 19APR99 o Added support for NIS+ to get the user's full name from the password file. (thanks to morgan.boklund@dynamics.saab.se) 25MAR99 o Positioned EditPr "reason for change" dialogs closer to the center of the EditPr window. Same with the entry dialog called when saving and renaming saved sorts and queries. 22MAR99 o If you pressed return or clicked OK without entering a reason after editing a PR, the entry dialog wasn't being raised again after a message dialog informed you that you must enter something. Now it is raised. (thanks to Matthew.Rice@ftlsol.com) 16MAR99 o Added the "Changes" file to all Help menus. The Makefile now installs the CHANGES file to TKGNATSLIB. 07MAR99 o Added validity check for release-based "Date-Required" field in tksend-pr and tkeditpr. ================= Changes in 3.0.10 ================= TkGnats 3.0.10 requires at least gnats-3.108-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0 or newer is recommended for performance and font handling. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 25FEB99 o The column headings of the main Query listbox now scroll (sideways) with the listbox contents. 21DEC98 o Removed a restriction from the Environment field that disallowed the "|" character (in tksendpr). 15DEC98 o Added the GNATS "Organization" field to the send, view and edit windows. ================ Changes in 3.0.9 ================ TkGnats 3.0.9 requires at least gnats-3.108-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0 or newer is recommended for performance and font handling. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 20NOV98 o Makefile now uses "cp -p" to retain dates of all files when installing. 19NOV98 o Print preview and print-to-file of "ascii" and "latin1" formats now have overstrikes removed by passing the "-b" flag to the groff post-processor (grotty). 09NOV98 o Changes to support fixes in GNATS-3.108: gnatsd no longer unlocks PRs under any circumstances, like pr-edit, so we have to. pr-edit now returns the full text of a PR when locking, like npr-edit does, so we don't need a separate call to get the full text. pr-edit no longer locks the entire GNATS database when locking an individual PR (gnatsd never did) so we don't have to check for the error condition of gnats being locked when we lock a PR. gnatsd LOCK now properly terminates with \r\n.\r\n so this had to be handled. gnatsd and npr-edit now properly escape single dots on send and un-escape on receive so this had to be handled. ================ Changes in 3.0.8 ================ TkGnats 3.0.8 requires at least gnats-3.107-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0 or newer is recommended for performance and font handling. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 26OCT98 o TkGnats was including the entire GECOS field from NIS or the /etc/passwd entry for fullname. It now only reads up to the first comma. (Thanks to Paul Traina ) o Added still more support for release-based keywords. o Added configuration variable TkGnats(Quarter) that defines an alternate name for the release-based Quarter field. 25OCT98 o Added configuration variable TkGnats(AutoUpdateCheck). If set non-zero, this causes TkGnats to check if TkGnats has been recently updated when certain buttons are pressed (query, view, edit, etc). The method is to store and check the file modification time of the file $TkGnats(lib)/VERSION. When an update is detected, TkGnats refuses most operations and asks the user to quit and restart. You can use this to force users to quit and restart to get updated local configuration changes by simply "touch"ing this file. 24OCT98 o Added configuration variable TkGnats(MainMenu) which is code executed in the main menu just prior to adding the buttons to the window. This can be used to add custom buttons to, for example, provide a shortcut to a SendPr window. The following adds such a button for the first server in your server list: set TkGnats(MainMenu) { set s [lindex [lsort [array names TkGnats server,*]] 0] set l [list $TkGnats($s)] set b s_[lindex [split $s ,] 1] button .top.n$b -relief raised -text "Send New Bug Report" \ -command "TkGnats_exec {$TkGnats(WISHPATH)} $TkGnats(lib)/tksendpr.tcl \ -server $l &; schedule_reap" pack .top.n$b -side top -fill x } 23OCT98 o Added configuration variables TkGnats(ClassAbbreviations) and TkGnats(StateAbbreviations) that are lists of values and their abbreviations for the Query listbox. These override any default abbreviations provided by TkGnats. Currently, Class and State names are given 5 and 9 characters in the listbox respectively. If your custom Classes or States are longer, use these variables to supply abbreviations. For example, if you have custom Classes called "installation" and "management", place this is a tkgnatsrc file: set TkGnats(ClassAbbreviations) "installation ins management mgmt" o Added example Class and State abbreviations to tkgnats.config. 17OCT98 o UNIX commands such as "groups" and "id" are no longer executed under Windows. o Multiple database support. o UserID and password supported for network access. See new configuration variable TkGnats(ServerPasswords) in the README.config file. o Variables TkGnats(edit_autorized_groups) and TkGnats(edit_authorized_users) are now used only when accessing gnats by local disk. Otherwise, GNATS database access is controlled by gnatsd directly. 16OCT98 o Added configuration variable TkGnats(FocusStyle). The default is "mouse" for focus-follows-mouse. Set to "click" for click to focus. ================ Changes in 3.0.7 ================ TkGnats 3.0.7 requires at least gnats-3.106-beta. That's not a misprint; I really do mean gnats-3.106. It's just coincidence that the version numbers of TkGnats and GNATS have been similar for awhile. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0 or newer is recommended for performance and font handling. A few Windows users have reported socket communication problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3. 05OCT98 o Corrected the order of "Group A" config files in README.config. It's: Group A: user-specified "INI" file (command line or env variable) "TKGNATSLIB"/tkgnatsini "TKGNATSLIB"/servers 01OCT98 o Added yet another optional configuration file, TkGnats(TKGNATSLIB)/tkgnatsini. It's read if it's there. See README.config. o Added the ViewConfigurationVariables menu item to the Help menu of the View Raw Data and Send Email dialogs. 30SEP98 o Somewhere between gnats-3.105 and gnats-3.107 a bug was fixed in gnatsd where it used to not precede the final "dot" terminator with \r\n. Now that it does, the get_pr_full_text_socket procedure in tkpr_library.tcl needed changing. I had originally prgrammed around this bug and fixing the bug broke TkGnats. The problem only showed up in the Print/Full and Print/DescriptionSummary functions in the Query dialog, and then only when there was more than one PR being printed. 29SEP98 o Added to some of the Help text that searching on Text-Fields can be slow (all other fields are in the GNATS index as of GNATS-3.107). 24SEP98 o TkGnats now checks the GNATS version and refuses to run if it is not compatable. o Removed a restriction from the Environment field that disallowed the "|" character (in tkeditpr). o The configuration variable TkGnats(QueryMode) is now obsolete. The Days-Idle query-field now gets the Last-Modified date from the SQLF/SQL2 format and no longer needs to do the slower "medium" query (which isn't so slow as of GNATS 3.106 anyway). o The Help for State and Class is now dynamic: it comes from the description fields of the states and classes files. 20SEP98 o Added Query options for all date fields, including a pop-up date selector. o Added full support for the release-based fields Quarter and Date-Required (send, query, view and edit). Previously, only Keywords was supported. o tkeditpr - improved handling of missing PR fields. o Added a "Save to file" button to the Help windows. This is mainly for Windows users where you can't copy/paste the Help/ConfigurationVariables text into another window such as a mail program. 17SEP98 o In the Query listbox, the right mouse button now pops up the "Actions" menu for the PR under the mouse. 08SEP98 o Changed from gnatsd command SQLF to SQL2, which has the blanks squished out to reduce the data transfer size. 03SEP98 o Fixed bug in tksendpr when the CreateDefaultClass wasn't set. The error message was: Error in startup script: invalid command name ".eflds.lb.bars.class._$TkGnats(ClassesList)" ================ Changes in 3.0.6 ================ TkGnats 3.0.6 requires at least gnats-3.106-beta. This is an interim release in that new feature support is not totally complete (see below). It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. Customizable classes and states is not quite complete. See the TO-DO file for details of any remaining issues. 24AUG98 o Added the new Release-Note field to help, view and edit. 27JUL98 o The status area of the Query window now shows the number of PRs found in the query. o Fixed double spacing in the Audit-Trail when more than one change was made at once. ================ Changes in 3.0.5 ================ TkGnats 3.0.5 was a development version that was never released. 27JUL98 o Added the Closed-Date field to the View and Edit dialogs (read-only). New queries for Closed-Date are not done yet. o Customizable classes and states is not quite complete. See the TO-DO file for details of any remaining issues. o Priority and Severity Audit-Trail change notices are now separate and they both prompt for comments. 07JUL98 o * INCOMPATIBILITY ISSUE * Audit-Trail logs use "->" to separate change notices instead of just "-". GNATS was inconsistant (and TkGnats too), using "->" for Responsible changes but "-" for state changes. EG: Responsible-Changed-From-To: rickm->atoyota GNATS 3.105 and newer have this same change. A conversion script for existing PRs was provided in GNATS 3.106 and newer. ================ Changes in 3.0.4 ================ TkGnats 3.0.4 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 26JUN98 o Unlike GNATS edit-pr, TkGnats now sends email notification and makes an entry into the Audit-Trail when the Priority and/or Severity are changed. I've added this fact to the tkgnats.doc file. 23JUN98 o Added GNATS_ADDR to the title bar of the New Problem Report window (tksendpr.tcl). 06JUN98 o Fixed TkGnats_sendmail_smtp (tcl_library.tcl) to work with newer versions of sendmail (8.x). It seems sendmail is more strict than it used to be. The SMTP commands MAIL FROM: and RCPT TO: no longer accept email addresses in the form: Rick Macdonald (this used to work in v5.x). Since the full email addresses are in the email headers (To:, From:, etc), there is no visible change to any email sent by TkGnats. 27MAY98 o Made colour settings variable. These variables defaults have been added to tkgnats.config: set TkGnats(ReadOnlyBackground) green set TkGnats(EditFieldBackground) grey95 This is temporary. Someday I'll add a colour configuration dialog. o Fixed spelling of variable in tkviewpr: TkGnats(mtextbackground). 11MAY98 o Fixed Query from Selection. It was broken. o Fixed hang when the Number field or Selection contained a non-existent PR. 07MAY98 o Fixed a problem in Summary print when a PR had no Synopsis or some other blank field or blanks within a field (such as Release or Originator). The error was "m0: no such variable", or, field data would be in the wrong cells of the generated report. o Made the Query listbox selection stickier. As you do new queries, the selection will warp to the last PR selected, if possible. 29APR98 o Improved error handling in lock_pr. 20APR98 o Renamed README.first to README. o Fixed the backspace and Ctrl-h keys in the quickfill entry widgets (send and edit dialogs). 18APR98 o Fixed a problem with category names ending with "++", such as "ospic++". 27FEB98 o Changed exec wish "$0" "$@" to be exec wish "$0" ${1+"$@"}. The old form (recommended in the wish man page!) apparently caused problems for DEC UNIX users. This apparently still doesn't work for DEC UNIX, but it seems it's the proper syntax anyway. o Added instructions to README.unix for executing TkGnats programs directly (bypassing the TkGnats Main Menu). (requested by "Wolfgang S. Kechel" ). o Added experimental user authentification with gnatsd. This is for a test version of gnatsd that a TkGnats user built. Perhaps a similar method can be defined universally and added to the mainstream gnatsd. ================ Changes in 3.0.3 ================ TkGnats 3.0.3 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 09JAN98 o TkGnats(GroupName) under UNIX is now set to the list of groups from the 'groups' command. The edit_authorized and delete_authorized groups are now searched for in this list. The list can still be a single group. (Thanks to Martin Schwenke ) o New variable TkGnats(GNATS_BINDIR) can be set if the GNATS programs query-pr and nquery-pr aren't in your path. (Thanks to Martin Schwenke ) 06JAN98 o A new variable TkGnats(ENVIRONMENT) may be set as the initial value of the Environment text when creating new problem reports. (Thanks to Dan Wilder ) 05JAN98 o Fixed bug in TkGnats_sendmail_smtp where a trailing comma in the address list (unusual) would cause a null string to be sent as SMPT RCPT TO: and cause the connection to the SMTP daemon to hang until it timed out. o Pressing Return in any entry field of the Query window executes the "Do Query" command. o The cursor in the Query entry fields now changes to a stopwatch when the Query window is busy (previously all widgets _but_ the entry fields got the cursor change). 23DEC97 o Reworked the Makefile somewhat. A new variable helps control installation for local or network GNATS access. Set GNATS=local or GNATS=network. The default is local. Variables can be set on the make command line: make GNATS=network In the case of GNATS=local, the Makefile looks at the file $(GNATS_ROOT)/gnats-adm/config for the following variables: GNATS_ADDR, GNATS_USER, SUBMITTER In the case of GNATS=network, GNATS_USER isn't required, GNATS_ADDR is in the "servers" file, and SUBMITTER is typically in the server-specific tkgnatsrc file. o Modified README.unix to reflect the Makefile changes above. o Re-worded parts of README.windows. o Added mention of the GNATS mailing list to the README.first file. o Changed the subject of the email sent when editing the State or Responsible fields to be recognizable by GNATS as follow-up mail. Before, a reply to such mail copied to "bugs" (a rare non-sensible thing to do!) would be misinterpreted as a new report. 22DEC97 o Put the server title (the one that goes on the TkGnats main menu) into the iconname for the main Query window. o By default, the Query listbox now shows as many characters of the Originator's name as will fit into the space allotted. If you want the first name only, set TkGnats(QueryOriginatorFormat) to "short". ================ Changes in 3.0.2 ================ TkGnats 3.0.2 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 16DEC97 o Fixed bug where GNATS_ADDR was hardwired to "bugs" in the UNIX case where the GNATS daemon was _not_ being used. o Various improvements to the README files. ================ Changes in 3.0.1 ================ TkGnats 3.0.1 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 15DEC97 o Fixed bug in tkeditpr. When not using gnatsd, it would not unlock the PR after it was updated. o Improved comments in the Makefile. o Added $(MAKEPATH) $(MANDIR)/man1 to makefile. o Got rid of the `which $(WISHPROG)` in the Makefile. It just caused too many problems. WISHPROG is still a variable, and can be given to make on the command line: make WISHPROG=wish8.0. Note that the tkgnats executable now has the following, directly from the wish man page: #!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" This means that WISHPROG may be set to the executable only, such as "wish8.0" or to a full path such as /usr/local/bin/wish8.0. The Makefile replaces "exec wish" with "exec $WISHPROG". ================ Changes in 3.0.0 ================ TkGnats 3.0.0 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 08DEC97 o Consolidated the man files into one, tkgnats.1. o Finished rewriting the README and CONFIG files. o Removed the shell script execution line (first line) from tkeditpr, tkquerypr, tksendpr and tkviewpr and renamed with .tcl extensions. o Renamed to version 3.0.0 and released. ================ Changes in 2.0b8 ================ TkGnats 2.0b8 requires at least gnats-3.104-beta. It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT. Version 8.0p2 has also been tested. Version 8.0 or newer is recommended for performance and font handling. 03DEC97 o Improved email error handling when using smtp sockets. On error, the socket is closed and the email dialog is not destoyed. o Added the wish path and patchlevel to the Help windows. o The "Send Email..." dialog now disallows a blank message body (GNATS won't process mail if the body is blank). 02DEC97 o Fixed bug in font selector where resetting to the previous font didn't load the corresponding font sizes into the size listbox. o Made the TkGnats(HOME) variable optional, but either TkGnats(HOME) or TkGnats(UserDir) must be specified. o Removed the TkGnats(HOME) variable from CONFIG-user.ini and CONFIG-single-user.ini. TkGnats(UserDir), TkGnats(UserSubdir) and env(HOME) are now set automatically in WIN-tkgnats.tcl from the path name of the tkgnats.tcl script (this applies only to Windows). 10NOV97 o In TkGnats(TKGNATSLIB) the contents of the print/query/sort directories are merged with the contents of the TkGnats(TKGNATSLIB)/'ServerDir'/ print/query/sort directories when building the print/query/sort menus of the Query dialog. All directories and files are optional. o In TkGnats(UserDir) the contents of the print/query/sort directories are merged with the contents of the TkGnats(UserDir)/'ServerDir'/ print/query/sort directories when building the print/query/sort menus of the Query dialog. All directories and files are optional. 08NOV97 o Saving of the Query startup (default) sort order and fields is now explicit in the Sort and Fields menus rather than hidden side effects. o Saved queries now include the sort order and selected fields. o Cascaded parts of the Query, Sort and Fields menus. 07NOV97 o The regexp in saved queries are now enclosed in braces instead of quotes to preserve escaped characters. o The UserDir still defaults to ".tkgnats" for unix, but non-unix defaults to "tkgnats". 06NOV97 o Various tweaks to configurations issues. o Updated TECHNOTES, FILES, README, etc. o Audit-trail messages changed from: Responsible-Changed-By: rickm to: Responsible-Changed-By: Rick Macdonald IE: from $TkGnats(LogName) to $TkGnats(FullName) <$TkGnats(EmailAddr)> o Fixed error message when trying to edit a PR that is locked. 02NOV97 o Lots of minor changes but I couldn't keep up with this changelog. o Added a font editor. o Moved buttons and menus around to be a bit more standard. 27OCT97 o The category in the TkSendpr dialog may be pre-set with the variable TkGnats(CreateDefaultCategory). This used to be TkGnats(TksendprCategory). 16OCT97 o Added font control variables: TkGnats(DialogFont), TkGnats(TextFont) and TkGnats(HelpFont). 07OCT97 o Added a new item to the Print menu, "Dump Listbox Data...". This saves the SQL-formatted data for the PRs in the Query listbox to a file. This might be useful to feed external scripts until TkGnats gets some report-generating options. Even then, I doubt that TkGnats could ever support _all_ of the reports that one might want to glean from the GNATS database. 06OCT97 o More portability improvements, such as using [info hostname] and $tcl_platform instead of external unix programs like hostname and uname. o The Days-Idle query requires the Last-Modified field, which isn't part of the -i (--sql or SQLF) query. I've coded around this by doing a "medium" query (QURY) and parsing this to build data similar to the SQLF output. This runs a bit slower when the query has lots of hits but I only do it when a value is given for the Days-Idle field. It should run better on Tcl/Tk 8.0 due to the byte compiler. You can force this behaviour for all queries by setting TkGnats(QueryMode) to medium. The default is sql, except when a value is given for the Days-Idle field as explained above. Previously, TkGnats looked at the time-stamp of the PR file itself, but of course this wouldn't work in the network case, or from Windows95/NT. I'll ask Brendan for a new query option that adds this field to the sql output. It probably should be a new option or flag so existing scripts don't break. 04OCT97 o Added internal sorting of the Query listbox. This elimates the use of the external sort program (necessary for Win95/NT port). o Sort and Field menu items now operate on the current listbox contents, rather than running the query again. This improves performance. 02OCT97 o proc Tkgnats_config sets new variable TkGnats(HOSTNAME) which checks [info hostname] to get the hostname. This is still overridden by the environment variable HOSTNAME. lock_pr now uses this variable. o Cleaned up proc TkGnats_config somewhat. 29SEP97 o Removed temporary file use when updating PRs in favour of writing directly to the program (or socket) through a pipe. o Removed use of the UNIX "cat" command from perform_print_cmd. 26SEP97 o Gathered up all the TkGnats configuration code into proc TkGnats_config. o Added direct SMTP mail sending, controlled by new variables TkGnats(MailMethod) (mailer or smtp) and TkGnats(SMTP_SERVER) and TkGnats(SMTP_PORT). o Added direct gnatsd socket communication, controlled by new variables TkGnats(GNATS_SERVER) and TkGnats(GNATS_PORT). Network access to gnatsd can be batch (nquery-pr/npr-edit) or direct socket connections and is controlled by the variable TkGnats(GNATS_ACCESS_METHOD) (batch or socket). "socket" is recommended. Don't bother with the batch method. o Changed internal variable Tksendpr(Organization) to TkGnats(ORGANIZATION). o Added lots of configuration info to the Help/About menu item. ================ Changes in 2.0b7 ================ TkGnats 2.0b7 requires at least gnats-3.104-beta. This release was never used outside of my office. 25SEP97 o In preparation for direct communication with SMTP, the mail sending code has been rearranged. Mail is built into a string instead of written to a temporaty file and piped directly to TkGnats(Mailer). o Made the determination of ReleaseBased automatic, and removed the variable from tkgnats.config (which would now be overridden). o Changed the GNATS config variable of GNATS_SITE to SUBMITTER in the TkGnats Makefile as the value that needs to be set. GNATS_SITE is no longer used by TkGnats. o Changed the grep in the Makefile of the GNATS config file to be anchored at the beginning of lines so it finds SUBMITTER, not DEFAULT_SUBMITTER. o The internal variable TkGnats(Submitter-Id) is now TkGnats(SUBMITTER). This is the value of SUBMITTER from the GNATS config file. 22SEP97 o The category in the TkSendpr dialog may be pre-set with the variable TkGnats(TksendprCategory). o The pr mail header field "X-send-pr-version" is now set to the TkGnats version rather than the send-pr version, since we don't use send-pr. example: X-send-pr-version: tkgnats-2.0b7 I don't know that anybody uses this for anything other than debugging. o The "About" item in the "Help" menu now shows if you're accessing a local or network GNATS database. The GNATS server hostname is given, if known. o The variables GNATS_ROOT and LIBEXECDIR are now passed around TkGnats as TkGnats(GNATS_ROOT) and TkGnats(GNATS_LIBEXECDIR) respectively. o Added the variable CHECK_CFG to the Makefile. You can make TkGnats even if GNATS isn't installed with: make CHECK_CFG=no o The run-time configuration, which checks for certain environment variables, now happens after $TKGNATSLIB/tkgnats.config and any and all of the optional "tkgnatsrc" files have been read. 13SEP97 o Network support for the GNATS gnatsd daemon! o Added variables TkGnats(GNATS_ACCESS) and TkGnats(GNATS_SERVER) to tkgnats.config to set "local" GNATS database or "network" daemon access. o The Query action "Delete PERMANENTLY" is limited to local GNATS databases. o The command line arguments to the various executables in TkGnats (tksendpr, tkquerypr, tkeditpr and tkviewpr) have changed to improve performance (especially for network access) by passing along more information. o Fixed a bug where the Save Query option would fail if GNATS was _not_ configured --with-release-based. o TkGnats now uses query-pr to get the GNATS categories, submitters and responsible lists. Therefore, the following variables have been removed from tkgnats.config: TkGnats(CategoriesFile), TkGnats(SubmittersFile), TkGnats(ResponsibleFile), GNATS_BASE TkGnats(ResponsibleFile) is a variable used for a different purpose now. o Removed the TkGnats(pr_editor) variable from tkgnats.config. This is hardwired and shouldn't have been a variable. o Removed the TkGnats(pr-addr) variable from tkgnats.config. This simple function is now implemented internally in TkGnats. o The format of the Saved Queries has changed greatly (much simpler and not so dependent on TkGnats internal code) but the old format can still be read. o Fixed highlighting around active entry and text widgets. o Generally removed various bits of dead code. o Improved the quick-fill entry fields slightly. It's now impossible to erase the value in the field once it contains a value from the listbox. ================ Changes in 2.0b6 ================ TkGnats 2.0b6 requires at least gnats-3.104-beta. 20AUG97 o No visible changes or fixes. Only the installation configuration has changed to match and be consistent with the latest GNATS beta 3.104. o The Makefile now matches the new GNATS "LIBEXECDIR". The default is /usr/local/libexec to match GNATS beta 3.104. o The TkGnats files that go into TKGNATSLIB are platform-independent and have been moved from /usr/local/lib/tkgnats to /usr/local/share/tkgnats. This matches the default location for the GNATS platform-independent files, which is /usr/local/share/gnats. If you have been using the old location you should move or copy all the files and subdirectories to the new location _before_ installing TkGnats 2.0b6. This will preserve your old settings and any global queries, sorts and print functions. If you installed the new release first, then simply copy the old files then run "make install" again. Please make sure that you do _not_ have any set statements for TkGnats(lib) in tkgnats.config or any of the optional "tkgnatsrc" files. The setting of this variable now only occurs in the main executables (such as tkgnats, tksendpr, etc) and is configured by the Makefile. o Changed tksendpr to get the send-pr version dynamically by executing "send-pr --version". o This change was made in 2.0b5 but I forgot to add it to the Changes: Several values in $TKGNATSLIB/tkgnats.config can be overridden at runtime. At runtime, TkGnats checks for the environment variable "GNATS_ROOT". If it exists, the GNATS config file $GNATS_ROOT/gnats-adm/config is scanned for the following values: GNATS_ADDR, GNATS_USER, GNATS_SITE, Submitter-Id which reset the following TkGnats variables: TkGnats(GNATS_ADDR), TkGnats(GNATS_USER), GNATS_ROOT, GNATS_BASE, TkGnats(GNATS_SITE), TkGnats(Submitter-Id) GNATS_ROOT also gives TkGnats the locations of the following GNATS files: categories, submitters, responsible by resetting the following TkGnats variables: TkGnats(CategoriesFile), TkGnats(SubmittersFile), TkGnats(ResponsibleFile) This happens _after_ $TKGNATSLIB/tkgnats.config is read but _before_ any of the following optional files are read: $TKGNATSLIB/tkgnatsrc $TKGNATSLIB/tkgnatsrc. ~/.tkgnats/tkgnatsrc ~/.tkgnats/tkgnatsrc. The is the result from the command "uname -s". For example, tkgnatsrc.SunOS, or tkgnatsrc.Linux. ================ Changes in 2.0b5 ================ TkGnats 2.0b5 is compatable only with gnats-3.102-beta. It was in the contrib directory of gnats-3.103, but gnats-3.103 was short-lived due to errors in its Makefile. It was also in the contrib directory of gnats-3.103, but it's Makefile was not compatable with GNATS's Makefile. 31JUL97 o Fixed tkeditpr to handle categories longer than 16 characters. 30JUL97 All of the following fixes were provided by Jonathan I. Kamens: o Don't delete the VERSION file in the "clean" rule, since it's part of the distribution and therefore shouldn't be deleted when the user just wants to remove derived objects. o Support the "Keywords" PR field with the new configuration option TkGnats(ReleaseBased) is true. o Rename default_sort to default_sort.old when renaming ~/TkGnats to ~/.tkgnats, since the old format of default_sort isn't compatible with the new one. o Put back the functionality for doing a query from the current X selection, using a "Query Selection" item on the "Query" menu, and augment it by allowing the selection to contain multiple PR numbers rather than just one. o Don't truncate search patterns when doing queries. o When doing queries, don't fail if a field we're querying doesn't actually exist in the queried PR. This is necessary because not all fields are present in all PRs. o Added TkGnats(MsMacroSet) to tkgnats.config. This sets the name of the macros for groff, typically "-ms" or "-mgs". 29JUL97 o Added Category to subject line of email sent from tkeditpr. 14JUL97 o Fixed bug in tkeditpr where it would incorrectly form the subject line when clicking "Send Email...". It used "Re: nnn:" instead of "Re: category/nnn:". o Added an "About" item to all of the Help menus to show the TkGnats version number. 11JUL97 o Improved TkGnats(LogName) determination throughout. 08JUL97 o Replaced several physical temporary files with internal Tcl variables in tkeditpr. 06JUL97 o Replaced internal Tcl code with calls to query-pr for the new gnats-3.102 options --synopsis and --release. REGEXP searches are now always done by query-pr and work properly. The regexp's are passed directly to query-pr and do not require quoting. For example, this is OK in the Synopsis field: this error|that error 04JUL97 o Added synopsys to the Subject line of created bug reports. Nobody usually sees this anyway, since GNATS does this too. o Changed the default for TkGnats(TextWrap) in tkgnats.config from "none" to "word". o Added TkGnats(delete_authorized_groups), TkGnats(GNATS_USER) and TkGnats(delete_authorized_users) to tkgnats.config. These turn on a new "Delete PERMANENTLY" option in the Actions menu of the Query dialog. Since GNATS_ROOT/gnats-adm/index and the PR files are usually writable only by the GNATS_USER, GNATS_USER is the default for TkGnats(delete_authorized_users). ================ Changes in 2.0b4 ================ TkGnats 2.0b4 is compatable with gnats beta releases up to gnats-3.102-beta. 06MAY97 o Tweaked Makefile again to work on Solaris, IRIX64 and Linux. o Fixed chmod in Makefile. o Added missing help for Last-Modified. o Removed call to old workingMsg (busy symbol) in synopsis_summary. o Removed "exec date" in synopsis_summary. o Renamed tkgnats.cf.t to tkgnats.config. 04MAY97 o Updated manpages and added them to Makefile install/uninstall. o Renamed sortDialog.tcl to tkprsort.tcl. o Renamed reports.tcl to tkprprint.tcl. o Fixed valid filename checking when saving and renaming queries and sorts. o Added TO-DO list. 03MAY97 o Makefile improvements. o Added the GNU COPYING file for copyright. o Removed "exec date" in favour of built-in Tcl "clock" command. o Removed "exec rm/mv/cp" in favour of built-in Tcl "file" commands. o Removed "exec cat" in favour of built-in open/read/close commnads. o Removed "exec grep" and "exec sed" in favour of built-in commnads. 01MAY97 o Makefile improvements. o Removed all old files that were no longer used. o Updated README and FILES. o Converted tkeditpr from sh script to tcl. o Combined tkeditpr and tkeditpr.tcl. Deleted tkeditpr.tcl. o Got rid of msgDialog. Use tk_dialog instead. o Got rid of the "busy" symbol on the status line in tkquerypr. ================ Changes in 2.0b3 ================ 24APR97 o Reworked email handling to support these email address formats: # 01: "Rick Macdonald" and Rick Macdonald # 02: rickm@vsl.com (Rick Macdonald) # 03: rickm@vsl.com o Added TkGnats Documentation button to the TkGnats main menu. It currently only describes the flow of email. 23APR97 o Originator field changed back to be just the real name of the actual submitter. It's no longer used as an email address. o Added Reply-To field to Create, View and Edit windows. This is a comma-separated list of email addresses and should include the Originator's email address. This was to maintain compatibility with other gnats front-ends (emacs, www). o Send Email can toggle off individuals fom the Reply-To field. o Send Email can now toggle off GNATS_ADDR (eg bugs) if desired. ================ Changes in 2.0b2 ================ 15MAY97 o User rc dir changed from ~/TkGnats to ~/.tkgnatsrc. Previous dir, if any, will get renamed. o Other changes, but I wasn't keeping track yet. ============== Changes in 2.0 ============== o Complete overhaul of TkGnats interface. o This was the first TkGnats that I sent out. It got onto the Debian 1.3 release. It should have been numbered 2.0b1.