rez.build_process#

rez.build_process.get_build_process_types()#

Returns the available build process implementations.

rez.build_process.create_build_process(process_type, working_dir, build_system, package=None, vcs=None, ensure_latest=True, skip_repo_errors=False, ignore_existing_tag=False, verbose=False, quiet=False)#

Create a BuildProcess instance.

Warning

The working_dir argument and the pacakge keyword argument will are deprecated and will be removed in rez 3.0.0

class rez.build_process.BuildType#

Bases: Enum

Enum to represent the type of build.

local = 0#
central = 1#
class rez.build_process.BuildProcess#

Bases: object

A BuildProcess builds and possibly releases a package.

A build process iterates over the variants of a package, creates the correct build environment for each variant, builds that variant using a build system (or possibly creates a script so the user can do that independently), and then possibly releases the package with the nominated VCS. This is an abstract base class, you should use a BuildProcess subclass.

classmethod name()#
__init__(working_dir, build_system, package=None, vcs=None, ensure_latest=True, skip_repo_errors=False, ignore_existing_tag=False, verbose=False, quiet=False)#

Create a BuildProcess.

Parameters:
  • working_dir (DEPRECATED) – Will be removed in rez 3.0.0.

  • build_system (BuildSystem) – Build system used to build the package.

  • package (DEPRECATED) – Will be removed in rez 3.0.0.

  • vcs (ReleaseVCS) – Version control system to use for the release process.

  • ensure_latest – If True, do not allow the release process to occur if an newer versioned package is already released.

  • skip_repo_errors – If True, proceed with the release even when errors occur. BE CAREFUL using this option, it is here in case a package needs to be released urgently even though there is some problem with reading or writing the repository.

  • ignore_existing_tag – Perform the release even if the repository is already tagged at the current version. If the config setting plugins.release_vcs.check_tag is False, this has no effect.

  • verbose (bool) – Verbose mode.

  • quiet (bool) – Quiet mode (overrides verbose).

property package#
property working_dir#
build(install_path=None, clean=False, install=False, variants=None)#

Perform the build process.

Iterates over the package’s variants, resolves the environment for each, and runs the build system within each resolved environment.

Parameters:
  • install_path (str) – The package repository path to install the package to, if installing. If None, defaults to config.local_packages_path.

  • clean (bool) – If True, clear any previous build first. Otherwise, rebuild over the top of a previous build.

  • install (bool) – If True, install the build.

  • variants (list of int) – Indexes of variants to build, all if None.

Raises:

BuildError – If the build failed.

Returns:

Number of variants successfully built.

Return type:

int

release(release_message=None, variants=None)#

Perform the release process.

Iterates over the package’s variants, building and installing each into the release path determined by config.release_packages_path.

Parameters:
  • release_message (str) – Message to associate with the release.

  • variants (list of int) – Indexes of variants to release, all if None.

Raises:

ReleaseError – If the release failed.

Returns:

Number of variants successfully released.

Return type:

int

get_changelog()#

Get the changelog since last package release.

Returns:

Changelog.

Return type:

str

class rez.build_process.BuildProcessHelper#

Bases: BuildProcess

A BuildProcess base class with some useful functionality.

repo_operation()#
visit_variants(func, variants=None, **kwargs)#

Iterate over variants and call a function on each.

get_package_install_path(path)#

Return the installation path for a package (where its payload goes).

Parameters:

path (str) – Package repository path.

create_build_context(variant, build_type, build_path)#

Create a context to build the variant within.

pre_release()#
post_release(release_message=None)#
get_current_tag_name()#
run_hooks(hook_event, **kwargs)#
get_previous_release()#
get_changelog()#

Get the changelog since last package release.

Returns:

Changelog.

Return type:

str

get_release_data()#

Get release data for this release.

Returns:

dict.

__init__(working_dir, build_system, package=None, vcs=None, ensure_latest=True, skip_repo_errors=False, ignore_existing_tag=False, verbose=False, quiet=False)#

Create a BuildProcess.

Parameters:
  • working_dir (DEPRECATED) – Will be removed in rez 3.0.0.

  • build_system (BuildSystem) – Build system used to build the package.

  • package (DEPRECATED) – Will be removed in rez 3.0.0.

  • vcs (ReleaseVCS) – Version control system to use for the release process.

  • ensure_latest – If True, do not allow the release process to occur if an newer versioned package is already released.

  • skip_repo_errors – If True, proceed with the release even when errors occur. BE CAREFUL using this option, it is here in case a package needs to be released urgently even though there is some problem with reading or writing the repository.

  • ignore_existing_tag – Perform the release even if the repository is already tagged at the current version. If the config setting plugins.release_vcs.check_tag is False, this has no effect.

  • verbose (bool) – Verbose mode.

  • quiet (bool) – Quiet mode (overrides verbose).

build(install_path=None, clean=False, install=False, variants=None)#

Perform the build process.

Iterates over the package’s variants, resolves the environment for each, and runs the build system within each resolved environment.

Parameters:
  • install_path (str) – The package repository path to install the package to, if installing. If None, defaults to config.local_packages_path.

  • clean (bool) – If True, clear any previous build first. Otherwise, rebuild over the top of a previous build.

  • install (bool) – If True, install the build.

  • variants (list of int) – Indexes of variants to build, all if None.

Raises:

BuildError – If the build failed.

Returns:

Number of variants successfully built.

Return type:

int

classmethod name()#
property package#
release(release_message=None, variants=None)#

Perform the release process.

Iterates over the package’s variants, building and installing each into the release path determined by config.release_packages_path.

Parameters:
  • release_message (str) – Message to associate with the release.

  • variants (list of int) – Indexes of variants to release, all if None.

Raises:

ReleaseError – If the release failed.

Returns:

Number of variants successfully released.

Return type:

int

property working_dir#