internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: googleapis/google-cloud-python

Issue:
Added retry on internal error
Added retry on internal error as suggested by the internal error message: '500 Error encountered during execution. Retrying may solve the problem.'. 
Rationalised the conditions structure so it would simplify addition of other retry conditions.


Discussion:
@paoloburelli Thanks for the patch!  Reviewing it, I was going to ask that you add a testcase for the new exception reason, but found that there were no explicit test cases for `_should_retry`, which led me to add PR #5550, and then in response to @tswast's review comment, #5552, which moves `_should_retry` and `DEFAULT_RETRY` to a public module.  Both of those merged yesterday, but end up conflicting with your patch.

Can I ask that you revise this PR to re-apply your patch to the new `google/cloud/bigquery/retry.py` module, and add a test to `tests/unit/test_retry.py` for the `internalError` reason?  Sorry for the trouble!

Resolving patch:
diff --git a/bigquery/google/cloud/bigquery/retry.py b/bigquery/google/cloud/bigquery/retry.py
--- a/bigquery/google/cloud/bigquery/retry.py
+++ b/bigquery/google/cloud/bigquery/retry.py
@@ -16,6 +16,13 @@
 from google.api_core import retry
 
 
+_RETRYABLE_REASONS = frozenset([
+    'backendError',
+    'rateLimitExceeded',
+    'internalError',
+])
+
+
 def _should_retry(exc):
     """Predicate for determining when to retry.
 
@@ -27,7 +34,7 @@ def _should_retry(exc):
     if len(exc.errors) == 0:
         return False
     reason = exc.errors[0]['reason']
-    return reason == 'backendError' or reason == 'rateLimitExceeded'
+    return reason in _RETRYABLE_REASONS
 
 
 DEFAULT_RETRY = retry.Retry(predicate=_should_retry)


Test patch:
diff --git a/bigquery/tests/unit/test_retry.py b/bigquery/tests/unit/test_retry.py
--- a/bigquery/tests/unit/test_retry.py
+++ b/bigquery/tests/unit/test_retry.py
@@ -46,3 +46,8 @@ def test_w_rateLimitExceeded(self):
         exc = mock.Mock(
             errors=[{'reason': 'rateLimitExceeded'}], spec=['errors'])
         self.assertTrue(self._call_fut(exc))
+
+    def test_w_internalError(self):
+        exc = mock.Mock(
+            errors=[{'reason': 'internalError'}], spec=['errors'])
+        self.assertTrue(self._call_fut(exc))
Repository: googleapis/google-cloud-python

Issue:
Release 'datastore 1.7.0'
Major changes are:

- Add support for Python 3.7.
- Drop support for Python 3.4.
- Bugfix: query offsets (#4675).


Discussion:

Resolving patch:
diff --git a/datastore/setup.py b/datastore/setup.py
--- a/datastore/setup.py
+++ b/datastore/setup.py
@@ -22,7 +22,7 @@
 
 name = 'google-cloud-datastore'
 description = 'Google Cloud Datastore API client library'
-version = '1.6.0'
+version = '1.7.0'
 # Should be one of:
 # 'Development Status :: 3 - Alpha'
 # 'Development Status :: 4 - Beta'


Test patch:
Repository: googleapis/google-cloud-python

Issue:
PubSub: add ack_id property accessor to subscriber Message class
Version: google-cloud-pubsub 0.35.4

This is a feature request to add a property accessor for ack_id in `google.cloud.pubsub_v1.subscriber.message.Message`.

Currently the `_ack_id` field is 'private', and only gets used via the `ack()` method (plus other related methods).

We find it useful to log the ack ID so that we can manually ack the ID using the Google Cloud SDK (`gcloud` command line interface). This helps us get out of situations where the message is stuck in a (virtually) infinite retry loop because of some error.

We can just access the 'private' field, but it doesn't seem very nice to have to do that.


Discussion:
Seems reasonable.

Resolving patch:
diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/message.py b/pubsub/google/cloud/pubsub_v1/subscriber/message.py
--- a/pubsub/google/cloud/pubsub_v1/subscriber/message.py
+++ b/pubsub/google/cloud/pubsub_v1/subscriber/message.py
@@ -164,6 +164,11 @@ def size(self):
         """Return the size of the underlying message, in bytes."""
         return self._message.ByteSize()
 
+    @property
+    def ack_id(self):
+        """str: the ID used to ack the message."""
+        return self._ack_id
+
     def ack(self):
         """Acknowledge the given message.
 


Test patch:
diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py
--- a/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py
+++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py
@@ -61,6 +61,17 @@ def test_data():
     assert msg.data == b'foo'
 
 
+def test_size():
+    msg = create_message(b'foo')
+    assert msg.size == 30  # payload + protobuf overhead
+
+
+def test_ack_id():
+    ack_id = 'MY-ACK-ID'
+    msg = create_message(b'foo', ack_id=ack_id)
+    assert msg.ack_id == ack_id
+
+
 def test_publish_time():
     msg = create_message(b'foo')
     assert msg.publish_time == PUBLISHED
Repository: googleapis/google-cloud-python

Issue:
BigQuery: systest 'test_lists_datasets_by_label' failure
See: https://circleci.com/gh/GoogleCloudPlatform/google-cloud-python/7193

```python
_________________________ test_list_datasets_by_label __________________________

client = <google.cloud.bigquery.client.Client object at 0x7f6cd03273d0>
to_delete = [Dataset(DatasetReference(u'precise-truck-742', u'list_datasets_by_label_1531507522596'))]

    def test_list_datasets_by_label(client, to_delete):
        dataset_id = 'list_datasets_by_label_{}'.format(_millis())
        dataset = bigquery.Dataset(client.dataset(dataset_id))
        dataset.labels = {'color': 'green'}
        dataset = client.create_dataset(dataset)  # API request
        to_delete.append(dataset)
    
        # [START bigquery_list_datasets_by_label]
        # from google.cloud import bigquery
        # client = bigquery.Client()
    
        # The following label filter example will find datasets with an
        # arbitrary 'color' label set to 'green'
        label_filter = 'labels.color:green'
        datasets = list(client.list_datasets(filter=label_filter))
    
        if datasets:
            print('Datasets filtered by {}:'.format(label_filter))
            for dataset in datasets:  # API request(s)
                print('\t{}'.format(dataset.dataset_id))
        else:
            print('No datasets found with this filter.')
        # [END bigquery_list_datasets_by_label]
>       assert len(datasets) == 1
E       assert 2 == 1
E        +  where 2 = len([<google.cloud.bigquery.dataset.DatasetListItem object at 0x7f6cd03a5e50>, <google.cloud.bigquery.dataset.DatasetListItem object at 0x7f6cd040fd90>])

../docs/bigquery/snippets.py:173: AssertionError
```

Likely overlapping test runs.  Suggested fix is to use a label value with `_unique_id`, or else weaken the assertion (assert that the current dataset ID is in the set returned by the `list_datasets` call).


Discussion:

Resolving patch:
diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py
--- a/docs/bigquery/snippets.py
+++ b/docs/bigquery/snippets.py
@@ -168,7 +168,8 @@ def test_list_datasets_by_label(client, to_delete):
     else:
         print('No datasets found with this filter.')
     # [END bigquery_list_datasets_by_label]
-    assert len(datasets) == 1
+    found = set([dataset.dataset_id for dataset in datasets])
+    assert dataset_id in found
 
 
 def test_create_dataset(client, to_delete):


Test patch:
Repository: googleapis/google-cloud-python

Issue:
pubsub: The publisher client API page is empty
The documentation page is empty. https://googlecloudplatform.github.io/google-cloud-python/latest/pubsub/publisher/api/client.html

However, the subscriber page is working.
https://googlecloudplatform.github.io/google-cloud-python/latest/pubsub/subscriber/api/client.html




Discussion:
@edwardfung123 Thanks for the report!

Resolving patch:
diff --git a/pubsub/google/cloud/pubsub_v1/publisher/client.py b/pubsub/google/cloud/pubsub_v1/publisher/client.py
--- a/pubsub/google/cloud/pubsub_v1/publisher/client.py
+++ b/pubsub/google/cloud/pubsub_v1/publisher/client.py
@@ -34,7 +34,6 @@
 
 @_gapic.add_methods(publisher_client.PublisherClient, blacklist=('publish',))
 class Client(object):
-    _batch_class = thread.Batch
     """A publisher client for Google Cloud Pub/Sub.
 
     This creates an object that is capable of publishing messages.
@@ -52,6 +51,8 @@ class Client(object):
             be added if ``credentials`` are passed explicitly or if the
             Pub / Sub emulator is detected as running.
     """
+    _batch_class = thread.Batch
+
     def __init__(self, batch_settings=(), **kwargs):
         # Sanity check: Is our goal to use the emulator?
         # If so, create a grpc insecure channel with the emulator host


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Create a new release of the Bigtable library
As of 7 Aug 2018, the [latest version of the Bigtable library on PyPi](https://pypi.org/project/google-cloud-bigtable/) is 0.29.0 from 28 Feb 2018. Would it be possible to release a new version (and release new ones regularly) to pick up the latest updates and ongoing feature additions, please?

Thank you!

/cc: @sduskis, @ghaisa


Discussion:
There's one more change we need to make regarding [AppProfile](https://cloud.google.com/bigtable/docs/app-profiles) admin functionality that will be backwards incompatible.  We're aiming to be code complete by Monday.  It would be ideal to release after we commit the AppProfile changes.
Is there any update on this?

Resolving patch:
diff --git a/bigtable/setup.py b/bigtable/setup.py
--- a/bigtable/setup.py
+++ b/bigtable/setup.py
@@ -22,7 +22,7 @@
 
 name = 'google-cloud-bigtable'
 description = 'Google Cloud Bigtable API client library'
-version = '0.29.0'
+version = '0.30.0'
 # Should be one of:
 # 'Development Status :: 3 - Alpha'
 # 'Development Status :: 4 - Beta'


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Request to release GCS Python library
Hi,

Is it possible to release the Storage client library for Python?

I'd like the new method `get_service_account_email` to be available. Unless there exist concerns.


Discussion:
@frankyn my only current storage-related concern is the flaky KMS system tests (#5852).  We can likely make a release without addressing it.

Resolving patch:
diff --git a/storage/setup.py b/storage/setup.py
--- a/storage/setup.py
+++ b/storage/setup.py
@@ -22,7 +22,7 @@
 
 name = 'google-cloud-storage'
 description = 'Google Cloud Storage API client library'
-version = '1.10.0'
+version = '1.11.0'
 # Should be one of:
 # 'Development Status :: 3 - Alpha'
 # 'Development Status :: 4 - Beta'


Test patch:
Repository: googleapis/google-cloud-python

Issue:
[Monitoring] cannot be used with Python 3.7 (Pandas)
Pandas/Cython doesn't currently support 3.7. Once it does we need to enable 3.7 testing on Monitoring. 

Collecting pandas>=0.17.1 (from google-cloud-monitoring==0.29.0)
  Using cached https://files.pythonhosted.org/packages/08/01/803834bc8a4e708aedebb133095a88a4dad9f45bbaf5ad777d2bea543c7e/pandas-0.22.0.tar.gz
  Could not find a version that satisfies the requirement Cython (from versions: )
No matching distribution found for Cython


Discussion:
Pandas 0.23.3 [claims (working) support for Python 3.7](http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#v0-23-3-july-7-2018).

The release page also notes Pandas will be [dropping Python 2.7 support](http://pandas.pydata.org/pandas-docs/stable/install.html#install-dropping-27) for new feature releases as of 2019-01-01.

Resolving patch:
diff --git a/monitoring/nox.py b/monitoring/nox.py
--- a/monitoring/nox.py
+++ b/monitoring/nox.py
@@ -37,7 +37,7 @@ def unit(session, py):
 
     # Install all test dependencies, then install this package in-place.
     session.install('pytest', 'mock')
-    session.install('-e', '.')
+    session.install('-e', '.[pandas]')
 
     # Run py.test against the unit tests.
     session.run('py.test', '--quiet', os.path.join('tests', 'unit'))
diff --git a/monitoring/setup.py b/monitoring/setup.py
--- a/monitoring/setup.py
+++ b/monitoring/setup.py
@@ -76,6 +76,7 @@
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
         'Operating System :: OS Independent',
         'Topic :: Internet',
     ],


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Default max_bytes in pubsub seems wrong
https://github.com/GoogleCloudPlatform/google-cloud-python/blob/005ddd11770f8953643dac9b64a037524da2f49e/pubsub/google/cloud/pubsub_v1/types.py#L43

In my code I'm seeing this:
```
google.api_core.exceptions.InvalidArgument: 400 The value for 10159812 is too large. You passed request_size in the request, but the maximum value is 10000000.
```

Based on the error coming out of the pubsub, I think this default max size is wrong.


Discussion:
The [resource limits document](https://cloud.google.com/pubsub/quotas#resource_limits) specifies the per-message limit as "10MB."  Until now, I'd never seen anybody but hard-disk manufacturers (trying to inflate the apparent size of their drives) interpret that as 10000000 bytes.

Resolving patch:
diff --git a/pubsub/google/cloud/pubsub_v1/types.py b/pubsub/google/cloud/pubsub_v1/types.py
--- a/pubsub/google/cloud/pubsub_v1/types.py
+++ b/pubsub/google/cloud/pubsub_v1/types.py
@@ -40,7 +40,7 @@
     ['max_bytes', 'max_latency', 'max_messages'],
 )
 BatchSettings.__new__.__defaults__ = (
-    1024 * 1024 * 10,  # max_bytes: 10 MB
+    1000 * 1000 * 10,  # max_bytes: documented "10 MB", enforced 10000000
     0.05,              # max_latency: 0.05 seconds
     1000,              # max_messages: 1,000
 )


Test patch:
diff --git a/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py b/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py
--- a/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py
+++ b/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py
@@ -31,7 +31,7 @@ def test_init():
     # A plain client should have an `api` (the underlying GAPIC) and a
     # batch settings object, which should have the defaults.
     assert isinstance(client.api, publisher_client.PublisherClient)
-    assert client.batch_settings.max_bytes == 10 * (2 ** 20)
+    assert client.batch_settings.max_bytes == 10 * 1000 * 1000
     assert client.batch_settings.max_latency == 0.05
     assert client.batch_settings.max_messages == 1000
Repository: googleapis/google-cloud-python

Issue:
Pubsub 0.37.2: Observed non-recoverable stream error 400
Hello! Firstly, thank you for this awesome library!

I am running around 40 pubsub client workers in an EKS cluster. After more than a day of running uninterrupted, one of my pubsub workers observed a non-recoverable error. (The rest are still running fine)

**OS** - ubuntu:16.04
**Python version** - Python 3.5.2
**Pubsub version** - google-cloud-pubsub==0.37.2

**Stack Trace**:
```
INFO:google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager:Observed recoverable stream error 504 Deadline Exceeded
INFO:google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager:Observed recoverable stream error 504 Deadline Exceeded
INFO:google.cloud.pubsub_v1.subscriber._protocol.bidi:Re-established stream
INFO:google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager:Observed non-recoverable stream error 400 Invalid arguments provided: the number of ack ids to modify must be equal to the number of ack deadlines.
INFO:google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager:RPC termination has signaled streaming pull manager shutdown.
INFO:google.cloud.pubsub_v1.subscriber._protocol.bidi:Thread-ConsumeBidirectionalStream exiting
INFO:google.cloud.pubsub_v1.subscriber._protocol.leaser:Thread-LeaseMaintainer exiting.
INFO:google.cloud.pubsub_v1.subscriber._protocol.heartbeater:Thread-Heartbeater exiting.
```

**Code snippet**
```python
flow_control = pubsub_v1.types.FlowControl(max_messages=500)
subscription = sub_client.subscribe("pubsub_subscription", process_message, flow_control=flow_control)
```
Where `process_message` batches messages for a few minutes and acks them all when their payloads have been inserted into a database.

Any help would be appreciated here!


Discussion:

Resolving patch:
diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py
--- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py
+++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py
@@ -379,7 +379,9 @@ def _get_initial_request(self):
         # Any ack IDs that are under lease management need to have their
         # deadline extended immediately.
         if self._leaser is not None:
-            lease_ids = self._leaser.ack_ids
+            # Explicitly copy the list, as it could be modified by another
+            # thread.
+            lease_ids = list(self._leaser.ack_ids)
         else:
             lease_ids = []
 


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Please cut new release of Cloud Storage
Please cut a release to include https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5877 (Object Lifecycle Management)


Discussion:

Resolving patch:
diff --git a/storage/setup.py b/storage/setup.py
--- a/storage/setup.py
+++ b/storage/setup.py
@@ -22,7 +22,7 @@
 
 name = 'google-cloud-storage'
 description = 'Google Cloud Storage API client library'
-version = '1.11.0'
+version = '1.12.0'
 # Should be one of:
 # 'Development Status :: 3 - Alpha'
 # 'Development Status :: 4 - Beta'
@@ -74,9 +74,9 @@
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
         'Operating System :: OS Independent',
         'Topic :: Internet',
     ],


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Please cut a release of Cloud Asset



Discussion:
Pending fixed codegen in #5987.
@danoscarmike I've got a question about packaging metadata / branding:  at the moment, `setup.py` has the name of the installed package as `google-cloud-cloudasset`, which has two drawbacks:

- It sounds inane when pronounced.
- It doesn't match the package structure (`google.cloud.asset_v1`).

I would prefer just using `google-cloud-asset` as the PyPI name.

Resolving patch:
diff --git a/asset/setup.py b/asset/setup.py
--- a/asset/setup.py
+++ b/asset/setup.py
@@ -17,27 +17,38 @@
 
 import setuptools
 
+# Package metadata.
+
 name = 'google-cloud-cloudasset'
 description = 'Cloud Asset API API client library'
 version = '0.1.0'
-release_status = '3 - Alpha'
+# Should be one of:
+# 'Development Status :: 3 - Alpha'
+# 'Development Status :: 4 - Beta'
+# 'Development Status :: 5 - Production/Stable'
+release_status = 'Development Status :: 3 - Alpha'
 dependencies = [
     'google-api-core[grpc] >= 1.1.0, < 2.0.0dev',
     'enum34; python_version < "3.4"',
     'grpc-google-iam-v1<0.12dev,>=0.11.4',
 ]
 
+# Setup boilerplate below this line.
+
 package_root = os.path.abspath(os.path.dirname(__file__))
 
 readme_filename = os.path.join(package_root, 'README.rst')
 with io.open(readme_filename, encoding='utf-8') as readme_file:
     readme = readme_file.read()
 
+# Only include packages under the 'google' namespace. Do not include tests,
+# benchmarks, etc.
 packages = [
     package for package in setuptools.find_packages()
     if package.startswith('google')
 ]
 
+# Determine which namespaces are needed.
 namespaces = ['google']
 if 'google.cloud' in packages:
     namespaces.append('google.cloud')
@@ -59,9 +70,9 @@
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
         'Operating System :: OS Independent',
         'Topic :: Internet',
     ],


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Incoming link broken on Spanner docs
It seems #5938 renamed `usage.html` to `index.html`, but didn't setup any redirects. This is breaking some incoming links, unfortunately.


Discussion:

Resolving patch:
diff --git a/docs/conf.py b/docs/conf.py
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -325,7 +325,13 @@
 # See: https://tech.signavio.com/2017/managing-sphinx-redirects
 # HTML pages to be copied from source to target
 static_html_pages = [
+    'datastore.usage.html',
     'bigquery/usage.html',
+    'language/usage.html',
+    'logging/usage.html',
+    'spanner/usage.html',
+    'storage/client.html',
+    'translate/usage.html',
 ]
 
 def copy_static_html_pages(app, docname):


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Please cut a release of Video Intelligence
Need to unblock tests of samples


Discussion:

Resolving patch:
diff --git a/videointelligence/setup.py b/videointelligence/setup.py
--- a/videointelligence/setup.py
+++ b/videointelligence/setup.py
@@ -22,7 +22,7 @@
 
 name = 'google-cloud-videointelligence'
 description = 'Google Cloud Video Intelligence API client library'
-version = '1.3.0'
+version = '1.4.0'
 # Should be one of:
 # 'Development Status :: 3 - Alpha'
 # 'Development Status :: 4 - Beta'


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Cut a new release of KMS



Discussion:

Resolving patch:
diff --git a/kms/setup.py b/kms/setup.py
--- a/kms/setup.py
+++ b/kms/setup.py
@@ -21,7 +21,7 @@
 
 name = 'google-cloud-kms'
 description = 'Cloud Key Management Service (KMS) API API client library'
-version = '0.1.0'
+version = '0.2.0'
 release_status = 'Development Status :: 3 - Alpha'
 dependencies = [
     'google-api-core[grpc] >= 1.1.0, < 2.0.0dev',


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Re-generate library using dlp/synth.py
This PR was created by autosynth.


Discussion:

Resolving patch:
diff --git a/dlp/synth.py b/dlp/synth.py
--- a/dlp/synth.py
+++ b/dlp/synth.py
@@ -23,20 +23,17 @@
 gapic = gcp.GAPICGenerator()
 common = gcp.CommonTemplates()
 
-client_library_version = "0.7.0"
-
 library = gapic.py_library(
     "dlp", "v2", config_path="/google/privacy/dlp/artman_dlp_v2.yaml"
 )
 
-s.copy(library, excludes=["README.rst", "nox.py", "docs/index.rst"])
-
-# Set Release Status
-release_status = "Development Status :: 3 - Alpha"
-s.replace("setup.py", "(release_status = )(.*)$", f"\\1'{release_status}'")
-
-# Set version
-s.replace("setup.py", "version = .*", f"version = '{client_library_version}'")
+excludes = [
+    "README.rst",
+    "nox.py",
+    "setup.py",
+    "docs/index.rst",
+]
+s.copy(library, excludes=excludes)
 
 # Fix namespace
 s.replace(


Test patch:
Repository: googleapis/google-cloud-python

Issue:
Trace: docs have bad url for "Library Documentation"
https://googlecloudplatform.github.io/google-cloud-python/latest/trace/starting.html is linked to from the root of the latest trace docs. This page doesn't seem to exist.


Discussion:
It looks like the content is now subsumed into `trace/README.rst` / `docs/index.html`.  Needs a static redirect, like `bigquery/docs/usage.html`.

Resolving patch:
diff --git a/docs/conf.py b/docs/conf.py
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -334,6 +334,7 @@
     'bigquery/usage.html',
     'runtimeconfig/usage.html',
     'spanner/usage.html',
+    'trace/starting.html',
 ]
 
 def copy_static_html_pages(app, exception):


Test patch: