Skip to content

Conversation

@cofin
Copy link
Collaborator

@cofin cofin commented Jan 8, 2026

  • Upgrades pyapp to v0.29.0 to support Python 3.12 defaults on macOS/Windows.
    • Uses cargo-zigbuild for Linux GNU targets to ensure compatibility with older GLIBC (2.17).

cofin added 2 commits January 8, 2026 16:31
    - Upgrades pyapp to v0.29.0 to support Python 3.12 defaults on macOS/Windows.
    - Uses cargo-zigbuild for Linux GNU targets to ensure compatibility with older GLIBC (2.17).
    - Adds 'build-wheel' job to build the python package.
    - Adds 'verify-binary-builds' job to verify binary compilation for all targets.
    - Runs verification after all tests pass to ensure build stability without artifact upload.
cofin added 27 commits January 8, 2026 16:48
    - Adds explicit 'permissions: { contents: read }' to all workflows.
    - Follows least privilege principle to address GitHub security warnings.
    - Release workflow jobs that need write access already have specific overrides.
    - Upgrades STABLE_PYTHON_VERSION and PYAPP_PYTHON_VERSION to 3.13.
    - Resolves 'No default distribution source found' error on macOS aarch64.
    - Python 3.13 is fully supported by pyapp v0.29.0 for all target platforms.
    - Adds 'cat dist/requirements.txt' to ci and release workflows.
    - Helps diagnose 'No module named dma' error by verifying wheel path in requirements.
    - Removes x86_64-apple-darwin from binary build matrix.
    - We are only supporting aarch64 for macOS binaries.
    - Aligns with upstream support and simplifies the build matrix.
    - Manually sets PYAPP_DISTRIBUTION_SOURCE for aarch64-apple-darwin.
    - Bypasses automatic detection failure for Python 3.13 on this platform.
    - Uses the URL verified from pyapp v0.29.0 source.
    - Manually sets PYAPP_DISTRIBUTION_SOURCE for aarch64-unknown-linux-gnu.
    - Resolves 'No default distribution source found' error on Linux ARM64.
    - Uses the URL verified from pyapp v0.29.0 source.
    - Manually sets PYAPP_DISTRIBUTION_SOURCE for x86_64-pc-windows-msvc.
    - Skips offline binary test for aarch64-linux on x86_64 runners to avoid exec format error.
    - Ensures build stability across all target platforms.
    - Adds explicit test step for linux-musl targets using alpine container.
    - Ensures static linking validity for musl binaries.
    - Maintains existing glibc tests for standard linux targets.
    - Removes PYAPP_SKIP_INSTALL='true' from ci and release workflows.
    - Fixes 'No module named dma' by allowing pyapp to install the embedded wheel into the isolated python environment on first run.
    - Adds tools/bundle_python.py to pre-install dependencies into the Python distribution.
    - Updates ci.yaml and release.yaml to use this script for x86_64-unknown-linux-gnu.
    - Sets PYAPP_SKIP_INSTALL=true for this target to enable offline execution.
    - Bundles dependencies for both x86_64 and aarch64 Linux GNU targets.
    - Sets PYAPP_SKIP_INSTALL=true and clears dependency file for bundled builds.
    - Adds debugging step to inspect wheel contents.
    - Sets default installation directory to ~/.dma.
- Removes the hardcoded pypi index from pyproject.toml.
- Allows uv to respect system/environment defaults for package indexing.
- May resolve issues with finding packages like setuptools in specific CI environments.
    - Adds uv.toml to .gitignore.
    - Allows developers to maintain local uv configuration (e.g., custom package indexes) without committing them to the repository.
    - Adds tools/setup-local-env.sh to configure uv.toml for Google internal environments (Rodete).
    - Updates Makefile to call this script during installation.
    - Ensures developers on internal machines have the correct package index configured automatically.
    - Corrects the index URL in setup-local-env.sh to point to pypi.org.
    - Forces uv to use the public index by default in internal environments.
    - Explains how to use uv.toml to override package indexes in internal environments.
    - Provides instructions for sharing this context with other Gemini CLI instances.
    - Exports PIP_INDEX_URL=https://pypi.org/simple if uv.toml is present.
    - Ensures pre-commit (which uses pip) works in internal environments where uv.toml is used to bypass internal registries.
    - Move rich-click config to cli/__init__.py.
    - Fix linting issues in tools/bundle_python.py.
    - Add ignores for specific rules in pyproject.toml.
    - Fix minor issues in tests.
    - Removes commented-out code in bundle_python.py.
    - Fixes unused variable warnings.
    - Adds S202 and ERA001 to ruff ignores for tools.
    - Renames _files back to files as it is actually used in the loop.
    - Resolves RUF052 error.
    - Switches aiosql adapters to synchronous variants (psycopg, pymysql, pymssql, oracledb) to match dma execution model.
    - Resolves 'coroutine' attribute errors caused by aiosql v14/15 async defaults.
    - Updates rich-click configuration to latest non-deprecated settings.
cofin added 6 commits January 9, 2026 18:11
- Remove musl builds to simplify CI and avoid compatibility issues.
- Update bundle_python.py to use 'uv pip install' for better dependency resolution.
- Update platform tags to 'manylinux_2_28' to support recent package versions (duckdb, granian).
- Force public PyPI index on Rodete to ensure package availability.
@cofin cofin changed the title fix(ci): upgrade pyapp and use zigbuild for glibc compat fix(ci): upgrade pyapp Jan 12, 2026
cofin and others added 13 commits January 12, 2026 19:07
When using PYAPP_DISTRIBUTION_PATH with a custom Python distribution,
PyApp requires PYAPP_DISTRIBUTION_PYTHON_PATH to locate the Python
binary inside the embedded tarball.

- Unix (Linux/macOS): python/bin/python3
- Windows: python/python.exe

This matches the structure of python-build-standalone distributions.
DuckDB 1.4.x only provides wheels for manylinux_2_28 (glibc 2.28+),
not manylinux_2_17. Update the PLATFORMS mapping in bundle_python.py
to use the correct platform tag.

- Upgrade duckdb minimum version from 1.0.0 to 1.4.3
- Change Linux platforms from manylinux_2_17 to manylinux_2_28
- Update test expectations accordingly
The DMA CLI doesn't have a --version flag, use --help instead.
@cofin cofin requested a review from wpuziewicz January 13, 2026 02:50
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.

1 participant