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

Depending on strict versions of libraries to build the compiler results in packaging issues #15137

Open
cameel opened this issue May 23, 2024 · 1 comment
Labels
build system 🏗️ low effort There is not much implementation work to be done. The task is very easy or tiny. low impact Changes are not very noticeable or potential benefits are limited. must have Something we consider an essential part of Solidity 1.0.
Milestone

Comments

@cameel
Copy link
Member

cameel commented May 23, 2024

Currently our build system requires specific versions of several smaller libraries we depend on, namely:

  • fmtlib 9.1.0
  • nlohmann-json 3.11.3
  • range-v3 0.12.0

We only ever build and test with those specific versions and update them only sporadically. This means that we won't easily detect issues stemming from someone building with different versions. It's only in this release that we added CMake options that allow using versions available in the system (#14860) and even then the options are undocumented and not officially supported.

This has recently became an issue because Homebrew started enforcing a policy that prevents us from downloading those dependencies at build time (Homebrew/homebrew-core#172338). Since we don't include them in the source archive, the only choice we had for now was to start relying on versions provided by Homebrew, which are different than those expect. We need to address the issue more robustly:

@cameel cameel added build system 🏗️ low effort There is not much implementation work to be done. The task is very easy or tiny. low impact Changes are not very noticeable or potential benefits are limited. labels May 23, 2024
@cameel cameel added this to the 0.8.27 milestone May 23, 2024
@cameel cameel added the must have Something we consider an essential part of Solidity 1.0. label May 23, 2024
@cameel
Copy link
Member Author

cameel commented May 27, 2024

Decision from the call today: we got with submodules and we'll include source of dependencies in the source archive.

This way the problem in Homebrew won't repeat in 0.8.27. For 0.8.26 we should ask Homebrew maintainers to allow us to use HOMEBREW_ALLOW_FETCHCONTENT just for that version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build system 🏗️ low effort There is not much implementation work to be done. The task is very easy or tiny. low impact Changes are not very noticeable or potential benefits are limited. must have Something we consider an essential part of Solidity 1.0.
Projects
Development

No branches or pull requests

1 participant