build: enable macOS CI, add Python 3.13, and stabilize Bazel configuration #60
+76
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR enables cross-platform CI/CD support, adds Python 3.13 compatibility, and stabilizes the Bazel build environment with explicit configuration for consistent builds across all platforms.
Changes
CI/CD Infrastructure
Cross-Platform Workflows: Enable macOS testing and wheel building
test.ymlto run on bothubuntu-latestandmacos-latest(arm64)wheels.ymlto build wheels on both Ubuntu and macOS platformsBazel Build System Stabilization
~/.local/binwith--no-check-certificateflag for robustness.bazelrcconfiguration file for consistent C++ compilation--cxxoptand--host_cxxopt)-fno-strict-aliasingflag for compatibilityPython & Packaging
Python 3.13 Support
setup.pyclassifiers for new Python versionsBuild System Configuration
pyproject.tomlwith PEP 517 build system specificationsetuptools<70andbuild<2.0in build dependencies to ensure Metadata 2.3 compatibilityZlib Dependency Upgrade
fdopenmacro redefinition)Repository Hygiene
.gitignoreFilebazel-bin,bazel-metadata,bazel-out,bazel-testlogstensorflow_metadata/proto/v0/*_pb2.pybuild/,dist/,*.egg-info/PyPI Integration
repository-urlfrom publish step to use PyPI's default legacy endpointverify-metadata: falsedue to pkginfo/twine version constraints on runnersMotivation
Testing
pip install -e .andpytestshould work on both Ubuntu and macOSNotes
.bazelrcfile must be checked in for both local and CI builds to use consistent settingsUpload to PyPIjob passes. Refer, https://github.com/czgdp1807/metadata/actions/runs/20526757499/job/58971568319