CS
SCALE.sdm
Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage
Confidential information

0.55.0

Release date: July 03, 2024

Manual migration steps required

Validation of Add-ons

In previous versions of the application, the meta.json of add-ons were not validated against the defined schema.
This could lead to potentially invalid add-ons within the application.

The missing validation had now been added and enforced.

Invalid add-ons will be automatically disabled while upgrading.

To check for invalid add-ons prior to the upgrade, follow these steps:

  1. Open up a shell to the application environment, e.g. by connecting to Kubernetes and selecting the application pod with the backend container.

  2. Execute ./manage.py shell_plus to run a shell within the application itself.

  3. Copy and run the following snippet:

    import json
    from zipfile import ZipFile
    from jsonschema import validate
    from jsonschema.exceptions import ValidationError
    def check():
        print("--- Running addon checks...")
        with open("/usr/src/app/w3syse/customtools/resources/meta.schema.json", "r") as f:
            schema = json.load(f)
        for custom_tool in CustomTool.objects.only("pk", "latest_version__data", "latest_version__name").iterator():
            c = custom_tool.latest_version
            with ZipFile(c.data.derivatives["original"].file, "r") as f:
                meta = json.loads(f.read("meta.json"))
                try:
                    validate(instance=meta, schema=schema)
                    frontend = meta.get("frontend", {})
                    if meta.get("interfaces") and not "tagName" in frontend:
                        raise ValidationError(message="Interfaces defined but no tag name (json-path: $frontend.tagName). Delete them or specify a tag.", path=("interfaces",))
                except ValidationError as e:
                    print(f"Addon '{c.name}' is invalid and needs to be fixed prior to upgrading (URL: /configuration/custom-tools/{custom_tool.pk})")
                    print(f"  Error: {e.message} (json-path: ${'.'.join(e.path)})")
        print("--- Checks finished. Any errors printed above need to be fixed prior to upgrading the application!")
    
    check()  # actually run the script
    

    Any invalid add-ons will be printed out, e.g.:

    Addon 'Model Viewer' is invalid and needs to be fixed (URL: /configuration/custom-tools/68f7dcce-e447-4fca-ad9b-edc1abdc9c28)
      Error: 'identifier' is a required property (json-path: $)
    

    Fix the aforementioned errors in the meta.json of the addon and re-upload it or remove the add-on from the application.

  4. Run the snippet again until all errors have been resolved.

Summary of major changes

Create and apply status report templates

  • MDM managers can create status report templates globally under   > Configuration > Project > Status report templates. Note: Only users who have the permissions under Others > Status report template are authorized to create or modify status report templates. Please adjust your permissions and roles accordingly.

  • Project managers can add the appropriate status report templates to their projects. This makes the templates available for reporting by simulation / test engineers. The status report templates are displayed in a new area next to the project requirements grid.

image
Status report templates

Compare test cases and requirements with MDM

This feature relates to the requirements grid in  Project. When you right-click on a requirement, the context menu now includes the following options:

  •   Compare test case to MDM
  •   Compare single requirement with MDM

Use case: MDM test cases and MDM requirements occasionally need to be updated, for example, if the context has changed. Now project managers can easily compare their project test cases and project requirements with the MDM equivalents, and adopt the changes as needed. This means, project managers now have a tool to easily keep their projects up-to-date. Further information.

Note: It is also possible to select multiple requirements in the grid (ctrl. + click). In this case, the options in the context menu have slightly different names. For example, if you select two requirements, then the options are called   Compare 2 test cases to MDM and   Compare 2 requirements with MDM.

image
Compare with MDM

List of all changes

New featureAdd-ons now support .addon.yaml. [#5927]

Add-ons can specify how they work with a special meta.json within their root folder. The file has been reworked and a new .addon.yaml has been introduced. This opens up more features.

New featureIt is now possible to add groups of requirements to a test case. It is also possible to add groups of test cases to a project. [#4773]

This feature relates to two areas:

  • The MDM test cases, which are found under   > Configuration > MDM > Test cases. Now you can add entire groups of requirements to a test case. This saves you time because you do not need to add each requirement individually. Further information.
  • The requirements grid in  Project. Now you can add entire groups of test cases to a project. This saves you time because you do not need to add each test case individually. Further information.

image
Add entire groups of requirements

New featureIt is now possible to compare project test cases and project requirements with their MDM equivalents. [#5306]

This feature relates to the requirements grid in  Project. When you right-click on a requirement, the context menu now includes the following options:

  •   Compare test case to MDM
  •   Compare single requirement with MDM

Use case: MDM test cases and MDM requirements occasionally need to be updated, for example, if the context has changed. Now project managers can easily compare their project test cases and project requirements with the MDM equivalents, and adopt the changes as needed. This means, project managers now have a tool to easily keep their projects up-to-date. Further information.

Note: It is also possible to select multiple requirements in the grid (ctrl. + click). In this case, the options in the context menu have slightly different names. For example, if you select two requirements, then the options are called   Compare 2 test cases to MDM and   Compare 2 requirements with MDM.

image
Compare with MDM

New featureIt is now possible to create and manage status report templates in the configuration area. [#5965]

There is now a new area called Status report templates, which is found under   > Configuration > Project > Status report templates. Here, MDM managers can add new status report templates and modify existing templates.

image
Create new status report template

Note: Only users who have the permissions under Others > Status report template are authorized to create or modify status report templates. Please adjust your permissions and roles accordingly.

New featureIt is now possible to manage status report templates in the project requirements grid. [#5966]

This feature relates to the requirements grid in  Project. There is a new area that displays status report templates next to the project requirements grid. Here, product managers can:

  • add status report templates to the project. This makes them available for reporting by simulation / test engineers.
  • view status reports grouped by template.
  • filter the requirements in the grid, i.e. only display those requirements that relate to a specific status report template.
  • delete status report templates that don’t have public/private status reports attached to them.
  • toggle active templates that already contain public/private reports.
image
Status report templates

New featureIt is now possible to view selected photos and videos in a carousel. [#6169]

This feature relates to the test grid in  Result. Specifically, it relates to the Photos and Videos tabs. If the tab contains a large number of photos/videos, then the user can click on   to display the photos/videos as a list. Now users can select the relevant photos/videos (ctrl. + click) and right-click to open a context menu with the option Open carousel. This option only displays the selected photos/videos in the carousel, rather than all of the photos/videos that are included in the tab.

image
Open carousel for selected photos only

New featureMDM test cases now have a side panel with details and context information. [#6035]

This feature relates to the MDM test cases, which are found under   > Configuration > MDM > Test cases. Now you can click on a test case in the overview and then click on the   icon to expand a side panel. The side panel displays details about the test case and its context.

image
Side panel of MDM test cases

New featureProject requirements now include a 'State' field. [#5914]

This feature relates to the requirements grid in  Project. Here, users can see a requirement’s state, i.e. they can now see whether a requirement is active or inactive. This feature includes the following aspects:

  • Individual project requirements now include a State field. When editing a requirement, users can specify whether the requirement is active or inactive.
  • The requirements grid now includes a State column. Requirements can be grouped, sorted and filtered by their state.
  • If requirements are grouped by test case, then the state of the test case is also displayed.
  • The context menu now includes the options Toggle active test case and Toggle active requirement. These options allow users to activate/deactivate test cases and requirements directly in the grid.

image
Project requirement state

New featureThe MDM test cases grid now includes a 'Discipline' column. [#5933]

This feature relates to the MDM test cases grid, which is found under   > Configuration > MDM > Test cases. This grid now includes a Discipline column, which shows the disciplines that were selected for the test case. It is also possible to group, sort and filter test cases in the grid by their discipline.

New featureUsers with the 'Can view role' permission can now see which permissions are set for a global role. [#5762]

This feature relates to the global roles, which can be accessed by navigating to   > Configuration > User management > Global roles. It is now possible to click on a role in the overview and then click on   to expand a side panel. The side panel displays a read-only permission tree, which allows users to see which permissions are set for the role.

Note: The side panel is accessible to users who have the permission Can view role and to users who have the permission Can change role. However, the permission tree in the side panel is always displayed as read-only. That means, users who have editing rights can not edit the permissions in the side panel. They need to navigate to the edit page to do so.

image
Side panel for role permissions

ImprovementImprovements were made to the startup performance of Result. ]
ImprovementMore fields are taken into consideration when comparing project requirements and test cases with their MDM equivalents. [#6225]

This improvement relates to the function for comparing requirements and test cases with MDM. The following fields are now also included in the comparison screen:

  • Active
  • Test result identifier
  • Attribute key

ImprovementNewly created views are now directly selected after having been created. [#6069]

This improvement relates to all of the grids that use the view feature, e.g. the test grid, MDM requirement grid and project requirement grid. Once a user has configured a view, the view is automatically selected.

Improvement
API, UI
The jobs list now displays the date and time when a job was last updated. ]

This improvement relates to the jobs list, which can be accessed by clicking on   in the tool bar. The jobs list now includes an Updated at column, which specifies when the job was last modified.

Feature removalThe packages celery and celery-beat were removed from the application and the database. [#5942]
Bug fixAfter resizing the screen, the sidebar now adapts to the current screen size. [#6116]

This fix relates to those menus that have a sidebar, e.g. the requirements grid in  Project. Here, users can click on   to expand or collapse the sidebar. Furthermore, users can resize the sidebar by dragging its edge. In the past, if a user resized the sidebar, and then resized the entire window, the sidebar’s resize function was suddenly broken. This behavior has been fixed.

Bug fixDebugging a calculation rule now only updates the input attributes that were actually edited. [#6191]

This fix relates to the Apply calculation rule function, which can be accessed by navigating to  Result and right-clicking on a test in the grid. Specifically, it relates to the debug view, which can be accessed by clicking on   on the far right. In the past, if a user changed an input attribute and clicked on Calculate again, then all of the input attributes were updated (even the attributes that were not changed). This led to a problem if the unchanged attributes were write-protected. This behavior has been fixed. Now only those input attributes are updated that were actually edited.

Bug fixExisting workspaces are now updated rather than new workspaces being created. [#5784]

In the past, new workspaces were occasionally saved to the backend despite there already being a workspace available for the selected preset. This resulted in the number of workspaces accumulating and the performance decreasing. This behavior has been fixed.

Bug fix
API
Fixed 'Connection refused' warnings when trying to connect to the backend container. [#6268]
Bug fix
UI
Job details can now be opened in a new tab. [#5634]

This fix relates to the jobs overview, which can be accessed by navigating to   > Configuration > Jobs. In the past, the job details could not be opened in a new tab. This made it difficult for users to work with jobs efficiently. For example, there was not an easy way for users to compare multiple jobs. This behavior has been fixed. Users can now right-click on a job and open its details in a new tab.

Bug fixJobs list no longer breaks with an error and an empty list. [#6197]

This fix relates to the jobs list, which can be accessed by clicking on   in the tool bar. In the past, the grid was not successfully loaded and an error was thrown. This behavior has been fixed. The grid is now correctly initialized.

Bug fixJobs overview no longer displays tasks from other users. [#6177]

This fix relates to the jobs overview, which can be accessed by navigating to   > Configuration > Jobs. In the past, the overview displayed tasks from other users. This behavior has been fixed. Users now only see their own jobs.

Bug fix
UI
Jobs overview now displays state icons in color. [#6194]

This fix relates to the jobs overview, which can be accessed by navigating to   > Configuration > Jobs. In the past, the overview displayed state icons in black and white only. As a result, the icons were difficult to tell apart. This has been fixed. The icons are now displayed in color.

Bug fix
UI
Line breaks are now correctly displayed in project requirements comments. [#6195]

This fix relates to the requirements grid in  Project. Specifically, it relates to the comments that can be entered while reporting the status. In the past, line breaks could be entered into the comment field, but they were lost upon saving. This behavior has been fixed. Line breaks are now correctly displayed in the comments.

Bug fixPeriodic execution of an add-on no longer changes its modification date. [#6238]

This fix relates to the add-ons, which can be accessed by navigating to   > Configuration > Add-ons. Specifically, it relates to those add-ons that are executed periodically ( ). In the past, the add-on’s modification date, i.e. the date displayed in the Modified column, was changed each time the add-on was executed. This behavior has been fixed.

Bug fixTest attribute panel excel export. ]
Bug fixThe date and time of upload are now displayed correctly for project documents. [#6235]

This fix relates to the documents that are saved in  Project. In the past, the Upload column was empty. This has been fixed. The Upload column now displays the date and time when the document was uploaded.

Bug fixThe debug context menu is no longer grayed out. [#6065]

This fix relates to the Apply calculation rule function, which can be accessed by navigating to  Result and right-clicking on a test in the grid. Specifically, it relates to the debug view, which can be accessed by clicking on   on the far right. In the past, when a user right-clicked on a result, the Debug context matching context menu was grayed out. The context menu remained disabled until the attributes had finished loading. This was misleading as it suggested that the debug context matching was not available. This behavior has been fixed. The context menu is now enabled by default.

Bug fixThe loading indicator is now displayed correctly when loading many project documents. [#6203]

This fix relates to the documents that are saved in  Project. In the past, when loading many project documents, e.g. over 100, the loading indicator got stuck and was displayed infinitely. This behavior has been fixed.

Bug fixThe requirements grid now automatically refreshes to display newly added test cases. [#6056]

This fix relates to the requirements grid in  Project. In the past, the grid did not automatically refresh after adding a test case. That means, the newly added test case was not automatically displayed in the grid. This behavior has been fixed.

Bug fixThe set as project status function now correctly resets fields that were not written in the new status. ]
OtherIt is now possible to download a package containing the code modules for the frontend. [#5960]

The package can be downloaded by navigating to   > About. The download link is located at the bottom of the page. Here you will also find a short text, which provides further information about the package.


API changes
BreakingType RequirementValuePrivateCreateMutationPayload was removed
BreakingType RequirementValuePrivateCreateMutationInput was removed
BreakingType RequirementValuePrivateUpdateMutationPayload was removed
BreakingType RequirementValuePrivateUpdateMutationInput was removed
BreakingType RequirementValueCreateMutationPayload was removed
BreakingType RequirementValueCreateMutationInput was removed
BreakingType RequirementValueUpdateMutationPayload was removed
BreakingType RequirementValueUpdateMutationInput was removed
BreakingType RequirementValueSavePrivateMutationPayload was removed
BreakingType RequirementValueSavePrivateMutationInput was removed
BreakingType ProjectTestCaseDeriveMutationPayload was removed
BreakingCustomToolVersionType.name type changed from String! to String
BreakingCustomToolVersionType.interfaces type changed from JSONDict to GenericScalar
BreakingCustomToolVersionType.identifier type changed from String! to String
BreakingInput Field clientMutationId removed from input type ProjectTestCaseDeriveMutationInput
BreakingInput Field mdmTestCases removed from input type ProjectTestCaseDeriveMutationInput
BreakingField inTestCase was removed from object type LoadMdmRequirementsType
BreakingField inProject was removed from object type LoadMdmRequirementsType
BreakingInput Field selected removed from input type LoadStatusReportTemplatesInput
BreakingRemoved argument desktop from Query.allCustomToolVersions
BreakingRemoved argument name_Icontains from Query.allCustomToolVersions
BreakingRemoved argument name_Iexact from Query.allCustomToolVersions
BreakingInput Field name removed from input type CustomToolVersionAttributesInputType
BreakingInput Field author removed from input type CustomToolVersionAttributesInputType
BreakingInput Field description removed from input type CustomToolVersionAttributesInputType
BreakingInput Field interfaces removed from input type CustomToolVersionAttributesInputType
BreakingInput Field identifier removed from input type CustomToolVersionAttributesInputType
BreakingInput Field version removed from input type CustomToolVersionAttributesInputType
BreakingField updateRequirementValue was removed from object type Mutation
BreakingField savePrivateFromRequirementValue was removed from object type Mutation
BreakingField updateRequirementValuePrivate was removed from object type Mutation
BreakingField createRequirementValuePrivate was removed from object type Mutation
BreakingField createRequirementValue was removed from object type Mutation
BreakingMutation.deriveProjectTestCase type changed from ProjectTestCaseDeriveMutationPayload to ProjectTestCaseDeriveMutation
Non-BreakingType HistoricalProjectThresholdType was added
Non-BreakingType HistoricalProjectThresholdTypeConnection was added
Non-BreakingType HistoricalProjectThresholdTypeEdge was added
Non-BreakingType HistoricalProjectRequirementAttachmentType was added
Non-BreakingType HistoricalProjectRequirementAttachmentTypeConnection was added
Non-BreakingType HistoricalProjectRequirementAttachmentTypeEdge was added
Non-BreakingType LoadMdmAttributeValueResponseType was added
Non-BreakingType LoadMdmAttributeValueType was added
Non-BreakingType HistoricalMdmRequirementType was added
Non-BreakingType HistoricalMdmRequirementTypeConnection was added
Non-BreakingType HistoricalMdmRequirementTypeEdge was added
Non-BreakingType HistoricalMdmRequirementDocumentType was added
Non-BreakingType HistoricalMdmRequirementDocumentTypeConnection was added
Non-BreakingType HistoricalMdmRequirementDocumentTypeEdge was added
Non-BreakingType RequirementValuePrivateUpsertMutationPayload was added
Non-BreakingType RequirementValuePrivateUpsertMutationInput was added
Non-BreakingType RequirementValueUpsertMutationPayload was added
Non-BreakingType RequirementValueUpsertMutationInput was added
Non-BreakingType ProjectTestCaseDeriveMutation was added
Non-BreakingType SSRMSelectionStateType was added
Non-BreakingType MdmAddRequirementsToTestCaseMutation was added
Non-BreakingType MdmAddRequirementsToTestCaseMutationInput was added
Non-BreakingField updatedAt was added to object type LoadMdmAttributeType
Non-BreakingField configuration was added to object type CustomToolVersionType
Non-BreakingCustomToolVersionType.name description changed from A unique name for the custom tool version to Name of the addon, defaults to the identifier
Non-BreakingCustomToolVersionType.author description changed from The author of this custom tool to Author of the addon
Non-BreakingCustomToolVersionType.description description changed from Short description of the purpose of the custom tool to Description of the addon
Non-BreakingCustomToolVersionType.interfaces description changed from Specifies the interfaces that the custom tool implements to Interfaces the addon supports
Non-BreakingCustomToolVersionType.identifier description changed from A identifier for the custom tool version. The identifier must be the same in all versions belonging to a single custom tool. Allowed are up to 50 letters, numbers, underscores, hyphens or dots. to Identifier of the addon
Non-BreakingCustomToolVersionType.version description changed from The current version of the custom tool to Version of the addon
Non-BreakingField obsolete was added to object type LoadProjectRequirementsType
Non-BreakingInput Field selectedTestCase: ID was added to input type LoadProjectRequirementsInput
Non-BreakingInput Field rowGroupCols: [SSRMColumnValueObjectType] was added to input type ProjectTestCaseDeriveMutationInput
Non-BreakingInput Field filterModel: GenericScalar was added to input type ProjectTestCaseDeriveMutationInput
Non-BreakingInput Field selectionStateChanges: [SSRMSelectionStateType] was added to input type ProjectTestCaseDeriveMutationInput
Non-BreakingInput Field quickFilter: String was added to input type ProjectTestCaseDeriveMutationInput
Non-BreakingDescription for type HistoricalProjectRequirementType changed from HistoricalProjectRequirement(id, context_condition, name, description, mdm_attribute_identifier_override, mdm_attribute, mdm_requirement, original_requirement, test_case, created_by, history_id, history_date, history_change_reason, history_type, history_relation, history_user) to HistoricalProjectRequirement(id, context_condition, name, description, mdm_attribute_identifier_override, obsolete, mdm_attribute, mdm_requirement, original_requirement, test_case, created_by, history_id, history_date, history_change_reason, history_type, history_relation, history_user)
Non-BreakingField updatedAt was added to object type LoadTaskType
Non-BreakingDescription for Input field LoadStatusReportTemplatesInput.quickFilter changed from Quick filter value for filtering status report templates to Filter over all items by a simple string value
Non-BreakingField historicalProjectRequirementAttachment was added to object type Query
Non-BreakingField historicalProjectThreshold was added to object type Query
Non-BreakingField historicalMdmRequirement was added to object type Query
Non-BreakingField allHistoricalMdmRequirementDocuments was added to object type Query
Non-BreakingField historicalMdmRequirementDocument was added to object type Query
Non-BreakingField loadMdmAttributeValues was added to object type Query
Non-BreakingField allHistoricalProjectThresholds was added to object type Query
Non-BreakingField allHistoricalProjectRequirementAttachments was added to object type Query
Non-BreakingField allHistoricalMdmRequirements was added to object type Query
Non-BreakingArgument datatype_In: [String] added to Query.allMdmAttributes
Non-BreakingArgument nameIexact: String added to Query.allCustomToolVersions
Non-BreakingArgument nameIcontains: String added to Query.allCustomToolVersions
Non-BreakingInput Field obsolete: Boolean was added to input type ProjectRequirementUpdateMutationInput
Non-BreakingField disciplinesAggregate was added to object type LoadMdmTestCasesType
Non-BreakingField obsolete was added to object type ProjectRequirementType
Non-BreakingInput Field obsolete: Boolean was added to input type ProjectRequirementAttributesInputType
Non-BreakingInput Field configuration: JSONDict was added to input type CustomToolVersionAttributesInputType
Non-BreakingInput Field obsolete: Boolean was added to input type ProjectRequirementCreateMutationInput
Non-BreakingDescription for type RequirementValueType changed from This model represents the actual value to a specific timestamp. It belongs to a project requirement but is independent to a requirement version. The lookup, which value was the actual one is done by the date the value was added. to This model represents the actual public value of a project requirement. Each requirement can only have exactly one value at a time, independent of the creator.
Non-BreakingField addMdmRequirementsToTestCase was added to object type Mutation
Non-BreakingField upsertRequirementValue was added to object type Mutation
Non-BreakingField upsertRequirementValuePrivate was added to object type Mutation
Non-BreakingType for argument input on field Mutation.deriveProjectTestCase changed from ProjectTestCaseDeriveMutationInput! to ProjectTestCaseDeriveMutationInput

Deprecations
REST-API Endpoints (deprecated in 0.40.0, removal in January, 2025)
Condition wildcards (deprecated in 0.49.0, removal in October, 2024)
Addon command-line arguments (deprecated in 0.51.0, removal in April, 2025)
Addon specification (meta.json) (deprecated in 0.55.0, removal in April, 2025)