From 52eda79f899740d99b71880783c653cd3ba0c1cd Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 15:42:09 -0700 Subject: [PATCH 01/16] docs: removed misleading v1 docs --- docs/index.rst | 1 - docs/v1.rst | 18 ------------------ docs/v2.rst | 15 +++++++++++++-- 3 files changed, 13 insertions(+), 21 deletions(-) delete mode 100644 docs/v1.rst diff --git a/docs/index.rst b/docs/index.rst index f617201a9..347dc9f81 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -5,7 +5,6 @@ Documentation .. toctree:: :maxdepth: 3 - v1 v2 Changelog diff --git a/docs/v1.rst b/docs/v1.rst deleted file mode 100644 index f4f79d377..000000000 --- a/docs/v1.rst +++ /dev/null @@ -1,18 +0,0 @@ -v1 -============== -.. toctree:: - :maxdepth: 2 - - usage - client - logger - entries - metric - sink - stdlib-usage - handlers - handlers-app-engine - handlers-container-engine - transports-sync - transports-thread - transports-base \ No newline at end of file diff --git a/docs/v2.rst b/docs/v2.rst index 8dfc18b48..567eabd7a 100644 --- a/docs/v2.rst +++ b/docs/v2.rst @@ -3,5 +3,16 @@ v2 .. toctree:: :maxdepth: 2 - gapic/v2/api - gapic/v2/types \ No newline at end of file + usage + client + logger + entries + metric + sink + stdlib-usage + handlers + handlers-app-engine + handlers-container-engine + transports-sync + transports-thread + transports-base From 62e298d5ddec2e4b6df88998a42e622d0ffd0671 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 15:45:20 -0700 Subject: [PATCH 02/16] improved README --- README.rst | 64 ++++++++++++++++++++---------------------------------- 1 file changed, 24 insertions(+), 40 deletions(-) diff --git a/README.rst b/README.rst index 2399e08bb..1a1abd1a9 100644 --- a/README.rst +++ b/README.rst @@ -16,6 +16,7 @@ Logging configuration. .. _Stackdriver Logging API: https://cloud.google.com/logging .. _Client Library Documentation: https://googleapis.dev/python/logging/latest .. _Product Documentation: https://cloud.google.com/logging/docs +.. _Setting Up Cloud Logging for Python: https://cloud.google.com/logging/docs/setup/python Quick Start ----------- @@ -77,57 +78,40 @@ Windows Using the API ------------- +Connecting the library to Python logging + .. code:: python - from google.cloud import logging_v2 - client = logging_v2.LoggingServiceV2Client() - - resource = { - "type": "global", - "labels": { - "project_id": "[PROJECT_ID]" - } - } - - """ - Log entries can be either LogEntry or dict. - You can describe the same data in the following format: - - e = { - "log_name": "projects/[PROJECT_ID]/logs/test-logging", - "resource": resource, - "text_payload": "this is a log statement", - } - """ - e = logging_v2.types.LogEntry( - log_name="projects/[PROJECT_ID]/logs/test-logging", # optional - resource=resource, # optional - text_payload="this is a log statement") - - entries = [e] - response = client.write_log_entries(entries) + # Imports the Cloud Logging client library + import google.cloud.logging -.. code:: python + # Instantiates a client + client = google.cloud.logging.Client() - from google.cloud import logging - client = logging.Client() - logger = client.logger('log_name') - logger.log_text('A simple entry') # API call + # Retrieves a Cloud Logging handler based on the environment + # you're running in and integrates the handler with the + # Python logging module. By default this captures all logs + # at INFO level and higher + client.setup_logging() -Example of fetching entries: +Using the Python root logger: .. code:: python - from google.cloud import logging - client = logging.Client() - logger = client.logger('log_name') - for entry in logger.list_entries(): - print(entry.payload) + # Imports Python standard library logging + import logging + + # The data to log + text = 'Hello, world!' + + # Emits the data using the standard logging module + logging.warning(text) Next Steps ~~~~~~~~~~ -- Read the `Client Library Documentation`_ for to see other available - methods on the client. +- Read the `Setting Up Cloud Logging for Python`_ getting started doc - Read the `Product documentation`_ to learn more about the product and see How-to Guides. +- Read the `Client Library Documentation`_ for to see other available + methods on the client. From 45e72b11a13dd1bfe3cf7b825976967a5305e781 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 15:54:29 -0700 Subject: [PATCH 03/16] improved next steps section --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 1a1abd1a9..3720aefec 100644 --- a/README.rst +++ b/README.rst @@ -110,8 +110,8 @@ Using the Python root logger: Next Steps ~~~~~~~~~~ -- Read the `Setting Up Cloud Logging for Python`_ getting started doc -- Read the `Product documentation`_ to learn more about the product and see +- Read the `Setting Up Cloud Logging for Python`_ How-to Guide +- Read the `Product documentation`_ to learn more about the product and see other How-to Guides. - Read the `Client Library Documentation`_ for to see other available methods on the client. From 086d544f227dd47de765e38cfa61107ec7768f42 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:02:49 -0700 Subject: [PATCH 04/16] improved wording --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 3720aefec..dd3b42453 100644 --- a/README.rst +++ b/README.rst @@ -78,7 +78,7 @@ Windows Using the API ------------- -Connecting the library to Python logging +Connecting Google Cloud Logging to [Python's `logging` standard library](https://docs.python.org/2/library/logging.html) .. code:: python @@ -98,7 +98,7 @@ Using the Python root logger: .. code:: python - # Imports Python standard library logging + # Imports Python logging standard library import logging # The data to log From 8bb3e7fc0f9871b078b5b86adfa33c5402da4fcc Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:12:25 -0700 Subject: [PATCH 05/16] rebranding stackdriver -> cloud logging --- README.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index dd3b42453..f7b7fdc46 100644 --- a/README.rst +++ b/README.rst @@ -1,9 +1,9 @@ -Python Client for Stackdriver Logging +Python Client for Cloud Logging ===================================== |pypi| |versions| -`Stackdriver Logging API`_: Writes log entries and manages your Stackdriver +`Cloud Logging API`_: Writes log entries and manages your Cloud Logging configuration. - `Client Library Documentation`_ @@ -13,7 +13,7 @@ Logging configuration. :target: https://pypi.org/project/google-cloud-logging/ .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-logging.svg :target: https://pypi.org/project/google-cloud-logging/ -.. _Stackdriver Logging API: https://cloud.google.com/logging +.. _Cloud Logging API: https://cloud.google.com/logging .. _Client Library Documentation: https://googleapis.dev/python/logging/latest .. _Product Documentation: https://cloud.google.com/logging/docs .. _Setting Up Cloud Logging for Python: https://cloud.google.com/logging/docs/setup/python @@ -25,12 +25,12 @@ In order to use this library, you first need to go through the following steps: 1. `Select or create a Cloud Platform project.`_ 2. `Enable billing for your project.`_ -3. `Enable the Stackdriver Logging API.`_ +3. `Enable the Cloud Logging API.`_ 4. `Setup Authentication.`_ .. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project -.. _Enable the Stackdriver Logging API.: https://cloud.google.com/logging +.. _Enable the Cloud Logging API.: https://cloud.google.com/logging .. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html Installation From ae8846a1101d237d731df791f3f035a57f23cf42 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:16:49 -0700 Subject: [PATCH 06/16] fixed link format --- README.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index f7b7fdc46..517a3e672 100644 --- a/README.rst +++ b/README.rst @@ -17,6 +17,7 @@ Logging configuration. .. _Client Library Documentation: https://googleapis.dev/python/logging/latest .. _Product Documentation: https://cloud.google.com/logging/docs .. _Setting Up Cloud Logging for Python: https://cloud.google.com/logging/docs/setup/python +.. _Python's standard logging library: https://docs.python.org/2/library/logging.html Quick Start ----------- @@ -78,7 +79,7 @@ Windows Using the API ------------- -Connecting Google Cloud Logging to [Python's `logging` standard library](https://docs.python.org/2/library/logging.html) +Connecting Google Cloud Logging to `Python's standard logging library`_ .. code:: python @@ -98,7 +99,7 @@ Using the Python root logger: .. code:: python - # Imports Python logging standard library + # Imports Python standard logging library import logging # The data to log From 30ed537c22c48857a3d99e0fe82157d8d8d555f8 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:17:52 -0700 Subject: [PATCH 07/16] removed Google prefix --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 517a3e672..11aa5a637 100644 --- a/README.rst +++ b/README.rst @@ -79,7 +79,7 @@ Windows Using the API ------------- -Connecting Google Cloud Logging to `Python's standard logging library`_ +Connecting Cloud Logging to `Python's standard logging library`_ .. code:: python From 2fb36c91324aea174cfa79ee4dead11e635c7de1 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:31:45 -0700 Subject: [PATCH 08/16] removed gapic API docs --- docs/gapic/v2/api.rst | 6 ------ docs/gapic/v2/types.rst | 5 ----- synth.py | 3 ++- 3 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 docs/gapic/v2/api.rst delete mode 100644 docs/gapic/v2/types.rst diff --git a/docs/gapic/v2/api.rst b/docs/gapic/v2/api.rst deleted file mode 100644 index 2dc6bf6fc..000000000 --- a/docs/gapic/v2/api.rst +++ /dev/null @@ -1,6 +0,0 @@ -Client for Stackdriver Logging API -================================== - -.. automodule:: google.cloud.logging_v2 - :members: - :inherited-members: \ No newline at end of file diff --git a/docs/gapic/v2/types.rst b/docs/gapic/v2/types.rst deleted file mode 100644 index 5521d4f9b..000000000 --- a/docs/gapic/v2/types.rst +++ /dev/null @@ -1,5 +0,0 @@ -Types for Stackdriver Logging API Client -======================================== - -.. automodule:: google.cloud.logging_v2.types - :members: \ No newline at end of file diff --git a/synth.py b/synth.py index ee1b168aa..9504c980b 100644 --- a/synth.py +++ b/synth.py @@ -34,7 +34,8 @@ s.move(library / "google/cloud/logging_v2/gapic") s.move(library / "tests/unit/gapic/v2") -s.move(library / "docs/gapic/v2") +# Don't include gapic library docs. Users should use the hand-written layer instead +# s.move(library / "docs/gapic/v2") # ---------------------------------------------------------------------------- # Add templated files From c8385c1074798e2d04219c375679013898948bce Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:46:25 -0700 Subject: [PATCH 09/16] Cloud Logging branding --- docs/client.rst | 2 +- docs/snippets.py | 2 +- docs/usage.rst | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/client.rst b/docs/client.rst index f04d5c525..c9e78db27 100644 --- a/docs/client.rst +++ b/docs/client.rst @@ -1,4 +1,4 @@ -Stackdriver Logging Client +Cloud Logging Client ========================== .. automodule:: google.cloud.logging.client diff --git a/docs/snippets.py b/docs/snippets.py index 778327989..7a8621347 100644 --- a/docs/snippets.py +++ b/docs/snippets.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Testable usage examples for Stackdriver Logging API wrapper +"""Testable usage examples for Cloud Logging API wrapper Each example function takes a ``client`` argument (which must be an instance of :class:`google.cloud.logging.client.Client`) and uses it to perform a task diff --git a/docs/usage.rst b/docs/usage.rst index f5662bcba..a9af1164b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -112,7 +112,7 @@ Manage log metrics ------------------ Metrics are counters of entries which match a given filter. They can be -used within Stackdriver Monitoring to create charts and alerts. +used within Cloud Monitoring to create charts and alerts. List all metrics for a project: @@ -259,7 +259,7 @@ Integration with Python logging module -------------------------------------- It's possible to tie the Python :mod:`logging` module directly into Google -Stackdriver Logging. There are different handler options to accomplish this. +Cloud Logging. There are different handler options to accomplish this. To automatically pick the default for your current environment, use :meth:`~google.cloud.logging.client.Client.get_default_handler`. @@ -269,7 +269,7 @@ To automatically pick the default for your current environment, use :dedent: 4 It is also possible to attach the handler to the root Python logger, so that -for example a plain ``logging.warn`` call would be sent to Stackdriver Logging, +for example a plain ``logging.warn`` call would be sent to Cloud Logging, as well as any other loggers created. A helper method :meth:`~google.cloud.logging.client.Client.setup_logging` is provided to configure this automatically. @@ -281,7 +281,7 @@ to configure this automatically. .. note:: - To reduce cost and quota usage, do not enable Stackdriver logging + To reduce cost and quota usage, do not enable Cloud Logging handlers while testing locally. You can also exclude certain loggers: @@ -348,7 +348,7 @@ recommended when running on the Google App Engine Flexible vanilla runtimes (i.e. your app.yaml contains ``runtime: python``), and :class:`~google.cloud.logging.handlers.container_engine.ContainerEngineHandler` , which is recommended when running on `Google Container Engine`_ with the -Stackdriver Logging plugin enabled. +Cloud Logging plugin enabled. :meth:`~google.cloud.logging.client.Client.get_default_handler` and :meth:`~google.cloud.logging.client.Client.setup_logging` will attempt to use @@ -356,6 +356,6 @@ the environment to automatically detect whether the code is running in these platforms and use the appropriate handler. In both cases, the fluentd agent is configured to automatically parse log files -in an expected format and forward them to Stackdriver logging. The handlers +in an expected format and forward them to Cloud Logging. The handlers provided help set the correct metadata such as log level so that logs can be filtered accordingly. From e3588b105f994414dabbd1b72e12119c6720e285 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:47:50 -0700 Subject: [PATCH 10/16] use Kubernetes Engine branding --- docs/handlers-container-engine.rst | 4 ++-- docs/usage.rst | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/handlers-container-engine.rst b/docs/handlers-container-engine.rst index a0c6b2bc9..5286ec58b 100644 --- a/docs/handlers-container-engine.rst +++ b/docs/handlers-container-engine.rst @@ -1,5 +1,5 @@ -Google Container Engine Log Handler -=================================== +Google Kubernetes Engine Log Handler +==================================== .. automodule:: google.cloud.logging.handlers.container_engine :members: diff --git a/docs/usage.rst b/docs/usage.rst index a9af1164b..4714144f9 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -336,7 +336,7 @@ logging handler can use different transports. The default is direct API call on each logging statement to write the entry. -.. _Google Container Engine: https://cloud.google.com/container-engine/ +.. _Google Kubernetes Engine: https://cloud.google.com/kubernetes-engine fluentd logging handlers ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -347,7 +347,7 @@ which writes directly to the API, two other handlers are provided. recommended when running on the Google App Engine Flexible vanilla runtimes (i.e. your app.yaml contains ``runtime: python``), and :class:`~google.cloud.logging.handlers.container_engine.ContainerEngineHandler` -, which is recommended when running on `Google Container Engine`_ with the +, which is recommended when running on `Google Kubernetes Engine`_ with the Cloud Logging plugin enabled. :meth:`~google.cloud.logging.client.Client.get_default_handler` and From 934f1f30303319ae8da02f397dcce3dd400910a4 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 16:57:03 -0700 Subject: [PATCH 11/16] updated noxfile docs commands --- noxfile.py | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 1de2a50c2..41938f2d4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -164,15 +164,48 @@ def cover(session): def docs(session): """Build the docs for this library.""" + session.install('-e', '.') + session.install('sphinx', 'alabaster', 'recommonmark') + + shutil.rmtree(os.path.join('docs', '_build'), ignore_errors=True) + session.run( + 'sphinx-build', + '-W', # warnings as errors + '-T', # show full traceback on exception + '-N', # no colors + '-b', 'html', + '-d', os.path.join('docs', '_build', 'doctrees', ''), + os.path.join('docs', ''), + os.path.join('docs', '_build', 'html', ''), + ) + + +@nox.session(python="3.7") +def docfx(session): + """Build the docfx yaml files for this library.""" + session.install("-e", ".") - session.install("sphinx<3.0.0", "alabaster", "recommonmark") + # sphinx-docfx-yaml supports up to sphinx version 1.5.5. + # https://github.com/docascode/sphinx-docfx-yaml/issues/97 + session.install("sphinx==1.5.5", "alabaster", "recommonmark", "sphinx-docfx-yaml") shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) session.run( "sphinx-build", - "-W", # warnings as errors "-T", # show full traceback on exception "-N", # no colors + "-D", + ( + "extensions=sphinx.ext.autodoc," + "sphinx.ext.autosummary," + "docfx_yaml.extension," + "sphinx.ext.intersphinx," + "sphinx.ext.coverage," + "sphinx.ext.napoleon," + "sphinx.ext.todo," + "sphinx.ext.viewcode," + "recommonmark" + ), "-b", "html", "-d", From 269f71aba73ba0a11d5859104ce6fa1a3a8b1efe Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 17:14:28 -0700 Subject: [PATCH 12/16] fixed changelog issues --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 517664976..f38571636 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -# Changelog +Changelog +--------- [PyPI History][1] @@ -292,6 +293,6 @@ - Upgrading to `google-cloud-core >= 0.28.0` and adding dependency on `google-api-core` (#4221, #4280) - Deferring to `google-api-core` for `grpcio` and - `googleapis-common-protos`dependencies (#4096, #4098) + `googleapis-common-protos` dependencies (#4096, #4098) PyPI: https://pypi.org/project/google-cloud-logging/1.4.0/ From d0f262349a3ca24ba0befd028577326c67bc06ca Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 17:19:41 -0700 Subject: [PATCH 13/16] updated conf.py --- docs/conf.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 7a03936bb..4b41c6a54 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,12 +20,16 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath("..")) +# For plugins that can not read conf.py. +# See also: https://github.com/docascode/sphinx-docfx-yaml/issues/85 +sys.path.insert(0, os.path.abspath(".")) + __version__ = "" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = "1.6.3" +needs_sphinx = "1.5.5" # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom @@ -35,24 +39,22 @@ "sphinx.ext.autosummary", "sphinx.ext.intersphinx", "sphinx.ext.coverage", + "sphinx.ext.doctest", "sphinx.ext.napoleon", "sphinx.ext.todo", "sphinx.ext.viewcode", + "recommonmark", ] # autodoc/autosummary flags autoclass_content = "both" -autodoc_default_flags = ["members"] +autodoc_default_options = {"members": True} autosummary_generate = True # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] -# Allow markdown includes (so releases.md can include CHANGLEOG.md) -# http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} - # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] @@ -93,7 +95,12 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ["_build"] +exclude_patterns = [ + "_build", + "samples/AUTHORING_GUIDE.md", + "samples/CONTRIBUTING.md", + "samples/snippets/README.rst", +] # The reST default role (used for this markup: `text`) to use for all # documents. @@ -345,6 +352,7 @@ None, ), "grpc": ("https://grpc.io/grpc/python/", None), + } From f39d6515fd7e83bbde95543a9bdc1e3fe24c14c2 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Mon, 19 Oct 2020 17:29:28 -0700 Subject: [PATCH 14/16] fixed lint issue --- docs/conf.py | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 4b41c6a54..b507b408e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -352,7 +352,6 @@ None, ), "grpc": ("https://grpc.io/grpc/python/", None), - } From 1a5378bab32486959e42ea2054fe517ea5646475 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Tue, 27 Oct 2020 12:30:16 -0700 Subject: [PATCH 15/16] removed usage snippets --- README.rst | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/README.rst b/README.rst index 11aa5a637..a81f28e85 100644 --- a/README.rst +++ b/README.rst @@ -76,43 +76,11 @@ Windows \Scripts\activate \Scripts\pip.exe install google-cloud-logging -Using the API -------------- - -Connecting Cloud Logging to `Python's standard logging library`_ - -.. code:: python - - # Imports the Cloud Logging client library - import google.cloud.logging - - # Instantiates a client - client = google.cloud.logging.Client() - - # Retrieves a Cloud Logging handler based on the environment - # you're running in and integrates the handler with the - # Python logging module. By default this captures all logs - # at INFO level and higher - client.setup_logging() - -Using the Python root logger: - -.. code:: python - - # Imports Python standard logging library - import logging - - # The data to log - text = 'Hello, world!' - - # Emits the data using the standard logging module - logging.warning(text) - Next Steps ~~~~~~~~~~ - Read the `Setting Up Cloud Logging for Python`_ How-to Guide -- Read the `Product documentation`_ to learn more about the product and see other - How-to Guides. +- Read the `Product documentation`_ to learn more about the product and see + other How-to Guides. - Read the `Client Library Documentation`_ for to see other available methods on the client. From b4c2e5c64018b00f9980e2c2ebc20b7f9f3c5728 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Tue, 27 Oct 2020 12:35:45 -0700 Subject: [PATCH 16/16] fixed markdown header --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f38571636..22e6b734a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ -Changelog ---------- +# Changelog [PyPI History][1]