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
solcpackage we upload to NPM. - Linux packages in the
ethereumUbuntu PPA. - Docker images on
solcDockerHub account. solidity.rbformula 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:
solidityandsolidity-binpackages in Arch Linux User Repository.solcon 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.