Simscope Release History — v500 — 509
1.509
feature Added "This Week" search selector
SIMSCOPE-118
When searching regressions, signatures, or tests, users can now filter with Days using two new selectors:
This Week
Last Week
(This uses the ISO Week definition, where a Work Week is a range from Monday through Sunday.)
This feature allows creating Saved Searches which automatically clamp to a 7-day Monday-Sunday range, where the week automatically floats, based on the current date.
- As opposed to a normal 7-day search, where it is 7 calendar days ago.
Here is an example regression search showing a Last Week selection.
1.508
1. feature Added Chart snapshot button
Chart data can now be snapshotted into a destination static chart, so the data will be frozen.
2. bugfix REST API: added final-point into chart JSON
The chart
API endpoint now has a &final-point=true
URL option, to enable
emitting the final_point
field into the output JSON.
3. bugfix Fixed coverage repopulate locking
When repopulating the coverage DB index, this no longer uses a global DB lock.
1.507
feature Added support for storing and rendering static/snapshot charts
Simscope can now store static charts, via the REST API, where the dataset numbers are stored within Simscope.
- As opposed to normal Simscope charts, where the dataset is re-computed every time the chart is refreshed, based on stored filter parameters.
This feature allows populating charts or even an entire dashboard from a script using external datasets.
- For example, store a chart from user JIRA bug activity.
Simscope has a simscope-demo-random-dashboard.py
script which shows examples of:
- Creating random bar, line, and heatmap charts.
- Combining multiple charts to create an aggregated chart.
- Creating a snapshot (saving a Simscope chart's data).
- Creating a dashboard containing the above charts.
Here is an example generated dashboard:
1.506
1. bugfix Fixed custom timezone logging bug
Simscope now prints log messages using the timezone
specified in
simscope.config.
- Previously log messages would be printed relative to the server operating system timezone.
2. bugfix Live job timeout metadata
If using Live jobs, and they time out, Simscope will now store the job's metadata into the failing timeout job.
- Previously this would get inadvertently dropped.
3. bugfix Invalid cookie detection
Simscope now detects if browsers are blocking cookies, and prints a warning message.
Note: if cookies are disabled, Simscope user login will not work.
4. feature Added Horizontal Bar chart
When creating charts, users can now select Horizontal Bar to render a chart with horizontal (instead of vertical) bars.
5. feature Added Charts grouped by Test name
Charts can now be grouped by Test name.
6. feature Gantt chart expansion to browser width
Gantt Charts now automatically expand based on the Client Browser window width.
1.505
1. bugfix Fixed sub-coverage DB bugs
SIMSCOPE-121
SIMSCOPE-122
SIMSCOPE-123
Fixed 3 bugs in sub-model coverage DB:
- Filtering coverage models by component or branch could incorrectly match no results, if a regression did not have a sub-coverage model with the exact same name.
- Merging regression sub-coverage could incorrectly match no models.
- Publishing sub-coverage with a simple regression name would be incorrectly rejected.
2. bugfix Fixed running-total charts with NULL points
Running-total charts containing NULL
data points now do not automatically coerce to zero.
3. feature Regression cherry picked charts
In the regression search view, users can click checkboxes beside one or more regressions and get a chart with results from just the selected regressions (aka cherry picking).
4. feature Regression floating point metadata rounding
Regression custom metadata containing floating point values automatically get rounded to 3 decimal places.
- For example, if publishing
func_coverage
with a value of97.214981
, this will be automatically rounded to97.215
5. bugfix Charts with >100 days
Daily Chart searches are currently limited to 100 days.
If a user selects a number beyond this range, Simscope will automatically reduce it to 100
,
to indicate to the user the value has been clamped.
1.504
1. feature Chart number abbreviations using financial scales
Added a configuration parameter, to enable abbreviating chart values using financial scales instead of metric scales.
- For example,
1.24 B
(billion) instead of1.24 G
(giga)
[chart]
# Financial number scale: when enabled, abbreviate large numbers in charts using a
# financial-scale, instead of metric-scale.
# Example abbreviation: '1.24 B' (billions) instead of '1.24 G' (giga).
# Note: financial scales are automatically ignored when rendering byte-based units (e.g. 'GB')
financialnumbers = true
2. feature Added configurable homepage default filters
The Simscope homepage charts and metrics can now be filtered by default.
For example, this simscope.config ensures regression names contain release pattern:
[chart]
# Optional: set default URL filters for the homepage (affecting the treemap and statistics)
# Example: only show homepage stats for 'release' regressions
homepagefilters = "regr=release"
3. bugfix Removed issue=X from rule search
Since issue is an output field from rules, they cannot search based on issue=X
terms.
- These terms are now automatically removed.
4. feature Improved drilldown from coverage heatmaps
When rendering covergroup-based heatmap charts, clicking on a cell now drills into the desired coverage model, and sets the cover-group filter automatically to the desired cell.
5. bugfix Heatmap chart scroll in dashboards
Fixed a bug where dashboards containing heatmap charts prevented scrolling.
1.503
1. feature Added chart links from the Signature Search page
Simscope now allows checking one or more signatures, and building a variety of charts from them:
- Daily Hits chart
- Cumulative Hits chart
- Fail per Million Jobs (normalized)
2. bugfix Fixed Chart Y-axis problems
Two bugs have been fixed in the Chart Y-axis:
-
If the data being rendered is integer-based, the Y-axis will always have a scale without decimals. For example, if rendering the metric #Fails, the Y-axis will not have a Y-division at
10.5
. -
When setting Y-axis bottom/top values, these should set as the true bottom/top.
Previously, this was a "soft" bottom/top, so you would often get different chart bottom/top than requested.
3. bugfix Saved chart parse errors
If charts are saved, but no longer load correctly (e.g. query too long), the values will now be populated into the HTML form, so it can be debugged.
Previously it was not possible to determine which chart setting is incorrect, to debug the problem.
4. bugfix Normalized charts
Normalized charts (e.g. fail-per-million-jobs) were not calculating properly. This bug is now fixed.
5. feature Added --page option for simscope-regr-search
The simscope-regr-search
script now accepts both a --page
and --per-page
option,
if you want to query paginated results.
6. feature Simscope apitoken allows 640 permissions
The simscope-
scripts now allow a --apitoken=PATH.apitoken
, and allow permissions to
be 0640
(ie group-read privileges).
- This allows sharing an api token among a user group.
7. bugfix Fixed triaged/resolved percentage calculation in charts
The Triage% and Resolved% charts were incorrectly computing, if signatures contain
IGNORE
jobs.
1.502
1. feature Multiple coverage models per regression (sub-model coverage)
SIMSCOPE-97
Simscope now supports multiple coverage models published into a single regression.
- This allows publishing separate coverage types (e.g. line, formal, functional), or separate coverage models for sub-units
To do this, your coverage model name needs a separator string, under the
configuration key submodelseparator
field.
[coverage]
enabled = true
# Optional: Submodel separator: allow multiple coverage models in the same regression (suffix).
# Example using "." as separator: "myblock_smoke/123.top" and "myblock_smoke/123.fpu"
submodelseparator = "."
For example, if you set the separator to "."
and upload two coverage models named as:
"alpha_cpu_cov/1024.top"
"alpha_cpu_cov/1024.ddr3"
Then Simscope will store 2 separate coverage models under a single parent regression:
alpha_cpu_cov/1024
top
ddr3
Here is an example showing 2 coverage models in a single regression:
2. feature Added regression sort by Score
Regression search results can now be sorted by Score (ie pass rate, highest-to-lowest).
1.501
1. feature Added JSON support for simscope-issue-update
The simscope-issue-update
script now allows a JSON issue object to be published,
using the --json-file
option.
- This allows both updating and resolving issues from the CLI (or API).
Example:
# Update via JSON file
> bin/simscope-issue-update BUG-123 --json-file foo.json
# Alternative: via --stdin option
> cat file.json | bin/simscope-issue-update BUG-123 --stdin
2. bugfix Chart signature drilldown
When clicking on signature counts from charts, the query page now searches based on regression timestamps, not job timestamps.
- This fixes an inconsistency problem in previous releases where multi-day regressions will drill down into incorrect job counts, due to charts using regression timestamps, vs tables using job timestamps.
3. bugfix Moved warning tag to left side of regression table
If a regression contains a warning
, it will now show up next to the name, rather than
overriding the Duration column.
4. bugfix Fixed button and dropdown CSS to support tab focus
SIMSCOPE-119
The Simscope CSS <button>
and <select>
form elements now support tab focus within the
user interface, so users can tab through form elements using their keyboard.
1.500
1. feature Added custom Regression JSON warning field
Regression JSON: Added optional custom warning
field,
to indicate a regression-specific warning in the GUI.
- This can be published during
regr-update
orregr-finish
events.
Here is an example regression with a custom Run Terminated
warning:
2. feature New signature bucketizer
Note: this leaves the existing Simscope bucketizer as v1
(or ""
blank),
so if you want to keep the existing behavior, it will remain.
Added an optional v2
signature bucketizer, configurable via simscope.config
file:
- This bucketizer has a customizable hierarchy collapse algorithm, where you can specify the hierarchy tokens to keep.
For example, this configuration keeps the second- and third- hierarchy tokens from left, and the first- and second- hierarchy tokens from the right:
[sigs]
# Custom hierarchy bucketizer config
# Omit left#0, keep left#1, left#2, keep right#2, keep right#1
bucketizer = "v2/1,2,-2,-1"
3. bugfix Dashboard Edit fixed
In the previous release, the Dashboard Edit page was inadvertently broken. This is now fixed.