Dependency versioning

Libraries teach new skills to your robots. Often, you will use external libraries. You make libraries available to your robot by adding Python packages as dependencies in the conda.yaml configuration file.

What version of dependencies is my robot using?

You can determine which version of dependencies, such as Python packages, your robot is using by viewing the conda.yaml configuration file:

channels:
  - conda-forge
dependencies:
  - python=3.7.5
  - pip=20.1
  - pip:
      - rpaframework==9.3.0

In this case, the robot is using python version 3.7.5, pip version 20.1, and rpaframework version 9.3.0.

Always use fixed version numbers (such as 9.3.0) instead of floating numbers (7.*) to make your projects more stable. Fixed versions mitigate the risk of some dependency updating without you knowing it.

Semantic versioning

Robocorp uses Semantic versioning principles. The version number has three components: MAJOR.MINOR.PATCH

Changes in each of these numbers signal different levels of possible internal updates to the package:

  • MAJOR updates can change or remove core existing features or functionality and therefore can cause compatibility issues with earlier major versions of the package.
  • MINOR updates can add new features, but should not break any of the package's existing functionality.
  • PATCH updates can fix existing features or bugs, but should neither add to nor break any of the package's existing functionality.

Determining the exact version of dependencies in use

In Robocorp Lab:

  1. With the project open in Robocorp Lab, click File > New > Terminal from the menubar.
  2. In the terminal window, type: pip freeze

Example output:

...
rpaframework==9.3.0
rpaframework-core==5.3.1
selenium==3.141.0
...

In VS Code:

NOTE: This requires the Robocorp Visual Studio Code extensions to be installed in VS Code.

  1. Run the robot.
  2. The dependencies are shown in the Debug Console.

When and how should I update my dependencies?

Update the dependency versions whenever you see an update that will be useful to you (new feature, bug fix, performance boost...).