Omniverse Wrapp Change Log#
2.1.0#
Availability 2.1.0#
WRAPP CLI is now available for download via NGC.
WRAPP is now available as a Python wheel, downloadable from NGC.
Compatibility 2.1.0#
Support for Python 3.10 was dropped. WRAPP is compatible with Python 3.11 and 3.12.
The Nucleus tagging library is no longer bundled with WRAPP. If needed, the tagging library can be installed manually into the Python environment.
Update to client-library 2.69.0.
New Features 2.1.0#
WRAPP now provides a public Python API.
Add native Azure support to WRAPP.
Added
create-metapackageCLI command that allows creating a meta package (a package that has only dependencies and no content on its own) easily from a list of dependencies without having to install the referenced packages first.Added
checkcommand with--recursiveoption that can verify if the catalog of a repository package matches its data.Added
find-orphansanddelete-packagesCLI commands to find packages no longer used by a given set of top level packages and delete them.The
mirrorcommand supports--recursiveand--repo-mappingto mirror the specified package and all its dependencies to the target repo.mirrorcan now re-run successfully with--resumeafter an aborted previous run.
Improvements 2.1.0#
Improved progress reporting.
Improved performance for
createand other commands when running on Nucleus working folders.createnow removes top level dependencies if the corresponding wrapp file cannot be found in the work tree.uninstall --force --package <package_file>can be used to manually remove missing packages.install --forcewill succeed even if it encounters invalid .wrapp files in the target folder.WRAPP operations will no longer hang during operations moving very complex data even if the
--jobsoption is not set to a very high value.All storage operations which fail with a generic error now log an error message.
installfails if you try to run it on a manually copied repository package to prevent using invalid source references.
Bug Fixes 2.1.0#
Fixed
installgenerating invalid .wrapp files for installed subpackages under specific circumstances (repeated installs to S3 using different source repositories).Fixed
createof a package which contains only dependencies and no items.Fixed
createfrom first copying the top-level .wrapp file (if it exists) and then overwriting it.Fixed S3 upload retry logic to properly handle residual files with non-zero sizes at the destination.
Fixed
statusto work even if the file format of the wrapp files has changed.Fixed
mirrorto fail if it finds a package already in place with missing dependencies (unless the missing dependency is mirrored by the same operation).Repository URLs ending with more than one slash will now cause failure for all operations (validation improvement).
Fixed relative
--repopaths failing on Windows.
2.0.1#
Documentation changes only.
2.0.0#
Compatibility#
All WRAPP file formats are from this release onwards backwards and forwards compatible, if possible, but at least backwards compatible. This version 2.0.0 breaks forwards but not backwards compatibility for older WRAPP versions, so:
WRAPP version 2.0.0 will be able to read packages written by previous WRAPP versions.
Previous WRAPP versions will not be able to read packages written by WRAPP version 2.0.0.
Changes in 2.0.0#
The mirror command got a new option
--redirect-dependencieswhich instructs mirror to rewrite the dependencies’ repository field to point to the target of the mirror command, meant to be used when the intention is to mirror all packages into the target repository.New CLI
tracebackcommand to trace back a wrapp file via the repository to the original source.Each wrapp file contains two pointers. A source pointer to the directory where the last create command was issued from, and a repository pointer which points to the repository this package was last installed from or created to.
The traceback logic can follow both pointer directions to produce a potentially large ancestry tree of multiple repository/mirror commands and create/install operations.
Add a new command
status, which taking the path of a wrapp file will determine if the project has any dirty files or sub-packages and output a detailed list of modified files, package versions, or dependencies.Check for cyclic dependencies during install and create and refuse operation that could cause an endless recursion.
Extract-catalog now has a
--recursiveoption to produce the catalog of all files in the package including all subpackages. A corresponding API functionextract_catalogwas added as well.Added new command status to find all modified, extra, or missing files and check that dependency versions are recorded. Prints out details if given –show parameter.
Fixed bug where mirror failed when mirroring an empty package that contained only a wrapp file.
Create now features a new parameter “–check-subpackage”. If enabled, create will fail if the package contains subpackages which are missing from their source repository.
Create now checks if any of the subpackages that are referenced is considered to be modified or ‘dirty’. If yes, it will fail. A command line switch
--allow-dirty-subpackagescan be used to override the new behavior.Added new command
installed-package-listto recursively list all packages in a working tree including their versions and repository locations.“new” immediately fails now when the “.wrapp” file already exists.
If WRAPP detects conflicts during an “install”, it now is more explicit about the differences it sees between files.
The “install” command now reports conflicts in a less technical fashion, including the explanation in the patch files it can create.
Fixed connection error to the Nucleus tagging service occurring under specific circumstances when multiple concurrent tagging operations were run during a patch operation.
Delete operations during “install” were done one at a time under some circumstances, making the operation very slow. This has been fixed.
“install” has now an additional flag “–force”. If used, “install” will overwrite all files on the destination with the files from the package.
The “install” and “create” command under some circumstances had a long delay until it showed any progress. This has been fixed.
This also improves performance for both commands when many nested dependencies are used.
Improve progress reporting on the command line.
Fix handling of empty folders in WRAPP 1.x packages.
WRAPP 2.0.0 no longer supports empty folders in packages - empty folders are simply skipped during catalog or package creation.
To retain a folder, a dummy file must be added to it.
If packages created with WRAPP 1.x are installed with WRAPP 2.0.0, a dummy file “.wrapp_keep_empty_folder” is automatically created in the empty folder.
The “–auth” CLI parameter and the WRAPP_AUTH environment variable now allow providing credentials for S3.
Introduce new “–interactive-auth” CLI flag.
WRAPP CLI now only pops up the browser when no credentials are provided for a Nucleus server when the flag is explicitly enabled.
If the flag is not specified and no credentials are provided, the operation fails.
Accelerated the list_repo operation for S3 by using proper concurrency.
Better error handling for S3 authentication failures.
Improve Python API documentation
WRAPP is now compatible with Python 3.10, 3.11, 3.12.
Update ClientLibrary to 2.63.0 release.
WRAPP is compatible with ClientLibrary 2.53.2 or newer.
1.1.2#
Updates for security vulnerabilities
Update ClientLibrary to 2.54.0.
1.1.1#
Updates for security vulnerabilities
Update Python to 3.10.15+nv1.
Update aiohttp to 3.10.10.
Update ClientLibrary to 2.53.2.
1.1.0#
On Windows, before running wrapp you need to install the Microsoft runtime in case it is not already installed. Download and install from https://aka.ms/vs/17/release/vc_redist.x64.exe.
Allow using S3 as target for install, import, and create commands. S3 can be addressed both with global s3:// style URLs and https:// style links pointing to amazonaws.com.
OMPE-15135: freeze would not create local file system folders when copying from S3
Introduce progress report flag and additional options for number of tagging and file transfer jobs for create, install, mirror, freeze and apply-patch.
API Changes:#
The “get” API function used to download a file to the local disk is now accepting the optional parameters “context” and “scheduler”, like the other API functions.
The credentials used to sign in to S3 can be set using WRAPP_AWS_ACCESS_KEY_ID and WRAPP_AWS_SECRET_ACCESS_KEY, the endpoint can be set with WRAPP_S3_ENDPOINT.
If the variables are not set, boto3 tries to locate the credential in the usual way.
The API
initializefunction is now documented to possibly raise a RuntimeError when initialization fails.Before it might have thrown any exception.
1.0.1#
Update ClientLibrary to 2.49.0 release, closing security vulnerabilities
Updated to use Python 3.10.14+nv1 instead of 3.10.13+nv3
Linux-binaries built on Ubuntu 20.04 LTS instead of CentOS 7, which is EOL
New documentation
1.0.0#
Initial Omniverse Nucleus WRAPP release.