Skip to content

Squash Orchestrator 4.6.0 Release Note

Introduction

Squash Orchestrator is a set of micro-services to perform automated test execution workflows described in a specific format.

This release note describes the changes of Squash Orchestrator version 4.6.0 compared to 4.5.0.

Squash Orchestrator 4.6.0 was released on September 27, 2023.


New features

  • Issue orchestrator #408 Switch to a deadletter queue for problematic dispatches
    A dead letter queue has been implemented: some deadletter threads will try to redispatch publications whose first dispatch failed.
    The delay before considering that a thread failed to respond, the number of deadletter threads, and the maximum number of retries are configurable.

  • Issue orchestrator #420 Expose runs-on tags on job context
    Hooks can now access the tags defined in the runs-on job property.

  • Issue orchestrator #421 Allow filtering on `status.phase` for workflows
    The GET /workflows endpoint now supports filtering the workflows on their statuses: RUNNING, FAILED, or DONE.

  • Issue orchestrator #409 Allowing selectors in `GET /subscriptions` APIs
    Issue orchestrator #410 Generalize selectors for observer endpoints
    Issue orchestrator #411 Allowing selectors in `GET /agents` API
    The following endpoints now support field and label selectors:

  • Issue orchestrator #423 Adding handled query parameters to list endpoints
    The answer of an endpoint supporting query parameters now contains the names of these ones in the X-Processed-Query HTTP header.

  • Issue python-toolkit #104 The launch_java_service script should handle proxy settings
    The HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables are now taken into account by the Java micro-services.

  • Issue python-toolkit #100 Allow for comments in IAM configuration files
    Lines can now be commented out (using #) in a trusted key authorization file, a token authorization file, or an authorization policy file.

  • Issue orchestrator #415 Use the '--log-file' option instead of stdin redirect
    The command line used to launch JUnit tests has been modified in order to work properly with Maven daemon (this FAQ describes how to set it up).

  • Issue micronaut-java-plugins #47 Change property 'skippedStatus' default value to 'success'
    In the Surefire parser configuration, the default value of the skippedStatus property is now success.

  • Issue micronaut-java-plugins #46 Add validation on 'skippedStatus' property
    An error is now reported when, in the Surefire parser configuration, the skippedStatus property has an invalid value.

  • Issue qualitygate #16 Clean up the logs for invalid scopes
    More information is reported, by opentf-ctl get qualitygate and in the logs, in case of usage errors such as providing an invalid scope.

  • Issue orchestrator #417 Workflow completion/cancellation/failures should generate an info log at orchestrator level
    Issue python-toolkit #111 Improve startup logs
    Issue micronaut-java-plugins #43 Cleanup the log in Result aggregator
    Issue java-toolkit #61 Add timestamps in notifications
    Issue java-plugins #31 🔑 Cleanup the log in Squash-tm publisher
    Issue python-toolkit #105 Remove spurious 'Le fichier de commandes est introuvable.' messages on job teardown
    The logs have been further improved:

    • A workflow completion, cancellation, or failure is now logged as an INFO message, a timeout as a WARNING one.
    • The PYTHONPATH value and the image components are now logged during the orchestrator startup.
    • A spurious message during a job teardown on Windows has been removed.
    • Missing timestamps have been added.
    • Some DEBUG logs have been moved to the TRACE level.
    • Some useless information has been removed.

Bug fixes

  • Issue python-toolkit #110 Minor fix for consistency in boolean expressions handling
    Some valid boolean expressions were generating an execution error.

  • Issue orchestrator #226 get-files : Inconsistent behavior between Windows and Linux, a not found pattern does not always fail
    The get-files action was not properly handling some cases where no files were matching the provided pattern.

  • Issue orchestrator #166 get-files : The get-files action incorrectly attaches directories in addition to files.
    The get-files action, when used with patterns such as **/*, was improperly setting directories as attachments (it should only attach files).

  • Issue orchestrator #168 The get-files action generates an error and stops the Workflow with a recursif pattern like '**/f*.txt'
    The get-files action was failing for some patterns such as **/x*.ext.

  • Issue python-toolkit #98 Attaching namesake files generates only one occurrence locally
    The orchestrator now prepends the name of each attachment with its UUID in order to mitigate file name collision.

  • Issue orchestrator #225 The same `warn-if-not-found` input does not have the same effect in `actions/create-archive@v1` and in `actions/get-files@v1`
    warn-if-not-found can now be used to specify an error message for the create-archive action, so it is now consistent with get-files action behaviour.

  • Issue orchestrator #259 create-archive : when warn-if-not-found is true then an empty file is generated not and empty tar
    The create-archive action was generating an invalid empty tar file when there were no files to archive. It now generates a tar file containing an empty file named intentionally_empty_archive.

  • Issue orchestrator #401 Switch to a defaultdict for localcleaner
    A possible race condition resulted in some attachments being never deleted.

  • Issue qualitygate #21 When using the API endpoint, if `mode` is not set, it defaults to `''`, whereas it should default to `strict`
    When using the GET /qualitygate endpoint, if mode is not present, strict is now assumed.

  • Issue python-toolkit #107 Incorrect workspace cleanup
    The failure of a before step in a job hook was resulting in the workspace being cleaned up.

  • Issue orchestrator #416 'publicationStatusSummary' keys in subscriptions should be strings, not integers
    Keys in the status part of subscription manifests were incorrectly set as integers, they are now strings.