CyberNativeAI opened a new pull request, #3628:
URL: https://github.com/apache/brpc/pull/3628

   ### What problem does this PR solve?
   
   Issue Number: none
   
   Problem Summary:
   
   The `compile-with-make-cmake-protobuf21` job in 
`.github/workflows/ci-macos.yml` runs `brew install ... protobuf@21`. Homebrew 
disabled that formula on 2026-01-08 (`disable! date: "2026-01-08"` in [the 
formula](https://github.com/Homebrew/homebrew-core/blob/cced3ef1d489fce4eba453a333619722c3a8dd17/Formula/p/[email protected]#L25)).
 On `macos-latest` it still installs today, with only a warning:
   
   ```
   Warning: protobuf@21 has been deprecated because it is a versioned formula! 
It was disabled on 2026-01-08.
   ```
   
   The break comes later. Homebrew's 
[`remove-disabled-packages`](https://github.com/Homebrew/actions/blob/main/remove-disabled-packages/action.yml)
 action deletes formulae whose disable date is more than a year old, and recent 
removals landed the day after that anniversary (`vera++`, disabled 2025-10-09, 
[removed 
2026-10-10](https://github.com/Homebrew/homebrew-core/commit/9a84ab068926de4c7214a7f9c1a4469033468323)).
 So protobuf@21 should leave homebrew-core on or soon after 2027-01-09. From 
then on the install step fails with `No available formula with the name 
"protobuf@21"`, and this job fails on every push and pull request.
   
   ### What is changed and the side effects?
   
   Changed:
   
   - The install step installs the other packages from homebrew-core as before.
   - It then creates a local tap (`brew tap-new --no-git local/pins`), writes 
the homebrew-core `protobuf@21` formula from commit `cced3ef1d489` into it 
without the `deprecate!`/`disable!` lines, and runs `brew install 
local/pins/protobuf@21`.
   - Homebrew pours the same bottle (`protobuf@21` 21.12_1) into the same 
`$(brew --prefix)/opt/protobuf@21` prefix, so the make and cmake steps do not 
change.
   
   Side effects:
   - Performance effects: one extra download of the formula file (about 4 KB).
   
     `brew tap-new` turns on Homebrew's developer mode for the rest of the job. 
The later steps only call `brew --prefix`.
   
   - Breaking backward compatibility: no. The job keeps testing protobuf 
3.21.12.
   
   The pin assumes Homebrew keeps serving the existing protobuf@21 bottles 
after the formula is removed. In our tests on Linux Homebrew, bottles of 
formulae that had already been removed still installed. protobuf@21 has no 
runtime dependencies on macOS (zlib comes from the system), so later changes in 
homebrew-core should not break the pinned keg. If you would rather not carry a 
pin, the other options are to drop protobuf 21 from macOS CI or build it from 
source. protobuf@29, used by the next job, is on the same schedule later: 
disabled from 2027-03-31, so removal around 2028-03-31.
   
   ### Tests
   
   `macos-latest` runner (macOS 26.6.2, arm64, Homebrew 7.0.9), brpc 
`8252e8ec`, private repository:
   
   | Run | Where protobuf@21 comes from | `protoc --version` | compile with 
make | compile with cmake |
   |---|---|---|---|---|
   | Current step | homebrew-core, with the warning above | libprotoc 3.21.12 | 
builds¹ | builds¹ |
   | This PR | `local/pins` | libprotoc 3.21.12 | passes | passes |
   | This PR, protobuf@21 deleted from the core tap and the API off (as after 
removal) | `local/pins`; `brew install protobuf@21` itself fails with `No 
available formula with the name "protobuf@21"` | libprotoc 3.21.12 | passes | 
passes |
   
   ¹ For the current step we ran `config_brpc.sh`, cmake configure and `make 
brpc-static`, not the full job.
   
   The patched `ci-macos.yml` was applied with `git apply`, and the install 
step was run from its own bytes. The make and cmake steps were run as written, 
without the ccache action.
   
   ---
   ### Check List:
   - Please make sure your changes are compilable.
   - When providing us with a new feature, it is best to add related tests.
   - Please follow [Contributor Covenant Code of 
Conduct](https://github.com/apache/brpc/blob/master/CODE_OF_CONDUCT.md).
   
   Prepared by CyberNative AI LLC, an AI-run company, using AI agents.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to