{
 "number": 36574,
 "repo": "bitcoin/bitcoin",
 "url": "https://github.com/bitcoin/bitcoin/pull/36574",
 "title": "ci: Reword stale readme",
 "author": "maflcko",
 "author_association": "MEMBER",
 "created_at": "2026-10-19T09:50:30Z",
 "updated_at": "2026-10-29T09:38:01Z",
 "description_hash": "d0a14be57a931b44",
 "age_days": 13,
 "draft": false,
 "labels": [
  "Tests"
 ],
 "milestone": null,
 "base": "master",
 "head_sha": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
 "head_ref": "2610-2610-ci-readme",
 "head_repo": "maflcko/bitcoin-core",
 "head_history": [
  {
   "t": "2026-10-19T10:07:16Z",
   "sha": "faa4478b1ace658711ac66128e2916d467864ebf"
  },
  {
   "t": "2026-10-21T08:25:33Z",
   "sha": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a"
  }
 ],
 "additions": 26,
 "deletions": 16,
 "changed_files": 1,
 "commit_count": 3,
 "size_bucket": "S",
 "mergeable_state": "clean",
 "bot": {
  "drahtbot": {
   "present": true,
   "reviews": {},
   "conflicts": []
  }
 },
 "acks_parsed": {},
 "acks_tally": {
  "ack": 0,
  "stale_ack": 0,
  "concept_ack": 0,
  "approach_ack": 0,
  "nack": 0,
  "concept_nack": 0,
  "approach_nack": 0
 },
 "reviews": {
  "approved": 0,
  "changes_requested": 0,
  "distinct_reviewers": [
   "Hamza1610",
   "l0rinc"
  ]
 },
 "signals": {
  "needs_rebase": false,
  "ci_failed": false,
  "mergeable_state": "clean",
  "last_author_activity": "2026-10-22T12:23:37Z",
  "last_reviewer_activity": "2026-10-21T09:07:47Z",
  "last_reviewer": "l0rinc",
  "author_silent_days": 10,
  "waiting_on_author_days": 0,
  "days_since_update": 3
 },
 "refs": {
  "mentioned": [],
  "depends_on": [],
  "fixes": [],
  "linked_issues": [],
  "references": [],
  "conflicts": []
 },
 "stack": {
  "shares_commits_with": [],
  "based_on": [],
  "base_for": []
 },
 "review_paths": [
  "ci/README.md"
 ],
 "body": "The ci readme is a bit stale, so update it.",
 "commits": [
  {
   "sha": "fabc10bc596a9dd8727aef801c2b30d0c0ad1726",
   "date": "2026-10-19T10:03:33Z",
   "message": "ci: Update binfmt qemu note\n\nModern container engines ship QEMU by default. So installing\nqemu-user-static is not always needed.\n\nAlso, docker.io/multiarch/qemu-user-static hasn't been updated in years\nand the replacement according to the Docker docs is tonistiigi/binfmt."
  },
  {
   "sha": "fa5edac15817a34ccf988bb13e2af04e27d97435",
   "date": "2026-10-21T08:21:00Z",
   "message": "ci: Reword readme\n\n* Remove note that scripts are ordered. They are not:\n  02_run_container.py runs before 01_base_install.sh and some scripts\n  have no number: GetCMakeLogFiles.cmake, wrap-valgrind.py, ...\n* Clarify that the CI cache also covers container images and ccache."
  },
  {
   "sha": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "date": "2026-10-21T08:21:06Z",
   "message": "ci: Add a note on pinning dependencies"
  }
 ],
 "timeline": [
  {
   "t": "2026-10-19T10:07:16Z",
   "kind": "force_push",
   "who": "maflcko",
   "commit": "faa4478b1ace658711ac66128e2916d467864ebf",
   "id": "push:faa4478b1ace658711ac66128e2916d467864ebf"
  },
  {
   "t": "2026-10-20T16:59:21Z",
   "kind": "review_comment",
   "who": "l0rinc",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nI don't agree with this, but I won't block the change.\nThese are all valid statements, but it's not complete.\n\n[quoted text omitted]\nThey can also do the opposite silently update to a buggy version - we've seen this before, it's not theoretical.\n\n[quoted text omitted]\nSure, they don't fix every single thing that could go wrong, but when things do, it helps in narrowing down what caused the inconsistency.\n\n[quoted text omitted]\nI don't see how that's different from what we're doing now, we're already pinning some versions and commits and hashes, where is the threshold for \"sense of security\"?\nIn the same way as we're pinning C++ includes lately to reduce the number of moving parts, I would push towards pinning as much as we can in the externally controllable dependencies so that more changes are under our control - even if it won't ever be 100%. I don't like that each CI run is magically slightly different without notice...",
   "id": "rc:4327800240",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4327800240",
   "hash": "237c055f335305b8",
   "edited": null
  },
  {
   "t": "2026-10-20T17:14:26Z",
   "kind": "review",
   "who": "Hamza1610",
   "assoc": "NONE",
   "state": "COMMENTED",
   "commit": "faa4478b1ace658711ac66128e2916d467864ebf",
   "text": "Changes from `./depends` to `../depends` make sense if the reader understand that it's describing with relative to  the `ci/` directory. However some readers might think this is relative to the root directory of the project, because of commands like `./ci/test_run_all.sh` are run from the root . I would suggest you clarify on the path references.",
   "id": "r:5588813287",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#pullrequestreview-5588813287",
   "hash": "5d9af32a9548c99a",
   "edited": null
  },
  {
   "t": "2026-10-21T08:25:22Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": 4327800240,
   "text": "[quoted text omitted]\n\nI don't think this was ever seen in this CI. Do you mind providing a link where a buggy version lead to a CI bug that would have been prevented by a pin?\n\n[quoted text omitted]\nWe don't even consistently track stuff that goes wrong in internal test code. E.g. https://github.com/bitcoin/bitcoin/pull/35919#event-33782256873 silently re-runs an intermittent failure without reporting it.\n\nI don't mind pinning, but if someone wants to do it, they'll have to explain what the expectations are around the review effort required for the maintenance churn. Ideally with a real-world observable benefit (e.g. an instance in the past where it would have helped).\n\n[quoted text omitted]\nThose pins are not for security. They are to catch transport and storage errors.\n\n[quoted text omitted]\nThe CI should be robust to pass on diverse underlying hardware and software, and it has extended logging, so that if something goes wrong, one can trace the logs to find the exact difference that caused a different outcome.\n\n-----\n\nI don't feel too strongly here, so I am happy to drop this commit, but I think it can't hurt to explain the status-quo and it should be trivial to adjust or remove the doc in the future, if there is a rationale.",
   "id": "rc:4334596309",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4334596309",
   "hash": "a16fe8761b144550",
   "edited": null
  },
  {
   "t": "2026-10-21T08:25:33Z",
   "kind": "force_push",
   "who": "maflcko",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "id": "push:faebf98d5bbba0a6b85527f9d86650db7ef7e24a"
  },
  {
   "t": "2026-10-21T08:26:23Z",
   "kind": "comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nthx, dropped the change instead. Seems better to leave paths as-is.",
   "id": "c:6311529154",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#issuecomment-6311529154",
   "hash": "255c3229d02fff1a",
   "edited": null
  },
  {
   "t": "2026-10-21T08:39:12Z",
   "kind": "review_comment",
   "who": "l0rinc",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": 4327800240,
   "text": "[quoted text omitted]\n\nWhen the socket availability in the 32-bit Docker containers was suddenly changed in https://github.com/bitcoin/bitcoin/pull/35202\n\n[quoted text omitted]\nIt was a Windows timeout, see https://github.com/bitcoin/bitcoin/actions/runs/39458100061/job/118756715796\n\n[quoted text omitted]\nYes, but we should know what that software is, it shouldn't just change without notice.",
   "id": "rc:4334719481",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4334719481",
   "hash": "bc2218bf3a570826",
   "edited": null
  },
  {
   "t": "2026-10-21T08:50:48Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": 4327800240,
   "text": "[quoted text omitted]\n\ndocker isn't pinned and I don't think it can be pinned, as this is something the sysadmin provides and not the ci system. So I don't think this is relevant to pinning. In fact, it is a rationale *against* pinning, because that very docker update had a \"CVE fix\", so if docker were somehow pinned, users would continue running with the \"vulnerable\" docker, unless a bump was submitted and users backported that bump to all commit they are running the ci on.\n\nAgain, I don't mind pinning, but my preference would be:\n* to have a rationale for it, ideally with an applicable real-world example; and\n* to have a policy explained to minimize the review effort and maintenance churn.",
   "id": "rc:4334824769",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4334824769",
   "hash": "207fb8171378cb71",
   "edited": null
  },
  {
   "t": "2026-10-21T09:07:47Z",
   "kind": "review_comment",
   "who": "l0rinc",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": 4327800240,
   "text": "[quoted text omitted]\n\nNo, we would provide a PR to fix it, just like we did when it broke when third parties decided to push the changes to our CI - except that we wouldn't be spectators.",
   "id": "rc:4334978173",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4334978173",
   "hash": "55d846470f1b98a6",
   "edited": "2026-10-21T09:07:48Z"
  },
  {
   "t": "2026-10-22T12:23:37Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "ci/README.md",
   "commit": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
   "in_reply_to": 4327800240,
   "text": "[quoted text omitted]\n\nAgain, the docker container engine is not managed by this repo and it is impossible to manage here. It needs to be provided by the sysadmin, just like the `git` program needs to be provided by them to clone this repo.\n\nSo the docker issue 35202 is unrelated to pinning and the issue would happen again with or without pinning.",
   "id": "rc:4348252227",
   "url": "https://github.com/bitcoin/bitcoin/pull/36574#discussion_r4348252227",
   "hash": "06c528f0a2871d46",
   "edited": null
  }
 ],
 "labels_log": [
  {
   "t": "2026-10-19T09:50:35Z",
   "action": "labeled",
   "label": "Tests",
   "who": "DrahtBot"
  },
  {
   "t": "2026-10-19T10:08:47Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-10-19T11:01:57Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  }
 ],
 "state_log": [
  {
   "t": "2026-10-19T09:50:33Z",
   "kind": "renamed",
   "who": "DrahtBot",
   "from": " ci: Reword stale readme ",
   "to": "ci: Reword stale readme"
  }
 ],
 "text_chars": 4941,
 "text_tokens_estimate": 1235,
 "changed_paths": [
  "ci/README.md"
 ],
 "files": [
  {
   "path": "ci/README.md",
   "add": 26,
   "del": 16
  }
 ],
 "test_lines": 42,
 "git": {
  "head": "faebf98d5bbba0a6b85527f9d86650db7ef7e24a",
  "head_matches_backup": true,
  "base": "619334569b44b4278d0155bb8daf4c8535a47367",
  "patch_id": "da66066b8dba5f7a",
  "commits": [
   {
    "sha": "fabc10bc59",
    "subject": "ci: Update binfmt qemu note",
    "files": 1,
    "add": 9,
    "del": 9
   },
   {
    "sha": "fa5edac158",
    "subject": "ci: Reword readme",
    "files": 1,
    "add": 5,
    "del": 7
   },
   {
    "sha": "faebf98d5b",
    "subject": "ci: Add a note on pinning dependencies",
    "files": 1,
    "add": 12,
    "del": 0
   }
  ],
  "patch_truncated": false
 },
 "patch_id": "da66066b8dba5f7a",
 "input_hash": "b986bf4e03f1681e",
 "extracted_at": "2026-11-02T01:09:49+00:00"
}