spaces_add()

def spaces_add(name, version, add_link_to_workspace_root, visibility)

Add the spaces binary to a workflow.

All workflows should include a copy of spaces so that the run rules will continue to work reproducibly even if the system copy of spaces is updated.

Example:

load("//@star/packages/star/spaces-cli.star", "spaces_add")

spaces_add("spaces0", "v0.14.4")

Args

  • name: string: The name of the binary
  • version: string: The version of the binary
  • add_link_to_workspace_root: bool: Add a link to the binary in the workspace root
  • visibility: Rule visibility. See visibility.star for more info.

spaces_add_devutils()

def spaces_add_devutils(name, spaces_version, devutils_version, system_paths, coreutils_functions, bat_paging, visibility) -> dict

Create a spaces devutils based workspace.

This will install devutils (coreutils and rust developer tools) into the sysroot to support basic utilities and developer tooling.

By default no built-in system tools are available on the path.

Args

  • name: string: The base name of the checkout rule
  • spaces_version: string: The version of spaces to use in the isolated workspace
  • devutils_version: The version of devutils to use (e.g. “devutils-v0.1.2”)
  • system_paths: The list of system paths to add to the environment
  • coreutils_functions: list: The list of coreutils functions to install (default is all)
  • bat_paging: string: Bat paging mode: never|always|auto.
  • visibility: Rule visibility. See visibility.star for more info.

Returns

The rules added by this function (see rules_new())

spaces_add_star_formatter()

def spaces_add_star_formatter(name, configure_zed, deps, visibility)

Add a formatter to the workspace for spaces.star files.

Args

  • name: string: The rule base name
  • configure_zed: bool: Whether to configure zed to use the formatter
  • deps: list: Dependencies for the rule (chmod needed by buildifier)
  • visibility: Rule visibility. See visibility.star for more info.

spaces_isolate_workspace()

def spaces_isolate_workspace(name, version, system_paths, coreutils_version, coreutils_functions, visibility)

Isolate the workspace by omitting all system paths from the environment.

This will install coreutils and other tools into the sysroot to support basic utilities.

By default no built-in system tools are available on the path.

Args

  • name: string: The base name of the checkout rule
  • version: string: The version of spaces to use in the isolated workspace
  • system_paths: The list of system paths to add to the environment
  • coreutils_version: string: The version of coreutils to use in the isolated workspace
  • coreutils_functions: list: The list of coreutils functions to install (default is all)
  • visibility: Rule visibility. See visibility.star for more info.