On every release we provide compiler binaries via multiple channels. We are planning to deprecate some of them to reduce the maintenance burden. We would like to ask users, who would be affected by this to leave their feedback in this thread.
Official channels
The primary and recommended way of obtaining the compiler are static binaries, which are available as Github releases and, in a more organized way, in the solc-bin
repository. The content is also mirrored to external hosting, though we highly recommend getting them via IPFS instead to remove a centralization bottleneck and help us keep the costs of maintaining this free service reasonable.
As far as we are aware, most users obtain binaries for supported platforms indirectly from these sources, via their tools and frameworks.
There are also a few more niche, but official channels:
- A binary is always included in
solc
package we upload to NPM. - Linux packages in the
ethereum
Ubuntu PPA. - Docker images on
solc
DockerHub account. solidity.rb
formula on Homebrew.- We used to maintain custom formulas for a range of compiler versions as well, since Homebrew only provides the latest.
Unofficial channels
For completeness I’ll also mention other channels, which are or were maintained by the community:
solidity
andsolidity-bin
packages in Arch Linux User Repository.solc
on Snap (semi-official, no longer maintained)
Planned deprecations
Starting with the next version (0.8.31) we will no longer upload Linux packages to the ethereum
Ubuntu PPA. We’re somewhat forced to do this due to the project’s transition to Argot Collective, though we’d consider creating a new PPA if it turned out that it would see significant usage.
We would also like to eventually deprecate the Docker image, and the Homebrew formula as well.
We will probably keep providing the binary on NPM, though we might split it off into a separate package so that it can be omitted in use cases where releases are already downloaded from another source. This might be a breaking change.