doc: Improve dependencies.md #31895

pull NicolaLS wants to merge 3 commits into bitcoin:master from NicolaLS:doc-followup changing 1 files +32 −19
  1. NicolaLS commented at 1:29 pm on February 18, 2025: contributor

    Small improvements to the dependencies.md documentation as a follow-up for #31634.

    Linux Kernel does not need to be in the dependencies as it is not required for cross-compiling from other systems, and users building on Linux should not expect they can build using any EOL kernel, see: #31634 (review)

    Runtime dependencies can be in a separate table to improve readability. See: #31634 (comment)

    Version used is redundant as the depends package definition is already linked in the table and can thus be removed, see: #31895 (review)

  2. DrahtBot commented at 1:29 pm on February 18, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31895.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK maflcko, hebasto, jonatack
    Stale ACK hodlinator

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #32128 (Draft: CCoinMap Experiments by martinus)
    • #31802 (Add bitcoin-{node,gui} to release binaries for IPC by Sjors)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  3. DrahtBot added the label Docs on Feb 18, 2025
  4. NicolaLS commented at 2:14 pm on February 18, 2025: contributor
  5. in doc/dependencies.md:42 in ee4689f48d outdated
    57+| [Qt](../depends/packages/qt.mk) (gui) | [link](https://download.qt.io/official_releases/qt/) | [5.15.16](https://github.com/bitcoin/bitcoin/pull/30774) | [5.11.3](https://github.com/bitcoin/bitcoin/pull/24132) |
    58+| [ZeroMQ](../depends/packages/zeromq.mk) (notifications) | [link](https://github.com/zeromq/libzmq/releases) | [4.3.4](https://github.com/bitcoin/bitcoin/pull/23956) | 4.0.0 |
    59+| [Berkeley DB](../depends/packages/bdb.mk) (legacy wallet) | [link](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.30 | 4.8.x |
    60+| [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) |
    61+| Python (scripts, tests) | [link](https://www.python.org) | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) |
    62+| [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A |
    


    hodlinator commented at 4:04 pm on February 18, 2025:
    Might be so cheeky as to order these alphabetically? Also CMake/Boost at the top.

    NicolaLS commented at 4:34 pm on February 18, 2025:
    Sure :)

    NicolaLS commented at 4:44 pm on February 18, 2025:
    14c85a9b3753b40e8cf9f2808530fa922c8a3473 (Uppercase letters before lowercase letters)

    hodlinator commented at 6:44 pm on February 18, 2025:
    0â‚¿ touch A
    1â‚¿ touch a
    2â‚¿ ls [Aa]
    3a  A
    

    Doesn’t match GNU ls order.. but it does match ASCII order. :+1:


    hodlinator commented at 7:36 am on April 3, 2025:
    Sorry I lost track of this PR. Will try to get to reviewing after rebase, maybe not this week though.

    NicolaLS commented at 3:51 pm on April 3, 2025:
    no worries, thanks :) (rebased now)
  6. NicolaLS marked this as ready for review on Feb 18, 2025
  7. DrahtBot added the label Needs rebase on Apr 2, 2025
  8. NicolaLS force-pushed on Apr 3, 2025
  9. DrahtBot removed the label Needs rebase on Apr 3, 2025
  10. hodlinator approved
  11. hodlinator commented at 2:10 pm on April 7, 2025: contributor

    ACK f3d2e9acbf3d9407101290ca86f014e82344cfce

    Concept

    Separates build and runtime dependencies into separate tables which makes more sense.

    Nits

  12. NicolaLS force-pushed on Apr 8, 2025
  13. NicolaLS commented at 3:39 pm on April 8, 2025: contributor

    ACK f3d2e9a

    Concept

    Separates build and runtime dependencies into separate tables which makes more sense.

    Nits

    * Slight preference of using `### Build` over `**Build:**`, but it's subjective.
    
    * Maybe [32bdc7d](https://github.com/bitcoin/bitcoin/commit/32bdc7dc47bcd67458bc8f687fcf8659ec3f0b1e) could also include a link to https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/cmake.scm?id=53396a22afc04536ddf75d8f82ad2eafa5082725#n169 in the commit message, since it's a bit opaque otherwise?
    

    Thanks. Fixed both nits, I also think headlines are better.

  14. hodlinator approved
  15. hodlinator commented at 9:20 am on April 9, 2025: contributor

    re-ACK 8da43955376bde65fa517af462fd2a1514764d2b

    PR addresses feedback from at least 3 long-time contributors (see comment links in PR description).

    Changes: Addressed nits from first ACK.

    Nice bonus that one can now link directly to a specific sub-heading. https://github.com/bitcoin/bitcoin/blob/8da43955376bde65fa517af462fd2a1514764d2b/doc/dependencies.md#build-1

  16. in doc/dependencies.md:39 in 8da4395537 outdated
    52+### Build
    53+
    54+| Dependency | Releases | Version used | Minimum required |
    55+| --- | --- | --- | --- |
    56+| [Berkeley DB](../depends/packages/bdb.mk) (legacy wallet) | [link](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.30 | 4.8.x |
    57+| Python (scripts, tests) | [link](https://www.python.org) | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) |
    


    maflcko commented at 9:49 am on April 9, 2025:

    Not sure if “version used” is accurate here. As build dep, it is only used for macos in guix, so any version can be used. The version used is specified by guix.

    Similarly, as a runtime dep to run scripts or tests, any version can be used.


    fanquake commented at 9:59 am on April 9, 2025:
    Yep. This seems to be morphing from general documentation, to, “what happens to be used in Guix”, which isn’t necessarily relevant. Same for CMake, I don’t think version used should be listed here.

    NicolaLS commented at 6:48 pm on April 14, 2025:
    Agreed. Removed both commits (adding CMake version used/adding Python version used) and updated the PR description.
  17. NicolaLS force-pushed on Apr 14, 2025
  18. in doc/dependencies.md:23 in fefe8fc3c3 outdated
    18@@ -19,8 +19,8 @@ Bitcoin Core requires one of the following compilers.
    19 
    20 | Dependency | Releases | Version used | Minimum required |
    21 | --- | --- | --- | --- |
    22-| CMake | [link](https://cmake.org/) | N/A | [3.22](https://github.com/bitcoin/bitcoin/pull/30454) |
    23 | [Boost](../depends/packages/boost.mk) | [link](https://www.boost.org/users/download/) | [1.81.0](https://github.com/bitcoin/bitcoin/pull/26557) | [1.73.0](https://github.com/bitcoin/bitcoin/pull/29066) |
    24+| CMake | [link](https://cmake.org/) | [3.24.2](https://github.com/bitcoin/bitcoin/pull/30730) | [3.22](https://github.com/bitcoin/bitcoin/pull/30454) |
    


    jonatack commented at 7:37 pm on April 18, 2025:
    In commit fefe8fc3c38701bdc3a3b1c6e4d0c8885f94e75f ISTM the CMake entry shouldn’t change in this commit, apart from ordering alphabetically (why does it change here)

    NicolaLS commented at 0:55 am on April 20, 2025:
    ah yes messed up the rebase..fixed now.
  19. in doc/dependencies.md:4 in fefe8fc3c3 outdated
    0@@ -1,8 +1,8 @@
    1 # Dependencies
    2 
    3 These are the dependencies used by Bitcoin Core.
    4-You can find installation instructions in the `build-*.md` file for your platform.
    5-"Runtime" and "Version Used" are both in reference to the release binaries.
    6+You can find installation instructions in the `build-*.md` file for your platform, or self-compile
    


    jonatack commented at 7:40 pm on April 18, 2025:

    In commit 0a6547d26b570625922478e7e993ad1c97ec3ab4 maybe reference from root while touching this line in this commit (feel free to ignore)

    0You can find installation instructions in the `/doc/build-*.md` file for your platform, or self-compile
    

    NicolaLS commented at 0:56 am on April 20, 2025:
    good idea, changed it.
  20. jonatack commented at 7:43 pm on April 18, 2025: member

    Swung by here a couple times previously and this pull is looking better now.

    ACK fefe8fc3c38701bdc3a3b1c6e4d0c8885f94e75f modulo question below

  21. DrahtBot requested review from hodlinator on Apr 18, 2025
  22. NicolaLS force-pushed on Apr 20, 2025
  23. jonatack commented at 11:01 pm on April 25, 2025: member
    ACK 4b6171982a20d736b2c627ab9b7ea788b06af457
  24. hodlinator approved
  25. hodlinator commented at 8:40 pm on April 26, 2025: contributor

    re-ACK 4b6171982a20d736b2c627ab9b7ea788b06af457

    Changes since previous ACK: Addressed feedback (https://github.com/bitcoin/bitcoin/pull/31895#discussion_r2035011528 #31895 (review)).

  26. in doc/dependencies.md:43 in 4b6171982a outdated
    57+| Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) |
    58+| [Qt](../depends/packages/qt.mk) (gui) | [link](https://download.qt.io/archive/qt/) | [6.7.3](https://github.com/bitcoin/bitcoin/pull/30997) | [6.2](https://github.com/bitcoin/bitcoin/pull/30997) |
    59+| [qrencode](../depends/packages/qrencode.mk) (gui) | [link](https://fukuchi.org/works/qrencode/) | [4.1.1](https://github.com/bitcoin/bitcoin/pull/27312) | N/A |
    60+| [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) |
    61+| [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A |
    62+| [ZeroMQ](../depends/packages/zeromq.mk) (notifications) | [link](https://github.com/zeromq/libzmq/releases) | [4.3.4](https://github.com/bitcoin/bitcoin/pull/23956) | 4.0.0 |
    


    fanquake commented at 9:20 am on April 28, 2025:
    Can you update zmq version used to 4.3.5 (https://github.com/bitcoin/bitcoin/pull/28627).

    maflcko commented at 10:14 am on April 28, 2025:

    Is there any value in documenting the version used twice with the additional maintenance overhead and risk of it being stale? The depends package definition is already linked, so anyone can get the real version with just one more click/open. If they want to find out the pull request/commit it will be just another step (git blame).

    Could consider removing it?


    NicolaLS commented at 9:37 pm on April 29, 2025:

    Is there any value in documenting the version used twice with the additional maintenance overhead and risk of it being stale? The depends package definition is already linked, so anyone can get the real version with just one more click/open. If they want to find out the pull request/commit it will be just another step (git blame).

    Could consider removing it?

    I absolutely agree, I can add a commit to remove the “Version used” column from all tables if everyone is fine with this.


    jonatack commented at 8:18 pm on May 5, 2025:
    I don’t have a strong opinion on removing the versions here; either way can probably have just one commit, e.g. “update dependency versions” or “remove versions”

    hodlinator commented at 8:55 pm on May 5, 2025:

    I don’t have a strong opinion on removing the versions here; either way can probably have just one commit, e.g. “update dependency versions” or “remove versions”

    +1


    NicolaLS commented at 6:13 pm on May 7, 2025:

    Removed the sqlite/zmq update commits in favor of new: cb623692a6089c39560a637a2bf064d54aebb4d4

    See #31895 (comment)


    hodlinator commented at 2:17 pm on May 8, 2025:
    nit: Feels weird to remove “Version used” column for runtime dependencies as part of the second commit (splitting build/runtime dependencies), but keeping them for buildtime dependencies until the end.

    NicolaLS commented at 7:21 pm on May 13, 2025:
    True. I guess I could squash everything into one commit doc: Improve dependencies.md and list everything in commit description? wdyt.

    maflcko commented at 7:24 pm on May 13, 2025:
    Yeah, seems fine to squash

    hodlinator commented at 7:28 pm on May 13, 2025:
    I’d keep the removal of the Linux Kernel and addition of self-compilation info as separate commits and merge the other 3 into 1 - leaving 3 remaining commits. But squashing all is fine too.
  27. in doc/dependencies.md:41 in 4b6171982a outdated
    55+| --- | --- | --- | --- |
    56+| [Berkeley DB](../depends/packages/bdb.mk) (legacy wallet) | [link](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.30 | 4.8.x |
    57+| Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) |
    58+| [Qt](../depends/packages/qt.mk) (gui) | [link](https://download.qt.io/archive/qt/) | [6.7.3](https://github.com/bitcoin/bitcoin/pull/30997) | [6.2](https://github.com/bitcoin/bitcoin/pull/30997) |
    59+| [qrencode](../depends/packages/qrencode.mk) (gui) | [link](https://fukuchi.org/works/qrencode/) | [4.1.1](https://github.com/bitcoin/bitcoin/pull/27312) | N/A |
    60+| [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) |
    


    fanquake commented at 9:21 am on April 28, 2025:
    Can you update sqlite version used to 3.46.1 (#29991).
  28. DrahtBot added the label Needs rebase on May 7, 2025
  29. NicolaLS force-pushed on May 7, 2025
  30. NicolaLS referenced this in commit f13c6542df on May 7, 2025
  31. NicolaLS referenced this in commit cb623692a6 on May 7, 2025
  32. NicolaLS force-pushed on May 7, 2025
  33. NicolaLS commented at 6:05 pm on May 7, 2025: contributor

    Rebased and dropped the two commits that bumped sqlite/zmq in favor of removing the “Version used” column from the tables entirely (see cb623692a6089c39560a637a2bf064d54aebb4d4). (Also updated the PR description)

    This commit also removed “Version Used” refers to the release binaries. not sure if this should get replaced with something else ? (not necessary imo.)

  34. DrahtBot removed the label Needs rebase on May 7, 2025
  35. hodlinator approved
  36. hodlinator commented at 2:28 pm on May 8, 2025: contributor

    re-ACK cb623692a6089c39560a637a2bf064d54aebb4d4

    Changes since previous ACK:

    • Rebased after BDB dependency removal.
    • Removed remaining “Version used” columns based off #31895 (review).
  37. DrahtBot requested review from jonatack on May 8, 2025
  38. NicolaLS referenced this in commit d68a5bd3e4 on May 15, 2025
  39. NicolaLS force-pushed on May 15, 2025
  40. NicolaLS referenced this in commit 810916f30a on May 15, 2025
  41. NicolaLS force-pushed on May 15, 2025
  42. NicolaLS commented at 1:35 pm on May 15, 2025: contributor
    Squashed and reworded commits.
  43. doc: Remove Linux Kernel from dep. table
    Linux Kernel is neither an optional nor a required dependency for
    Bitcoin Core.
    d1fdc84c54
  44. doc: Add dependency self-compilation info
    The `dependencies.md` should mention that it is possible to self-compile
    the dependencies and reference `depends/README.md` for instructions.
    Also mention full path to `/doc/build-*.md` for clarity.
    a3520f9d56
  45. doc: Improve dependencies.md documentation
    - Remove the "Version used" column from the dependencies tables as the
      depends package definition which defines the version used is already
      linked. In case a developer is interested in which PR introduced this
      file/version they can use `git blame` on the package definition as
      usual. This removes doc. maintenance overhead and eliminates the risk
      of stale information about the "Version used", see comment:
      https://github.com/bitcoin/bitcoin/pull/31895#discussion_r2063356972
    
    - Separate dependency tables into build-time and run-time tables for
      easier distinction of the two and to avoid repeating the same
      information ("No"/"Yes") for better readability.
    
    - Order dependencies alphabetically
    e62423d6f1
  46. NicolaLS force-pushed on May 15, 2025
  47. NicolaLS commented at 2:09 pm on May 15, 2025: contributor
    (fixed typo in commit message)
  48. maflcko commented at 3:02 pm on May 15, 2025: member

    lgtm ACK e62423d6f1514b022155edb5bc930cecc4236731 🛄

    Signature:

    0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
    1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
    2trusted comment: lgtm ACK e62423d6f1514b022155edb5bc930cecc4236731 🛄
    3N/8vnAtKiknzcPjLx34qQXyWw6WJR2IMUqKEaXbtLLNH3EKd5p9Dl4+O+mFpfYxiJ6PAt6UHjD6BQ98pJvBgCg==
    
  49. DrahtBot requested review from hodlinator on May 15, 2025
  50. in doc/dependencies.md:23 in e62423d6f1
    25+### Build
    26+
    27+| Dependency | Releases | Minimum required |
    28+| --- | --- | --- |
    29+| [Boost](../depends/packages/boost.mk) | [link](https://www.boost.org/users/download/) | [1.73.0](https://github.com/bitcoin/bitcoin/pull/29066) |
    30+| CMake | [link](https://cmake.org/) | [3.22](https://github.com/bitcoin/bitcoin/pull/30454) |
    


    hebasto commented at 3:17 pm on May 15, 2025:

    nit:

    0| CMake | [link](https://cmake.org/download/) | [3.22](https://github.com/bitcoin/bitcoin/pull/30454) |
    

    fanquake commented at 3:26 pm on May 15, 2025:
    Anything here seems fine, we don’t link to https://sqlite.org/download.html or https://freetype.org/download.html.

    hebasto commented at 3:43 pm on May 15, 2025:

    Anything here seems fine, we don’t link to https://sqlite.org/download.html or https://freetype.org/download.html.

    But we do link to https://www.boost.org/users/download/ and https://github.com/libevent/libevent/releases.

    I’ve ACKed the current branch and am content with it as is.

  51. in doc/dependencies.md:50 in e62423d6f1
    62+### Runtime
    63+
    64+| Dependency | Releases | Minimum required |
    65+| --- | --- | --- |
    66+| [Fontconfig](../depends/packages/fontconfig.mk) (gui) | [link](https://www.freedesktop.org/wiki/Software/fontconfig/) | 2.6 |
    67+| [FreeType](../depends/packages/freetype.mk) (gui) | [link](https://freetype.org) | 2.3.0 |
    


    hebasto commented at 3:18 pm on May 15, 2025:

    nit: From #30997#issue-2554496391:

    Starting with Qt 6.5.0, the libxcb-cursor0 package is required to be installed at runtime.


    maflcko commented at 3:29 pm on May 15, 2025:
    I don’t any x11 packages are listed here, so it seems unrelated?

    hebasto commented at 3:44 pm on May 15, 2025:
    It was a nit. I am OK with the current branch.
  52. hebasto approved
  53. hebasto commented at 3:18 pm on May 15, 2025: member
    ACK e62423d6f1514b022155edb5bc930cecc4236731.
  54. jonatack commented at 3:41 pm on May 15, 2025: member
    ACK e62423d6f1514b022155edb5bc930cecc4236731
  55. fanquake merged this on May 15, 2025
  56. fanquake closed this on May 15, 2025


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-05-30 00:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me