+Trac Data Sources for Google Visualization API. Embed iGoogle gadgets using WikiFormatting.
+This package (plugin) provides components so that Trac be able to
+use widgets and related technologies provided by Google.
+- It allows to feed data managed by Trac to widgets based on Google
+- It allows embedding iGoogle Gadgets in wiki pages using WikiFormatting.
+Copyright 2009-2011 Olemis Lang <olemis at gmail.com>
+Licensed under the Apache License, Version 2.0
+What's new in version 1.4.2
+- #103 - Bug fixed: PIVOT fails for calculated columns with aggregate functions
+- #66 - Bug fixed: Unicode values in ticket list schema
+- #105 - Bug fixed: Unicode values in date constants schema
+- #106 - Bug fixed: Type error in dateDiff
+- #111 - Bug fixed: Error executing scalar function `now()`
+- #88 - Wiki page text and size in GViz data source
+- New! #92 - GViz QL : Implement PIVOT clause
+- New! #112 - Integer division in GViz queries
+- #113 - Bug fixed: Unknown: error in HTML cells
+- #67 Implement TracLinks for Ohloh widget gadgets
+- #104 - Bug fixed: Empty cells messed up by GViz MoinMoin encoder
+- #114 URL escape plus sign in query URL
+- Migrate `tracgviz.testing` to a new package `dutest-trac`
+- Remove relative import statements
+- Error message for GViz content providers when guessed mimetype is still `None`
+- Move `dutest` to `tests_require` rather than `install_requires`.
+- New! Naive typecasts in CSV to GViz MIME converter.
+- URL column in milestone GViz provider.
+What's new in version 1.4.1
+- New! The plugin is easy-installable. Modules like `dutest`,
+ `TracXmlRpcPlugin` and `Pygments` are external dependencies.
+- New! Simple test cases (doctests) have been written for RPC handlers
+ implemented by TracGViz : `TimelineRPC`, `ReportRPC`. They are run
+ using a minimalistic framework built on top of `dutest` and allowing
+ to (efficiently) write readable doctests for Trac plugins.
+- New! It is possible to select the columns to be returned, their
+ order, and labels. There is partial support for `SELECT` statement,
+ since only column names are allowed so far, and full support for
+- New! Added full support for limitting the number of returned rows,
+ as well as skipping a given number of first rows (i.e. `OFFSET` and
+ `LIMIT` clauses in GViz QL).
+- New! A GViz QL error message is sent back to the caller if the data
+ source doesn't support the base table specified in `FROM` clause.
+ This clause has been deprecated in recent versions of the API.
+- New! Calculated columns (e.g. arithmetic expressions) in
+ `LABEL` and `FORMAT` clauses follow a syntax simlar to variable names
+- New! `FORMAT` clause powered by PyICU.
+- New! `ORDER BY` clause supported in queries.
+- New! `GROUP BY` clause supported in queries.
+- New! Added data source and infrastructure to convert files containing
+ tabular data in different formats to the JSON representation
+ defined by Google Visualization API. It is integrated with Trac
+ MIME conversions. The contents may be retrieved from anywhere if
+ the right plugin is implemented.
+- New! Added GViz provider to convert contents of files under version
+ control to GViz Data Tables (provided that a MIME conversion is
+ available). Further optimizations have been deferred.
+- New! Added GViz provider to convert files attached to Trac resources
+ in order to obtain GViz Data Tables (provided that a MIME conversion
+ is available). Especially implemented to help users like
+ Robert Obertholtzer. Thanks for the feedback and help !
+- New! Included helper to convert CSV files under version control to
+ GViz API JSON format. Especially implemented to help users like
+ Robert Obertholtzer. Thanks for the feedback and help !
+- New! Added `GVizTableMacro`, a macro that embeds in TracWiki pages
+ the data tables returned by *LOCAL* GViz data providers (i.e.
+ instances of `IGVizDataProvider`). It is possible to include custom
+ parameters (e.g. `tq` for queries written using Google
+ Visualization API Query Language). The table contents are displayed
+ using HTML tables, hence neither gadgets nor internet connection
+ are needed in this case.
+- New! Implemented TSV Response Format encoder. It is compliant with
+ the specification and response is encoded using UTF-16 charset.
+ Nonetheless `outFileName` parameter is not supported yet.
+- New! Added sample TracGViz providers. They illustrate how easy is
+ to implement custom GViz providers in order to offer your data to
+- New! Added support for `HMAC` (`RFC 2104`) hash by using `hmac` module.
+- New! GViz providers list rendered on accessing `/gviz` path.
+- New! Support for parsing other (more complex) expressions in `select`
+ clause (e.g. aggregate functions, -date- constants).
+- New! Support for parsing `WHERE` clause in detail
+- New! Support for parsing more complex expressions in `ORDER BY` clause
+ (e.g. aggregate functions).
+- New! Constants accepted in `select` clause.
+- New! Support for parsing and evaluating scalar functions in `select` clause.
+- New! Support for parsing and evaluating expressions in `select` clause.
+- New! GViz QL grammar to include SQL clauses and refactor
+ current parsing solution.
+- Column type checks may trigger error responses on missmatch.
+- Fix GViz providers index, broken using Trac=1.0
+- Apache(TM) Bloodhound web UI enhancements
+- Upgrade RPC providers for Trac=1.0 and Apache(TM) Bloodhound.
+- CSV and TSV encoders are implemented by using `csv` module in stdlib.
+- Include helper to convert CSV attachments to GViz API JSON format.
+- It is possible to create reports from remote via XML-RPC API.
+- Report SQL is not shown in `ReportRPC.get` if client is not granted
+ `REPORT_SQL_VIEW` permission.
+- Added support in the test suite for adding and loading test data.
+- Test cases written for all supported (and unsupported) GVizQL
+- Some test cases written for data sources included in TracGViz 1.3.4
+ that are not about version control. Much more work is needed :(
+- The plugin works even if `Pygments` is not installed. In that case
+ only GViz QL will be missing and thereby all other features will be
+- Further precautions to ensure that responses are UTF-8 encoded,
+ unless otherwise stated.
+- Added support for GViz queries (i.e. `tq` parameter) in GViz
+- Included provider documentation in a resource file.
+- It is possible to iterate over rows and values of `DataTable`
+- Bug fixed: Relative URL converted into absolute in
+ `ReportRPC.execute` only if needed.
+- Bug fixed: Data provided by `GVizChagesetProvider` in columns `chg`
+ and `target` were exchanged. Now they are in the right place.
+- Bug fixed: Details about the latest changeset are shown by
+ `GVizChagesetProvider` when only `since` and `until` parameters are
+- Bug fixed: Enhanced compatibilty with Trac XmlRpcPlugin=1.0.6 and
+ the way it handles datetime values. Errors like
+ `TypeError: unsupported operand type(s) for -: instance and datetime.datetime`
+ and `AttributeError: datetime.datetime object has no attribute value`
+- Bug fixed #57 : `ValueError` was raised (sometimes) in
+ `GadgetAliases.__init__` when parsing aliases in config file. Not
+What's new in version 1.3.4
+- New ! `GVizQuickJumpEntries` offers data about interesting places
+ in the repository (a.k.a. `quick jump entries`). This includes
+ tags and branches, for instance. The data is provided by
+- Bug fixed: Formerly all revisions were included in the revision
+ log if only individual revisions were requested. Now the result
+ sets include just the information for the particular changesets
+ supplied in `rev` parameter. Tested with both `hg` and `svn`.
+- Bug fixed: Exception with message `Invalid list index` was raised when
+ using Subversion backend when requesting the log for individual
+ revisions. This works OK now for both `hg` and `svn`.
+- Bug fixed: Wrong default value for `fmt` parameter in
+ `GVizChangesetDetails`. Now it's OK.
+- Bug fixed: Formerly undocumented column in `GVizTimelineFilters`
+ provider now contains appropriate description.
+- WikiFormatting may be used to document the data sources. It may be
+ included in the documentation written for parameters, columns, and
+ the data source itself.
+- Bug fixed: Documentation for providers having dynamic schemas was
+ not previously rendered. This has been fixed and a new property
+ has been added in docs to highlight whether the data source returns
+ always the same columns or if they can vary depending upon run-time
+- Milestones may be filtered by name by providing a UNIX pattern in
+- UNIX filename patterns are compiled using REs for better performance.
+- Bug fixed: When using Hg backend, the code in version 1.3.3 in
+ order to revisions iterator (VCS RPC) entered infinite loop (under
+ certain conditions apparently related to branching or version
+ numbers). This doesnt happen anymore.
+- Bug fixed: Now VCS RPC retrieves all changesets when using Hg backend.
+ The implementation doesn't guess anymore the revision order and
+ retrieves all that information directly from the underlying VCS
+ connector in use. The former algorithm was weak because it only
+ considered the first parent of a given revision. Therefore many
+ others (especially all those in different branches) were missing
+- Individual revisions (and not just intervals like before) may be
+ selected in `GVizChangesets` (i.e. to obtain the revision log).
+- Bug fixed: As a consequence of the changes introduced in version
+ 1.3.3 (especially in ReportRPC and VersionControlRPC) together
+ with `bug #5586@TH.org`_ in XmlRpcPlugin, made impossible
+ to render the main displaying documentation about the different
+ RPC handlers. Both docstrings have been modified and everything
+ is back to normal right now.
+.. _bug #5586@TH.org: http://trac-hacks.org/ticket/5586
+What's new in version 1.3.3
+- New ! Since version 1.3.3 macro aliases are supported so that
+ embedding iGoogle gadgets in wiki pages be even easier. Aliases are
+ names of macros configured using `gadgets.aliases` option which
+ are shortcuts to use iGoogleGadget with a fixed name. For example,
+ if the aforementioned option is set to
+ then the following snippets are equivalent (so users wont need to
+ remember gadget URLs anymore but names they are familiar with ;).
+- Aliases for Google's visualization gadgets are offered by default.
+- TracLinks expressions are supported in config options used to
+ define iGoogleGadget macro aliases.
+- New ! GVizTicketList now lists the tickets created in a Trac
+ environment together with their attributes. Custom fields, if
+ available, are also included in separate columns. That's why the
+ columns in the data tables returned as well as their order can
+ change from time to time, depending on the plugins enabled in the
+ particular environment and other factors.
+- New ! ReportRPC now provides an interface to Trac's report module
+ via XML-RPC protocol. So far report execution is only supported for
+ reports defined by using SQL and TracQuery syntax. This means that
+ saved custom queries specified using URLs are not supported yet,
+ but will be (hopefully) in a near future. In the mean time a
+ `NotImplementedError` exception is raised.
+- New ! GVizAvailableReports now lists available reports and their
+ data, including report ID, title, description and the query string
+ used to select the tickets to be included in each report.
+- Important ! Architectural change. From now on Request objects
+ can be supplied in to IGVizDataProvider.get_data_schema method.
+ This change allows to implement more dynamic data providers
+ since schemas can vary depending upon the run-time values provided
+- New ! GVizReportProvider now offers the data included in custom Trac
+ Reports defined by Trac users. This is a very dynamic data
+ provider, and also the first example where schema can change
+ depending upon the report specification.
+- New ! VersionControlRPC now provides an interface to Trac's Version
+ Control API via XML-RPC protocol. Therefore information about files
+ in the project's repository and also about changesets is available
+ using standard protocols. It is posible to list files and folders
+ (`ls`) recursively with depth limit and filters written like
+ UNIX filename patterns. File attributes (e.g. size, content type,
+ ...), data about revisions (e.g. message, author, ...) in a given
+ (time) interval, file and folder history, and full description of
+ changes performed at a given revision, are some of the features
+ supported so far. Looking forward for further useful data to
+ be published ! This feature was "tested" using Mercurial SCM (`hg`)
+ and Subversion (`svn`), but the code *SHOULD* work as long as
+ connectors fully compatible with Trac's Version Control API be used.
+ However the different approaches taken by different VCS may lead to
+ wrong behaviors. So if you find any bug, please let me know.
+- New ! GVizSourceFiles now offers information about individual
+ files and those located in a folder. This data source supports filters
+ (i.e. UNIX filename patterns), and recursive lookup with optional
+ depth value. It is also possible to get the data for an specific
+ revision. The results are mostly file attributes (e.g. size,
+ extension, content type ...), but the actual values depend upon
+ the capabilities supported by the specific repository connector in
+- New ! GVizSourceFileHistory now makes available the modifications
+ performed on a group of files during a given time interval.
+ Boundary values may be either datetime values or revision
+ identifiers (supported by the specific repository connector).
+ Clients'll get back detailed information about the changes performed
+ on the given files in the different revisions together with the
+ file's attributes at that specific time.
+ This data source supports filters (i.e. UNIX filename
+ patterns) as well as recursive lookup with optional depth value.
+ Multiple datetime formats are supported as usual.
+- New ! GVizChangesetDetails now provides a detailed report
+ containing all the individual changes comitted at
+ once onto the repository and recorded in separate changesets. It
+ is possible to specify multiple changeset identifiers (supported by
+ the specific repository connector) (and | or) time intervals.
+ Boundary values may be either datetime values or changeset
+- New ! GVizChangesets now provides meta-data describing the
+ different changesets committed to the repository related to a
+ Trac environment (i.e. revision ID, messages, author, and date). It
+ is possible to limit the results by specifying a time interval.
+ Boundary values may be either datetime values or changeset
+- All the data providers interacting with the repository have been
+ "tested" using the connector for Mercurial SCM (i.e. `hg`). In this
+ case there are a few open issues that seem to be related with the
+ lack of support in TracMercurial for `copy` events (but it's not a
+ definitive conclusion). The current implementation *SHOULD* work
+ with other connectors compatible with Trac's Version Control API,
+ but THERE IS NO WARRANTY OF ANY KIND if you use another VCS.
+ However if your connector is not causing any trouble then you the
+ use of the aforementionned data sources *SHOULD NOT* cause any
+ damage to both your environment and your repository. Further tests
+ will be performed in the future but there's no clear schedule.
+ You could be the first one to test them. Suggestions, patches and
+ further feedback is welcome in order to overcome the actual
+- Added api.IHashLibrary interface so that plugins and extensions can
+ contribute with other secure hash, message digest and checksum
+ algorithms in order to compute `sig` field in GViz API responses.
+- All the code needed to support secure hash algorithms provided by
+ `hashlib` module can be found from now on in class `stdhash.HashLib`.
+ It supports the following methods : `sha1`, `sha224`, `sha256`,
+ `sha384`, `sha512`, and `md5`. Additional algorithms may also be
+ available depending upon the OpenSSL library that Python uses on
+- All the code needed to support checksum algorithms provided by
+ `zlib` module can be found from now on in class `stdhash.ZLibChecksum`.
+ It supports the following methods : `adler32`, `crc32`
+- Minor adjustments to adapt support for `sig` parameter to the
+ recent introduction of `IHashLibrary` interface.
+- Bug fixed: Formerly `sig` value was included in GViz API response
+ only if both, the hash method was setup and the `sig` parameter was
+ set in the request. From now on only the first condition has to
+ be met in order to send the hash value back to the client.
+- Bug fixed: Minor bug while displaying instances of `datetime`
+ using plain text encoders.
+- Support in `DataTable.SingleValueToJS` for automatic
+ conversion of instances of `xmlrpclib.DateTime` and `int` values
+ (POSTFIX timestamp) into instances of `datetime`. This allows to
+ supply such values in columns having types `date`, `datetime`, and
+ `timeofday` (not possible with gviz_api 1.0).
+- Support in `DataTable.SingleValueToJS` for automatic
+ conversion of unicode strings using utf-8 encoding. This allows to
+ supply such strings in columns having `string` type (not possible
+- Module `rpc` has been added to group all RPC handlers offered
+- Documentation added to highlight the use of
+ timeline.ticket_show_details option in trac.ini in order to
+ retrieve all events related to ticket changes (e.g. attachments).
+- Bug fixed: TimelineRPC doesnt fail when filter definitions
+ provided by instances of ITimelineEventProvider interface contain
+ a third (i.e. `checked`) element. It also handles unicode
+ characters appropriately.
+- MoinMoin encoder now returns `text/x.moin.wiki` MIME type.
+- Few optimizations and refactorings (e.g. unnecessary imports have
+What's new in version 1.3.2
+- TracGVizSystem now implements IPermissionRequestor interface. This
+ means that Trac admins can use `GVIZ_VIEW` permission to control
+ which users may access GViz data sources or not. On accessing such
+ data, if the aforementioned permission is not granted to the user
+ performing the request then a GViz API error response is returned
+ to the caller with `reason` set to `user_not_authenticated` in case
+ of anonymous access, or `access_denied` otherwise.
+- Now absolute URLs are returned while expanding TracLinks
+ expressions found used inside iGoogleGadget macro. Formerly this
+ prevented the iGoogle container to find data inside the project
+ environment in case TracLinks expressions were used.
+- Add support for `sheet` option in GoogleDocsConnector in order
+ to have links to data inside an specific sheet provided its name.
+ Hence, links like the following are supported from now on:
+ Sheet names may have alphanumeric characters as well as whitespaces.
+- Formerly values in columns having types `date`, `datetime` or
+ `timeofday` were shown in non-JSON responses (e.g. HTML)
+ in a way similar to `new Date(2009, 12, 2)`. Now they are rendered
+ using the following formats `%Y-%m-%d`, `%Y-%m-%d %H:%M:%S`,
+ `%H:%M:%S` respectively.
+- New ! The following (non-standard) formats are supported using
+ special format identifiers for `out` option in `tqx` parameter:
+ MoinMoin wiki tables (class extfmt.GVizMoinEncoder `out:moin`).
+- Every wiki GViz provider now supports name expansion using Unix
+ shell-style wildcards. This means that if such patterns are
+ specified for `name` parameter either once or multiple times, then
+ all those wiki pages for which a match is found will be included in
+ (e.g. `/gviz/wiki/index?tqx=out:html&all&name=Wiki*&name=TracN*`
+ will return information about all the versions of the wiki pages
+ starting with either `Wiki` or `TracN` prefixes, such as
+ `WikiNewPage`, `WikiHtml`, `WikiProcessors`,
+ `WikiRestructuredText`, `WikiStart`, `TracNavigation`,
+ `WikiRestructuredTextLinks`, `TracNotification`, `WikiMacros`,
+ `WikiFormatting`, `WikiPageNames`, `WikiDeletePage`).
+What's new in version 1.3.1
+- Assertions concerning permissions are supported, but not directly.
+ They are delegated to the underlying layers on top of which the data
+ sources have been implemented (e.g. XML-RPC handlers).
+- GadgetLinksDispatcher has been renamed. Now it is known as
+ LinksTreeDispatcher. It supports multiple root namespaces
+ (i.e. so far `gadgets`, and `gviz`) as well as the former hierarchy
+- IGadgetTracLinksResolver now is known as ITracLinksItem interface.
+ From now on its `get_link_resolvers` method *has to* return the
+ name of the root namespace (e.g. `gviz`).
+- New ! TracLinks expressions for Google Apps Reporting Visualization
+ API have been implemented. It may be necessary to be logged in to
+ the Google Apps control panel in order to access the data.
+- New ! It is possible to make reference to Google Spreadsheets using
+ TracLinks expressions starting with `gviz:google:sheet:` prefix.
+ They also support `range` attribute -to select only specific cells-
+ and `headers` option -in order to specify how many rows are header
+- New ! It is possible to make reference to Google's standard
+ visualizations using TracLinks expressions starting with
+ `gadget:google:modules:` prefix. Syntax ->
+- TracLinks expansion for custom arguments in iGoogleGadget macro is
+ not a dream anymore. You can enclose TracLinks expressions in
+ brackets and assign such values to custom arguments. In such cases
+ the macro will perform the expansion looking for the target URL.
+ Hence the first expression shown below can be written now as shown
+ in the second example. Both of them will embed in the wiki page a
+ motion chart displaying the data found in cells B3-G17 inside
+ Google Spreadsheet number 1234.
+- All links to third-party sites resulting from expanding a
+ TracLinks expression are rendered in wiki pages with the well-know
+- Instances of GVizXMLRPCAdapter now can implement the method
+ `xmlrpc_namespace`. It is similar to the former `gviz_namespace`
+ method, but returns the XML-RPC namespace. This way multiple data
+ sources can be implemented using the services provided by a single
+- New ! GVizSearchFiltersProvider now allows to list all search
+ filters installed in a Trac environment.
+- New ! It is possible to document the parameters accepted by a data
+ source using `gviz_param` decorator.
+- GVizProviderList macro now displays the parameters accepted by
+- Now it is much easier to handle unicode, date & time and values
+ returned by the different data sources. From now on there is no
+ need to convert instances of xmlrpclib.DateTime in to instances of
+- New ! GVizSearchProvider now gives access to search results
+ returned by Trac built-in search engine. You can specify a query
+ string and control the search filters (e.g. `wiki`, `ticket`,
+ `milestone`, `pydoc`) in use.
+- New ! You can get the names of the actions that can be performed on
+ a given ticket using `ticket/actions` data source.
+- New ! You can get all the meta-data describing ticket fields by
+ accessing `ticket/fields` data source.
+- New ! GVizTicketChangeLog provides a detailed changelog in order
+ to know the modifications made to different tickets. The data
+ source is available at `ticket/log`.
+- New ! GVizTicketAttachments provides detailed information about the
+ files attached to different tickets. The data source is available
+ at `ticket/attachments`.
+- New ! GVizTimelineFilters provides detailed information about the
+ different filters offered by those sources contributing to the
+ timeline. The data source is available at `timeline/filters`.
+- New ! GVizTimelineEvents provides detailed information about the
+ timed events reported by those sources contributing to the
+ timeline. It supports time slicing, and filtering. The data source
+ is available at `timeline/log`.
+- GVizMilestoneProvider has been enhanced. Formerly it just offered
+ the milestone name, due and completed time, plus its description.
+ Now it also contains some statistics on groups of tickets like
+ those displayed in the roadmap views. This includes the amount of
+ work that's been done, the units used to measure the indicators,
+ percent of the whole work that's been already done, the number of
+ active and closed tickets, and the percent they represent with
+ respect to the total number of tickets.
+- New ! GVizWikiPages provides detailed information about the wiki
+ pages found in the Trac environment. It supports multiple features,
+ being timed filters, page selection and multiple versions, just a
+ few of them. The data source is available at `wiki/index`.
+- New ! GVizWikiAttachments provides detailed information about the
+ files attached to wiki pages found in the Trac environment.
+ The data source is available at `wiki/attachments`.
+- The right MIME type (i.e. `application/json`) is sent back to the
+ client in the HTTP response when JSON is requested. This
+ is consistent with RFC xxx.
+What's new in version 1.2.3
+- Minor changes ... bah!
+What's new in version 1.2.2
+- The meaning of the different columns in the table returned by GViz
+ data sources as well as the default labels can be documented using
+ `gviz_col`. This function is compliant with annotations as defined
+- Data sources' documentation can be included in wiki pages using
+ `GVizDataSource` macro.
+- Docstrings have changed a little.
+- Bug fixed: Until now, if no protocol handler was enabled then
+ the project environment became broken, because of a ValueError
+ exception being raised. This is annoying and therefore has been
+ fixed. Now if a URL having `gviz` prefix is accessed and
+ there's no protocol handler available, a ``Not Found`` (404) HTTP
+ response is returned to the caller with message
+ ``Unable to find any protocol handler``.
+What's new in version 1.2.1
+- The `gviz_api` module (version 1.0.0) is redistributed in this
+ package. This has been made to fall back to this implementation
+ if no other has been previously installed.
+- From this version on, the work is licensed under the Apache License.
+ See COPYRIGHT and NOTICE for details.
+- Babel is no longer a dependency.
+- Full TracLinks expansion in `iGoogleGadget` macro parameters.
+- iGoogle gadgets logo included as image resource. Borders template
+- Bug fixed: Until now, if an underlying RPC handler was disabled
+ then environment initialization failed since an annoying ValueError
+ exception was raised. That won't happen anymore. Now, once a method
+ is requested on the corresponding GViz data source provider, a GViz
+ error response is returned to the caller containing an explanatory
+What's new in version 1.2.0
+- Added support to display iGoogle gadgets using WikiFormatting
+ extensions (i.e. iGoogleGadget macro).
+- Added support to upload and host custom image-based gadget borders
+ inside the project environment.
+- Bug fixed : All requests handled by IGVizDataProvider implementors
+ not having `tq` and `tqx` parameters
+ (e.g. http://myserver.com/project_name/gviz/ticket/status) now
+ output the correct data. Previously on accessing these URLs the
+ HTTP response body contained an HTML error page.
+What's new in version 1.1.0
+- Support has been added to implement Google Visualization API data
+ sources by reusing existing Trac XML RPC components.
+- Some (but not all) data sources for Trac ticket system are provided.
+ They are based on the following Trac XML-RPC providers (listed
+ hereafter by namespace): ticket.milestone, ticket.severity,
+ ticket.type, ticket.resolution, ticket.priority, ticket.component,
+ ticket.version, ticket.status.
+What's new in version 1.0.0
+- An architecture is available so as to provide a project's data in
+ the format specified in Google Visualization API protocol
+ specification (version 0.5) api.TracGVizSystem.
+- Multiple protocol handlers (e.g. for different versions, and
+ protocol evolution) are allowed by implementing the interface
+ api.IGVizProtocolHandler. There is native support for version 0.5 of
+ Google Visualization API protocol through GViz_0_5.
+- It is possible to register new data sources by implementing the
+ interface api.IGVizDataProvider
+- A pluggable architecture is at hand to retrieve table contents
+ in multiple formats by merely implementing api.IGVizTableEncoder
+ interface. The following formats are supported : JSON
+ (class stdfmt.GVizJsonEncoder), HTML (class stdfmt.GVizHtmlEncoder),
+ CSV (class stdfmt.GVizCSVEncoder).
+- The exception conditions mentioned in Google Visualization API
+ protocol specification (version 0.5) have been identified.