aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md124
1 files changed, 124 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7e8095ea8..e16d3683f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,127 @@
##
+- **EXPERIMENTAL** Feature: Added command line tool `zen service` to do maintenance operations for running zenserver as a local service
+ - `zen service status` - Check the status of zenservice as local service, indidicating if it is installed, running and the options it was installed with
+ - `zen service install` - Install zenserver as a local service, this requires admin/sudo priviliges to execute properly
+ - `--executable` - Path to zenserver executable. Defaults to same path as `zen` command line executable that was issued but with filename replaced.
+ - `--name` - Name of the installed service. Defaults to `ZenServer`
+ - `--display-name` - Windows only, the user friendly display name of the service. Defaults to `Unreal Zen Storage Service`
+ - `--description` - Windows only, the user friendly description of the service
+ - `--allow-elevation` - Windows only, if command is not run with elevated priviliges, the command will attempt to relaunch itself with elevated priviliges
+ - `-- ` - All options given after the double dash will be added as command line arguments to the zenserver executable when starting the service
+ - `zen service uninstall` - Uninstall zenserver as a local service, this requires admin/sudo priviliges to execute properly
+ - `--name` - Name of the installed service. Defaults to `ZenServer`
+ - `--allow-elevation` - Windows only, if command is not run with elevated priviliges, the command will attempt to relaunch itself with elevated priviliges
+ - `zen service start` - Start the installed zenserver local service, this requires admin/sudo priviliges to execute properly
+ - `--name` - Name of the installed service. Defaults to `ZenServer`
+ - `--allow-elevation` - Windows only, if command is not run with elevated priviliges, the command will attempt to relaunch itself with elevated priviliges
+ - `zen service stop` - Stops the running installed zenserver local service, this requires admin/sudo priviliges to execute properly
+ - `--name` - Name of the installed service. Defaults to `ZenServer`
+ - `--allow-elevation` - Windows only, if command is not run with elevated priviliges, the command will attempt to relaunch itself with elevated priviliges
+- Bugfix: GetModificationTickFromPath and CopyFile now works correctly on Windows/Mac
+- Bugfix: Handling of quotes and quotes with leading backslash for command line parsing - UE-231677
+- Improvement: When logging with a epoch time prefix, the milliseconds/fraction is now correct. We now also set the epoch to the process spawn time rather than the time when the logger is created
+- **EXPERIMENTAL** `zen builds`
+ - Improvement: Do partial requests of blocks if not all of the block is needed
+ - Improvement: Better progress/statistics on download
+ - Improvement: Scavenge .zen temp folders for existing data (downloaded, decompressed or written) from previous failed run
+ - Improvement: Faster abort during stream compression
+ - Improvement: Try to move downloaded blobs with rename if possible avoiding an extra disk write
+ - Improvement: Only clean temp folders on successful or cancelled build - keep it if download fails
+ - Improvement: Do put/get build and find blocks while scanning local folder when uploading
+ - Improvement: Don't chunk up .mp4 files as they generally won't benefit from deduplication or partial in-place-updates
+ - Improvement: Emit build name to console output when downloading a build
+ - Improvement: Reduced memory usage during upload and part upload validation
+ - Improvement: Reduced I/O usage during upload and download
+ - Improvement: Faster block regeneration when uploading in response to PutBuild/FinalizeBuild
+ - Improvement: More trace scopes for build upload operations
+ - Improvement: Progress bar automatically switches to plain mode when stdout is not a console
+ - Improvement: Progress bar is much more efficient on Windows (switched away from printf)
+ - Bugfix: Ensure that temporary folder for Jupiter downloads exists during verify phase
+ - Bugfix: Fixed crash during download when trying to write outside a file range
+ - Bugfix: MacOS / Linux zen build download now works correctly
+
+## 5.6.0
+- Feature: Added support for `--trace`, `--tracehost` and `--tracefile` options to zen CLI command
+- Improvement: When logging HTTP responses, the body is now sanity checked to ensure it is human readable, and the length of the output is capped to prevent inadvertent log bloat
+- Improvement: Instrumented `zen builds download` command code so we get more useful Insights output
+- **EXPERIMENTAL** `zen builds`
+ - Improvement: Better error reporting and faster exit on error
+ - Improvement: Downloads without `--clean` now preserves untracked files in target folder
+ - Improvement: Reduce write operations for duplicate files in dowloads
+ - Improvement: Added on the fly validation `zen builds download` of files built from smaller chunks as each file is completed
+ - Improvement: Do streaming decompression of loose blobs to improve memory and I/O performance
+ - Improvement: Validate hash of decompressed data inline with streaming decompression
+ - Improvement: Do streaming compression of large blobs to improve memory and I/O performance
+ - Feature: Added `--verify` option to `zen builds upload` to verify all uploaded data once entire upload is complete
+ - Feature: Added `--verify` option to `zen builds download` to verify all files in target folder once entire download is complete
+
+## 5.5.20
+- Bugfix: Fix bug causing crash if large file was exact multiple of 256KB when using zen builds command
+- Bugfix: Fix authentication error affecting Jupiter client that manifests as 'bad function call' error UE-252123
+
+## 5.5.19
+- Feature: **EXPERIMENTAL** New `zen builds` command to list, upload and download folders to Cloud Build API
+ - `builds list` list available builds (**INCOMPLETE - FILTERING MISSING**)
+ - `builds upload` upload a folder to Cloud Build API
+ - `--local-path` source folder to upload
+ - `--create-build` creates a new parent build object (using the object id), if omitted a parent build must exist and `--build-id` must be given
+ - `--build-id` an Oid in hex form for the Build identifier to use - omit to have the id auto generated
+ - `--build-part-id` and Oid in hex form for the Build Part identifier for the folder - omit to have the id auto generated
+ - `--build-part-name` name of the build part - if omitted the name of the leaf folder name give in `--local-path`
+ - `--metadata-path` path to a json formatted file with meta data information about the build. Meta-data must be provided if `--create-build` is set
+ - `--metadata` key-value pairs separated by ';' with build meta data for the build. (key1=value1;key2=value2). Meta-data must be provided if `--create-build` is set
+ - `--clean` ignore any existing blocks of chunk data and upload a fresh set of blocks
+ - `--allow-multipart` enable usage of multi-part http upload requests
+ - `--manifest-path` path to text file listing files to include in upload. Exclude to upload everything in `--local-path`
+ - `builds download` download a folder from Cloud Build API (**INCOMPLETE - WILL WIPE UNTRACKED DATA FROM TARGET FOLDER**)
+ - `--local-path` target folder to download to
+ - `--build-id` an Oid in hex form for the Build identifier to use
+ - `--build-part-id` a comma separated list of Oid in hex for the build part identifier(s) to download - mutually exclusive to `--build-part-name`
+ - `--build-part-name` a comma separated list of names for the build part(s) to download - if omitted the name of the leaf folder name give in `--local-path`
+ - `--clean` deletes all data in target folder before downloading (NON-CLEAN IS NOT IMPLEMENTED YET)
+ - `--allow-multipart` enable usage of multi-part http download reqeusts
+ - `builds diff` download a folder from Cloud Build API
+ - `--local-path` target folder to download to
+ - `--compare-path` folder to compare target with
+ - `--only-chunked` compare only files that would be chunked
+ - `builds fetch-blob` fetch and validate a blob from remote store
+ - `--build-id` an Oid in hex form for the Build identifier to use
+ - `--blob-hash` an IoHash in hex form identifying the blob to download
+ - `builds validate part` fetch a build part and validate all referenced attachments
+ - `--build-id` an Oid in hex form for the Build identifier to use
+ - `--build-part-id` an Oid in hex for the build part identifier to validate - mutually exclusive to `--build-part-name`
+ - `--build-part-name` a name for the build part to validate - mutually exclusive to `--build-part-id`
+ - `builds test` a series of operation that uploads, downloads and test various aspects of incremental operations
+ - `--local-path` source folder to upload
+ - Options for Cloud Build API remote store (`list`, `upload`, `download`, `fetch-blob`, `validate-part`)
+ - `--url` Cloud Builds URL
+ - `--assume-http2` assume that the builds endpoint is a HTTP/2 endpoint skipping HTTP/1.1 upgrade handshake
+ - `--namespace` Builds Storage namespace
+ - `--bucket` Builds Storage bucket
+ - Authentication options for Cloud Build API
+ - Auth token
+ - `--access-token` http auth Cloud Storage access token
+ - `--access-token-env` name of environment variable that holds the Http auth Cloud Storage access token
+ - `--access-token-path` path to json file that holds the Http auth Cloud Storage access token
+ - OpenId authentication
+ - `--openid-provider-name` Open ID provider name
+ - `--openid-provider-url` Open ID provider url
+ - `--openid-client-id`Open ID client id
+ - `--openid-refresh-token` Open ID refresh token
+ - `--encryption-aes-key` 256 bit AES encryption key for storing OpenID credentials
+ - `--encryption-aes-iv` 128 bit AES encryption initialization vector for storing OpenID credentials
+ - OAuth authentication
+ - `--oauth-url` OAuth provier url
+ - `--oauth-clientid` OAuth client id
+ - `--oauth-clientsecret` OAuth client secret
+ - Options for file based remote store used for for testing purposes (`list`, `upload`, `download`, `fetch-blob`, `validate-part`, `test`)
+ - `--storage-path` path to folder to store builds data
+ - `--json-metadata` enable json output in store for all compact binary objects (off by default)
+ - Output options for all builds commands
+ - `--plain-progress` use plain line-by-line progress output
+ - `--verbose`
+
+## 5.5.18
- Feature: Added command line tool `zen service` to do maintenance operations for running zenserver as a local service
- `zen service status` - Check the status of zenservice as local service, indidicating if it is installed, running and the options it was installed with
- `zen service install` - Install zenserver as a local service, this requires admin/sudo priviliges to execute properly
@@ -23,6 +146,7 @@
- Bugfix: Verify that chunking is allowed before chunking loose files duriung oplog export
- Bugfix: Fix oplog target url for oplog export to remote zenserver
- Bugfix: Handle workspace share paths enclosed in quotes and ending with backslash UE-231677
+- Bugfix: Strip leading path separator when creating workspace shares
## 5.5.17
- Improvement: Batch fetch record attachments when appropriate