Release Manual 10.1.x

Upgrade instructions

The Digital.ai Release upgrade process you use depends on the version from which you are upgrading, and the version to which you want to go.

For detailed instructions based on your upgrade scenario, refer to Upgrade scenarios.

If you have hotfixes installed, contact the Digital.ai Support team before upgrading.

Digital.ai Release 10.1.0

Release 10.1.0 is a short-term support (STS) version that will be supported until superseded by the next release. For more information, refer to Short-term support/Long-term support policy.

Feature highlights

Digital.ai Release 10.1 includes these new features:

  • Requires Java 11
  • New GitHub & GitLab integrations
  • OAuth support for integrations
  • Improved password support for shared configuration
  • In-app guides and usage analytics
  • As-code: support for home folder
  • Trigger data purging
  • Cluster stability improvements
  • Helm chart support for Azure and GCP

Feature breakdown and upgrade notes

Requires Java 11

Digital.ai Release 10.1 is the first version that requires Java 11; Java 8 is no longer supported as a runtime.

New GitHub & GitLab integrations

The GitHub and GitLab integrations are now fully supported and can be downloaded from our distribution site

Both plugins were previously available as community plugins. The officially supported versions are drop-in replacement and no upgrade is needed. See GitHub Plugin and GitLab Plugin for more information.

OAuth support for integrations

Added support for the OAuth authentication protocol on third party endpoints under ‘Configuration’ (folder level) or ‘Shared configuration’ (global settings).

OAuth is available out-of-the-box for plugin implementations that use the provided HttpRequest class under the hood. Plugins that have custom connection implementations (for example those that use the Python requests library) will not have OAuth capability automatically.

The authentication method on a Configuration object is now a dropdown. Plugins can indicate which authentication methods are supported through configuration in their synthetic.xml.

All Digital.ai supported plugins have been revised for 10.1 to expose the proper authentication methods.

Release with Delivery Insights (General Availability)

The Release with Delivery Insights service integrates with and aggregates data from the following tools to generate rich insights into what’s flowing through your software delivery value stream.

  • Issue tracking tools—Jira and Agility
  • SCM tools—GitHub and GitLab With the new Delivery Insights plugin, you can create, promote and deliver package revisions for all your software applications in one place—the Package Progression Board.

For more information, see Release with Delivery Insights.

Improved password support for shared configuration

Password fields on the configuration screen can now have a reference to a folder variable or global variable.

Effectively this means that third party endpoints can now have their passwords stored in external secrets management like Vault or Conjur.

To do so, configure the password on the configuration to refer to a folder or global variable and configure the variable to point to the secret management system like Vault or Conjur.

Private keys are now passwords by default, so they can also be stored in an external secret management system.

For more information refer Conjur plugin and Hashicorp Vault plugin.

In-app guides and usage analytics

The new guide and analytics module allows two things:

  • Provide in-app guides and how-tos
  • Collect usage analytics

This module runs from the client browser and will contact an external server to download guides and send anonymous usage data to that server. This technology is provided by Pendo.

The in-app guides and usage analytics is enabled by default and can be disabled on the new Settings > Features screen in the Release UI. This setting is only accessible to admins.

There are three possibilities

  • Enable for all users (default)
  • Enable, but allow individual users to opt-out. Users will have can opt in or out under User Management > User profile.
  • Disable for all users.

As-code

Various improvements are included in this release making the behavior of xl generate and xl apply more robust for bigger chunks of release content than just templates.

A new feature flag --home allows you to apply the content that was generated in one folder with the --path flag to another folder.

For example, get the content of the ‘Development’ folder

$ xl generate xl-release --path Development -f my-templates.yaml

and then put it into ‘Production’

$ xl apply --home Production -f my-templates.yaml

For more information click here

Trigger data purging

Triggers may produce a lot of logging. It is now possible to purge the logs after a certain time.

Configuration of this feature can be found under Settings > General > Trigger data purging.

Purging is off by default and needs to be enabled manually.

For more information click here

Cluster stability improvements

We made several improvements to ensure stable operation in a clustered environment.

Graceful node termination should not cause task failure anymore, all started tasks will be given configurable grace termination timeout, and new tasks will be postponed.

Task grace termination timeout is configured through xl.timeouts.taskSchedulerGraceShutdownPeriod setting in xl-release.conf.

Helm chart support for Azure and GCP

When running in Kubernetes environment, our Helm charts now also support Azure and GCP.

Additionally, the nginx ingress controller is now supported.

For more information click here.

Background job execution is only started on any node after that node fully joins the cluster. Previously background jobs were started independently and it could cause “Futures timed out” error messages in logs, because node did not join cluster yet and messages to other nodes can not be delivered.

Resource consumption by StuckGateDetectorActor is reduced. For installations that have thousands of gate tasks StuckGateDetectorActor was creating significant pressure.

Performance improvements

Unnecessary roles and permissions reads during background task execution are removed, permission data is cached where possible. This should decrease number of database queries during task background execution.

Re-branded Agility Integration Plugin 10.1.0

  • VersionOne Integration Plugin has been re-branded as Agility Integration Plugin (xlr-agility-integration in Plugin Manager)
  • You can now create Agility assets (Story and Defect) from Agility templates
  • You can now pass comma-separated attribute values for Agility fields
  • The Get Asset task replaces the Get Story task and lets you retrieve an asset’s (Story, Defect, Test, Task) data from Agility

    Note: Though the Get Asset task functionally replaces the Get Story task, the Get Story task is not removed completely for backward compatibility purposes. It shows up as Get Story (legacy).

For more information, see Agility integration plugin.

Ability to define dynamic UI fields based on the value of an enum property

The following example synthetic.xml shows how we can further restrict enum values of an existing enum property and show only a subset of all properties (i.e. show only properties associated with selected enum value):

<type-modification type="some.Server">
    <property name="authenticationMethod" kind="enum"
              enum-class="com.xebialabs.xlrelease.domain.configuration.HttpConnection$AuthenticationMethod"
              hidden="false" default="None">
      <!--
            Use enum-values to additionally restrict possible authentication methods
            from [None, Basic, Ntlm, PAT, Oauth2] to [None, Basic, NTLM].
      -->
      <enum-values>
          <value>None</value>
          <value>Basic</value>
          <value>PAT</value>
      </enum-values>
    </property>

    <!--
         Define hidden property with the name in the format `<enum_property_name>_DependentProperties`.
         It maps certain enum values to property fields that will be displayed when that value is selected.
         Other properties with the same category (in the example: `Authentication`) will be hidden.
    -->
    <property name="authenticationMethod_DependentProperties"
              category="Authentication"
              kind="map_string_string"
              hidden="true"
              required="false"
              default="Basic:username;password,PAT:apiToken" />
</type-modification>

Known issues

As of Release v.10.1, Unable to install the Release as a service if the service command length exceeds 32768 characters.

Digital.ai Release 10.1.0 release notes

New features

  • [ENG-2474] - As code: Discovered further gaps and CIs to optimize
  • [ENG-2869] - Worked on performance improvements for activity logs on triggers
  • [ENG-3224] - As code: Bucket improvements
  • [ENG-3304] - Make risk calculation and update independent of release actor
  • [ENG-3336] - As code: Inconsistent result when no matches
  • [ENG-3813] - Reduced number of teams/roles/permissions reads during task execution
  • [ENG-3845] - Added OAuth support for plugin
  • [ENG-3846] - Added support for dynamic UI based on selected auth method
  • [ENG-3852] - Changed the default value to false for Stuck gate detector
  • [ENG-3858] - Integrated Pendo into Release
  • [ENG-3860] - Added: Client-side feature toggle
  • [ENG-3946] - Updated java script javax.script.ScriptException: zlib.error: java.util.zip.DataFormatException: for custom task
  • [ENG-4143] - Use spring-boot with DAI Release
  • [ENG-4169] - Updated metadata builder to work with .xldp
  • [ENG-4198] - As-code: support home metadata in generate
  • [ENG-4201] - Finished Pendo integration
  • [ENG-4339] - Added support personal access token when connecting to Blackduck server
  • [ENG-4367] - Ability to create VersionOne story from template in VersionOne
  • [ENG-4368] - Ability to create VersionOne defect from template in VersionOne
  • [ENG-4371] - Updated Get Story task to pull additional information
  • [ENG-4376] - Get details of single asset (task, defect, test) by providing issue id and Get story task needs to be updated for more coverage
  • [ENG-4401] - Improvement around session management
  • [ENG-4526] - As-code: Generate the kinds and types in proper order
  • [ENG-4550] - Insource xlr-github-plugin
  • [ENG-4551] - Insource xlr-gitlab-plugin
  • [ENG-4607] - Upgrading JDK to 11 (from 8) for Release plugins
  • [ENG-4718] - Ability to restrict enum values for enum class via synthetic
  • [ENG-5089] - Changed the default value to true for gate actor
  • [ENG-5151] - Added timestamp marker to all view
  • [ENG-5237] - Featured flag to support default and oidc plugin
  • [ENG-5251] - Featured Toggle to send email to inactive users
  • [ENG-673] - In XLR cluster, release task stucked in “In progress” state when active node is brought down while task (jython script) is running

Improvements

  • [ENG-3745] - Added validations on new folder modal
  • [ENG-3906] - Implemented debounce for release progress service
  • [ENG-4283] - RoleIdExtension for archived releases
  • [ENG-4795] - Vault token in plaintext in logs for all tasks in XLR
  • [ENG-4816] - HttpRequest.py: Add option to disable certificate handshake

Bug fixes

  • [ENG-1723] - Fixed: Discrepancy found while adding Jira Subtask type in XLR for input ‘Issue Type Name’
  • [ENG-2156] - Fixed: Calendar dragging doesnt work if touching release blocks
  • [ENG-3547] - Fixed: Blackout popup showing only topmost blackout
  • [ENG-3656] - Fixed: It would be good to highlight current day/week/month/year in Navigation drawer when user opens it
  • [ENG-3658] - Fixed: View selection and date range is not persistent in Calendar if you move across tabs
  • [ENG-3672] - Fixed: user permissions report sorting is not consistent with audit report permissions tab
  • [ENG-3678] - Fixed: SMTP server port number can be set as a negative number
  • [ENG-3781] - Fixed: Not able to delete/edit the color code after “three” letters
  • [ENG-3806] - Fixed: Broken delivery properties screen for long pattern name
  • [ENG-3824] - Fixed: XLR Calendar - Change Day view timeline Date format based on user selection
  • [ENG-3825] - Fixed: Task owner should not change after being completed in advance
  • [ENG-3826] - Fixed: Folder owner wrong calculated for ldap group users
  • [ENG-3830] - Fixed: DuplicateKeyException on session timeout with OIDC Plugin
  • [ENG-3832] - Fixed: As-code: can’t import templates with scheduledStartDate in the future
  • [ENG-3833] - Fixed: Unable to edit long folder variable names
  • [ENG-3835] - Fixed: Failing the calendar cypress tests after top month label removal
  • [ENG-3855] - Fixed: Use UTF-8 on Jython HttpRequest
  • [ENG-3928] - Fixed: As code: generating Global only entities with folder name in –path , generates notifications
  • [ENG-3950] - Fixed: Releases that are FAILUREHANDLERIN_PROGRESS are not recovered
  • [ENG-3977] - Fixed: Browser History is polluted when calendar view is changed
  • [ENG-4015] - Fixed: As code: can’t apply yaml that creates a pattern and template using that pattern at the same time
  • [ENG-4016] - Fixed: Make team member check case insensitive
  • [ENG-4024] - Fixed: SearchReleases public API
  • [ENG-4036] - Fixed: As code: can’t apply yaml that creates folder configuration and tasks using that configuration
  • [ENG-4038] - Fixed: As code: referenced folder configuration doesn’t include folder name when generated
  • [ENG-4040] - Fixed: Bring the Z-dept of timeline marker to be in front of the releases
  • [ENG-4043] - Fixed: Global notifications screen shows infinite spinner
  • [ENG-4063] - Fixed: As code: can’t apply yaml that creates a role and dashboard using the role at the same time
  • [ENG-4068] - Fixed: As-code: triggers should go after templates
  • [ENG-4100] - Fixed: As code: can’t generated YAML of dashboard with tile using source template filter
  • [ENG-4101] - Fixed: As code: delivery tasks contain folderId instead of name of folder in generated YAML
  • [ENG-4199] - Fixed: As-code: allow generation of same name templates if they are in different folders
  • [ENG-4244] - Fixed: Triggers uses old shared configuration after update on shared configuration
  • [ENG-4250] - Fixed: ReleaseExecutionActorMessages.CallerContext can’t be serialized by Kryo
  • [ENG-4260] - Fixed: Watcher predictive text field not working
  • [ENG-4274] - Fixed: Task fails because irrelevant external variables can’t be resolved
  • [ENG-4280] - Fixed: Template owner dictates release owner when release started from template
  • [ENG-4305] - Fixed: Blackduck plugin is throwing NoSuchMethodError
  • [ENG-4310] - Fixed: Search not working when Adding non-exist user to Teams
  • [ENG-4337] - Fixed: As-code: Generating permission for child folder also generates permission for parent folder
  • [ENG-4396] - Fixed: LicenseRegistrationServlet doesn’t work after spring dispatcher servlet was enabled
  • [ENG-4574] - Fixed: Can not start xlr distribution from master branch
  • [ENG-4579] - Fixed: Multi-value field cannot be updated using VersionOne plugin
  • [ENG-4593] - Fixed: Jenkins plugin: task should fail if jenkins job is not found
  • [ENG-4632] - Fixed: As code: yaml UI view for templates in nested folders doesn’t show correct directories
  • [ENG-4636] - Fixed: Changing the config in a duplicated dashboard causes changes in the config to all duplicated dashboards
  • [ENG-4759] - Fixed: Deadlock on XLRUSERPROFILES
  • [ENG-4775] - Fixed: Authentication method UI not hidden when navigating through configurations
  • [ENG-4787] - Fixed: Jenkins apiToken is missing from shared configuration
  • [ENG-4804] - Fixed: As-code: unable to remove unused variables from template
  • [ENG-4814] - Fixed: Pendo analytics: Error in browser console after XLR restart and page refresh
  • [ENG-4826] - Fixed: [Spring boot] XlrWebApplicationInitializer is not initialised
  • [ENG-4835] - Fixed: Jira apiToken is missing from shared configuration
  • [ENG-4861] - Fixed: Delete button position not correct on template versioning page
  • [ENG-4892] - Fixed: Redirect to OIDC login page on session timeout
  • [ENG-4919] - Fixed: As-code: change –home-override to –home in cli
  • [ENG-4931] - Fixed: Node stuck if DB upgrade unsuccessful
  • [ENG-4936] - Fixed: MSSQL SQL error in ActivityLogs
  • [ENG-4937] - Fixed: MSSQL SQL error in Spring Sessions
  • [ENG-4957] - Fixed: Failure handler is not saving variables
  • [ENG-4959] - Fixed: MSSQL - deadlocks on deliveries
  • [ENG-4981] - Fixed: As code: UI template YAML view fails with ClassCastException
  • [ENG-4997] - Fixed: Users can’t login in 10.1 after upgrade due to spring-session
  • [ENG-5081] - Fixed: As-code: Dependency error on apply when using AsCode to apply environment with a reservation
  • [ENG-5143] - Fixed: Test button is disabled when changing password from text to variable mode
  • [ENG-5144] - Fixed: Random NullPointerException on tasks in Parallel and Sequential Group
  • [ENG-5146] - Fixed: Hide unsupported OAuth 2.0 auth method for git configuration
  • [ENG-5153] - Fixed: Variable support on shared configuration is broken for password with textarea
  • [ENG-5154] - Fixed: type-modification for JGitConnectorConfig is not working
  • [ENG-5158] - Fixed: XLR didn’t create same name templates while importing to same folder or in different folders.
  • [ENG-5167] - Fixed: Set proper authenticationMethod for plugins
  • [ENG-5192] - Fixed: Getting error on browser on login/refresh
  • [ENG-5216] - Fixed: Create Release tasks : Template selection pop-up
  • [ENG-5324] - Fixed: Script output attachment is truncated to 32kb
  • [ENG-5348] - Fixed: com.xebialabs.xlrelease.domain.Changes.VariablesChanges#updatedVariablesMap seems to be unused
  • [ENG-5359] - Fixed: Plugin backward compatibility around TaskSoftReference

Digital.ai Release 10.1.2 release notes

Bug fixes

  • [ENG-5061] - Fixed the failing Jenkins tasks though the Jenkins server added in the shared configuration
  • [ENG-5152] - Fixed the setofstring field which used to lost when the template is applied/created through the CLI
  • [ENG-5254] - Fixed: The same object (variable) value is modified from different threads
  • [ENG-5345] - Find or Create Delivery task—Fixed an issue that prevented users from viewing the Pattern/Stage information on Find Or Create Delivery tasks
  • [ENG-5409] - Fixed: Create Release task displays ReleaseId instead of Release Title
  • [ENG-5508] - Fixed the server not shutdown issue via API
  • [ENG-5631] - Fixed an issue that prevented Trigger creation when you import and apply an As Code YAML file that defines:

    • a Release Template and a time-based Trigger—wherein the template’s name starts with “Release” and the trigger references this template
    • a Release Template and an event-based Trigger—wherein the template’s name starts with “Release” and the trigger references this template
  • [ENG-5634] - Fixed: Password handling in script tasks is inconsistent when override of security is used
  • [ENG-5719] - Fixed an issue that prevented the user from exporting the Release Audit Report
  • [ENG-5840] - Fixed the Password field when becomes blank while starting release from Create Releaser task

Digital.ai Release 10.1.3 release notes

Bug fixes

  • [ENG-5200] - Updated the user interface with the more precise format for Day, Week, and Month
  • [ENG-5504] - Fixed the issue when a large number of environments are present, Deployment tile throws an exception
  • [ENG-6420] - Updated and fixed the ‘User Input’ task detail view UI from two inputs to one and variable field to show the previously added value
  • [ENG-6436] - Removed unwanted encoding of user input, which made special characters look garbled in Jira tasks
  • [ENG-6493] - The XLR task/release is completed with the local/LDAP user credentials once provided in the template property
  • [ENG-6618] - Fixed the issue: ‘Create Release’ task displays the release ID instead of title for the Root level template
  • [ENG-6715] - Updated HttpResponse.class from str to unicode
  • [ENG-6734] - Fixed the remember-me functionality by changing the default value from 1 year to 30 days
  • [ENG-6862] - Fixed the unfunctional Pop-Up menus (Help and Setting) on a Windows machine
  • [ENG-7024] - Fixed the duplicate TaskPreconditionValidated deliveries by clearing the executionId on task.
  • [ENG-7072] - Fixed the issue when Webhook event has triggered with variables having DOT in the name.

Digital.ai Release 10.1.4 release notes

Bug fixes

  • [ENG-7175] - Fixed the issue by increasing the release column width in the release group.
  • [ENG-7186] - Fixed the issue where RolesApi#getRole() property did not return exact role name.
  • [ENG-7282] - Fixed the Trigger failure causes serialization error in cluster mode.
  • [ENG-7296] - Fixed the As Code Apply failing for Custom Script task when Synthetic Property is set as Empty.