trac-gviz / trac-dev / gviz / TODO

Outstanding tasks

X Data provided by `GVizChagesetProvider` in columns `chg` 
  and `target` needs to be exchanged.

X Details about the latest changeset are shown by `GVizChagesetProvider` 
  when only `since` and `until` parameters are specified.

X Fix `TypeError` `unsupported operand type(s) for -: instance and datetime.datetime`
  and `AttributeError` `datetime.datetime object has no attribute value`
  on accessing ticket data without selecting specific IDs. It seems 
  that the problem happens because of changes introduced in 
  different implementations of TracXmlRpc plugin. The former happens 
  if using version 1.0.6, whereas the later shows up if using version 
  1.0.0 (but under different circumstances).

X Add support for GViz queries in GViz TracLinks providers.

X Implement a WikiMacro to embed the data exposed by instances of 

X Include GVizProviderListMacro.PROVIDER_DOC in a resource file.

X Ensure that responses are UTF-8 encoded, unless otherwise stated.

X Iterate over rows and values of `DataTable` instances.

X Implement TSV Response Format encoder. 

X Implement report creation from remote via XML-RPC protocol.

X Do not show report SQL in `ReportRPC.get` if client is not granted 
  `REPORT_SQL_VIEW` permission.

X Fix convert relative URL into absolute in `ReportRPC.execute` only 
  if needed.

X Add in `dutest` the doctest suite having `setUp` and `tearDown`. 
  Use it in RPC tests.

X Write simple tests for RPC handlers implemented by TracGViz : 
  `TimelineRPC`, `ReportRPC`.

X Add support for adding and loading test data.

X Use correct MIME type in TSV encoder.

X GViz API QL: Allow to select the columns to be returned, their 
  order, and labels.

X GViz API QL: Add support for limitting the number of returned rows, 
  as well as skipping a given number of first rows.

X GViz API QL: Ensure that columns are always arranged in the same order (use 
  GVizQL SELECT clause)

X GViz API QL: Notify that the data source doesn't support the base 
  table specified in `from` clause.

X GViz API QL: Protect against pygments imports.

X GViz API QL: Write tests for all supported GVizQL features.

X Make the plugin easy-installable.

X Add support for `HMAC` (`RFC 2104`) hash by using `hmac` module.

X Render GViz provider list on accessing `/gviz` path.

X Implement CSV and TSV encoders by using `csv` module.

X Include helper to convert CSV attachments to GViz API JSON format.

X Provide `dutest` as an external dependency.

X Add data source and infrastructure to convert files containing 
  tabular data in different formats to the JSON representation 
  defined by Google Visualization API. The contents may be 
  retrieved from anywhere (e.g. VCS, attachments, ...).

X Include helper to convert CSV files under version control to GViz 
  API JSON format.

~ Write tests for data sources included in TracGViz 1.3.4 that are 
  not about version control.

- Use FSL to select files in GViz providers ?

- Optimize `GVizSourceFileContents` by wrapping VCS file objects 
  in order to get further methods (i.e. not just `read`.

- Write further tests for `tracgviz.xsv.GvizXSVConverter`.

- Migrate `fmtvalue` helper function from encoders towards `tracgviz.util`.

- Integrate `IGVizTableEncoder` with MIME view.

- Implement indirect MIME conversions using GViz data tables.

- Add support for `outFileName` option in TSV encoder.

- Allow encoders to introduce headers in the HTTP response.

- Try to use values instead of formatted values in CSV and TSV encoders.

- Include helper to convert OOo files to GViz API JSON format.

- Don't skip silently the exceptions raised while executing 

- Clone the test suites in order to run tests using components 
  directly or using in-process HTTP server.

- Introduce support for GViz warnings (specially `data_truncated` 

- Write tests for data sources included in TracGViz 1.3.4 that 
  expose data under version control (`svn` + `hg` + `git` ? + `mtn` + 
  `bzr` ? ) like `VersionControlRPC`. Include example repos.

- Unify test loaders.

- Implement clonation of `dutest.DocTestLoader`s.

- Include example (`svn`, `hg`, ...) repositories in package data for 
  testing purposes.

- Select modules to be tested.

- Implement TracAnalytics.

- Implement Trac simple spreadsheets.

- Add support for milestone groups in `GVizMilestone` provider.

- Test `VersionControlRPC` using Hg backend. Include example `hg` 

- Implement data source to retrieve known MIME-types.

- Implement data source to retrieve available MIME conversions.

- Add support for retrieving table data in reStructuredText (rst) 

- Use Trac i18n for strings displayed to clients.

- Test GViz providers for VCS (`git` ? + `mtn` + `bzr` ? ).

- Find the root cause for missing changes in revisions `1`, `3` and 
  `8` (e.g. lack of support in `TracMercurial` for `copy` events?)

- Add `limit` parameter for history methods in VersionControlRPC.

- Implement data source provider for Ticket->Query

- Implement `create`, `update`, and `delete` methods in ReportRPC

- Add an option in GViz milestones in order to only show data about 
  active milestones.

- Cache the requests and optimize the request/response cycle by using 
  the `reqId` parameter.

- Separate GVizSystem and GVizModule ?

- Add labels to the data sources. bah!

- Include formatted values for dates in JSON result.

- Fix the issue with selecting changed tickets since timestamp.

- Optimize the calls to TracRPC's Method objects by preventing 
  them from building lists out of generators.

- Put exception types in a separate module.

- Allow to provide documentation to describe dynamic columns (i.e. 
  those columns that appear in data tables only when some run-time 
  conditions are met e.g. ticket custom fields in 

- Execute reports defined using URLs pointing to saved custom queries.

- Implement architecture in order to export data.

- Export data to Google Spreadsheets.