Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: third_party/gsutil/CHANGES.md

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/gsutil/CHECKSUM » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/gsutil/CHANGES.md
diff --git a/third_party/gsutil/CHANGES.md b/third_party/gsutil/CHANGES.md
new file mode 100644
index 0000000000000000000000000000000000000000..ed3d6e42e0948c206a3b7c6bb9eec0145d7dece2
--- /dev/null
+++ b/third_party/gsutil/CHANGES.md
@@ -0,0 +1,1584 @@
+Release 4.13 (release date: 2015-06-03)
+=======================================
+New Features
+------------
+- Added -U flag to cp and rsync commands to allow skipping of unsupported
+ object types.
+- Added support for Google Developer Shell credentials.
+
+Bug Fixes
+---------
+- Precondition headers (x-goog-if-...) are now respected for the setmeta
+ command.
+- Fixed an index out of range error that could occur with an empty
+ parallel composite upload tracker file.
+- The stat command outputs errors to stderr instead of stdout.
+- Fixed two possible sources of ResumableUploadStartOverException from
+ httplib2 and oauth2client.
+- Fixed a bug in the compose command where a missing source object resulted
+ in an error message claiming the destination object was missing.
+
+Other Changes
+-------------
+- Added a help section on throttling gsutil.
+- Resumable uploads will now start over if a PUT to the upload ID returns
+ an HTTP 404. Previously this behavior applied only to an HTTP 410.
+- XML API resumable uploads now retry on HTTP 429 errors, matching the
+ behavior of JSON API resumable uploads.
+- Improved response to process kill signals, reducing the likelihood of
+ leaving orphaned child processes and temporary files.
+- Bucket lifecycle configuration now works for S3.
+- Removed the deprecated setmeta -n option.
+
+
+Release 4.12 (release date: 2015-04-20)
+=======================================
+New Features
+------------
+- Added support for JSON-format service account private key files.
+- Added support for the Rewrite API (JSON API only). This is used for
+ all copies within the Google Cloud and supports copying objects across
+ storage classes and/or locations.
+
+Bug Fixes
+---------
+- Fixed a bug that could cause downloads to have a hash mismatch (and deletion
+ of the corrupted file) when resumed across process breaks via a tracker file.
+
+Other Changes
+-------------
+- Updated documentation and examples for several topics including
+ acl, cp, dev, signurl, stat, and wildcards.
+
+
+Release 4.11 (release date: 2015-03-10)
+=======================================
+New Features
+------------
+- Added Nearline storage class support to the mb command.
+
+Bug Fixes
+---------
+- Fixed a bug for streaming uploads that could occasionally cause a HTTP 410
+ from the service or a hash mismatch (and deletion of the corrutped file).
+- Fixed an OverflowError that occurred when uploading files > 4GiB on a 32-bit
+ operating system.
+
+Other Changes
+-------------
+- Added documentation around using the Content-MD5 header to extend integrity
+ checking to include checksums computed by a client-side content pipeline.
+
+
+Release 4.10 (release date: 2015-03-03)
+=======================================
+Bug Fixes
+---------
+- Fixed a bug that could cause undetected data corruption (preserving incorrect
+ data) if a streaming upload encountered a service error on non-8KiB-aligned
+ boundary.
+- Fixed a bug that caused downloads to be truncated if the connection broke,
+ resulting in a hash mismatch (and deletion of the corrupted file) for that
+ download.
+- Fixed a format string arguments error that occurred if a download exhausted
+ all retries.
+
+Other Changes
+-------------
+- The lifecycle command now accepts JSON input in the form of
+ "{ "lifecycle": { "rule" ..." in addition to "{ "rule": ...".
+- Improved access token expiry logic for GCE credentials.
+
+
+Release 4.9 (release date: 2015-02-13)
+=======================================
+New Features
+------------
+- When using the JSON API, the ch acl/defacl subcommand now supports
+ project groups via the -p flag. For details, see "gsutil help acl ch".
+
+Bug Fixes
+---------
+- Fixed a bug that caused daisy-chain copies (including cross-provider
+ copies) for files large than 100MiB to fail.
+- Fixed a bug that caused streaming uploads than ran for longer than
+ an hour to fail with HTTP 400s.
+- Fixed a bug where perfdiag would not properly clean up its test files.
+- Fixed a bug where using ls with the XML API could mistakenly report bucket
+ configuration as present.
+
+Other Changes
+-------------
+- Updated documentation for metadata, retries, security, and subdirs.
+- Tracker files are no longer written for small downloads.
+
+
+Release 4.8 (release date: 2015-01-23)
+=======================================
+New Features
+------------
+- gsutil now supports HTTP proxy configuration via the http_proxy,
+ https_proxy, or HTTPS_PROXY environment variables. This configuration
+ is used only if proxy configuration is not present in the .boto
+ configuration file.
+- gsutil rsync now supports regex-based source and destination URL
+ exclusion via the -x flag.
+- The rm command now supports arguments on stdin via the -I flag.
+
+Bug Fixes
+---------
+- Fixed a bug where perfdiag would fail if netstat was not available.
+- Fixed a bug where temporary ca_certs files were not being cleaned up.
+- Fixed a bug in rsync to unnecessarily remove or write objects, in some
+ cases leaving the destination in a non-synchronized state.
+ caused rsync to unnecessarily remove or rewrite objects.
+- Fixed a bug where rsync temporary listing files were not being
+ cleaned up when the rsync process was killed.
+- Fixed a bug where rsync would remove destination URLs if listing the
+ source encountered a non-retryable failure (for example, if the source
+ did not exist).
+- Fixed a bug where mv would fail for some Unicode filenames.
+- Fixed a bug where mv would remove the source URL after skipping the
+ destination URL.
+- Fixed a bug that caused daisy chain uploads to hang if the download thread
+ raised an exception.
+- Fixed a bug where acl ch would return a zero exit code even if it failed.
+- Fixed a bug that sometimes caused the progress display to render multiple
+ times at the end of an upload or download.
+
+Other Changes
+-------------
+- Resumable uploads of files using the JSON API now send their data in a
+ single request, making separate HTTP calls only when resuming is necessary.
+- The test command now runs tests in parallel by default, and test
+ parallelism on Windows is now supported.
+- All non-streaming downloads are now resumable (and retryable) by default,
+ regardless of size.
+- Canned ACLs and canned default object ACLs are now supported in the JSON
+ API (previously they would fall back to using the XML API).
+- Google Compute Engine service account credential tokens are now cached,
+ avoiding unnecessary refreshes.
+- Improved detection of the Google Compute Engine metadata server,
+ particularly when using the -m flag for multiprocessing.
+- Added new help sections about filename encoding and security/privacy
+ considerations.
+- Download progress is now displayed for small XML API downloads.
+
+
+Release 4.7 (release date: 2014-11-17)
+=======================================
+New Features
+------------
+- Tab completion now works on gs:// URLs (for Cloud SDK installs only).
+ To install via Cloud SDK, see https://cloud.google.com/sdk/#Quick_Start
+- Streaming uploads (with source URL "-") using the JSON API now buffer
+ in-memory up to 100MB, allowing large streams to be retried in the event
+ of network flakiness or service errors.
+- Resumable uploads that receive a fatal service error (typically a 410)
+ are now automatically retried from the beginning.
+
+Bug Fixes
+---------
+- Fixed an apitools bug that impacted upload performance and caused
+ "Retrying from byte __ after exception" to print after every 100MiB.
+- Fixed _$folder$ placeholder object detection on versioned buckets.
+- Removed an unnecessary credential check on load which increased
+ startup time by over one second in some cases.
+- SignURL now properly retries when checking if the signed object is
+ readable.
+- Files with both Content-Encoding and Content-Type gzip are now properly
+ removed when hash validation fails (only one of the two should be set).
+- The x-goog-if-generation-match:0 header now works properly with the XML API.
+- Fixed a bug that caused "defacl ch" on a bucket with a private ACL to fail.
+- The rm command now properly supports precondition headers.
+- Fixed a bug that caused large streaming uploads to fail with the message
+ "Failure: length too large" when using the JSON API.
+- Fixed a bug that caused JSON lifecycle configurations with createdBefore
+ conditions to fail with a DecodeError.
+
+Other Changes
+-------------
+- Byte counts now display accurate abbreviations of binary sizing. For example,
+ messages previously labeled MB are now properly labeled MiB to indicate
+ 2**20 bytes. Only the labeling changed - the actual sizes were always binary.
+- Improved Cloud SDK integration, including improved error messages
+ and instructions.
+- The num_retries .boto configuration value now applies to all requests
+ (previously it was ignored for JSON API requests).
+- rsync now works with non-existent destination subdirectories.
+- Raised the default resumable upload threshold from 2MB to 8MB to
+ improve performance.
+- Benign retry messages now print only when debug mode is enabled via the
+ top-level -d flag.
+- The top-level -q flag now suppresses suggestions to use the -m flag.
+- Command synopsis is now output when the wrong number of arguments are
+ provided.
+- Removed dependency on google-api-python-client module, added dependencies on
+ oauth2client and six modules.
+
+Release 4.6 (release date: 2014-09-08)
+=======================================
+
+Bug Fixes
+---------
+- Fixed a TypeError bug that occurred in perfdiag write throughput tests.
+- Fixed an rsync bug that caused invalid symlinks to abort the transfer
+ even when -e option was specified.
+- Fixed a perfdiag assumption that ipaddrlist was populated.
+- Fixed an AttributeError when setting an invalid canned ACL with defacl set.
+- Fixed a bug where non-resumable uploads would include payload in debug output
+ when for running in debug mode (-D).
+
+Other Changes
+-------------
+- Added the proxy_rdns configuration variable for clients that
+ do DNS lookups via a proxy.
+- Added the state_dir configuration variable for choosing the location of
+ gsutil's internal state files, including resumable transfer tracker files.
+ resumable_tracker_dir configuration variable is now deprecated.
+- Added DNS, connection latency, and proxy use information to perfdiag
+ command.
+- perfdiag command will not perform DNS lookups if they are disabled in
+ boto config.
+- perfdiag command will now only attempt to delete uploaded objects when
+ running write tests.
+- Added code coverage support to test command.
+- rsync -d now succeeds on a 404 for a to-be-deleted object (for example, when
+ the object was already deleted by an external process).
+
+Release 4.5 (release date: 2014-08-14)
+=======================================
+
+Bug Fixes
+---------
+- Fixed a bug that caused resumable uploads to restart if gsutil was
+ terminated with CTRL-C.
+- Fixed a bug in defacl ch command that caused a failure when updating
+ an existing default object ACL entry.
+- Fixed an invalid literal bug during rsync file listing.
+- Made several improvements to JSON upload stability, including fixing a bug
+ which occasionally caused resumable upload hashes not to catch up properly.
+- All JSON calls now have socket timeouts, eliminating hangs under
+ flaky network conditions.
+- Fixed a bug where acl ch -g AllAuthenticatedUsers would instead add
+ AllUsers.
+- Fixed a bug that caused object custom metadata not to be preserved when
+ copying in the cloud.
+- Fixed a bug where du -s did not properly elide subdirectories.
+
+Other Changes
+-------------
+- Parallel composite uploads are now disabled by default until crcmod is
+ available in major Linux distributions. To re-enable the setting from
+ prior versions, in the [GSUtil] section of your .boto config file, add:
+ parallel_composite_upload_threshold=150M
+- Non-wildcarded URLs for existing objects now use Get before trying List
+ (as in gsutil3), and thus are not subject to eventual listing consistency.
+- gsutil -D now redacts proxy configuration values in the output.
+
+Release 4.4 (release date: 2014-07-17)
+=======================================
+
+New Features
+------------
+- Added the hash command, which can calculate hashes of local files.
+ gsutil already calculates hashes for integrity checking, but this allows
+ the user to separately calculate the MD5 and CRC32c hashes of a local file.
+
+Bug Fixes
+---------
+- Many improvements to JSON API media transfers, including far
+ more robust retry logic.
+- Fixed "File changed during upload: EOF..." errors on XML resumable uploads.
+- Fixed rsync command to read and write index files in binary mode.
+- Fix potential TypeError in _CheckAndHandleCredentialException.
+- Fixed possible data corruption when using JSON API uploads for
+ small files with lines starting with "From:", which would cause
+ integrity checks to fail.
+- Fixed gsutil cp to skip directory placeholders when downloading, avoiding
+ "directory exists where the file needs to be created" errors.
+- Fixed daisy chain cp/rsync for files >= 100MB.
+- Fixed a bug in JSON proxy support where the proxy info was sometimes unused.
+- Fixed a bug where an acl get on a private default object ACL returned an
+ error instead of a blank ACL.
+- Fixed a JSON API issue with large HTTP responses on 32-bit systems.
+
+Other Changes
+-------------
+- Improved object listing performance when using the XML API.
+- Improved various error messages.
+- Improved progress display during media transfer.
+- Switched to truncated exponential backoff for retries.
+- Improved OS-specific ulimit checks.
+- Added some information such as OS and Cloud SDK wrapping to gsutil version,
+ and changed the output format to be more uniform.
+- Daisy chain cp/rsync now supports resumable uploads.
+- Improved proxy support for proxy username and passwords.
+- x-amz headers are now supported for cp, rsync, and setmeta. x-amz-meta
+ headers continue to be supported as well.
+
+Release 4.3 (release date: 2014-06-10)
+=======================================
+
+Bug Fixes
+---------
+- Fix acl/defacl ch changing the role of an existing group.
+- Fix unicode and 404 errors when using manifests.
+- Fix parallelism configuration bug that limited gsutil rsync to two threads
+ and could lead to rsync hangs. "gsutil -m rsync" runs much faster, and rsync
+ uploads of large local files are now faster via parallel composite upload.
+ Parallel composite uploads of large files are also faster.
+- Fix rsync bug with parallel composite uploads.
+- Fix TypeError that could occur when running the cp command with no
+ credentials.
+
+Other Changes
+-------------
+- Progress indicators for -m cp/rsync commands are now more readable.
+- Added command being run to gsutil -d/-D output.
+- Lowered default parallelism for 'gsutil -m test' and added hang detection.
+
+Release 4.2 (release date: 2014-06-05)
+=======================================
+
+New Features
+------------
+- Added parallel test execution support to test command, ex: "gsutil -m test"
+
+Bug Fixes
+---------
+- Fix failure during retry of an XML download.
+- Moved to boto release 2.29.1 fixing boto authentication erroneously
+ reporting OAuth2 credentials as invalid.
+- Fix parallel composite uploads when using only a single process and thread.
+- Fix an invalid seek during daisy chain operation that affected file copy
+ from Google Cloud Storage -> S3 for files greater than 8KB in size.
+- Fix "gsutil acl ch" with AllUsers or AllAuthenticatedUsers groups.
+- Fix some copy errors writing new lines to the manifest file.
+- Fix "gsutil test" return code to properly be 0 on success.
+
+Other Changes
+-------------
+- "gsutil cp -z" now ignores whitespace in the extension list.
+
+Release 4.1 (release date: 2014-05-28)
+=======================================
+
+Bug Fixes
+---------
+- Fixed a bug in parallel composite uploads where uploads with
+ existing components would fail.
+- Moved gcs-oauth2-boto-plugin to version 1.5, fixing a bug in the PyPi gsutil
+ distribution that would cause gsutil to unnecessarily attempt to query
+ the Google Compute Engine metadata service.
+
+Other Changes
+-------------
+- Parallel composite uploads no longer specify an if-not-match precondition
+ when uploading component parts.
+- Parallel composite uploads no longer calculate a CRC32c hash prior to
+ uploading component parts (these are still validated by an MD5 hash).
+- Removed apitools dependency on gflags.
+
+Release 4.0 (release date: 2014-05-27)
+=======================================
+
+Major New Gsutil Version - Backwards-Incompatible Changes
+------------------------------
+- The Google Cloud Storage configuration data supported by the acl, cors,
+ and lifecycle commands now uses the JSON format instead of the older XML
+ format. gsutil 4.0 will fail and provide conversion instructions if an XML
+ configuration file is provided as an argument for a gs:// URL.
+- gsutil no longer accepts arbitrary headers via the global -h flag.
+ Documented headers for gsutil commands are still supported; for the
+ full list of supported headers, see "gsutil help command_opts".
+- The compose command will now default the destination object's
+ Content-Type to the Content-Type of the first source object if none
+ is provided via the -h global flag.
+- The long-deprecated -t and -q options have been removed from the cp command.
+- The perfdiag command no longer supports adding a host header.
+- Having OAuth2 User Account credentials and OAuth2 Service Account
+ credentials configured simultaneously will now fail with an error message
+ to avoid confusion. Also, a single invalid credential will fail with an
+ error message. See "gsutil help creds" for details.
+- Bucket relocate scripts have been removed.
+- Downloading object names ending with '/' is no longer supported to avoid
+ problems this caused for directores using the Google Cloud Console.
+- rm -r now implies rm -ra (removing all object versions recursively).
+- All commands using the global -m option or a force option (such as
+ rm -f or cp -c) will now return a non-zero exit code if there are any
+ failures during the operation.
+- MD5 and CRC32c values are now represented in base64 encoding instead
+ of hex encoding (this includes manifest files).
+
+New Features
+------------
+- The Google Cloud Storage JSON API (v1) is now the default API used
+ by gsutil for all commands targeting gs:// URLs. The JSON API is more
+ bandwidth efficient than the older XML API when transferring metadata
+ and does not require separate calls to preserve object ACLs when copying.
+ The XML API will automatically be used when accessing s3:// URLs.
+- The Google Cloud Storage XML API can be used in lieu of the JSON API
+ by setting 'prefer_api = xml' in the GSUtil section of your boto config file.
+- Added the rsync command that can synchronize cloud and local directories.
+- Added the signurl command that can generate Google Cloud Storage signed URLs.
+- The perfdiag command now supports a listing latency test.
+- The rb command now supports a -f flag allowing it to continue when errors
+ are encountered.
+- The test command now supports a -s flag that runs tests against S3.
+
+Other Changes
+-------------
+- All python files not under a third_party directory are now pylint-clean,
+ with the exception of TODO-format and a handful of warnings in root-level
+ files. As part of the de-linting process, many edge-case bugs were
+ identified and fixed.
+- The ls command now operates depth-first (as in Unix ls) instead
+ of breadth-first.
+- Daisy-chain copying does not currently support resumable uploads.
+- Several compatibility improvements for Windows and S3.
+
+
+Release 3.42 (release-date: 2014-01-15)
+=======================================
+
+Other Changes
+-------------
+
+- Fixed potential bug with update command on CentOS.
+
+
+Release 3.41 (release-date: 2014-01-14)
+=======================================
+
+Other Changes
+-------------
+
+- Changes to protect security of resumable upload IDs.
+
+
+Release 3.40: Skipped
+
+
+Release 3.39: Skipped
+
+
+Release 3.38 (release-date: 2013-11-25)
+
+Bug Fixes
+---------
+
+- Fix to include version number in user-agent string.
+- Fix bug wherein -m flag or parallel uploads caused crash on systems without
+ /dev/shm.
+- Fix SSL errors and invalid results with perfdiag -c and -k rthru test.
+- Fixed cases where parallel composite uploads could leave orphaned components.
+- Fix bug attempting to stat objects you don't have auth to read.
+- Fixed bug breaking defacl's -d option.
+
+
+Other Changes
+-------------
+
+- Fixed gsutil config doc.
+- Fixed references to old command names; fix defacl ch example.
+- Improved error messages for deprecated command aliases.
+- Updated gsutil support info.
+
+
+New Features
+------------
+
+- Enabled -R flag for recursion with setmeta command.
+
+
+Release 3.37 (release-date: 2013-09-25)
+=======================================
+
+Bug Fixes
+---------
+
+- Fix parsing of -R for "acl ch" and chacl commands.
+- Fixed import statement of unittest2 which caused installations using Python
+ 2.6 without unittest2 installed to fail when starting up gsutil.
+
+
+Other Changes
+-------------
+
+- Fixed tests so they pass on Windows and package installs.
+- Add a root logging handler manually instead of relying on basicConfig.
+- Fix apiclient import statement.
+- Exponential backoff for access token requests.
+- Fix flakiness in test TearDown to account for eventual consistency of object
+ listings.
+
+
+Release 3.36 (release-date: 2013-09-18)
+=======================================
+
+Bug Fixes
+---------
+
+- Fix bug when a 400 or 403 exception has no detail.
+- Fix bugs with config -e and config -o.
+
+
+Other Changes
+-------------
+
+- Clarify stat command documentation regarding trailing slashes.
+- Add Generation and Metageneration to gsutil stat output.
+
+
+New Features
+------------
+
+- Set config values from command line with -o.
+
+
+Release 3.35 (release-date: 2013-09-09)
+=======================================
+
+Bug Fixes
+---------
+
+- Fix streaming upload to S3 and provide more useful stack traces multi-threaded failures.
+- Fix race condition in test_rm.
+- Fix retry decorator during test bucket cleanup.
+- Fixed cat bug that caused version to be ignored in URIs.
+- Don't decode -p or -h values other than x-goog-meta-. Fixes ability to use string project names.
+- Update bucket_relocate.sh to work on GCE.
+- Fix recursive uploading from subdirectories with unexpanded wildcard as source URI.
+- Make gsutil error text include <Message> content.
+- Change shebang line back to python because this doesn't work on some systems.
+- Fix hash_algs differences in perfdiag.
+- Update Python version check and shebang line.
+- Enforce project_id entry in config command; provide friendly error if missing proj ID.
+- Use transcoding-invariant headers when available in gs.Key.
+- Make gsutil cp not fail if unable to check versioning config on dest bucket.
+- Make gsutil detect when config fails because of proxy and prompt for proxy config.
+- Avoid checking metageneration attribute when long-listing S3 objects.
+- Exclude the no-op auth handler as indicating credentials are configured.
+
+
+New Features
+------------
+
+- Implemented gsutil stat command.
+
+
+Other Changes
+-------------
+
+- Consolidate config-related commands.
+- Changed rm -r gs://bucket to delete bucket at end.
+- Various doc cleanup and improvement.
+- Warn user before updating to major new version. Also fixed minor version comparison bug, and added tests.
+- Change max component count to 1024.
+- Add retry-decorator as a submodule.
+- Explicitly state control chars to avoid in gsutil naming documentation.
+- Make config command recommend project strings.
+- Made long listing format a little better looking.
+- Allow --help flag for subcommands.
+- Implement help for subcommands and add OPTIONS sections for subcommands.
+- Add more detailed error message to notification watchbucket command.
+- Add notification URL configuration for notification tests.
+- Refactor to use upstream retry_decorator as external dependency.
+- Distribute cacerts file with gsutil.
+- Updated gsutil help to point to Google Cloud Console instead of older APIs console.
+- Make gsutil pass bundled cacerts.txt to oauth2client; stop checking SHA1 of certs, now that we no longer depend on boto distribution.
+- Move all TTY checks to a common util function and mock it for update tests.
+- Fix duplicate entry created in .gitmodules.
+- Fix unit test breakage because VERSION file is old.
+- Fix test using ? glob with ObjectToURI.
+- Fix update tests that fail for package installs.
+- Change bucket delete teardown to try more times.
+- Fix tests that perform operations on bucket listings.
+- Keep package install set to True unless VERSION file doesn't exist.
+- Fix handling of non-numeric version strings in update test.
+
+
+Release 3.34 (release-date: 2013-07-18)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed a bug where the no-op authentication handler was being loaded after
+ other authentication plugins, causing the no-op handler to be chosen instead
+ of other valid credentials.
+
+
+Release 3.33 (release-date: 2013-07-16)
+=======================================
+
+Bug Fixes
+---------
+
+- Added .git* to MANIFEST.in excludes and fixed cp doc typo. This was needed to
+ overcome problem caused by accidental inclusion of .git* files in release,
+ which caused the update command no longer to allow updates (since starting
+ in 3.32 it checks whether the user has any extraneous files in the gsutil
+ directory before updating)
+
+
+Release 3.32 (release-date: 2013-07-16)
+=======================================
+
+New Features
+------------
+
+- Added support for getting and setting lifecycle configuration for buckets.
+- Implemented Parallel Composite Uploads.
+- Added a new du command that displays object size, similar to Linux du.
+
+
+Bug Fixes
+---------
+
+- Fixed a bug when using ls -R on objects with trailing slashes. Closes #93.
+- Fixed so won't crash in perfdiag when nslookup is missing or gethostbyname
+ fails.
+- Smartly compare version strings during autoupdate check.
+- Made header handling for upload case-insensitive.
+- Re-enabled software update check for users with no credentials configured.
+- Fixed incorrectly-generated password editing comment in service account
+ config. Fixes #146.
+
+
+Other Changes
+-------------
+
+- Improved flow when encounter auth failure for GCE service account with no
+ configured storage scopes:
+ 1. Changed HasConfiguredCredentials() logic not to include
+ has_auth_plugins as part of the evaluated expression, since that will
+ always evaluate to true under GCE (since GCE configures its internal
+ service account plugin under /etc/boto.cfg).
+ 2. Changed ConfigureNoOpAuthIfNeeded logic so we configure no-op auth
+ plugin even if there is a config_file list, since GCE always configures
+ /etc/boto.cfg, even if user has no storage scopes configured.
+ 3. Additional changes:
+ a. Removed assertion of oauth access token cache check log from
+ test_Doption.py, which may not be true sometimes (e.g., if user is
+ using HMAC creds).
+ b. Removed remnants of CONFIG_REQUIRED left over from earlier CL.
+ c. Merged dupe _ConfigureNoOpAuthIfNeeded functions from two code files,
+ moved to util.py.
+- Fixed confusing gsutil rm "Omitting" message.
+- Wrapped long gsutil update message.
+- Silenced additional possible perfdiag errors.
+- Improved perfdiag performance by only generating one chunk of random file.
+- Changed to swallow broken pipe errors when piping gsutil to other programs.
+- Made DotfulBucketNameNotUnderTld error message more user friendly.
+- Extracted function for building ACL error text from main try/except loop,
+ for better readability.
+- Disallowed gsutil update when user data present in gsutil dir.
+- Plumbed accept-encoding into HEAD requests in ls -L command.
+- Updated README and moved ReleaseNotes.txt to CHANGES.md.
+- Updated crcmod docs with link to Windows installer.
+- Updated documentation regarding gzip content-encoding.
+- Removed StorageUri parse check for lone ':' (interferes with using filenames
+ containing ':')
+- Added tests for gsutil update check and fixed bug for bad file contents.
+- Set accept-encoding and handle gzip on-the-fly encoding.
+
+
+Release 3.31 (release-date: 2013-06-10)
+=======================================
+
+New Features
+------------
+
+- Implemented consumption of manifest files for cp.
+- Add ETag to ls -l and make ls -b variants more efficient.
+- Expand the manifest path to allow for tildes in paths.
+- Added bucket_relocate.sh script to gsutil.
+
+
+Bug Fixes
+---------
+
+- Fix gsutil cp -R to copy all versioned objects.
+- Fixed bug where gsutil cp -D -n caused precondition failure.
+- Fixed gsutil daisy-chain copy to allow preserving ACLs when copying within
+ same provider.
+- Fix identification of non-MD5 ETags.
+- Fixed bugs where gsutil -q cp and gsutil cp -q sometimes weren't quiet.
+- Fixed unicode error when constructing tracker filename from non-ASCII
+ Unicode filename.
+- Fixed that noclobber would not resume partial resumable downloads.
+- Fixed bug when running gsutil cp -Dp by user other than object owner.
+- Properly encode metageneration and etag in ls output with -a and -e.
+- Update resumable threshold stated in gsutil help prod.
+
+
+Other Changes
+-------------
+
+- ls -Lb no longer shows total # files/total size of bucket, so that ls -Lb
+ instead provides an efficient way to view just the metadata for large buckets.
+- Catch and ignore EEXIST error when creating gsutil tracker dir.
+- Add note to gsutil update doc about auto-update checks being disabled with
+ gsutil -q option.
+- Disable hashing and increase buffer size in perfdiag.
+- Added better error messages for service account auth.
+- Make perfdiag behave more like normal gsutil, with multi-threading option.
+- Changed so auto-update check/prompt aren't made if gsutil -q specified.
+- Changed gsutil mb command to clarify that EU means European Union.
+- Added doc warnings about losing version ordering if using gsutil -m cp
+ between versioned buckets; removed trailing whitespace.
+- Added to gsutil cp -L doc to describe how to build a reliable script for
+ copying many objects.
+
+
+Release 3.30 (release-date: 2013-06-10)
+=======================================
+
+- Abandoned.
+
+
+Release 3.29 (release-date: 2013-05-13)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed incorrect package installation detection that resulted in not being
+ able to run the update command while running gsutil from a symlink.
+
+Other Changes
+-------------
+
+- Added a test for debug mode (gsutil -D) output.
+- List numbering and title case fixes in additional help pages.
+- Removed dateutil module dependency from cp command test.
+- Updated documentation to clarify that public-read objects are cached for 1
+ hour by default.
+- Added a filter to suppress "module was already imported" warnings that were
+ sometimes printed while running gsutil on Google Compute Engine instances.
+
+
+Release 3.28 (release-date: 2013-05-07)
+=======================================
+
+New Features
+------------
+
+- Added support for new Object Change Notifications feature.
+
+Bug Fixes
+---------
+
+- Fixed problem where gsutil update command didn’t take default action.
+- Fixed a problem with the update command sometimes triggering an additional
+ update command.
+
+Other Changes
+-------------
+
+- Add packaging information to version output.
+- Removed fancy_urllib, since it is no longer used.
+- Changed num_retries default for resumable downloads to 6.
+- Don’t check for newer software version if gs_host is specified in boto
+ config file.
+- Modified oauth2client logging behavior to be consistent with gsutil.
+- Added gs_port configuration option.
+- Skip update tests when SSL is disabled.
+
+
+Release 3.27 (release-date: 2013-04-25)
+=======================================
+
+New Features
+------------
+
+- Added a human readable option (-h) to ls command.
+- Changed WildcardIterator not to materialize list of all matching files from
+ directory listing (so works faster when walking over large directories)
+- Added -f option to setacl command to allow command to continue after errors
+ encountered.
+- Add manifest log support for the cp command.
+- Added never option for check_hashes_config; fixed bug that assumes an ETag
+ is always returned from server.
+- Made gsutil provide friendlier error message if attempting non-public data
+ access with missing credentials.
+- Set 70 second default socket timeout for httplib.
+- Add ability to run a single test class or function with the test command.
+
+Bug Fixes
+---------
+
+- Don't check for updates if the user has no credentials configured. This
+ fixes a bug for users without credentials trying to use gsutil for first
+ time.
+- Fixed case where chacl command incorrectly recognized an email address as a
+ domain.
+- Fix setmeta command for S3 objects.
+- Fixed bug where wildcarded dest URI attempted string op on Key object.
+- Fixed case where gsutil -q outputted progress output when doing a streaming
+ upload.
+- Error handling for out of space during downloads.
+- Include ISO 8601-required "Z" at end of timestamp string for gsutil ls -l,
+ to be spec-compliant.
+- Removed deprecated setmeta syntax and fixed unicode issues.
+- Changed update command not to suggest running sudo if running under Cygwin.
+- Removed references to deprecated gs-discussion forum from gsutil built-in
+ help.
+- Add literal quotes around CORS config example URL in gsutil setcors help to
+ avoid having example URL turn into an HREF in auto-generated doc.
+
+Other Changes
+-------------
+
+- Added proper setup.py to make gsutil installable via PyPi.
+- Added warning to gsutil built-in help that delete operations cannot be
+ undone.
+- Replaced gsutil's OAuth2 client implementation with oauth2client.
+- Updates to perfdiag.
+- Updated config help about currently supported settings.
+- Fixes to setup.py and modified version command.
+- Move gslib/commands/cred_types.py to gslib, so only Command subclasses live
+ in gslib/commands.
+- Updated gsutil setmeta help no longer to warn that setmeta with versioning
+ enabled creates a new object.
+
+
+Release 3.26 (release-date: 2013-03-25)
+=======================================
+
+New Features
+------------
+
+- Added support for object composition.
+- Added support for external service accounts.
+- Changed gsutil to check for available updates periodically (only while
+ stdin, stderr, stdout are connected to a TTY, so as not to interfere with
+ cron jobs).
+- Added chdefacl command.
+- Made gsutil built-in help available under
+ https://developers.google.com/storage/docs/gsutil
+- Add a command suggestion when the command name is not found.
+- Added byte suffix parsing to the -s parameter of perfdiag.
+- Added --help support to subcommands. Fixes #96.
+- Updated perfdiag command to track availability and record TCP settings.
+- Added metadata parameter to perfdiag command.
+- Added support for specifying byte range to cat command.
+- Output more bucket metadata on ls -Lb.
+- Implemented gsutil -q (global quiet) option (fixes issue #130). Also changed
+ gsutil to output all progress indicators using logging levels. Also changed
+ help command not to output bold escape sequences and not use PAGER if stdout
+ is not a tty, which also fixes bug that caused gsutil help test to fail.
+- Plumbed https_validate_certificates through to OAuth2 plugin handler,
+ allowing control over cert validation for OAuth2 requests
+- Fixed ISO 639.1 ref in config command help text
+
+Bug Fixes
+---------
+
+- Fixed bug where gsutil cp -D didn't preserve metadata
+- Fixed problem where gsutil -m is hard to interrupt (partial fix for issue
+ #99 - only for Linux/MacOS; problem still exists for Windows).
+- Fixed broken reference to boto_lib_dir in update command.
+- Made changing ACL not retry on 400 error.
+- Fixed name expansion bug for case where uri_strs is itself an iterator
+ (issue #131); implemented additional naming unit test for this case.
+- Fixed flaky gsutil rm test
+- Fixed a bug in the chacl command that made it so you couldn't delete the
+ AllAuthenticatedUsers group from an ACL.
+
+Other Changes
+-------------
+
+- Refactored gsutil main function into gslib, with gsutil being a thin
+ wrapper.
+- Added a test for the update command.
+- Renamed gsutil meta_generation params to metageneration, for consistency
+ with GCS docs.
+- Removed .pyc files from tarball/zipfile.
+- Added new root certs to cacerts.txt, to provide additional flexibility
+ in the future.
+
+
+Release 3.25 (release-date: 2013-02-21)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed two version-specific URI bugs:
+ 1. gsutil cp -r gs://bucket1 gs://bucket2 would create objects in bucket2
+ with names corresponding to version-specific URIs in bucket1 (e.g.,
+ gs://bucket2/obj#1361417568482000, where the "#1361417568482000" part was
+ part of the object name, not the object's generation).
+
+ This problem similarly caused gsutil cp -r gs://bucket1 ./dir to create
+ files names corresponding to version-specific URIs in bucket1.
+ 2. gsutil rm -a gs://bucket/obj would attempt to delete the same object
+ twice, getting a NoSuchKey error on the second attempt.
+
+
+Release 3.24 (release-date: 2013-02-19)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed bug that caused attempt to dupe-encode a unicode filename.
+
+Other Changes
+-------------
+
+- Refactored retry logic from setmeta and chacl to use @Retry decorator.
+- Moved @Retry decorator to third_party.
+- Fixed flaky tests.
+
+
+Release 3.23 (release-date: 2013-02-16)
+=======================================
+
+Bug Fixes
+---------
+
+- Make version-specific URI parsing more robust. This fixes a bug where
+ listing buckets in certain cases would result in the error
+ 'BucketStorageUri' object has no attribute 'version_specific_uri'
+
+
+Release 3.22 (release-date: 2013-02-15)
+=======================================
+
+New Features
+------------
+
+- Implemented new chacl command, which makes it easy to add and remove bucket
+ and object ACL grants without having to edit XML (like the older setacl
+ command).
+- Implemented new "daisy-chain" copying mode, which allows cross-provider
+ copies to run without buffering to local disk, and to use resumable uploads.
+ This copying mode also allows copying between locations and between storage
+ classes, using the new gsutil cp -D option. (Daisy-chain copying is the
+ default when copying between providers, but must be explicitly requested for
+ the other cases to keep costs and performance expectations clear.)
+- Implemented new perfdiag command to run a diagnostic test against
+ a bucket, collect system information, and report results. Useful
+ when working with Google Cloud Storage team to resolve questions
+ about performance.
+- Added SIGQUIT (^\) handler, to allow breakpointing a running gsutil.
+
+Bug Fixes
+---------
+
+- Fixed bug where gsutil setwebcfg signature didn't match with
+ HMAC authentication.
+- Fixed ASCII codec decode error when constructing tracker filename
+ from non-7bit ASCII input filename.
+- Changed boto auth plugin framework to allow multiple plugins
+ supporting requested capability, which fixes gsutil exception
+ that used to happen where a GCE user had a service account
+ configured and then ran gsutil config.
+- Changed Command.Apply method to be resilient to name expansion
+ exceptions. Before this change, if an exception was raised
+ during iteration of NameExpansionResult, the parent process
+ would immediately stop execution, causing the
+ _EOF_NAME_EXPANSION_RESULT to never be sent to child processes.
+ This resulted in the process hanging forever.
+- Fixed various bugs for gsutil running on Windows:
+ - Fixed various places from a hard-coded '/' to os.sep.
+ - Fixed a bug in the cp command where it was using the destination
+ URI's .delim property instead of the source URI.
+ - Fixed a bug in the cp command's _SrcDstSame function by
+ simplifying it to use os.path.normpath.
+ - Fixed windows bug in tests/util.py _NormalizeURI function.
+ - Fixed ZeroDivisionError sometimes happening during unit tests
+ on Windows.
+
+- Fixed gsutil rm bug that caused exit status 1 when encountered
+ non-existent URI.
+- Fixed support for gsutil cp file -.
+- Added preconditions and retry logic to setmeta command, to
+ enforce concurrency control.
+- Fixed bug in copying subdirs to subdirs.
+- Fixed cases where boto debug_level caused too much or too little
+ logging:
+ - resumable and one-shot uploads weren't showing response headers
+ when connection.debug > 0.
+ - payload was showing up in debug output when connection.debug
+ < 4 for streaming uploads.
+
+- Removed XML parsing from setacl. The previous implementation
+ relied on loose XML handling, which could truncate what it sends
+ to the service, allowing invalid XML to be specified by the
+ user. Instead now the ACL XML is passed verbatim and we rely
+ on server-side schema enforcement.
+- Added user-agent header to resumable uploads.
+- Fixed reporting bits/s when it was really bytes/s.
+- Changed so we now pass headers with API version & project ID
+ to create_bucket().
+- Made "gsutil rm -r gs://bucket/folder" remove xyz_$folder$ object
+ (which is created by various GUI tools).
+- Fixed bug where gsutil binary was shipped with protection 750
+ instead of 755.
+
+Other Changes
+-------------
+
+- Reworked versioned object handling:
+ - Removed need for commands to specify -v option to parse
+ versions. Versioned URIs are now uniformly handled by all
+ commands.
+ - Refactored StorageUri parsing that had been split across
+ storage_uri and convenience; made versioned URIs render with
+ version string so StorageUri is round-trippable (boto change).
+ - Implemented gsutil cp -v option for printing the version-specific
+ URI that was just created.
+ - Added error detail for attempt to delete non-empty versioned
+ bucket. Also added versioning state to ls -L -b gs://bucket
+ output.
+ - Changed URI parsing to use pre-compiled regex's.
+ - Other bug fixes.
+
+- Rewrote/deepened/improved various parts of built-in help:
+ - Updated 'gsutil help dev'.
+ - Fixed help command handling when terminal does not have the
+ number of rows set.
+ - Rewrote versioning help.
+ - Added gsutil help text for common 403 AccountProblem error.
+ - Added text to 'gsutil help dev' about legal agreement needed
+ with code submissions.
+ - Fixed various other typos.
+ - Updated doc for cp command regarding metadata not being
+ preserved when copying between providers.
+ - Fixed gsutil ls command documentation typo for the -L option.
+ - Added HTTP scheme to doc/examples for gsutil setcors command.
+ - Changed minimum version in documentation from 2.5 to 2.6 since
+ gsutil no longer works in Python 2.5.
+ - Cleaned up/clarify/deepen various other parts of gsutil
+ built-in documentation.
+
+- Numerous improvements to testing infrastructure:
+ - Completely refactored infrastructure, allowing deeper testing
+ and more readable test code, and enabling better debugging
+ output when tests fail.
+ - Moved gslib/test_*.py unit tests to gslib/tests module.
+ - Made all tests (unit and integration, per-command and modules
+ (like naming) run from single gsutil test command.
+ - Moved TempDir functions from GsUtilIntegrationTestCase to
+ GsUtilTestCase.
+ - Made test runner message show the test function being run.
+ - Added file path support to ObjectToURI function.
+ - Disabled the test command if running on Python 2.6 and unittest2
+ is not available instead of breaking all of gsutil.
+ - Changed to pass GCS V2 API and project_id from boto config
+ if necessary in integration_testcase#CreateBucket().
+ - Fixed unit tests by using a GS-specific mocking class to
+ override the S3 provider.
+ - Added friendlier error message if test path munging fails.
+ - Fixed bug where gsutil test only cleaned up first few test files.
+ - Implemented setacl integration tests.
+ - Implemented StorageUri parsing unit tests.
+ - Implemented test for gsutil cp -D.
+ - Implemented setacl integration tests.
+ - Implemented tests for reading and seeking past end of file.
+ - Implemented and tests for it in new tests module.
+ - Changed cp tests that don't specify a Content-Type to check
+ for new binary/octet-stream default instead of server-detected
+ mime type.
+
+- Changed gsutil mv to allow moving local files/dirs to the cloud.
+ Previously this was disallowed in the belief we should be
+ conservative about deleting data from local disk but there are
+ legitimate use cases for moving data from a local dir to the
+ cloud, it's clear to the user this would remove data from the
+ local disk, and allowing it makes the tool behavior more
+ consistent with what users would expect.
+- Changed gsutil update command to insist on is_secure and
+ https_validate_certificates.
+- Fixed release no longer to include extraneous boto dirs in
+ top-level of gsutil distribution (like bin/ and docs/).
+- Changed resumable upload threshold from 1 MB to 2 MB.
+- Removed leftover cloudauth and cloudreader dirs. Sample code
+ now lives at https://github.com/GoogleCloudPlatform.
+- Updated copyright notice on code files.
+
+
+Release 3.21 (release-date: 2012-12-10)
+=======================================
+
+New Features
+------------
+
+- Added the ability for the cp command to continue even if there is an
+ error. This can be activated with the -c flag.
+- Added support for specifying src args for gsutil cp on stdin (-I option)
+
+Bug Fixes
+---------
+
+- Fixed gsutil test cp, which assumed it was run from gsutil install dir.
+- Mods so we send generation subresource only when user requested
+ version parsing (-v option for cp and cat commands).
+
+Other Changes
+-------------
+
+- Updated docs about using setmeta with versioning enabled.
+- Changed GCS endpoint in boto to storage.googleapis.com.
+
+
+Release 3.20 (release-date: 2012-11-30)
+=======================================
+
+New Features
+------------
+
+- Added a noclobber (-n) setting for the cp command. Existing objects/files
+ will not be overwritten when using this setting.
+
+Bug Fixes
+---------
+
+- Fixed off-by-one error when reporting bytes transferred.
+
+Other Changes
+-------------
+
+- Improved versioning support for the remove command.
+- Improved test runner support.
+
+
+Release 3.19 (release-date: 2012-11-26)
+=======================================
+
+New Features
+------------
+
+- Added support for object versions.
+- Added support for storage classes (including Durable Reduced Availability).
+
+Bug Fixes
+---------
+- Fixed problem where cp -q prevented resumable uploads from being performed.
+- Made setwebcfg and setcors tests robust wrt XML formatting variation.
+
+Other Changes
+-------------
+
+- Incorporated vapier@ mods to make version command not fail if CHECKSUM file
+ missing.
+- Refactored gsutil such that most functionality exists in boto.
+- Updated gsutil help dev instructions for how to check out source.
+
+
+Release 3.18 (release-date: 2012-09-19)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed resumable upload boundary condition when handling POST request
+ when server already has complete file, which resulted in an infinite
+ loop that consumed 100% of the CPU.
+- Fixed one more place that outputted progress info when gsutil cp -q
+ specified (during streaming uploads).
+
+Other Changes
+-------------
+
+- Updated help text for "gsutil help setmeta" and "gsutil help metadata", to
+ clarify and deepen parts of the documentation.
+
+
+Release 3.17 (release-date: 2012-08-17)
+=======================================
+
+Bug Fixes
+---------
+
+- Fixed race condition when multiple threads attempt to get an OAuth2 refresh
+ token concurrently.
+
+Other Changes
+-------------
+
+- Implemented simplified syntax for setmeta command. The old syntax still
+ works but is now deprecated.
+- Added help to gsutil cp -z option, to describe how to change where temp
+ files are written.
+
+
+Release 3.16 (release-date: 2012-08-13)
+=======================================
+
+Bug Fixes
+---------
+
+- Added info to built-in help for setmeta command, to explain the syntax
+ needed when running from Windows.
+
+
+Release 3.15 (release-date: 2012-08-12)
+=======================================
+
+New Features
+------------
+
+- Implemented gsutil setmeta command.
+- Made gsutil understand bucket subdir conventions used by various tools
+ (like GCS Manager and CloudBerry) so if you cp or mv to a subdir you
+ created with one of those tools it will work as expected.
+- Added support for Windows drive letter-prefaced paths when using Storage
+ URIs.
+
+Bug Fixes
+---------
+
+- Fixed performance bug when downloading a large object with Content-
+ Encoding:gzip, where decompression attempted to load the entire object
+ in memory. Also added "Uncompressing" log output if file is larger than
+ 50M, to make it clear the download hasn't stalled.
+- Fixed naming bug when performing gsutil mv from a bucket subdir to
+ and existing bucket subdir.
+- Fixed bug that caused cross-provider copies into Google Cloud Storage to
+ fail.
+- Made change needed to make resumable transfer progress messages not print
+ when running gsutil cp -q.
+- Fixed copy/paste error in config file documentation for
+ https_validate_certificates option.
+- Various typo fixes.
+
+Other Changes
+-------------
+
+- Changed gsutil to unset http_proxy environment variable if it's set,
+ because it confuses boto. (Proxies should instead be configured via the
+ boto config file.)
+
+
+Release 3.14 (release-date: 2012-07-28)
+=======================================
+
+New Features
+------------
+
+- Added cp -q option, to support quiet operation from cron jobs.
+- Made config command restore backed up file if there was a failure or user
+ hits ^C.
+
+Bug Fixes
+---------
+
+- Fixed bug where gsutil cp -R from a source directory didn't generate
+ correct destination path.
+- Fixed file handle leak in gsutil cp -z
+- Fixed bug that caused cp -a option not to work when copying in the cloud.
+- Fixed bug that caused '/-' to be appended to object name for streaming
+ uploads.
+- Revert incorrect line I changed in previous CL, that attempted to
+ get fp from src_key object. The real fix that's needed is described in
+ https://github.com/GoogleCloudPlatform/gsutil/issues/72.
+
+Other Changes
+-------------
+
+- Changed logging to print "Copying..." and Content-Type on same line;
+ refactored content type and log handling.
+
+
+Release 3.13 (release-date: 2012-07-19)
+=======================================
+
+Bug Fixes
+---------
+
+- Included the fix to make 'gsutil config' honor BOTO_CONFIG environment
+ variable (which was intended to be included in Release 3.12)
+
+
+Release 3.11 (release-date: 2012-06-28)
+=======================================
+
+New Features
+------------
+
+- Added support for configuring website buckets.
+
+Bug Fixes
+---------
+
+- Fixed bug that caused simultaneous resumable downloads of the same source
+ object to use the same tracker file.
+- Changed language code spec pointer from Wikipedia to loc.gov (for
+ Content-Language header).
+
+
+Release 3.10 (release-date: 2012-06-19)
+=======================================
+
+New Features
+------------
+
+- Added support for setting and listing Content-Language header.
+
+Bug Fixes
+---------
+
+- Fixed bug that caused getacl/setacl commands to get a character encoding
+ exception when ACL content contained content not representable in ISO-8859-1
+ character set.
+- Fixed gsutil update not to fail under Windows exclusive file locking.
+- Fixed gsutil ls -L to continue past 403 errors.
+- Updated gsutil tests and also help dev with instructions on how to run
+ boto tests, based on recent test refactoring done to in boto library.
+- Cleaned up parts of cp help text.
+
+
+Release 3.9 (release-date: 2012-05-24)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed bug that caused extra "file:/" to be included in pathnames with
+ doing gsutil cp -R on Windows.
+
+
+Release 3.8 (release-date: 2012-05-20)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed problem with non-ASCII filename characters not setting encoding before
+ attempting to hash for generating resumable transfer filename.
+
+
+Release 3.7 (release-date: 2012-05-11)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed handling of HTTPS tunneling through a proxy.
+
+
+Release 3.6 (release-date: 2012-05-09)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed bug that caused wildcards spanning directories not to work.
+- Fixed bug that gsutil cp -z not to find available tmp space correctly
+ under Windows.
+
+
+Release 3.5 (release-date: 2012-04-30)
+======================================
+
+Performance Improvement
+-----------------------
+
+- Change by Evan Worley to calculate MD5s incrementally during uploads and
+ downloads. This reduces overall transfer time substantially for large
+ objects.
+
+Bug Fixes
+---------
+
+- Fixed bug where uploading and moving multiple files to a bucket subdirectory
+ didn't work as intended.
+ (https://github.com/GoogleCloudPlatform/gsutil/issues/92).
+- Fixed bug where gsutil cp -r sourcedir didn't copy to specified subdir
+ if there is only one file in sourcedir.
+- Fixed bug where tracker file included a timestamp that caused it not to
+ be recognized across sessions.
+- Fixed bug where gs://bucket/*/dir wildcard matches too many objects.
+- Fixed documentation errors in help associated with ACLs and projects.
+- Changed GCS ACL parsing to be case-insensitive.
+- Changed ls to print error and exit with non-0 status when wildcard matches
+ nothing, to be more consistent with UNIX shell behavior.
+
+
+Release 3.4 (release-date: 2012-04-06)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed problem where resumable uploads/downloads of objects with very long
+ names would generate tracking files with names that exceeded local file
+ system limits, making it impossible to complete resumable transfers for
+ those objects. Solution was to build the tracking file name from a fixed
+ prefix, SHA1 hash of the long filename, epoch timestamp and last 16
+ chars of the long filename, which is guarantee to be a predictable and
+ reasonable length.
+- Fixed minor bug in output from 'gsutil help dev' which advised executing
+ an inconsequential test script (test_util.py).
+
+
+Release 3.3 (release-date: 2012-04-03)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed problem where gsutil ver and debug flags crashed when used
+ with newly generated boto config files.
+- Fixed gsutil bug in windows path handling, and make checksumming work
+ across platforms.
+- Fixed enablelogging to translate -b URI param to plain bucket name in REST
+ API request.
+
+
+Release 3.2 (release-date: 2012-03-30)
+======================================
+
+Bug Fixes
+---------
+
+- Fixed problem where gsutil didn't convert between OS-specific directory
+ separators when copying individually-named files (issue 87).
+- Fixed problem where gsutil ls -R didn't work right if there was a key
+ with a leading path (like /foo/bar/baz)
+
+
+Release 3.1 (release-date: 2012-03-20)
+======================================
+
+Bug Fixes
+---------
+
+- Removed erroneous setting of Content-Encoding when a gzip file is uploaded
+ (vs running gsutil cp -z, when Content-Encoding should be set). This
+ error caused users to get gsutil.tar.gz file uncompressed by the user
+ agent (like wget) while downloading, making the file appear to be of the
+ wrong size/content.
+- Fixed handling of gsutil help for Windows (previous code depended on
+ termios and fcntl libs, which are Linux/MacOS-specific).
+
+
+Release 3.0 (release-date: 2012-03-20)
+======================================
+
+Important Notes
+---------------
+
+- Backwards-incompatible wildcard change:
+ The '*' wildcard now only matches objects within a bucket directory. If
+ you have scripts that depend on being able to match spanning multiple
+ directories you need to use '**' instead. For example, the command:
+
+ gsutil cp gs://bucket/*.txt
+
+ will now only match .txt files in the top-level directory.
+
+ gsutil cp gs://bucket/**.txt
+
+ will match across all directories.
+- gsutil ls now lists one directory at a time. If you want to list all objects
+ in a bucket, you can use:
+
+ gsutil ls gs://bucket/**
+
+ or:
+
+ gsutil ls -R gs://bucket
+
+New Features
+------------
+
+- Built-in help for all commands and many additional topics. Try
+ "gsutil help" for a list of available commands and topics.
+- A new hierarchical file tree abstraction layer, which makes the flat bucket
+ name space look like a hierarchical file tree. This makes several things
+ possible:
+ - copying data to/from bucket sub-directories (see “gsutil help cp”).
+ - distributing large uploads/downloads across many machines
+ (see “gsutil help cp”)
+ - renaming bucket sub-directories (see “gsutil help mv”).
+ - listing individual bucket sub-directories and for listing directories
+ recursively (see “gsutil help ls”).
+ - setting ACLs for objects in a sub-directory (see “gsutil help setacl”).
+
+- Support for per-directory (*) and recursive (**) wildcards. Essentially,
+ ** works the way * did in previous gsutil releases, and * now behaves
+ consistently with how it works in command interpreters (like bash). The
+ ability to specify directory-only wildcards also enables a number of use
+ cases, such as distributing large uploads/downloads by wildcarded name. See
+ "gsutil help wildcards" for details.
+- Support for Cross-Origin Resource Sharing (CORS) configuration. See "gsutil
+ help cors" for details.
+- Support for multi-threading and recursive operation for setacl command
+ (see “gsutil help setacl”).
+- Ability to use the UNIX 'file' command to do content type recognition as
+ an alternative to filename extensions.
+- Introduction of new end-to-end test suite.
+- The gsutil version command now computes a checksum of the code, to detect
+ corruption and local modification when assisting with technical support.
+- The gsutil update command is no longer beta/experimental, and now also
+ supports updating from named URIs (for early/test releases).
+- Changed gsutil ls -L to also print Content-Disposition header.
+
+Bug Fixes
+---------
+
+- The gsutil cp -t option previously didn't work as documented, and instead
+ Content-Type was always detected based on filename extension. Content-Type
+ detection is now the default, the -t option is deprecated (to be removed in
+ the future), and specifying a -h Content-Type header now correctly overrides
+ the filename extension based handling. For details see "gsutil help
+ metadata".
+- Fixed bug that caused multi-threaded mv command not to percolate failures
+ during the cp phase to the rm phase, which could under some circumstances
+ cause data that was not copied to be deleted.
+- Fixed bug that caused gsutil to use GET for ls -L requests. It now uses HEAD
+ for ls -L requests, which is more efficient and faster.
+- Fixed bug that caused gsutil not to preserve metadata during
+ copy-in-the-cloud.
+- Fixed bug that prevented setacl command from allowing DisplayName's in ACLs.
+- Fixed bug that caused gsutil/boto to suppress consecutive slashes in path
+ names.
+- Fixed spec-non-compliant URI construction for resumable uploads.
+- Fixed bug that caused rm -f not to work.
+- Fixed UnicodeEncodeError that happened when redirecting gsutil ls output
+ to a file with non-ASCII object names.
+
+Other Changes
+-------------
+
+- UserAgent sent in HTTP requests now includes gsutil version number and OS
+ name.
+- Starting with this release users are able to get individual named releases
+ from version-named objects: gs://pub/gsutil_<version>.tar.gz
+ and gs://pub/gsutil_<version>.zip. The version-less counterparts
+ (gs://pub/gsutil.tar.gz and gs://pub/gsutil.zip) will contain the latest
+ release. Also, the gs://pub bucket is now publicly readable (so, anyone
+ can list its contents).
+
+
+Release 2.0 (release-date: 2012-01-13)
+======================================
+
+New Features
+------------
+
+- Support for for two new installation modes: enterprise and RPM.
+ Customers can now install gsutil one of three ways:
+ - Individual user mode (previously the only available mode): unpacking from
+ a gzipped tarball (gs://pub/gsutil.tar.gz) or zip file
+ (gs://pub/gsutil.zip) and running the gsutil command in place in the
+ unpacked gsutil directory.
+ - Enterprise mode (new): unpacking as above, and then running the setup.py
+ script in the unpacked gsutil directory. This allows a systems
+ administrator to install gsutil in a central location, using the Python
+ distutils facility. This mode is supported only on Linux and MacOS.
+ - RPM mode (new). A RedHat RPM can be built from the gsutil.spec.in file
+ in the unpacked gsutil directory, allowing it to be installed as part of
+ a RedHat build.
+
+- Note: v2.0 is the first numbered gsutil release. Previous releases
+ were given timestamps for versions. Numbered releases enable downstream
+ package builds (like RPMs) to define dependencies more easily.
+ This is also the first version where we began including release notes.
« no previous file with comments | « no previous file | third_party/gsutil/CHECKSUM » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698