Skip to content

Conversation

@ggleyzer
Copy link
Collaborator

As suggested by Claude :)

The homebrew checksum mismatch occurred because the XDK distribution zip file was updated to include the new xtc launcher script, which changed its SHA-256 checksum. The updated artifact was published to GitHub Releases, but the homebrew formula in the xtclang/homebrew-xvm tap still contained the old checksum because the homebrew-update.yml workflow wasn't automatically triggered after snapshot publishing—it only ran on manual invocation. This created a situation where the GitHub Release had the new zip file, but the homebrew formula still validated against the old checksum. When users ran brew install xdk-latest, Homebrew downloaded the new zip but compared it against the outdated checksum in their cached formula, causing the installation to fail with "Formula reports different checksum".

This fix adds an automatic trigger to publish-snapshot.yml that invokes homebrew-update.yml immediately after publishing to GitHub Releases, ensuring the formula checksum is atomically updated whenever the artifact changes, allowing users to seamlessly upgrade with standard brew upgrade command.

@ggleyzer ggleyzer requested a review from lagergren December 20, 2025 21:55
Copy link
Contributor

@lagergren lagergren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not, as far as I can tell, correct. See the attached claude conversion in the chat and the other PR. The snapshot artifact is a new and correctly resolved zip artifact for all pulibhsing jobs. The publishing jobs all depend on it as input (it is the output of publish-snapshot.yml). The reason that you have to do upgrade is that we have made a change to the rb formula. This is not something that brew detects, because it is caching. It should just work with brew upgrade && brew update, and not have to reinstall the tap. If it doesn't that is some kind of home-brew limitation, but you are not solving the problem with this code.

In order for you to know if the code solves the problem, you would have to change the rb formula, commit the new formula (and it has to be semantic changes, white space does not count). Can probably be done as part of this branch. Then you trigger the manual dispatch for this branch to publish artifacts even though it is not master. Then you can verify if it is broken if you do whatever update you did, and if brew upgrade && brew update is not, which should be the case according to how homebrew documents its cache.

The home brew update is in its own yml file. It should definitely not run as part of the publish snapshots job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants