Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS binaries with correct version strings #76

Merged
merged 49 commits into from
Mar 12, 2021

Conversation

cameel
Copy link
Member

@cameel cameel commented Dec 22, 2020

PR branch based on #77. Don't merge until that PR is merged! It's on gh-pages now.
Fixes ethereum/solidity#10183.

This PR contains macOS binaries in versions between 0.3.6 and 0.6.0 rebuilt with the change from #75. This fixes the discrepancy in the generated bytecode.

Old binaries are preserved in macosx-amd64/retired-rebuilds-with-version-discrepancy/. I'm not sure if it's worth keeping them. They do let people verify stuff they have already built using them but hopefully not many people were affected by that - macOS binaries were added only very recently.

@cameel cameel self-assigned this Dec 22, 2020
@cameel
Copy link
Member Author

cameel commented Dec 22, 2020

EDIT 2021-01-24: This comment is now out of date. See updated details further down.

Current status of the bytecode comparison (from #77, which is still WIP): https://github.com/cameel/solc-bin/pull/1/checks?check_run_id=1594500955

Here's the relevant part of the output: bytecode-comparison-2020-12-22.txt

There are still 13 versions with differences (and 0.4.11 which was skipped in this run). From what I've seen so far, it's likely that prepare_report.py just needs more workarounds for the older compilers but we'll see.

I have already detected one binary with bytecode differences, though it's a Linux one: solc-linux-amd64-v0.4.10+commit.f0d539ae actually identifies itself as solc-linux-amd64-v0.4.10+commit.f0d539ae.

@cameel cameel changed the base branch from fix-version-string-in-macosx-build-action to gh-pages January 23, 2021 22:22
@cameel cameel force-pushed the macosx-binaries-with-correct-version branch from d3fdec3 to cc799d2 Compare January 23, 2021 23:24
@cameel cameel changed the base branch from gh-pages to bytecode-comparison-pr-check January 23, 2021 23:39
@cameel cameel force-pushed the macosx-binaries-with-correct-version branch from cc799d2 to 8a883c1 Compare January 24, 2021 00:24
@cameel cameel force-pushed the bytecode-comparison-pr-check branch from 067f4c3 to 7864ece Compare January 24, 2021 00:36
@cameel cameel force-pushed the macosx-binaries-with-correct-version branch 3 times, most recently from d2809be to a35db5a Compare January 25, 2021 09:35
@cameel
Copy link
Member Author

cameel commented Jan 25, 2021

I'm done verifying the binaries. Unfortunately there are a few versions with problems that prevent the PR check from #77 from passing. This is, however, all caused by factors other than the macOS rebuild - bytecode differences from binaries on other platforms and macOS differences that can't really be fixed. See below for details.

Report differences

In all other cases the reports are identical on all platforms (except Windows which I could not check). Here's the most relevant part of the output of the last run of the compare job if you want to see the details: bytecode-comparison-2021-01-25.txt.

To make sure the binaries I did not replace are fine too, I have created a PR in my fork that touched all the binaries to force a CI run covering all of them. Here are the results: bytecode-comparison-all-2021-01-25.txt. There are no extra differences.

@cameel
Copy link
Member Author

cameel commented Jan 25, 2021

Also, I decided not to leave the buggy builds in a subdirectory. They should not be used in normal circumstances and they're still available in repo history in case anyone needs them for verification anyway. I have created a tag to make finding them easier: macosx-binaries-reporting-wrong-versions.

@cameel
Copy link
Member Author

cameel commented Jan 25, 2021

We have decided to close ethereum/solidity#10841 and leave the 0.4.7 and 0.4.8 binaries in the repo.

In that case should I hard-code the PR check to skip these versions? This is an option but it might also be misleading (by not being apparent that they were skipped) and we're not likely to modify these binaries in the future anyway.

@cameel cameel force-pushed the bytecode-comparison-pr-check branch from 805d84a to 78924d7 Compare February 4, 2021 10:50
@cameel cameel force-pushed the macosx-binaries-with-correct-version branch from a35db5a to 20505ff Compare February 4, 2021 10:50
Base automatically changed from bytecode-comparison-pr-check to gh-pages February 4, 2021 11:05
@cameel cameel marked this pull request as ready for review February 4, 2021 11:09
@cameel cameel force-pushed the macosx-binaries-with-correct-version branch from 20505ff to af2b12e Compare March 9, 2021 16:23
@cameel
Copy link
Member Author

cameel commented Mar 9, 2021

Rebased on gh-pages with conflicts resolved.
Let's make sure it passes the checks though.

@axic
Copy link
Member

axic commented Jul 13, 2021

Did we end up releasing the blog post about these?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants