CHANGES
=======

* Switch testing to Yoga testing runtime
* Fix doc job
* Update IRC network to OFTC
* setup.cfg: Replace dashes with underscores
* Switch testing to Xena testing runtime
* bump py37 to py38 in tox.ini
* Changed minversion in tox to 3.18.0
* Cap pandas to < 1.2.0 to fix gates
* Fix followup comment from review 768227
* Move openstack-health-nodejs10-run-test-browser to Firefox
* Create tox environment to build pdf documentation
* Switch testing to Victoria testing runtime
* Fix gate: define nodejs10 jobs
* Add py38 package metadata
* Replace assertItemsEqual with assertCountEqual
* Switch to newer openstackdocstheme version
* Remove .testr.conf
* Fix hacking min version to 3.0.1
* Fix typo in contributor guide
* [ussuri][goal] Update contributor documentation
* Cleanup py27 support
* Update to hacking 3.0
* Update hacking for Python3
* Use unittest.mock instead of third party mock
* [ussuri][goal] Drop python 2.7 support and testing
* Update nodejs to 10 LTS
* Remove Bugday from navbar
* Add Python 3 Train unit tests
* Update sphinx dependency
* Modify README.rst and tox.ini
* Update home-page
* Use openstack theme for docs
* Move doc related modules to doc/requirements.txt
* Dropping the py35 testing
* OpenDev Migration Patch
* Fix the misspelling of "register"
* dict\_object.keys() is not required for \*in\* operator
* Change openstack-dev to openstack-discuss
* Update angularjs libraries version
* Removed older version of python3.4
* Update min tox version to 2.0
* Use updated hacking url link
* fix tox python3 overrides
* add python 3.6 unit test job
* import zuul job settings from project-config
* update test section about requiring chromium
* fix prepare for numeric data
* docs: add info about subunit2SQL usage
* fix get\_numeric\_data
* Add run time graph for jobs
* fix tox python3 overrides
* Add support for HeadlessChrome in karma
* Fix gulp-util deprecation
* Fix npm-test: write after end error
* Handle missing groupby\_key in \_group\_runs\_by\_key
* Fix failed tests job name value on top page
* Add job name to recent failed test results
* Fix config file path treatment when using uwsgi
* Trust resource URLs in health-api for various environments
* Switch to use stestr instead of ostestr
* Handle '/' in build\_name for getting test\_runs
* Add links to o-h test pages for Failed tests on RSS
* Sync requirements to fix docs jobs
* Bye, Bye Diablo
* Fix html\_last\_updated\_fmt for Python3
* Remove vendor-js
* Add py3.5 support in setup.cfg
* Update openstack logo
* Add version string to status string
* Change default period of all graphs to 1 week
* Fix ratio to percent on failure rate graphs
* Change home page default period to 7days
* Add failed tests to rss
* Fix failure ratio format in charts
* Add py35 to tox.ini envlist
* Remove the angular 1.6 hashPrefix
* Lock required angular version to 1.6.2
* Fix nodejs4-npm-run-test and docs failure
* Replace six.iteritems() with .items()
* Fix duplicate graph rendering when data change
* Show team and repo badges on README
* Fix elasticsearch querying with recent e-r changes
* Add canvas scatter chart
* Add canvas line chart
* Add base utilities for canvas charts
* Add prefix "$" for command examples
* Fix bad use of jsonify() in \_get\_data
* Change run time graph to multiChart type
* Change pass-fail graph to multi bar chart
* Cache individual elasticsearch calls
* Update page title on job and test pages
* Add link to node\_provider grouped run page from test page
* Clarify error message for unavailable RSS feeds
* Fix RSS feed unavailable when no failure
* Add failed runs list to test page
* Add total count table to per test page
* De-vendorify d3 and nvd3
* Replace loading bar to nprogress
* Fix counting fails in test page
* Add regex filter to job page graphs
* Fix MemcacheIllegalInputError: Key contains spaces
* Fix pandas functions warnings
* Fix crumb menu on test details page
* Add caching on get\_test\_runs\_by\_build\_name
* Add launchpad bugs links to the home page failed runs
* Add html tags to rss links
* Round date intervals to nearest hour
* Add regex filter to group page graphs
* Add karma-subunit-reporter to generate subunit results for unit tests
* Fix changed imports in dogpile.cache 0.6.0
* Turn off interpolation on raw test run numeric data
* Cap dogpile.cache version to 0.5.7
* Stop using deprecated jsonpify import
* Fix typos in README and comments
* Remove failover logic outside of flask context
* Add DBM cache backend that uses memcached locking
* Redesign failed tests panel
* Add build\_name to subjects of RSS feed
* Change Content-Type of RSS feeds to application/xml
* Use \_config\_get() for the remaining config options
* Enable setting None as a default value in \_config\_get()
* Fix docs warning and error
* Update dogpile cache with an async worker
* Skip ES lookups on runs with missing metadata
* Add feedback and feedback-fix css class
* Only add parameters to the URL when changed from defaults
* Add elastic-recheck to status response
* Update the deployment docs
* Add elastic-recheck data querying
* Add 'offset' parameter to URL on tests detail page
* Move feedback link to fixed-bottom
* Add tooltips to know which projects are showed
* Move crumb menu to fixed top
* Make context-legend nowrap
* Move template files to templates directory
* Change graph date format on tooltip
* Add bug report link to top
* Add bug link to the page footer
* Add RSS Links to the home page
* Remove storing xml files on each feed generation
* Make get\_recent\_runs\_data private
* Fix race condition in gulp prod and dev tasks
* Handle urlencoded input parameters
* Add an rss api route to get a feed of failed tests
* Refactor config.get\*()
* Fix alignment of group addons in panel controls
* Add legend to project status list
* Fix coverage option and execution
* Remove unused chart-bar-horizontal.js
* Add search filter to job graphs on the homepage
* Add recent/detail openstack-health api
* Disable Protractor tests and enable strictDi
* Remove unnecessary session mock code from test\_api
* Add limit option of the tests detail to URL parameter
* Use prefix API on tests and tests detail pages
* Add REST API methods for test prefixes
* Suppress and fix eslint warnings
* Use path type instead of string for test\_runs route
* Make last 10 failed runs collapsed by default
* Fix typos
* Fix db session leakage
* Fix config value type
* Don't create history records for search updates
* Fix resource links indents in README.rst
* Make loading indicator fixed-top
* Wrap long page header
* Introduce layer to Failed Tests
* Fix sourcemap generation for dev builds
* Change header of homepage status panel to camel case
* Remove 'Project' from status table column header
* Remove length limitations
* Make search boxes use regex filter
* Adjust tooltip position for homepage gauges
* Add reports directory to eslintignore
* Remove percentage filter
* Use new chart-gauge-horizontal chart on homepage
* Introduce regex filter
* Update angular-ui-bootstrap
* Add TooltipService to generate custom nvd3 tooltips
* Improve failed and recent runs tables
* Condense tables to improve visual consistency
* Add CSS rules to improve table column sizes
* Refactor contextual class name converter
* Add o-h links to README.rst
* Add host and port variables to api server
* Remove unused directive files
* Run unit tests in Chrome instead of PhantomJS
* Add periods service
* Sync parameters when same state transition
* Include build output in \`npm run test\` logs
* Use group by key for table title
* Add last date information to freshcheck
* Fix loose filters
* Fix decoding response data string for python 3
* Fix unused options in API service methods
* Fix loading indicator
* Add warning for stale subunit2sql data
* Remove workaround graph width
* Make table responsive
* Make consistent wording
* Fix docs warnings
* Add more color tables
* Enable Python 3
* Fix tests view columns size
* Split tests page into list and detail page
* Improve status table CSS
* Fix regex for test ID noise removal
* Add a list of recent failed tests to front page
* Add description to home page
* Improve projects list UI in the home page
* Fix test ID noise removal
* Update angularjs and phantomjs package
* Improve error feedback in web interface
* Add user-selectable date and duration picker
* Enable python coverage
* Update requirements
* Enable debounce in filter fields
* Bump up angular-ui-router version
* Display failure average as a percentage
* Apply quotes rule for js files
* Remove Release page link
* Add \*.log to .gitignore
* Fix description of running e2e tests in README.rst
* Add parameters for options in URL
* Fix sorting order on home page
* Update expected encoded form of '/' in URLs
* Enable caching of run metadata keys
* Fix missing bare Session() call
* Fix placeholder in search box of homepage
* Fix invalid date NaN on 2nd graph on details page
* Fix failure count type in tests view
* Fix typo status in test.js
* Fix typos in README and comment
* Replace deprecated library function os.popen() with subprocess
* Fix possible race condition when loading recent runs
* Add recent runs table to the jobs page
* Add table for recent runs to grouped-runs page
* Add API method to get a list of recent runs by metadata
* Switch to a scatter plot for test runtime
* Remove leftover sample data
* Improve pandas usage in test\_runs\_aggregator
* Change table sorting to default to reverse
* Handle uninitialized session in api methods
* Handle empty response in the run aggregator
* Fix label on 2nd page with custom grouping
* Add window size multipler for resolution options
* Add global resolution and grouping key options
* Make the tests page useful
* Properly display missing data in run graphs
* Properly show missing data in aggregated runs api response
* Add skips data to the jobs page
* Fix mean runtime value on jobs page
* Allow users to select information grouping
* Rename API endpoint for \`get\_runs\_by\_run\_metadata\_key\`
* Set default type for stacked area to expanded
* Cut the date window for test pagess in half
* Properly interpolate missing data for test\_runs
* Don't fix run\_time to 2 decimal places
* Disable \`one-var\` eslint rule
* Remove the remaining mockups
* Add test detail page
* Rework get\_test\_runs\_for\_test() rest api
* Make date window for job pages longer for periodic jobs
* Add a unique prefix to the \`groupedRuns\` route
* Fix api command name
* Add a rest api to get a test\_runs time series by test
* Revert "Add a temporary version cap on subunit2sql"
* Add a temporary version cap on subunit2sql
* Update charts to format data correctly
* Refactor project api and ui to make them generic
* Refactor aggregators to use dates in isoformat
* Add pageTitle service
* Refactor Home controller
* Add Project Service
* Add factory to create Project models
* Add Metrics Service
* Add new crumb-style menu
* Enable coverage reporting
* Use Chrome for Protractor E2E testing
* Add sort options to columns in job detail page
* Enable Protractor end-to-end testing
* Refactor home controller process data test
* Refactor home controller tests
* Fix ordering of project gauges on the home page
* Include rapid test instructions on README
* Refactor variable naming and removes underscore.js
* Fix broken table on project detail page
* Fix chart data loading
* Allow users to filter projects
* Add command line args to api.py
* Normalize pre-formatted text on README
* Update README development usage notes
* Add \`@ngInject\` to Job route resolve function
* Add npm envs to tox
* Fix broken tables
* Remove '/test\_runs' api endpoint
* Extract test run aggregation into separated class
* Add unit tests around JobController
* Add third page (job)
* Add missing @ngInject
* Extract run aggregation into a separated class
* Fix OpenStack Health header link
* Fixed markdown formatting issue for OSX install instructions
* Fix missing images
* Add unit tests around HomeController
* Add new endpoint to health service API
* Add standard status footer
* Add standard status header
* Move table sorting functionality into dedicated directive
* Add loading alert
* Fix broken unit tests
* Add sort options to columns in tests page
* Add x and y axis tick formats
* Add new percentage filter
* Add karma-spec-reporter
* Adds testing instructions at README
* Add sort options to columns in project detail page
* Add unit tests around TestsController
* Add unit tests around ProjectController
* Fix run pass or fail evaluation
* Add list of routes to / on api server
* Add a rest endpoint to get a list of the run metadata keys
* Add REST API endpoint for the third page view
* Fix typo in README.rst
* Downgrade karma-coverage to 0.2.6
* Add unit tests around HealthService
* Use \`gulp unit\` instead of calling karma directly
* Improve labels on first and second pages
* Remove unnecessary <base> tag
* Stop trying to set defaults with the prescribed method
* Make connection pool settings configurable
* Add unit tests around ConfigService
* Fix \`gulp unit\`
* Sort projects by percentages of failure
* Add a tests view
* Ensure we log exceptions on 500 responses
* Add failure percentages in text to the gauges
* Fix log error
* Fix lint job errors
* Fix date format passed to dbapi
* Fix JavaScript lint errors
* Include d3 and nvd3 as static dependencies
* Use PhantomJS and enforce singleRun for tests
* Add /status healthcheck endpoint
* Remove mockups for implemented pages
* Fix wsgi\_script entry point
* Add a default config file location to the api
* Add new \`config.json\` and associated ConfigService
* Switched from jshint to eslint
* Improve gauge chart exhibition
* Add \`@ngInject\` annotation to project \`resolve\` config
* Add build failure rate chart on proj detail page
* Fix project name encoded in project controller
* Updated README to include OSX instructions
* Bump the gulp-sass version
* Updating README to work for dev
* Rename private function '\_filter\_by\_date\_res'
* Add live data on second page
* Add a mirror in frontend to second page REST api
* Add REST API endpoint for second page view
* Add build failure rate chart on homepage
* Use live data on dashboard homepage
* Add new HealthService to mirror server-side REST API
* Add second page (project)
* Enable running under wsgi container
* Fix applcation tile in \`constants.js\`
* Replace Highcharts with d3 and Nvd3 charts
* Update flake8 path in tox.ini
* Add rest api method for first page view
* Change small graphs per job to sparklines
* Adds PyMySQL entry to requirements file
* Adds more unit\_tests, bug fixes for API
* Remove unused Node dependencies
* Update README for api dev process
* Get runs by date
* Add JSONP support to REST endpoints
* Add charts from mockup to home view
* Add shim for Highcharts
* Add unit tests for rest api and fix docs
* Fix tool tip error and break out json data
* Mockup of second page
* Initial commit of page 3 and json
* Intial commit of test crossection page and json data
* Pin karma package to 0.12
* Improve the rest api a bit
* Initial commit of dashboard front page HTML mockup
* Initial rest api implementation
* Add python bits to the repo
* Remove all remaining references to stackviz template
* Add .gitreview file
* Adding highcharts.js
* another rename
* removing more unnecessary files
* Rename to openstack-health
* removing python elements
* Removing django code, not needed
* Remove example files
* Added initial homepage using the new dataset service, and some additional timeline work
* Add DatasetService to read and manage \`config.json\`
* Adds sunburst skeleton
* Add \`data\` gulp task and automatically include \`app/data\` in dev builds if it exists
* Disable HTML5 links mode
* Add initial stub for timeline page
* Use \`gulp-replace\` to rewrite JS and CSS paths during \`gzip\` task. \`index.html.gz\` now links properly to gzipped resources allowing them to be distributed alone and unmodified
* Minor cleanup
* Broadcast a \`windowResize\` event to the scope
* Remove the side menu and put all menu entries in the top bar
* Remove duplicated or unneeded configuration files
* revert previous commit. oops
* add sudo to npm install line
* Edit email addresses in bower.json
* Reformat README.rst
* Update README with instructions for gulp + add a roadmap
* Remove templates.js and add it to .gitignore
* Add base bootstrap layout and side menu
* Add font-awesome CSS and fonts along with angular-fontawesome
* Add jshint configuration
* Add bootstrap and sb-admin-2 styles
* Remove unused bower dependencies
* Add Angular boilerplate from \`angularjs-gulp-browserify-boilerplate\`
* Update gitignore to add more node ignores
* Update README.rst to reflect syntax changes to \`stackviz-export\`
* Add dependencies to requirements.txt
* Fix incorrect link target for run selector on results page
* Fix sunburst log display api calls
* Fallback gracefully when dstat log is missing
* Rewind stdin streams during get\_stream to ensure they can be re-read properly
* Fix default dialog message
* Hide dstat lanes if no loaded dstat data overlaps with test entries
* Hide "online" menu items with django conditional instead of JS
* Fix incorrect \_load\_details call
* Rewrite summary's createTable() and add support for provider names and descriptions
* Disable other subunit providers when any is provided as an argument
* Fix remaining tempest pages to support providers
* Remove unused \`describe()\` method from providers
* Fix the stdin provider
* Initial support for tempest providers
* Minor cleanup in tempest\_subunit.py
* Resize lane lines when window is resized
* Add stroke to test rects; color rects in overview by pass/fail/skip to match main view
* Add dstat lanes for memory, network, and disk utiliziation; calculate dstat min and max values for each field; add support for line dstat charts
* Correct potential edge cast in binaryMinIndex and binaryMaxIndex when a search value is out of bounds
* Fix "Overview" to link to \`index.html\` rather than \`/\`
* Adds convert\_stream method
* Correct directory creation when an existing (but empty) target directory is specified
* Include bower components during \`setup.py install\`, and use properly use relative static directory during export
* On ubuntu you also need nodejs-legacy
* Move export\_static.py to export.py; add executable command definition to setup.cfg to install \`stackviz-export\` command during \`setup.py install\`
* Added logging output to sunburst
* Add jquery-ui to bower.json
* Add dialog box to show timeline details
* Changes <script> tag to <link> for run css
* Add labels to DStat lanes
* Minor formatting fix
* Add run\_metadata to upstream\_run.html
* Fix settings.py to only use test\_data in TEST\_REPOSITORIES
* Adds OFFLINE mode to settings (for static site menu.html)
* Fix even more pep8 violations
* Fix various pep8 violations
* Add missing license headers; remove unused/empty app.js
* Add upstream run data display page
* Improve error output for missing data during static export
* Export DStat logs during export\_static if available
* Use indirect reference to settings to allow export\_static's overrides to work correctly
* Remove summary page from export list (moved into index.html)
* Add arguments to configure test repository and dstat logfile locations
* Add testing instructions to README.rst
* Reformat timeline.js to match openstack eslint configuration
* Minor adjustments to karma config and npm packages
* Add package.json and karma.conf.js for JS unit testing (borrowed from Horizon)
* Add more test cookiecutter template items
* Remove DevStack entries from menu until they are actually implemented
* Add eslint configuration
* Move tempest summary info to index.html
* Add stub unit tests from cookiecutter
* Change default test repository parent directory to \`./test\_data/\` to avoid conflict with stackviz unit tests
* Convert README to rst, and add documentation template from cookiecutter
* Add .gitignore entries, HACKING.rst, and \_\_init\_\_.py contents from cookiecutter
* Add some missing base files from cookiecutter (LICENSE, manifest, setuptools config)
* Return a 404 error when no dstat csv can be loaded
* Patch to allow timeline to load successfully when dstat logs aren't availble
* Add initial dstat display of CPU / IO wait
* Minor cleanup, and filter out small test cases to improve performance
* In-progress implementation of dstat views, with proper filtering and data preparation
* Allow timeline to load when dstat data is unavailable
* Incomplete implementation of dstat support. Logs are loaded and parsed when viewing the timeline, but not yet displayed
* Add barebones dstat endpoint and URL mapping (currently only serving from current directory)
* Add gzip support to summary page; use passed-in list of tempest runs from django template
* Add gzip support to results/sunburst
* Fix indentation in visuals.js
* Add run selector to results page
* Add 'tempest\_runs' variable to templates and add run selector menu to timeline
* remove "latest" redirector views as the menu now links directly to the latest test run
* Update README.md to add information on static export
* Load details (e.g. logging info) on demand, even for static-exported sites. Note that all data is now loaded in one request, so gzip is recommended
* minor cleanup to timeline javascript
* Add gzip support for data in static page exports
* Optionally serve test run details in full when no test name is provided
* Added more jquery to  summary table display
* Update upstream page urls
* add static site exporter, and adjust urls to be friendlier to a flat filesystem directory
* add global template variable for tempest\_latest\_run
* Removed page-specific js from template.html
* Creates directory structure for upstream data
* Quick change to summary tables link to timeline
* Adds tables displaying run summary info
* Added pages for summary and aggregate tempest runs
* dynamically resize the timeline to fit in the container element
* add a cursor to show time at a given position on the timeline
* remove unneeded debugging information
*  devstack\_parser and log\_node to parser folder
* implement mini view and add info panels to page view
* add new head-extra block
* added line to actually display test info..
* added button to show/hide test failures
* added table displaying failed tests in tempest\_results
* add preliminary timeline chart (not quite finished)
* Moved viz scripts to external file, added colors to sunburst
* individual test data added in results.html
* add name\_full field to tree nodes to allow for easier details lookup
* updated API call in results.html
* fixed regex in urls and redirects in results.py + timeline.py
* refactored latest\_results to results, updated urls
* cleaned up sunburst and added time graph
* reimplement TempestRunDetailsEndpoint to use a direct cache for details info
* add URL mappings for new API endpoints and timeline view
* add timeline view and template
* add API endpoints for raw and details views
* use the new api in tempest results viewer
* add JSON api for getting tempest run results
* fix tree parser creating empty root node
* add DjangoRestless dependency
* formatted sunburst chart
* wrap latest\_results d3 code in a document load event handler
* updated sample JSON link "logs.json"
* add d3 to bower.json
* added directory structure for tempest/devstack pages
* correctly strip invalid characters from details keys
* add more information to readme
* remove stray backtick
* added a subunit log parser and associated TEST\_REPOSITORIES config param to settings
* update requirements to add subunit and testrepository libraries
* Fixed '''bash''' formatting for ln 17-19
* remove unused components from template
* add basic README
* switch from browserify to plain bower, add initial template from bootstrap
* update gitignore
* fix template and static file paths; create empty index page
* Initial import containing a barebones django / browserify project
