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

resolc binary releases #93

Open
xermicus opened this issue Oct 18, 2024 · 7 comments
Open

resolc binary releases #93

xermicus opened this issue Oct 18, 2024 · 7 comments
Labels

Comments

@xermicus
Copy link
Member

We need to release binary version of the resolc Solidity frontend executable for Linux, MacOS and Windows.

Since there are many ways people can and do manage their solc binaries (e.g. download from GH release, use you distro package manager, npm install something, ...), I think our best bet is to have binary releases so tooling can support it.

For the linux binary see #45

@athei
Copy link
Member

athei commented Oct 18, 2024

What we should release are the following artifacts:

For Production

  • alpine linux docker container with musl statically linked resolc and a fixed solc version in it
    • We might later ship multiple versions of solc in this container

For Dev

  • resolc for x64 linux (same binary as in the docker)
  • resolc universal binary for macOS
  • resolc for 64bit windows

This should be accomplished as github actions that build those artifacts if a new tag is created and then create a new draft release. There is an existing release pipeline that is triggered on demand and creates a glibc linked version. This should be replaced by the new one.

@xermicus
Copy link
Member Author

This is how zksolc builds LLVM. This should be close to what we need to do. We can also have a different repository with dedicated workflows for LLVM build releases.

@xermicus xermicus mentioned this issue Oct 25, 2024
@xermicus xermicus added this to the Initial release milestone Oct 25, 2024
@xermicus xermicus self-assigned this Jan 6, 2025
@xermicus
Copy link
Member Author

Update: Depends on #86

Regarding the alpine release, see the example Dockerfile introduced in #154.

@xermicus xermicus removed their assignment Jan 13, 2025
@xermicus xermicus added the CI label Jan 13, 2025
@xermicus
Copy link
Member Author

xermicus commented Jan 22, 2025

@athei correct me if I'm wrong but since the requirements for that Docker image aren't exactly clear yet, for now we will release:

  • Linux (MUSL only, there is no GNU solc executable release neither)
  • Windows
  • MacOS (universal)
  • Wasm32 (emscripten)

We have figured out the MUSL build anyways so building such a Docker image will be trivial once the requirements are clear.

@mutantcornholio
Copy link

And as for LLVM, we need:

  • linux-gnu
  • macos-gnu
  • windows-gnu
  • emscripten
  • musl

@athei
Copy link
Member

athei commented Jan 22, 2025

@xermicus Yes correct. Let's skip docker for now.

@mutantcornholio I don't understand your list. Why should it be any different from what Cyrill just listed?

linux-gnu

Didn't we just agree that we use only the musl clib on Linux?

macos-gnu

There is no such thing AFAIK.

windows-gnu

You mean mingw? Why not use the msvc toolchain?

musl

Thats just a name of a clib.

@xermicus
Copy link
Member Author

xermicus commented Jan 22, 2025

@xermicus Yes correct. Let's skip docker for now.

@mutantcornholio I don't understand your list. Why should it be any different from what Cyrill just listed?

linux-gnu

Didn't we just agree that we use only the musl clib on Linux?

macos-gnu

There is no such thing AFAIK.

windows-gnu

You mean mingw? Why not use the msvc toolchain?

musl

Thats just a name of a clib.

FYI the list @mutantcornholio posted there is the LLVM build artifacts that will be released.

GNU is just the default (maybe msvc would be more appropriate for win). So we will release the LLVM builds for native compilation and the LLVM builds for cross-compilation.

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

No branches or pull requests

3 participants