Conversation
|
🤖 An automated task has requested bottles to be published to this PR. |
|
Needs rebase after #138921 |
Formula/astgen.rb
Outdated
There was a problem hiding this comment.
CC @Homebrew/brew
It seems that we no longer have an all bottle. I suspect it's related to sharding?
There was a problem hiding this comment.
@ZhongRuoyu not sure what's happening here. @carlocab may have an idea. doubt sharding is to blame as the checksums are the same and the repo is the same. we've only recently fixed the previously broken all bottle situation Homebrew/brew#15819
There was a problem hiding this comment.
Can't tell of the top of my head, but I'll have a look.
There was a problem hiding this comment.
Generating an :all bottle comes from the logic here:
all_bottle = !args.no_all_checks? &&
(!old_bottle_spec_matches || bottle.rebuild != old_bottle_spec.rebuild) &&
tag_hashes.count > 1 &&
tag_hashes.uniq { |tag_hash| "#{tag_hash["cellar"]}-#{tag_hash["sha256"]}" }.count == 1Running
brew bottle \
--merge \
--write \
--verbose \
--debug \
astgen--3.4.0.x86_64_linux.bottle.json \
astgen--3.4.0.ventura.bottle.json \
astgen--3.4.0.arm64_ventura.bottle.json \
astgen--3.4.0.monterey.bottle.json \
astgen--3.4.0.big_sur.bottle.json \
astgen--3.4.0.arm64_monterey.bottle.json \
astgen--3.4.0.arm64_big_sur.bottle.json
which is the command that brew pr-pull uses to generate the bottle block (via brew pr-upload) has all_bottle evaluating to false for some reason. The bit that is making all_bottle evaluate this way is
(!old_bottle_spec_matches || bottle.rebuild != old_bottle_spec.rebuild)(the other conditions are true).
I'm still working out what this condition is meant to check for, but it seems to be wrong for this formula for some reason.
There was a problem hiding this comment.
That line is to make sure new dispatched keep-old bottles (i.e. bottles that don't trigger a new version or a rebuild) don't add an all bottle.
Part of that condition (see old_bottle_spec_matches) is a pkg_version comparison. So if that's not evaluating, then that must mean the "old bottle spec" we are loading isn't actually the old bottle spec. (This doesn't happen with new formulae, because new formulae don't have a bottle block at all.)
The problem is because of sharding, but probably wouldn't have happened with a history rewrite. Basically FormulaVersions works based on paths, so the formula before the sharding move is not recognised as the same formula as a formula after the sharding move.
brew update-report has similar issues, but in separate code.
There was a problem hiding this comment.
That line is to make sure new dispatched keep-old bottles
Shouldn't it check for --keep-old then?
There was a problem hiding this comment.
Shouldn't it check for
--keep-oldthen?
Maybe, but there's also several other things we use old_bottle_spec for that's equally broken.
There was a problem hiding this comment.
Thanks @Bo98 and @carlocab! @Bo98 could you open issue(s) for this?
Poorly written and not really following the template properly but here it is: Homebrew/brew#15856 (please edit it to clean it up where needed)
3f40a75 to
907e126
Compare
This comment was marked as resolved.
This comment was marked as resolved.
|
Let's merge this now and see if rebottling will help. |
|
Rebottling seems to have helped. Checksum didn't even change: c940d78 |
|
Yeah the issue will only happen for the first bottle post-sharding move. |
Created by
brew bumpCreated with
brew bump-formula-pr.Details
release notes