diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml deleted file mode 100644 index 51b21a62b7..0000000000 --- a/.github/.OwlBot.lock.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:a7aef70df5f13313ddc027409fc8f3151422ec2a57ac8730fce8fa75c060d5bb -# created: 2025-04-10T17:00:10.042601326Z diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot.yaml deleted file mode 100644 index c379bd3092..0000000000 --- a/.github/.OwlBot.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - -begin-after-commit-hash: 92006bb3cdc84677aa93c7f5235424ec2b157146 diff --git a/.github/auto-approve.yml b/.github/auto-approve.yml deleted file mode 100644 index 311ebbb853..0000000000 --- a/.github/auto-approve.yml +++ /dev/null @@ -1,3 +0,0 @@ -# https://github.com/googleapis/repo-automation-bots/tree/main/packages/auto-approve -processes: - - "OwlBotTemplateChanges" diff --git a/.github/release-please.yml b/.github/release-please.yml deleted file mode 100644 index 7c2b8d9e8a..0000000000 --- a/.github/release-please.yml +++ /dev/null @@ -1,10 +0,0 @@ -releaseType: python -handleGHRelease: true -extraFiles: - - bigframes/version.py - - third_party/bigframes_vendored/version.py - -branches: - - branch: v1 - handleGHRelease: true - releaseType: python diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml deleted file mode 100644 index 4fbd4aa427..0000000000 --- a/.github/release-trigger.yml +++ /dev/null @@ -1,2 +0,0 @@ -enabled: true -multiScmName: python-bigquery-dataframes diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml deleted file mode 100644 index 80bfd5f951..0000000000 --- a/.github/sync-repo-settings.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# https://github.com/googleapis/repo-automation-bots/tree/main/packages/sync-repo-settings -# Rules for main branch protection -branchProtectionRules: -# Identifies the protection rule pattern. Name of the branch to be protected. -# Defaults to `main` -- pattern: main - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - 'OwlBot Post Processor' - - 'conventionalcommits.org' - - 'cla/google' - - 'docs' - - 'lint' - - 'mypy' - - 'unit (3.9)' - - 'unit (3.10)' - - 'unit (3.11)' - - 'unit (3.12)' - - 'cover' - - 'Kokoro presubmit' - - 'Kokoro windows' -- pattern: v1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - 'OwlBot Post Processor' - - 'conventionalcommits.org' - - 'cla/google' - - 'docs' - - 'lint' - - 'mypy' - - 'unit (3.9)' - - 'unit (3.10)' - - 'unit (3.11)' - - 'unit (3.12)' - - 'cover' - - 'Kokoro presubmit' - - 'Kokoro windows' -permissionRules: - - team: actools-python - permission: admin - - team: actools - permission: admin - - team: api-bigquery-dataframe - permission: push - - team: yoshi-python - permission: push - - team: python-samples-owners - permission: push - - team: python-samples-reviewers - permission: push diff --git a/.librarian/state.yaml b/.librarian/state.yaml new file mode 100644 index 0000000000..36216ec0db --- /dev/null +++ b/.librarian/state.yaml @@ -0,0 +1,10 @@ +image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:c8612d3fffb3f6a32353b2d1abd16b61e87811866f7ec9d65b59b02eb452a620 +libraries: + - id: bigframes + version: 2.28.0 + apis: [] + source_roots: + - . + preserve_regex: [] + remove_regex: [] + tag_format: v{version} diff --git a/owlbot.py b/owlbot.py deleted file mode 100644 index 4a189ff0e2..0000000000 --- a/owlbot.py +++ /dev/null @@ -1,138 +0,0 @@ -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""This script is used to synthesize generated parts of this library.""" - -import pathlib -import re -import textwrap - -from synthtool import gcp -import synthtool as s -from synthtool.languages import python - -REPO_ROOT = pathlib.Path(__file__).parent.absolute() - -common = gcp.CommonTemplates() - -# ---------------------------------------------------------------------------- -# Add templated files -# ---------------------------------------------------------------------------- -templated_files = common.py_library( - default_python_version="3.10", - unit_test_python_versions=["3.9", "3.10", "3.11", "3.12", "3.13"], - system_test_python_versions=["3.9", "3.11", "3.12", "3.13"], - cov_level=35, - intersphinx_dependencies={ - "pandas": "https://pandas.pydata.org/pandas-docs/stable/", - "pydata-google-auth": "https://pydata-google-auth.readthedocs.io/en/latest/", - }, -) -s.move( - templated_files, - excludes=[ - # Need a combined LICENSE for all vendored packages. - "LICENSE", - "docs/conf.py", - # Multi-processing note isn't relevant, as bigframes is responsible for - # creating clients, not the end user. - "docs/multiprocessing.rst", - "noxfile.py", - ".pre-commit-config.yaml", - "README.rst", - "CONTRIBUTING.rst", - ".github/release-trigger.yml", - ".github/release-please.yml", - # BigQuery DataFrames manages its own Kokoro cluster for presubmit & continuous tests. - ".kokoro/build.sh", - ".kokoro/continuous/common.cfg", - ".kokoro/presubmit/common.cfg", - ".github/workflows/docs.yml", - ".github/workflows/lint.yml", - ".github/workflows/unittest.yml", - ], -) - -# ---------------------------------------------------------------------------- -# Fixup files -# ---------------------------------------------------------------------------- - -# Encourage sharring all relevant versions in bug reports. -assert 1 == s.replace( # bug_report.md - [".github/ISSUE_TEMPLATE/bug_report.md"], - re.escape("#### Steps to reproduce\n"), - textwrap.dedent( - """ - ```python - import sys - import bigframes - import google.cloud.bigquery - import pandas - import pyarrow - import sqlglot - - print(f"Python: {sys.version}") - print(f"bigframes=={bigframes.__version__}") - print(f"google-cloud-bigquery=={google.cloud.bigquery.__version__}") - print(f"pandas=={pandas.__version__}") - print(f"pyarrow=={pyarrow.__version__}") - print(f"sqlglot=={sqlglot.__version__}") - ``` - - #### Steps to reproduce - """, - ), -) - -# Make sure build includes all necessary files. -assert 1 == s.replace( # MANIFEST.in - ["MANIFEST.in"], - re.escape("recursive-include google"), - "recursive-include third_party/bigframes_vendored *\nrecursive-include bigframes", -) - -# Include JavaScript files for display widgets -assert 1 == s.replace( # MANIFEST.in - ["MANIFEST.in"], - re.escape("recursive-include bigframes *.json *.proto py.typed"), - "recursive-include bigframes *.json *.proto *.js py.typed", -) - -# Include JavaScript and CSS files for display widgets -assert 1 == s.replace( # MANIFEST.in - ["MANIFEST.in"], - re.escape("recursive-include bigframes *.json *.proto *.js py.typed"), - "recursive-include bigframes *.json *.proto *.js *.css py.typed", -) - -# Don't omit `*/core/*.py` when counting test coverages -assert 1 == s.replace( # .coveragerc - [".coveragerc"], - re.escape(" */core/*.py\n"), - "", -) - -# ---------------------------------------------------------------------------- -# Samples templates -# ---------------------------------------------------------------------------- - -python.py_samples(skip_readmes=True) - -# ---------------------------------------------------------------------------- -# Final cleanup -# ---------------------------------------------------------------------------- - -s.shell.run(["nox", "-s", "format"], hide_output=False) -for noxfile in REPO_ROOT.glob("samples/**/noxfile.py"): - s.shell.run(["nox", "-s", "format"], cwd=noxfile.parent, hide_output=False)