Workspaces
This page explains how legoHDL uses workspaces to group and manage your blocks.
Workspaces allow your blocks to be found and managed for a given context. A user can have multiple workspaces for different contexts, such as for work and for hobbyist designs.
A user configures a workspace by defining a path where all downloaded blocks should exist and which vendors to link to.
Workspaces are defined as subsections in the [workspace]
section of the legohdl.cfg
file. Here is an example defining two different workspaces.
[workspace]
[.EEL4712c]
path = /Users/chase/develop/eel4712c/
vendors = (uf-ece, vhd-vault)
[.personal]
path = /Users/chase/develop/hdl/
vendors = ()
-
Workspace
EEL4712C
looks under/Users/chase/develop/eel4712c/
for downloaded blocks, and links to vendors defined asuf-ece
andvhd-vault
. -
Workspace
personal
looks under/Users/chase/develop/hdl/
for downloaded blocks, and links to no vendors.
Levels on Levels
Workspaces manage blocks at 3 different levels: downloaded/in-development, installed, and available.
-
Downloaded blocks are found within the workspace's user-defined path, sometimes called local path.
-
Installed blocks are internally managed by the workspace within a hidden folder currently found at
~/.legohdl/workspaces/<workspace>/cache/
. -
Available blocks depend on what vendors are linked to the workspace, and can be installed or downloaded.
Active Workspace
Only 1 workspace can be active at a given time. This is defined in the [general]
section of the legohdl.cfg
file.
[general]
active-workspace = EEL4712C
NOTE: The value for
active-workspace
must be a case-insensitive match with a workspace section defined under[workspace]
.