What is a runtime?

An ActiveState runtime is a complete, reproducible environment that contains the programming language (e.g., Python, Perl, Tcl, etc.), the core interpreter, and all the specific packages and dependencies required for your project.

Unlike a standard language installer, an ActiveState runtime is built on-demand to resolve all dependencies against each other, ensuring that the environment is consistent for every developer on the team.

The ActiveState Platform allows you to customize and edit your runtimes, so you can tailor individual bundles to the specific requirements of any given application and scope.

A key benefit of this approach is Reproducibility. The Platform stores a snapshot of every component in the runtime, allowing you to recreate the exact same environment years later. This includes:

  • Top-level packages: The libraries you explicitly requested.
  • Direct dependencies: The libraries your packages require to function.
  • Transitive dependencies: The “hidden” dependencies required by your dependencies, which are often the cause of “it works on my machine” bugs.

Configuring your runtime

After creating your project and installing the needed artifacts (packages, bundles, patches, etc.), you can follow these steps to configure the runtime:

  1. Select the project that is associated with the runtime you wish to configure.
  2. Navigate to the Configuration tab.
  3. Modify your runtime requirements:
    • Add: Click Add Packages, search for the library, and click Add.
    • Remove: Click the trash bin icon next to the package name.
    • Modify: Use the drop-down menu next to a package to select a specific version.
  4. Click Save Changes (or Commit) to trigger a rebuild of the runtime.
  5. Update your local environment:
    • If this is a new project: Open your terminal and run state use <org/project-name>.
    • If you already have the project installed: Navigate to the project folder and run state pull to download the new configuration.