ethereum / solidity

Solidity, the Smart Contract Programming Language
https://soliditylang.org
GNU General Public License v3.0
22.94k stars 5.68k forks source link

Add pre-release/nightly builds inside the list of static binaries #13015

Open Neurone opened 2 years ago

Neurone commented 2 years ago

Abstract

Add pre-release/nightly builds inside the list of solidity static binaries.

Motivation

Following the official documentation (https://docs.soliditylang.org/en/latest/installing-solidity.html#static-binaries), suggested static binaries can be listed from https://binaries.soliditylang.org/emscripten-wasm32/list.json, with https://binaries.soliditylang.org/emscripten-asmjs/list.json as a fallback.

Those lists don't include nightly builds, as the old and deprecated URLs do (i.e., https://ethereum.github.io/solc-bin/bin/list.json)

External tools require listing nightly and release builds (i.e., Truffle: https://github.com/trufflesuite/truffle/pull/5008), so currently, the only way to do it is to link old and deprecated URLs.

We want to have pre-release/nightly builds inside the list of solidity static binaries.

Specification

Following a discussion with @cameel (https://github.com/trufflesuite/truffle/pull/5008), we can keep the current folder and list.json, and we can create a subfolder with all builds (release and nightly) and another list.json listing all versions.

The final result would be something like this:

Backwards Compatibility

Because we are adding a new subfolder, no one will be affected by this update. Developers can update their tools progressively to point to the new subfolder/list at their own pace and needs.

cameel commented 2 years ago

I talked briefly about it with @ekpyron and we do not see any big reasons not to do it other than the fact that having huge dirs in a git repo makes them hard to browse. I think that most users do not go the directly though and creating a subdirectory would alleviate that problem.

I'd rather just create a subdir specifically for nightlies though. I think that having things duplicated too many times in the structure can be really confusing. We already have a lot of symlinks going back and forth. I think structure should be this:

@chriseth What do you think about this?

cameel commented 2 years ago

Another idea: we could put nightlies in a subdir but keep a single list.json.

The only problem is that on the list you'd now have paths rather than just file names. Clients assuming filenames would have problems. But I think that we're still at the point where tools are transitioning to emscripten-wasm32/ and emscripten-asmjs/ and most still use bin/ and wasm/ so we can be flexible with the new dirs.

eggplantzzz commented 2 years ago

Hey @cameel, is there any news on decisions that have been made regarding this? Thanks!

github-actions[bot] commented 1 year ago

This issue has been marked as stale due to inactivity for the last 90 days. It will be automatically closed in 7 days.