You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As we begin to change the reports from what the reporter gave us, we need a way to track these changes. This tracking should give us a way to re-create the original report so as to be able to track down problems with reporter machines.
Create a new table, test_report_changes, with the following schema:
id - an autoincrement ID to identify the change
test_report_id - the ID of the test report that was changed
We need to find a good way to express the changes. Some possibilities:
Two columns, old_value and new_value:
old_value and new_value work like JSON masks, both copying the structure of the original object.
Array items in old_value missing in new_value means array items were removed.
An empty array in old_value and a non-empty array in new_value means array items were added.
Object properties in old_value not in new_value were removed.
null array items in both old_value and new_value are context, and define what position in the array the value could be found
One column, changes, describing the changes made to create the new version
changes is a JSON array of objects with the following keys:
path - The path that was changed
old_value - The old value we're replacing, if any
new_value - The new value we're adding, if any
old_index - Optional, the index of the array changed or removed
new_index - Optional, the index of the array changed (moved) or added
We should do some research to find prior art for describing changes to a large object.
Then we should provide a method on the TestReport result class to change the report and add the appropriate history to the changes table.
The text was updated successfully, but these errors were encountered:
As we begin to change the reports from what the reporter gave us, we need a way to track these changes. This tracking should give us a way to re-create the original report so as to be able to track down problems with reporter machines.
Create a new table,
test_report_changes
, with the following schema:id
- an autoincrement ID to identify the changetest_report_id
- the ID of the test report that was changedWe need to find a good way to express the changes. Some possibilities:
old_value
andnew_value
:old_value
andnew_value
work like JSON masks, both copying the structure of the original object.old_value
missing innew_value
means array items were removed.old_value
and a non-empty array innew_value
means array items were added.old_value
not innew_value
were removed.null
array items in bothold_value
andnew_value
are context, and define what position in the array the value could be foundchanges
, describing the changes made to create the new versionchanges
is a JSON array of objects with the following keys:path
- The path that was changedold_value
- The old value we're replacing, if anynew_value
- The new value we're adding, if anyold_index
- Optional, the index of the array changed or removednew_index
- Optional, the index of the array changed (moved) or addedWe should do some research to find prior art for describing changes to a large object.
Then we should provide a method on the TestReport result class to change the report and add the appropriate history to the changes table.
The text was updated successfully, but these errors were encountered: