gromgit / homebrew-core-mojave

Experimental Homebrew support for deprecated macOS Mojave.
BSD 2-Clause "Simplified" License
20 stars 3 forks source link

`brew uses --recursive` with your tap is producing a `stack level too deep` #9

Open ipatch opened 1 year ago

ipatch commented 1 year ago

hello again šŸŒŠ,

i use your tap for the bottle mainly when using the github ci runner ie a self-hosted runner i have setup running mojave for the homebrew-freecad tap. i also have a catalina & a big sur vm's setup on the same box as self-hosted runners for the freecad tap to aid in building bottles for the freecad tap.

basically on the mojave box (vm, self-hosted runner) when i use your tap (ie. this repo) and i run the below command after tapping the freecad tap,

brew tap freecad/freecad

the command that is causing the stack level too deep

brew uses --formula --eval-all --include-test --recursive freecad/freecad/med-file@4.1.1

it seems brew test-bot uses that command for testing the creation of a bottle, and unfortunately as of right this is causing an error.

i setup a new user on the box with a fresh homebrew install following the installation steps from brew.sh and left the original homebrew-core tap unchanged, then tapped the freecad tap, and then ran the above cmd, and did not get the stack level too deep error message.

once i changed the remote for the homebrew-core to this tap and then ran the above command the above error happens.

i'll see if i can copy/paste the entire stacktrace into an additional github comment below.

as always thank you for this tap, i know personally as a tap maintainer how much work goes into keeping things up to date.

Verification

What were you trying to do (and why)?

brew uses --formula --eval-all --include-test --recursive freecad/freecad/med-file@4.1.1

What happened (include all command output)?

stack level too deep

What did you expect to happen?

no errors, stacktraces to be reported

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

fresh install of homebrew, following the guide from brew.sh

then follow the steps in this repos github readme to use this fork of homebrew-core

then tap the homebrew-freecad tap

brew tap freecad/freecad

run the below command, ie. brew test-bot uses this command for the ci

brew uses --formula --eval-all --include-test --recursive freecad/freecad/med-file@4.1.1
ipatch commented 1 year ago

https://github.com/FreeCAD/homebrew-freecad/actions/runs/3737189355/jobs/6357290707#step:17:571

ipatch commented 1 year ago

https://gist.github.com/ipatch/981c600b849c4292e47506cf0f8d9485

gromgit commented 1 year ago

Sorry about that, but there's no easy solution for this. I currently snapshot the upstream core on a regular basis, then try to build the changed formulae one at a time, uploading and committing the changes as I go along. Rinse and repeat.

In hindsight, that doesn't quite work when there are build failures in between, and failure to keep key formulae like node up-to-date has a nasty rippling effect across the repo. In particular, the LLVM C++ standard library took a large leap between Mojave and Catalina, which is why you see quite a few depends_on macos: :catalina stanzas in upstream core, not a few of which were added by me.

Bottom line: the current repo is a Frankenstein's monster of dependency relationships, which is the likely explanation for your symptoms.

As it stands, I'm seriously considering shutting down this project soon, as I haven't used Mojave in any meaningful way in over a year, and taking up way too much of my time to justify much longer. Will have to ponder how best to proceed.