Release Notes

Public

Release 7.0.16.2782

Nov 22 2018
New

All GUIs: The new context triggered help system is out now!

We have been working on a new help system. It is a mix of UX improvements with empty states and a smart help that guides you while you learn how to master Plastic SCM.

It is implemented as a panel in all views that shows up to help you discover new features you never used, or in response to events that might be causing frustration.

It is better explained with an example: suppose you frantically click the "refresh" button of the labels view. Chances are you are not finding something you are looking for, otherwise you wouldn't click it so frequently. And, suppose you have a filter in the view that is preventing you to see what you are looking for. The GUIs will detect this and show a panel highlighting that you have a filter set and that's probably why you are not finding what you are looking for.

Another example: have you ever colored your Branch Explorer based on the authors of the changesets? The help system will help you discover that.

The new system comes with a good amount of art in the form of a new mascot: our wise Owl, a smart and methodic librarian that aligns well with the Plastic philosophy: preserve history to learn from it.

This new help system is a starting point to improve onboarding, usability and to help users becoming experts on version control in an active way.

New

Gluon: We improved the performance of the size calculation. Now it's about 5 times faster than before.

New

Server: New threadpool boosting system to avoid running out of threads when something goes wrong and some operations are blocked.

== How to see this new system in action ==

If this ever happens, you'll see the following on your server log:

2018-11-16 12:12:10,851 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 1 new. Something must be going wrong.

== How it works ==

Suppose you have a situation like this, with 5 methods blocking the server:

ACTIVE METHOD CALLS
Name                                      Request IP              Time      Thread   Status   Protocol  Sec  User
GetRepositoryList                             107 127.0.0.1       00:00:01  47       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
GetRepositoryList                             102 127.0.0.1       00:00:40  66       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
GetRepositoryList                             101 127.0.0.1       00:00:40  65       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
GetRepositoryList                              99 127.0.0.1       00:00:41  62       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
GetRepositoryList                              98 127.0.0.1       00:00:41  63       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
0 requests enqueued. 5 worker threads (0 free)

It shouldn't happen, but sometimes we found issues on very slow networks, or bugs, that blocked some requests.

Now, the server tries to attend a new request, and it enqueues it, and before this fix it had to wait for a free thread.

But now, the following will happen:

2018-11-16 12:12:10,851 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 1 new. Something must be going wrong.

And a new thread will be created to attend the new request.

== What if there are many enqueued requests ==

If that's the case, the following happens:

2018-11-16 12:11:15,655 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 6 new. Something must be going wrong.

A new batch of threads will be added to the thread pool (up to the thread pool limit which is normally the number of cores).

Bug

Gluon now displays the size of the private directories shown in the 'Explore workspace' view. Previously it was always 0.

Bug

Using Gluon against the cloud server or a server using SQL backend: the checkin operation failed in huge workspaces (with over 250000 folders) when a size calculation was triggered while a checkin operation was still running. The error message 'Trying to use a previously finished transaction' appeared. This happened e.g. when you hit the checkin button in the checkin view and then you switch to the 'Explore workspace' view and refresh it.

Bug

Windows GUI: The "Display branch task info" was not working in the branch explorer. Now it's fixed.

Bug

WebUI: Fixed some transaction errors in servers using SQL-based backends. These errors prevented the code review/diff views and the items tree to display the appropriate contents, showing blank views instead.

Internal and public releases

The Plastic SCM development team works in short iterations delivering frequent releases.Our goal is to have at least one new release every week, with new functionalities, bug fixes and performance tweaks.

Every 'weekly' release is not published to our customers, but we like to detail each of them in the release notes so users can easily follow what we achieved on every short iteration.

The releases marked with the word "public" are the ones we do publish on the website. The ones marked as "internal" are the releases we create in-house to keep the project moving week after week.

Version numbering

Starting in Plastic SCM 4.0 the version numbering schema has been modified:

  • major.minor.compatibility.buildnumber

  • Sample: 5.0.44.511 means:
    • 5 -> major release number
    • 0 -> minor release number
    • 44 -> compatibility -> all clients and servers with "44" in the compat number are compatible, even if the build number changes
    • 511 -> internal build number