Freeze#

Description#

Taking a source and a destination, freeze a version of a package for later publishing or preparing a reproducible build.

The freeze command is used to freeze or archive a specific version into a new location. This is used to make sure a specific version can be reproducibly addressed at that location, e.g. to run a CI job on a specific version or to create a reproducible version for QA testing and subsequent release.

The freeze command has two modes:

Mode 1: URL to URL

Takes a source subtree URL and creates a copy of the head version of the files at the source position. If both source and destination are on the same Nucleus server, the operation is efficient as no data has to be transferred and the files and folders at the new destination are effectively hard links to the same content, causing no data duplication. Note that the history is not copied and the checkpoint numbers will not be the same as in the source.

Mode 2: Catalog to URL

Takes a catalog file as input and a destination path as second parameter, using the --catalog flag.

Note that while this allows to defer the copy command to a later point and only catalog the files to be used as a first step, there is no guarantee that the freeze operation will still be able to find all files listed in the catalog - they might have been moved away or obliterated.

For usage examples, see the Tutorial. For CLI options, run wrapp freeze --help.

Python API Reference#

async wrapp.freeze(
source: str,
dest_dir: str,
catalog: bool = False,
overwrite: bool = False,
tags: bool = False,
ignore_file: str | None = None,
ignore_packages: bool = False,
force_upload: bool = False,
context: CommandParameters = CommandParameters(debug=False, verbose=False, dry_run=False, log_file=None, hash_cache_file=None),
*,
scheduler: SchedulerContext | None = None,
) None#

Taking a source and a destination, freeze a version of a package for later publishing or preparing a reproducible build

Parameters:
  • source – URL of the root of the files to freeze

  • dest_dir – URL of the destination

  • catalog – When set, the source parameter points a file with a catalog previously produced by catalog, else source is a source folder URL

  • overwrite – Specify to allow overwriting files in the destination

  • tags – Specify whether to freeze tags via the Tagging Service as well

  • ignore_file – Specify the name of an ignore file containing rules for ignoring items

  • ignore_packages – When specified, first find all package files in the source and load their file lists to exclude them from the freeze operation

  • force_upload – Specify this to disable the create_with_hash optimization that can accelerate uploads when files might already be on the target

  • context – Global configuration parameters

  • scheduler – Optionally pre-constructed SchedulerContext. When calling many functions in a row make sure to pre-construct the scheduler.

Raises:
  • FailedCommand – When prerequisites not matched

  • StorageOperationError – Raised when network or file operations fail