mirror of
https://github.com/Homebrew/brew.git
synced 2026-08-12 22:29:27 +04:00
- `pycall` was Homebrew's only in-process Python embedding: a native gem that dlopens `libpython`, needed the `__PYVENV_LAUNCHER__` hack for macOS framework Pythons, hand-written Sorbet stubs and tapioca/RuboCop exclusions. - A pure Ruby HTTP port was rejected: InfluxDB Cloud Serverless only serves SQL over Arrow Flight gRPC (it has no `/api/v3/query_sql` endpoint) and the analytics schema keeps `package`, `tap_name` and `options` as fields, which InfluxQL cannot `GROUP BY`; Flux is deprecated on InfluxDB 3. Ruby Flight clients need heavier native dependencies than `pycall` itself. - Moving the whole query operation into Python was rejected: the JSON output depends on `Homebrew::EnvConfig` defaults, `MacOSVersion` pretty names and WSL suffix handling that would drift if duplicated outside Ruby. - `influxdb-query.py` runs from a `uv`-managed virtualenv with the same pinned `influxdb3-python` and speaks a documented protocol: a JSON request on stdin, JSON Lines rows on stdout and the token read from `HOMEBREW_INFLUXDB_TOKEN` so credentials stay off the command line. - Arrow record batches now stream via `mode="reader"` instead of being copied record-by-record across PyCall's FFI bridge. - Python dependencies moved from `pip-compile`d `requirements.txt` to `pyproject.toml` and a hash-verified `uv.lock` installed with `uv sync --frozen`: `uv` is a single dependency-free bottle installed 2.5x as often as versioned Python formulae, replaces the five bottles `python@3.13` needed and cold-installs the whole virtualenv faster than `pip` installed the packages alone, so `actions/setup-python` and dependabot's `pip` ecosystem are replaced by `astral-sh/setup-uv` and the `uv` ecosystem. - `uv` also provisions the interpreter: `.python-version` pins 3.14, the newest Python in Homebrew, and `requires-python = ">=3.13"` keeps future bumps to a one-line `.python-version` change. - `brew formula-analytics --setup` still prepares everything for offline runs and verifies the bridge import via the script's `--check` flag. - `brew verify-undefined` also guards `InfluxDBClient3` and `PyCall` after requiring `dev-cmd/formula-analytics`. - The TSM-era `transform_analytics_to_counts.json` Flux task was referenced by nothing so is removed.
Completions
This directory contains subdirectories for brew's tab completions for bash, zsh, and fish.