Skip to content

Text files have overzealous prefix replacement, with no way to disable #19743

Open
@p-linnane

Description

@p-linnane

brew doctor output

Your system is ready to brew.

Verification

  • My "brew doctor output" above says Your system is ready to brew. and am still able to reproduce my issue.
  • I ran brew update twice and am still able to reproduce my issue.
  • This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output

HOMEBREW_VERSION: 4.4.29-59-g7b34fcc
ORIGIN: https://github.com/Homebrew/brew
HEAD: 7b34fcc330801f31e204959d8e6371fb28957016
Last commit: 4 hours ago
Branch: master
Core tap HEAD: 027805772a784816d6bc8e9326df27b8a8634dde
Core tap last commit: 6 minutes ago
Core cask tap HEAD: 25076a3151a70449453597a7b5f9ac24f53a942c
Core cask tap last commit: 13 minutes ago
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DEVELOPER: set
HOMEBREW_DISPLAY_INSTALL_TIMES: set
HOMEBREW_EDITOR: /opt/homebrew/bin/code
HOMEBREW_EVAL_ALL: set
HOMEBREW_FORCE_BREWED_CURL: set
HOMEBREW_FORCE_BREWED_GIT: set
HOMEBREW_LIVECHECK_AUTOBUMP: set
HOMEBREW_MAKE_JOBS: 14
HOMEBREW_NO_ENV_HINTS: set
HOMEBREW_NO_INSTALL_FROM_API: set
HOMEBREW_SORBET_RUNTIME: set
HOMEBREW_UPGRADE_GREEDY: set
HOMEBREW_VERIFY_ATTESTATIONS: set
Homebrew Ruby: 3.3.7 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.7/bin/ruby
CPU: 14-core 64-bit arm_palma
Clang: 17.0.0 build 1700
Git: 2.49.0 => /opt/homebrew/opt/git/bin/git
Curl: 8.13.0 => /opt/homebrew/opt/curl/bin/curl
macOS: 15.4-arm64
CLT: 16.3.0.0.1.1742442376
Xcode: 16.3
Rosetta 2: false

What were you trying to do (and why)?

An :all bottle should be created in Homebrew/homebrew-core#219712, but the publish job fails.

What happened (include all command output)?

langgraph-cli should have an `:all` bottle but one cannot be created:
[
  {
    "filename": "langgraph-cli-0.2.3.arm64_linux.bottle.tar.gz",
    "local_filename": "langgraph-cli--0.2.3.arm64_linux.bottle.tar.gz",
    "sha256": "7bbcc68ccbb42727271ce8ac41c4a2e7d9bca0a36d7885b2affe7fe8c3582f6b",
    "tab": {
      "homebrew_version": "4.4.29-59-g7b34fcc",
      "changed_files": [
        "libexec/bin/langgraph",
        "libexec/pyvenv.cfg"
      ],
      "source_modified_time": 0,
      "compiler": "gcc-11",
      "runtime_dependencies": [
        {
          "full_name": "mpdecimal",
          "version": "4.0.0",
          "revision": 0,
          "bottle_rebuild": 1,
          "pkg_version": "4.0.0",
          "declared_directly": false
        },
        {
          "full_name": "ca-certificates",
          "version": "2025-02-25",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "2025-02-25",
          "declared_directly": false
        },
        {
          "full_name": "openssl@3",
          "version": "3.4.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.4.1",
          "declared_directly": false
        },
        {
          "full_name": "ncurses",
          "version": "6.5",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "6.5",
          "declared_directly": false
        },
        {
          "full_name": "readline",
          "version": "8.2.13",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "8.2.13",
          "declared_directly": false
        },
        {
          "full_name": "zlib",
          "version": "1.3.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "1.3.1",
          "declared_directly": false
        },
        {
          "full_name": "sqlite",
          "version": "3.49.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.49.1",
          "declared_directly": false
        },
        {
          "full_name": "xz",
          "version": "5.8.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "5.8.1",
          "declared_directly": false
        },
        {
          "full_name": "bzip2",
          "version": "1.0.8",
          "revision": 0,
          "bottle_rebuild": 2,
          "pkg_version": "1.0.8",
          "declared_directly": false
        },
        {
          "full_name": "expat",
          "version": "2.7.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "2.7.1",
          "declared_directly": false
        },
        {
          "full_name": "libedit",
          "version": "20250104-3.1",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "20250104-3.1",
          "declared_directly": false
        },
        {
          "full_name": "libffi",
          "version": "3.4.8",
          "revision": 0,
          "bottle_rebuild": 0,
          "pkg_version": "3.4.8",
          "declared_directly": false
        },
        {
          "full_name": "unzip",
          "version": "6.0",
          "revision": 8,
          "bottle_rebuild": 0,
          "pkg_version": "6.0_8",
          "declared_directly": false
        },
        {
          "full_name": "berkeley-db@5",
          "version": "5.3.28",
          "revision": 1,
          "bottle_rebuild": 0,
          "pkg_version": "5.3.28_1",
          "declared_directly": false
        },
        {
          "full_name": "python@3.13",
          "version": "3.13.3",
          "revision": 0,
          "bottle_rebuild": 1,
          "pkg_version": "3.13.3",
          "declared_directly": true
        }
      ],
      "arch": "arm64",
      "built_on": {
        "os": "Linux",
        "os_version": "Ubuntu 22.04.5 LTS",
        "cpu_family": "arm",
        "glibc_version": "2.35",
        "oldest_cpu_family": "armv8"
      }
    },
    "path_exec_files": [
      "bin/langgraph"
    ],
    "all_files": [
      ".brew/langgraph-cli.rb",

Prefix replacement was found when diffing new bottles for macOS 15 x86_64 and arm64:

╰─ diffoscope bottles_15-arm64-14408349467/langgraph-cli--0.2.3.arm64_sequoia.bottle.tar.gz bottles_15-x86_64-14408349467/langgraph-cli--0.2.3.sequoia.bottle.tar.gz
--- bottles_15-arm64-14408349467/langgraph-cli--0.2.3.arm64_sequoia.bottle.tar.gz
+++ bottles_15-x86_64-14408349467/langgraph-cli--0.2.3.sequoia.bottle.tar.gz
│   --- langgraph-cli--0.2.3.arm64_sequoia.bottle.tar
├── +++ langgraph-cli--0.2.3.sequoia.bottle.tar
│ ├── file list
│ │ @@ -42,15 +42,15 @@
│ │  -rw-r--r--   0        0        0       82 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/WHEEL
│ │  drwxr-xr-x   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/licenses/
│ │  -rw-r--r--   0        0        0     1475 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/click-8.1.8.dist-info/licenses/LICENSE.txt
│ │  drwxr-xr-x   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/
│ │  -rw-r--r--   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/__init__.py
│ │  -rw-r--r--   0        0        0     2462 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/analytics.py
│ │  -rw-r--r--   0        0        0    22501 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/cli.py
│ │ --rw-r--r--   0        0        0    50966 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │ +-rw-r--r--   0        0        0    51002 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │  -rw-r--r--   0        0        0      362 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/constants.py
│ │  -rw-r--r--   0        0        0     8018 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/docker.py
│ │  -rw-r--r--   0        0        0     5205 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/exec.py
│ │  -rw-r--r--   0        0        0     1754 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/progress.py
│ │  -rw-r--r--   0        0        0        0 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/py.typed
│ │  -rw-r--r--   0        0        0     8761 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/templates.py
│ │  -rw-r--r--   0        0        0       98 1970-01-01 00:00:00.000000 langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/util.py
│ ├── langgraph-cli/0.2.3/libexec/lib/python3.13/site-packages/langgraph_cli/config.py
│ │ @@ -412,16 +412,16 @@
│ │  PIP_CLEANUP_LINES = """# -- Ensure user deps didn't inadvertently overwrite langgraph-api
│ │  RUN mkdir -p /api/langgraph_api /api/langgraph_runtime /api/langgraph_license && \
│ │      touch /api/langgraph_api/__init__.py /api/langgraph_runtime/__init__.py /api/langgraph_license/__init__.py
│ │  RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir --no-deps -e /api
│ │  # -- End of ensuring user deps didn't inadvertently overwrite langgraph-api --
│ │  # -- Removing pip from the final image ~<:===~~~ --
│ │  RUN pip uninstall -y pip setuptools wheel && \
│ │ -    rm -rf /usr/local/lib/python*/site-packages/pip* /usr/local/lib/python*/site-packages/setuptools* /usr/local/lib/python*/site-packages/wheel* && \
│ │ -    find /usr/local/bin -name "pip*" -delete
│ │ +    rm -rf @@HOMEBREW_PREFIX@@/lib/python*/site-packages/pip* @@HOMEBREW_PREFIX@@/lib/python*/site-packages/setuptools* @@HOMEBREW_PREFIX@@/lib/python*/site-packages/wheel* && \
│ │ +    find @@HOMEBREW_PREFIX@@/bin -name "pip*" -delete
│ │  # -- End of pip removal --"""
│ │
│ │
│ │  def _parse_version(version_str: str) -> tuple[int, int]:
│ │      """Parse a version string into a tuple of (major, minor)."""
│ │      try:
│ │          major, minor = map(int, version_str.split("-")[0].split("."))

What did you expect to happen?

An :all bottle is built merged.

Step-by-step reproduction instructions (by running brew commands)

Job logs: https://github.com/Homebrew/homebrew-core/actions/runs/14409600763/job/40414217704

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedWe want help addressing this

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions