2006-11-09 release 1.20
metaf-sum:
    * new XSL transformation:
        transforms XML for METAR to get a summary as HTML table
metaf-add:
    * new XSL transformation:
        transforms XML for METAR: units are all SI, obsStationInfo is added
parser, FGFS, dtd, xsl, XML:
    * renamed tag tempUnit -> unitTemp
dtd, XML:
    * removed unused tag correctedMsg
parser:
    * allow space between cloud group and cloud type
    * overwriting $TZ is not necessary anymore
    * $is_speci not passed as argument anymore
cgi:
    * when FETCHing from ADDS dataserver:
      show SPECI additionally to METAR if SPECI is newer
    * use hoursBeforeNow=0 instead of 12 for TAF from ADDS dataserver as
      parameter refers to time of validity not collection (as web page states)
admin:
    * metaf2xml.pl does not set and pass $is_speci to parser anymore

2006-11-03 release 1.19
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tag for hail stone size (METAR) and time of amendment (TAF)
    * CONTRAIL(S)? is not a phenomenon description, but a phenomenon
    * renamed conditionMountain -> conditionMountainList,
      condMoun -> conditionMountain, same for valley
parser:
    * recognise variable ceiling in ft (with 4 digits)
    * don't correct spaces in temperature or dewpoint, extend RE instead
    * allow wind directions not rounded to 10 degrees
    * bugfix: fraction M1/4 not always processed correctly
    * bugfix visLocData: fractions were parsed, but not added to distance
    * improved pod
FGFS, lang.xsl:
    * added descriptions for swell conditions 5-9
    * recognise ACFT MSHP, OVR VLYS
FGFS, xsl:
    * bugfix: colourCode printing was incorrect
    * small formatting changes
lang.xsl:
    * completed russian translation
FGFS:
    * bugfix: descriptions for some keywords were missing
    * bugfix: CLD SCT not displayed correctly
dtd, XML:
    * versions come first
XML:
    * $writer is now global variable, not returned from xml_start, not passed to
      functions
    * properly close XML file
    * added pod
admin:
    * include russian in README
    * option -m of metaf2xml.pl is now without argument and with -f, only
    * make calls to "sed" work for older versions of "sed"

2006-10-27 release 1.18
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added weather JP (thanks to Th. Auguste, St. Lucia Met Services) and rel.
      humidity to main section of METAR
    * added DRFTG SNW, SP29.860, MT/SKY OBSC, V/D, FU ALOFT ..., SLP///, PRWX,
      TWLGT, OVR LK|RIVER, TX/28,0, VRBL CONDS, sunshine duration to remarks
    * phenomenon descriptions not separate tags anymore. splitted into pre/post
    * clouds can be embedded in/associated with any phenomenon
    * renamed cloudBaseNotAvailable -> baseBelowStation
parser:
    * correctly split HZY ISOLD? CI, VIS RDCD LO CLD, PRES[FR]R OCNL LTGICCG
    * IC is also a phenomenon with opacity
    * allow runway visibility in METAR remarks
    * commata replaced by blank in NOAA/IWS messages are restored for
      FQCH ... TX/ and ZMUB ... QFE
    * DUE( TO) ... and BY ... are not recognised temporarily, they require
      special handling, TBD
    * avoid more corrections of messages by extending the patterns recognised

2006-10-20 release 1.17
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags for unrecognised components, balloon data, info about estimated
      data, observation (time) info, radiosonde, and observation data from
      Rattlesnake Mtn. and Laguna Peak
    * allow more than one phenomenon description
    * renamed tag RHVal -> relHumid
parser, FGFS, dtd, xsl, XML:
    * removed the now obsolete tag freetext
cgi, fullhtml.xsl, lang.xsl:
    * remove hint for remark texts being in english
parser:
    * avoid some corrections of messages by extending the patterns recognised
lang.xsl:
    * continued russian translation
    * added missing description of some keywords
xsl:
    * bugfix: printLayerHeight now requires $trans
    * use templates for phenomenon descriptions
admin:
    * don't link files to HTDOCS directory if it is the install directory
    * basic.pm is now obsolete

2006-10-13 release 1.16
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags for snow cover, climate data, tornadic activity
    * extend visibility at 2nd location to be at a runway (approach)
    * WR (wet runway) is now in tag rwySfcCondition
    * accept LWR (lower) and CLD (unknown cloud type) in tag cloudTrace
    * renamed beginPrecip -> startTime, endPrecip -> endTime
parser, cgi:
    * allow ASCII in input, only
lang.xsl:
    * continued russian translation

2006-09-28 release 1.15
cgi, FGFS, xsl, lang.xsl, XML:
    * changed encoding from ISO-8859-1 to UTF-8
cgi, FGFS, xsl, lang.xsl:
    * started to add russian translation
cgi, fullhtml.xsl:
    * added value 'ru' to language options
    * minor layout changes
xsl, lang.xsl:
    * units depend on language. add and use <units>
parser:
    * allow FM24[00] for TAF
xsl:
    * bugfix: needMaint not correctly displayed
XML:
    * bugfix: data for TAFsuppl/windShearLvl was not written

2006-09-21 release 1.14
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags nextFcstBy, nextFcstAt, fcstAutoObs, fcstAutoMETAR for
      new tags for TAF remarks: <tafRemarkList><tafRemark>
    * added tags waterEquivOfSnow, snowOnGround, fcstNotAvbl
    * added CAVU, EPC, EPO, EPM, RTS to keywords
parser:
    * recognise EPM, more variants of EPC, EPO
FGFS:
    * added printing for TAF: fcstPeriod, trendType PROB

2006-09-15 release 1.13
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags NEFO_PLAYA, precipPastHour, densityAlt, pressureAlt,
      obsTimeOffset, CHINO, VISNO
    * recognise station type AO2A, phenomenon modifier (VRY )FBL, HIER, distance
      of phenomenon in km, "cloud type ASOCTD" for lightning, strange variant of
      PK WND for KEHA
    * set attribute isGrid in XML for subsequent compass directions but display
      once, only
    * renamed tag precipAmount -> precipAmountInch
parser:
    * everything for country RJ also holds for RO (both Japan)
cgi:
    * use ADDS dataserver version 1.0
xsl:
    * bugfix: rwyWind for METAR and rwyState for METAR trend was not displayed
    * bugfix: SKC in cloudMaxCover was not displayed correctly
FGFS, xsl:
    * distinguish between compass dir as location and direction
xsl, lang.xsl:
    * bugfix: is(Very)Thin for phenomenonAtLoc/Only was not displayed
    * add and use translations for unitLength
lang.xsl:
    * added descriptions for BLDU, DZSN, FZBCFG, GRRA, RAPL, SHGR, SHRAPL,
      TSRAGR
FGFS:
    * bugfixes: lightningType was not displayed, wrong visibility for YLO2,
      wrong value for depositDepth; formatting corrected
    * cleanup _printWind_FGFS()

2006-09-08 release 1.12
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags obscuration, variableCeiling, pressureTendency3h,
      ceilVisVariable, rwySfcCondition, rainfall
    * PWINO, FZRANO, etc. are now just values for new tag keyword
    * bugfix: added tornado in weather
parser, dtd, xsl, XML:
    * bugfix: TAF element tempAt was not written to XML, wrong in DTD
FGFS, lang.xsl:
    * added descriptions for YLO1, YLO2
cgi, fullhtml.xsl:
    * small layout change
cgi:
    * more fixes due to changes in HTML layout of NOAA source
FGFS:
    * further cleanup basic.pm (move stuff to FGFS.pm)

2006-09-01 release 1.11
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags phenomOpacity, ceilingAtLoc, cloudTypeLvl, cloudTrace,
      seaCondition, and swellCondition (TODO: description of QUL4-9!)
    * renamed tags: phenomLocation -> phenomenonLocAt, visAt -> visibilityAtLoc
    * use tag phenomenonOnly instead of phenomenonLocAt if no location is given
    * parser now recognises STNRY, OHD, AT AP, (VRY) THN, CVCTV, DSIPTD,
      quadrants delimited by blank, HALO
    * PRES[FR]R, visLower, cigLower are now not separate tags but in
      phenomenonOnly or phenomenonLocAt
parser, dtd, xsl:
    * remove attribute v for all tags with boolean values
lang.xsl:
    * several other additions & corrections
cgi:
    * delete control characters in message after fetching from a source
    * adapt to changes in HTML layout of NOAA source
    * bugfix: message in last line of file was never added
FGFS:
    * further cleanup basic.pm (move stuff to FGFS.pm)

2006-08-25 release 1.10
cgi, parser, dtd, xsl:
    * new data source: experimental ADDS dataserver
xsl:
    * display TAF forecast period length
    * use boolean() for node test, not comparison with ''
cgi, parser:
    * comma is a valid character in messages (ZMUB ... QFE649,6 ...) though
      NOAA/IWS replaces it with a blank
cgi, fullhtml.xsl:
    * disable options for source if data file exists
cgi, install:
    * make path and options for curl configurable

2006-08-18 release 1.9
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * process TAF elements wind shear, turbulence, icing, amendment
xsl, cgi:
    * added option to select source (currently NOAA or ADDS) for current weather
    * added warning about NOAA not updating TAFs
    * parameter values are all lower case
xsl:
    * reorder output to match order of TAF components in trends
cgi:
    * use curl options --fail --silent --show-error

2006-08-10 release 1.8
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags for condition in mountains and valleys in italian METARs
    * added lightning to tag phenomLocation
FGFS:
    * bugfix: tags visMin, cloud in remarks were not handled
xsl, cgi:
    * modified disclaimer

2006-08-03 release 1.7
cgi:
    * use CGI functions instead of HTML code everywhere
    * use only function-oriented style of CGI
    * restrict use of CGI (length of post, no uploads)
    * check and display CGI errors
    * added pod
xsl:
    * MS IE complained about $this set twice in a template and didn't find
      second root node in style sheet (but only in fullhtml?!?)

2006-07-27 release 1.6
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added tags visLower, cigLower, phenomLocation
xsl, cgi:
    * added disclaimer
    * added hint and example for 'FETCH'
cgi, dtd, xsl, XML:
    * removed option for notuptodate
parser, xsl, XML:
    * heed sequence of tempMin, tempMax
parser:
    * discard leading, trailing, multiple blanks before anything else
xsl:
    * omit prefix localdata:
    * use font-size "90%" instead of "smaller", <pre> has margin 0
    * drop check for alternate tags in remarks, use last (and only)
cgi:
    * bugfix: original message was not saved properly
fullhtml.xsl:
    * use defaults for unset options
    * replaced call-template by apply-templates because of MS IE bug

2006-07-20 release 1.5
parser, FGFS, dtd, xsl, lang.xsl, XML:
    * added proper tags for increasing snow, cloud type families, wind shift,
      start/end of precipitation, and a dozen single word remarks
dtd, xsl, XML:
    * extended metaf-fullhtml.xsl to provide HTML identical to metaf.pl; XML
      file can now contain call options (i.e. CGI parameters), passed with new
      option -O of metaf2xml.pl
parser:
    * started adding pod
    * option strict_fgfs no longer needed
cgi:
    * removed support for display of plain text XML; this can be done instead by
      looking at the page source of XML/XSL output format
    * bugfix: invalid HTML when displaying XML with empty message
xsl, lang.xsl:
    * use texts for <locationSpec>
lang.xsl:
    * translated remaining items to spanish
    * bugfix de/compassDir: content of "o" must be english
parser, FGFS, dtd, xsl, XML:
    * renamed "min" to "minute"
parser, FGFS, basic:
    * moved unneeded variables and functions from basic and parser to FGFS
home page, cgi, xsl:
    * replaced copyright character by "copyright (c)"
xsl:
    * small style changes for HTML

2006-07-06 release 1.4
cgi, xsl, Makefile:
    * added metaf-fullhtml.xsl and options in web interface for direct display
      (without xsltproc) of xml as HTML rendered by (XML capable) browser
xsl, FGFS:
    * don't assume month and year of issue/observation time is current.
      also some browser don't support date() in direct display of XML. omit it.
    * reorder output to match order of metar components (and not metar of fgfs)
xsl:
    * replaced <xsl:text disable-output-escaping="yes"> by <xsl:comment>
xsl, home page, cgi:
    * style in header is useles for rendering in browser, use style attribute
xsl, XML:
    * replaced tag weatherObs by tags RH, SST, OAT, AI
cgi:
    * small layout change
home page:
    * URL for compressed tar ball: link to SF package
dtd, XML:
    * exchange order of visVert <-> cloudList (found just 1 example)
parser:
    * allow combination of tempMin and tempMax in both orders
    * bugfix: subtag tempUnit was not set for tempMax

2006-06-29 release 1.3
parser, dtd, xsl, FGFS, XML:
    * added processing and display of SPECI
    * proper tags for precipitation, temperature, QFF, SST, OAT, RH, AI in remarks
    * provide tempUnit with temp to avoid conversion
parser, XML:
    * new option: -S <stylesheet> to add stylesheet reference to .xml (with -X)
    * renamed option -s to -F (aka -x/-X)
    * added usage message
parser:
    * check observation time for 3-/6-hourly precipitation
    * removed printUSTemp()
    * other bugfixes and cleanups (removed remarkWT, added remarkKNIP, $re_wind)
xsl:
    * removed font-family: monospace
    * added class="msg" for message field
FGFS:
    * bugfix: check exists toplevel hash element before children
html.xsl
    * added METAR/TAF, RMK in first column
lang.xsl:
    * corrected display of time-from, time-till
cgi:
    * prepend METAR/TAF to example messages
    * added embedded style sheet (for now small font for message, only)
    * removed (now) unnecessary sed /DOCTYPE/d
html.xsl, text.xsl:
    * further cleanup header declarations
pm:
    * prepend _ to name of local functions
README:
    * list all dependencies

2006-06-22 release 1.2
parser, dtd, xsl, FGFS:
    * introduced subtags (XML)/hashes (perl) for runway state (XML not backwards
      compatible)
parser, cgi:
    * allow leading "METAR ", "SPECI ", and "TAF " in messages; change type
      accordingly
parser, xsl:
    * day, hour and minutes always have 2 digits
parser:
    * added check for invalid formats for depositExtent, friction
    * bugfix: PROB[34]0 TEMPO without time: TEMPO was not seen
    * improved check for missing period for trends
    * added a few comments for specs used
html.xsl, cgi:
    * omit xhtml declaration, DOCTYPE is HTML 4.01 Transitional (verified)
    * use short tags
cgi:
    * added keywords like in home page
    * hint to Aviation Weather page, not METAR page, of NOAA
lang.xsl, text.xsl:
    * omit unnecessary declarations
xsl, FGFS:
    * peakWind: incorrect display if only minutes were given
    * added display of rwyWind and cloudCoverVar
    * small changes in wording/translation and composition of output
FGFS:
    * corrected conditions for output of "calm"
    * show CAVOK for METAR
README:
    * minor modifications

2006-06-13 release 1.1
parser, xsl:
    * parse remarks re. forecast status in TAF messages
    * make depositExtent, depositDepth more descriptive
parser, dtd, xsl, cgi:
    * add CVS ids of parser, XSL sources to XML and (as comment) to HTML
parser:
    * missing cloud base in regular clouds section of METAR now is invalidFormat
xsl, FGFS:
    * added cloudBaseNotAvailable
xsl:
    * short cut separate template for *List where possible
    * visRwy in remarks needs unitThreshold -> separate call to template
dtd:
    * added tempAtList, tempAt
cgi:
    * allow lower case letters, convert to upper case
    * write requests to logfile
    * modified options for curl
    * "CURRENT" -> "FETCH" (data is not really current :-), added warning to
      that effect, i.e. if fetched from raw data files
    * added usage comments
FGFS:
    * print ceiling
    * "deposit height" -> "deposit depth"
    * use leading '0' for hours < 10
    * recWeather comes later
    * print peakWind, visRwy from remarks
    * header cosmetics
admin:
    * improve install (paths are variables, Makefile, INSTALL)
