Release Notes

Public

11.0.16.7419: Sep 22 2022

New

All platforms - DevOps: TrunkBot learnt to pass user defined branch attributes to the CI plan.

Now it is possible to configure the TrunkBot mergebot with a list of user-defined branch attribute names. When TrunkBot processes a branch, it will calculate the branch attribute values and it will forward them to the underlying Continuous Integration plan, triggered to build & test the branch being processed, as key-value parameters (attribute name-attribute value).

See how this feature looks like:

1- First of all, let's open the configuration of an instance of a TrunkBot mergebot, "CI Integration" section.

Here you can see new text fields where you're able to specify a comma-separated list of branch attribute names to forward to both the build & test plan and, if defined, to the "after-checkin" plan if the branch is successfully merged.

In the example above, 'product-type' and 'arch' attributes will be considered for the build & test plan, whereas the after-checkin plan will consider the 'deploy-type' attribute.

REMARK: The TrunkBot won't create any of these attribute names in the repository automatically. This has to be done by the user or the repository administrator.

These attributes can be easily created throught the attributes view of the Plastic SCM GUI:

2- Now let's create some changes in the repo monitored by the TrunkBot instance. Let's create branch 'main/scm003', submit a new changeset, set some values for the user-defined branch attributes we're using in this example, and finally mark the branch status as 'resolved', enabling the TrunkBot instance to process it and try to merge it to the specified 'trunk' branch: the 'main' branch:

3- We're using Jenkins in this example as the CI system. When the TrunkBot processed branch 'main/scm003', it forwarded the 'product-type-to-build' and 'arch' attributes and their values on 'main/scm003' to the execution of the 'build-tools-plan' we have defined in Jenkins (see step #1):

This way, the 'build-tools-plan' is able to read these properties and customize its steps depending on these values, if required.

4- Let's suppose the 'build-tools-plan' ran successfully for 'main/scm003' and the branch got merged into the defined 'trunk' branch: the 'main' branch:

We also defined a plan to run after a successful merge of a branch in the "CI Integration" section of the TrunkBot instance (see step #1).

In this example, it will pick the 'deploy-type' attribute value of branch 'main/scm003' just merged, and will forward it to the plan to run after checking a branch in, named 'deploy-tools-plan':

Remarks:

* In case the attribute does not exist, or a branch does not have such attribute set, the trunkbot will create and sent the property with empty value to the CI plan anyway. Each CI system may behave differently when a plan is triggered and a property is set to an empty value.

* Also notice that Jenkins will add the 'PLASTICSCM_MERGEBOT_' prefix to the property name (the name of the attribute).

New

Windows - PlasticFS: New WinFSP version improves Python support

Some Python scripts failed when trying to solve virtual paths with Pathlib.

> solvemypath.py
[WinError 1005] The volume does not contain a recognized file system.

This happened as the implementation relies on the Windows Mount Point Manager to solve the path, but WinFSP didn't support registering virtual file systems in that facility... until now!

> solvemypath.py
Full path: C:\Workspaces\DynamicWk

To use this feature, you will need to uninstall WinFSP, reboot your computer and start PlasticFS as usual. The new version of the WinFSP driver will be automatically installed.

Bug

Windows - PlasticFS: New WinFSP version fixes Visual Studio "Go to file"

Using "Go to file" (Ctrl+T) in Visual Studio didn't work reliably inside dynamic workspaces, not returning results or even freezing the IDE from time to time. Now it works consistently.

To use this feature, you will need to uninstall WinFSP, reboot your computer and start PlasticFS as usual. The new version of the WinFSP driver will be automatically installed.