Skip to content

chore: remove product_documentation_override from librarian.yaml#16791

Draft
jskeet wants to merge 2 commits intogoogleapis:mainfrom
jskeet:remove-product-documentation-override
Draft

chore: remove product_documentation_override from librarian.yaml#16791
jskeet wants to merge 2 commits intogoogleapis:mainfrom
jskeet:remove-product-documentation-override

Conversation

@jskeet
Copy link
Copy Markdown
Contributor

@jskeet jskeet commented Apr 24, 2026

@jskeet jskeet requested a review from daniel-sanche April 24, 2026 07:51
@jskeet jskeet requested review from a team as code owners April 24, 2026 07:51
@jskeet jskeet requested review from shuoweil and removed request for a team April 24, 2026 07:51
@@ -1,22 +1,22 @@
Python Client for Cloud Identity and Access Management
======================================================

|stable| |pypi| |versions|
|preview| |pypi| |versions|
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This aspect is covered separately in #16790, but it didn't feel worth manually removing it.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates product documentation links across numerous Python client libraries, primarily by generalizing specific deep links or removing documentation overrides in librarian.yaml and package metadata. Review feedback indicates that entirely removing the product_documentation field in several packages—specifically google-cloud-common, google-cloud-compute-v1beta, google-cloud-firestore, and google-cloud-datastore—results in empty link targets in the generated README.rst files. This creates invalid reStructuredText that breaks documentation builds. The reviewer recommends using a fallback URL, such as https://cloud.google.com/, to ensure the documentation remains valid and functional.

@@ -9,7 +9,6 @@
"library_type": "CORE",
"name": "common",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing the product_documentation field entirely causes the generated README files to have empty link targets (e.g., .. _Google Cloud Common: ), which is invalid reStructuredText and breaks the documentation build. Instead of removing the field, please update it to a valid fallback URL such as https://cloud.google.com/.

Suggested change
"name": "common",
"name_pretty": "Google Cloud Common",
"product_documentation": "https://cloud.google.com/",
References
  1. It is acceptable to use placeholder values in metadata files to avoid blocking merges when the correct value is not yet determined.

@@ -10,7 +10,6 @@
"library_type": "GAPIC_AUTO",
"name": "google-cloud-compute-v1beta",
"name_pretty": "Compute Engine",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing the product_documentation field entirely causes the generated README files to have empty link targets, which is invalid reStructuredText. Instead of removing the field, please update it to a valid fallback URL such as https://cloud.google.com/.

Suggested change
"name_pretty": "Compute Engine",
"name_pretty": "Compute Engine",
"product_documentation": "https://cloud.google.com/",
References
  1. It is acceptable to use placeholder values in metadata files to avoid blocking merges when the correct value is not yet determined.

@@ -10,7 +10,6 @@
"library_type": "GAPIC_COMBO",
"name": "firestore",
"name_pretty": "Cloud Firestore API",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing the product_documentation field entirely causes the generated README files to have empty link targets, which is invalid reStructuredText. Instead of removing the field, please update it to a valid fallback URL such as https://cloud.google.com/.

Suggested change
"name_pretty": "Cloud Firestore API",
"name_pretty": "Cloud Firestore API",
"product_documentation": "https://cloud.google.com/",
References
  1. It is acceptable to use placeholder values in metadata files to avoid blocking merges when the correct value is not yet determined.

@@ -10,7 +10,6 @@
"library_type": "GAPIC_COMBO",
"name": "datastore",
"name_pretty": "Google Cloud Datastore API",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing the product_documentation field entirely causes the generated README files to have empty link targets, which is invalid reStructuredText. Instead of removing the field, please update it to a valid fallback URL such as https://cloud.google.com/.

Suggested change
"name_pretty": "Google Cloud Datastore API",
"name_pretty": "Google Cloud Datastore API",
"product_documentation": "https://cloud.google.com/",
References
  1. It is acceptable to use placeholder values in metadata files to avoid blocking merges when the correct value is not yet determined.

Comment on lines +17 to +19
.. _Google Cloud Common:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/common/latest/summary_overview
.. _Product Documentation: https://cloud.google.com
.. _Product Documentation:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These link targets are empty, which is invalid reStructuredText and will result in broken links in the rendered documentation. Based on other changes in this PR (e.g., for google-cloud-quotas), these should point to https://cloud.google.com/ if a more specific product page is not available. This issue also occurs on lines 33 and 107 of this file, and in the corresponding docs/README.rst.

Suggested change
.. _Google Cloud Common:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/common/latest/summary_overview
.. _Product Documentation: https://cloud.google.com
.. _Product Documentation:
.. _Google Cloud Common: https://cloud.google.com/
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/common/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/

Comment on lines +17 to +19
.. _Compute Engine:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/google-cloud-compute-v1beta/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/compute/
.. _Product Documentation:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These link targets are empty, which is invalid reStructuredText. They should point to a valid URL, such as https://cloud.google.com/. This issue also occurs on lines 33 and 107 of this file, and in the corresponding docs/README.rst.

Suggested change
.. _Compute Engine:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/google-cloud-compute-v1beta/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/compute/
.. _Product Documentation:
.. _Compute Engine: https://cloud.google.com/
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/google-cloud-compute-v1beta/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/

Comment on lines +17 to +19
.. _Cloud Firestore API:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/firestore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/firestore
.. _Product Documentation:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These link targets are empty, which is invalid reStructuredText. They should point to a valid URL, such as https://cloud.google.com/. This issue also occurs on lines 33 and 107 of this file, and in the corresponding docs/README.rst.

Suggested change
.. _Cloud Firestore API:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/firestore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/firestore
.. _Product Documentation:
.. _Cloud Firestore API: https://cloud.google.com/
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/firestore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/

Comment on lines +21 to +23
.. _Google Cloud Datastore API:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/datastore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/datastore
.. _Product Documentation:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These link targets are empty, which is invalid reStructuredText. They should point to a valid URL, such as https://cloud.google.com/. This issue also occurs on lines 37 and 111 of this file, and in the corresponding docs/README.rst.

Suggested change
.. _Google Cloud Datastore API:
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/datastore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/datastore
.. _Product Documentation:
.. _Google Cloud Datastore API: https://cloud.google.com/
.. _Client Library Documentation: https://cloud.google.com/python/docs/reference/datastore/latest/summary_overview
.. _Product Documentation: https://cloud.google.com/

@jskeet
Copy link
Copy Markdown
Contributor Author

jskeet commented Apr 24, 2026

@daniel-sanche: I suggest that links that are just changed are probably accepted, but where we end up with no value at all, we go one of two ways:

  • For API-based libraries, add the value to sdk.yaml in librarian so that it's used by all languages
  • For handwritten libraries, we maintain the override for now and figure out the best way forward. (I think we can probably keep the field, but fail during generation if it's specified for a library which has an API. In some cases it may be better for it to just be missing, and change the generator to not generate a line in the docs.)

I think the split is like this:

API-based libraries:

  • google-cloud-common
  • google-cloud-compute-v1beta
  • google-cloud-datastore
  • google-cloud-firestore
  • google-geo-type
  • google-shopping-type
  • google-cloud-source-context

Handwritten libraries:

  • bigframes
  • bigquery-magics
  • db-dtypes
  • gapic-generator
  • gcp-sphinx-docfx-yaml
  • google-api-core
  • googleapis-common-protos
  • google-auth-httplib2
  • google-auth-oauthlib
  • google-auth
  • google-cloud-bigquery
  • google-cloud-core
  • google-cloud-dns
  • google-cloud-documentai-toolbox
  • google-cloud-ndb
  • google-cloud-runtimeconfig
  • google-cloud-testutils
  • google-crc32c
  • google-resumable-media
  • pandas-gbq
  • proto-plus
  • sqlalchemy-bigquery
  • sqlalchemy-spanner

@jskeet
Copy link
Copy Markdown
Contributor Author

jskeet commented Apr 24, 2026

Actually, for the handwritten libraries, presumably the README isn't generated anyway, so .repo-metadata.json doesn't matter, unless it's being consumed elsewhere. So we should be able to get rid of the field in librarian.yaml after all - but we need to upstream the values to sdk.yaml first.

@jskeet
Copy link
Copy Markdown
Contributor Author

jskeet commented Apr 24, 2026

Regenerating for a second PR, based on googleapis/librarian#5573
Marking this PR as do not merge and changing it to a draft, but leaving it open for more comment.

@jskeet jskeet marked this pull request as draft April 24, 2026 08:38
@jskeet jskeet added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Apr 24, 2026
@jskeet
Copy link
Copy Markdown
Contributor Author

jskeet commented Apr 24, 2026

The Spanner changes aren't intended to be in this PR - will revert those in the second PR; ignore them for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge Indicates a pull request not ready for merge, due to either quality or timing.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant