Skip to content

chore(migration): Migrate code from googleapis/python-dns into packages/google-cloud-dns#15543

Merged
parthea merged 325 commits intomainfrom
migration.python-dns.migration.2026-02-09_17-15-38.migrate
Feb 13, 2026
Merged

chore(migration): Migrate code from googleapis/python-dns into packages/google-cloud-dns#15543
parthea merged 325 commits intomainfrom
migration.python-dns.migration.2026-02-09_17-15-38.migrate

Conversation

@parthea
Copy link
Contributor

@parthea parthea commented Feb 9, 2026

See #11024.

This PR should be merged with a merge-commit, not a squash-commit, in order to preserve the git history.

dhermes and others added 30 commits August 24, 2017 14:15
- dns
- error_reporting
- language
- logging
- monitoring
- resource_manager
- runtimeconfig
- speech
- translate
- vision

Also updating bounds on these in `google-cloud` uber-package.
* Remove api.core packages from google.cloud.core, make google.cloud.core depend on api_core.

* s/google.api.core/google.api_core/g and nox updates

* Fixing core tests, addressing review feedback

* Fix bigquery
Also

- updating all dependencies of `grpcio` to `>= 1.7.0`. This was due to an issue [1] with `1.6.0`.
- updating the version of `google-api-core` (also to be released, This is required since the bounds on `grpcio` of `google-cloud-core==0.28.0` and `google-api-core==0.1.0` are mutually exclusive.)
- Updating `google-api-core` CHANGELOG for release.
- Updating packages to depend on `google-cloud-core>=0.28.0`.
- Installing `nox -s lint` deps locally for vision.

[1]: grpc/grpc#12455
* Making release for most packages.

Every package except those that have already been released
(`google-cloud-core`, `google-api-core`, `google-cloud-bigquery`):

- `google-cloud`
- `google-cloud-bigtable`
- `google-cloud-datastore`
- `google-cloud-dns`
- `google-cloud-error-reporting`
- `google-cloud-firestore`
- `google-cloud-language`
- `google-cloud-logging`
- `google-cloud-monitoring`
- `google-cloud-resource-manager`
- `google-cloud-runtimeconfig`
- `google-cloud-spanner`
- `google-cloud-speech`
- `google-cloud-storage`
- `google-cloud-trace`
- `google-cloud-translate`
- `google-cloud-videointelligence`
- `google-cloud-vision`

* Adding changelog files for each package.
This is to make it clear the code is between releases. Any code
that relies on a **new** feature (e.g. of `google-api-core`) will
then be able to **explicitly** make this clear by using the
lower bound of the `devN` version.

Fixes #4208.

See: https://snarky.ca/how-i-manage-package-version-numbers/
Also obeying an 80-column limit for the content and
adding a missing "``virtualenv``" in the phrase
"``pip`` and ``virtualenv``" in some of the docs.
* Closes #4319 - shorten test names

* #4319 update docs and config files
* Making a `nox -s default` session for all packages.

* Using "default" `nox` session on AppVeyor.

This was 32-bit or 64-bit Python can be used, depending
on which is the active `python` / the active `nox.exe`.
Done via:

  $ git grep -l makeResource | xargs sed -i s/makeResource/make_resource/g
* remove 3.4 from unit test runs

* add 3.7 to most packages. PubSub, Monitoring, BigQuery not enabled

* Fix #5292 by draining queue in a way compatible with SimpleQueue and Queue
- Move contents of 'docs/dns/' to 'dns/docs'.
- Harmonize / DRY 'dns/README.rst' with 'dns/docs/index.rst'.
* Remove badges for deprecated umbrella 'google-cloud' package.

* Clarify support levels.

- Add explicit section to support linking from sub-package README badges.
- Move explanatory text for a support level above the list of packages
  at that level.

* Normalize use of support-level badges in READMEs.

- Note that 'error_reporting/README.rst' and 'monitoring/README.rst' are
  undergoing other edits;  they are left out here to avoid conflicts.

* Use 'General Avaialblity' for support level.

Fix linkx in related API READMEs.

* Fix links for alpha support in API READMEs.

* Fix links for beta support in API READMEs.
* blacken bigtable

* blacken logging

* blacken translate

* blacken runtimeconfig

* blacken dns
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @parthea, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request completes the migration of the Google Cloud DNS Python client library into the monorepo structure. The change involves moving all source code, tests, documentation, and build configurations into the packages/google-cloud-dns directory. This consolidation streamlines development workflows and ensures consistent tooling across Google Cloud Python client libraries. The migration is designed to preserve the full git history of the python-dns library.

Highlights

  • Library Migration: The entire python-dns client library has been moved to packages/google-cloud-dns/ to centralize it within the monorepo structure.
  • Standardized Configuration: New build, linting, and testing configuration files (.coveragerc, .flake8, noxfile.py, pytest.ini, renovate.json, setup.py) have been added to align with monorepo standards.
  • Updated Documentation: Comprehensive documentation, including CHANGELOG.md, CONTRIBUTING.rst, README.rst, and Sphinx configuration, has been added/updated for the new package location.
  • Migration Script Enhancements: The single-library.git-migrate-history.sh script was updated to correctly handle submodules and remove nested .git directories during the migration process, ensuring a clean transfer of history.
Changelog
  • packages/google-cloud-dns/
    • Added all source code, documentation, and configuration files for the google-cloud-dns Python client library. This includes build and linting configurations (.coveragerc, .flake8, .pre-commit-config.yaml, noxfile.py, pytest.ini, setup.py), project metadata (.librarian/state.yaml, .repo-metadata.json), core library modules (google/cloud/dns/*.py), comprehensive documentation (CHANGELOG.md, CODE_OF_CONDUCT.md, CONTRIBUTING.rst, LICENSE, README.rst, SECURITY.md, and the docs/ directory with Sphinx configurations), utility scripts (scripts/), and testing infrastructure (testing/, tests/).
  • scripts/split_repo_migration/single-library.git-migrate-history.sh
    • Modified the script to include --recurse-submodules when cloning the source repository.
    • Enhanced the tree-filter command to handle and remove nested .git directories within submodules, preventing issues during history migration.
    • Applied --recurse-submodules and .git directory removal to the validation clone as well.
Activity
  • No specific activity (comments, reviews, etc.) was provided in the context.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
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 PR migrates the google-cloud-dns library into the monorepo. The changes are extensive, covering source code, documentation, and CI/CD configuration. Overall, the migration looks good, but I've found several areas where references to the old repository (googleapis/python-dns) and outdated configurations persist. These will need to be updated to ensure CI, documentation, and repository management tools function correctly in the new monorepo structure. Key areas for improvement include updating repository URLs in metadata and documentation files, correcting CI configuration paths, and fixing a typo in the library's __init__.py that would affect documentation generation.

I am having trouble creating individual review comments. Click here to see my feedback.

packages/google-cloud-dns/.kokoro/continuous/common.cfg (17-26)

high

The build_file and TRAMPOLINE_BUILD_FILE paths appear to reference the old python-dns repository structure. These paths likely need to be updated to reflect the new monorepo structure (e.g., packages/google-cloud-dns/...) to prevent CI failures. This issue is present in other Kokoro configuration files as well.

packages/google-cloud-dns/.kokoro/noxfile.py (92)

high

The ALL_VERSIONS list is missing Python 3.14. Other CI configurations attempt to run sample tests for this version, which will fail because the py-3.14 nox session will not be defined. Please add 3.14 to this list.

ALL_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]

packages/google-cloud-dns/.repo-metadata.json (10-14)

high

There are a couple of issues in this metadata file:

  1. The repo field on line 10 points to the old googleapis/python-dns repository. It should be updated to point to the current monorepo, googleapis/google-cloud-python.
  2. The codeowner_team field on line 14 is empty. Based on the comment in .github/CODEOWNERS, this should be populated, likely with @googleapis/yoshi-python.
    "repo": "googleapis/google-cloud-python",
    "distribution_name": "google-cloud-dns",
    "requires_billing": true,
    "default_version": "",
    "codeowner_team": "@googleapis/yoshi-python",

packages/google-cloud-dns/google/cloud/dns/init.py (19-24)

high

There's a typo in the docstring references to other classes. google.cloud.DNS should be google.cloud.dns. This will cause issues with documentation generation.

- :class:`~google.cloud.dns.zone.ManagedZone` represents an collection of
  tables.
- :class:`~google.cloud.dns.resource_record_set.ResourceRecordSet` represents
  a single resource definition within a zone.
- :class:`~google.cloud.dns.changes.Changes` represents a set of changes
  (adding/deleting resource record sets) to a zone.

packages/google-cloud-dns/.github/ISSUE_TEMPLATE/bug_report.md (13)

medium

The link to search for existing issues points to the old python-dns repository. This should be updated to point to the issues in the current monorepo to ensure users are searching in the correct place.

  - Search the issues already opened: https://github.com/googleapis/google-cloud-python/issues

packages/google-cloud-dns/.github/PULL_REQUEST_TEMPLATE.md (2)

medium

The link for opening a new issue points to the old python-dns repository. This should be updated to the new repository's issue creation page.

- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-cloud-python/issues/new/choose) before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea

packages/google-cloud-dns/.github/workflows/unittest.yml (16-21)

medium

The versions of actions/checkout and actions/setup-python are older than in other workflows. For consistency and to use the latest features, please update them to v6.

    - name: Checkout
      uses: actions/checkout@v6
    - name: Setup Python
      uses: actions/setup-python@v6
      with:
        python-version: ${{ matrix.python }}

packages/google-cloud-dns/CONTRIBUTING.rst (63)

medium

This file contains several references to the old python-dns repository. These should be updated to point to the new monorepo location. For example, the repo link on this line should be updated.

.. _repo: https://github.com/googleapis/google-cloud-python

packages/google-cloud-dns/docs/conf.py (159)

medium

The github_repo configuration points to the old python-dns repository. This should be updated to google-cloud-python to ensure documentation links are correct.

    "github_repo": "google-cloud-python",

packages/google-cloud-dns/setup.py (73)

medium

The url in setup.py points to the old python-dns repository. This should be updated to the URL of the monorepo.

    url="https://github.com/googleapis/google-cloud-python",

@parthea parthea self-assigned this Feb 12, 2026
@parthea parthea marked this pull request as ready for review February 12, 2026 23:09
@parthea parthea requested review from a team as code owners February 12, 2026 23:09
@parthea parthea assigned daniel-sanche and unassigned parthea Feb 12, 2026
@parthea parthea added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Feb 12, 2026
@parthea
Copy link
Contributor Author

parthea commented Feb 12, 2026

Code is ready for review but not merge

@parthea parthea removed the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Feb 13, 2026
@parthea parthea merged commit 3928ddc into main Feb 13, 2026
28 checks passed
@parthea parthea deleted the migration.python-dns.migration.2026-02-09_17-15-38.migrate branch February 13, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.