Split repository into master (library source) and support (CI, docs, examples) branches.#287
Open
ryanofsky wants to merge 5 commits into
Open
Split repository into master (library source) and support (CI, docs, examples) branches.#287ryanofsky wants to merge 5 commits into
master (library source) and support (CI, docs, examples) branches.#287ryanofsky wants to merge 5 commits into
Conversation
clientDestroy() reads m_context.connection to decide whether to use MP_LOG vs KJ_LOG, but Connection::~Connection() can set it to null concurrently from the event loop thread (via the disconnect_cb sync cleanup callback) while the destructor runs on an async cleanup thread, causing a TSan-reported data race. The race is exposed by the test added in commit 90be835 ("test: regression for ~ProxyClient destroy after peer disconnect"). The KJ_LOG fallback was only needed before commit 315ff53 ("refactor: Add ProxyContext EventLoop* member"), when logging required going through connection->m_loop. Since that commit, m_context.loop is a direct EventLoopRef that is always valid regardless of whether m_context.connection is null. The KJ_LOG branch is now dead code, so drop it and the connection check entirely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
gen.cpp uses IWYU pragma: keep for include which appears to be necessary for newer versions of capnproto (1.4.0 but not 1.1.0)
TargetCapnpSources.cmake computed the build-side include directory by computing file(RELATIVE_PATH) from CMAKE_SOURCE_DIR to include_prefix and appending the result to CMAKE_BINARY_DIR. This assumes include_prefix is inside CMAKE_SOURCE_DIR, which holds when master is the top-level cmake project but breaks when it is added as a subdirectory of an external project (e.g. the support branch) whose source root is elsewhere. In that case the relative path contains ".." and the resulting build_include_prefix points to a nonexistent directory instead of CMAKE_CURRENT_BINARY_DIR where the generated headers actually live. Fix by anchoring on CMAKE_CURRENT_SOURCE_DIR / CMAKE_CURRENT_BINARY_DIR instead of the top-level CMAKE_SOURCE_DIR/BINARY_DIR. Since cmake mirrors source-tree structure into the binary tree, the mapping is equivalent for any include_prefix inside CMAKE_SOURCE_DIR, and correct for paths outside it. Also update docstring and example to use CMAKE_CURRENT_SOURCE_DIR. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Support files moved to support branch: git rm -r .github/ ci/ doc/ example/ shell.nix Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Splits the repository so C++ source stays on master and CI scripts, docs, and examples move to the support branch. Master's CI workflows become thin wrappers that delegate to the reusable workflows on the support branch. GitHub Actions changes: - ci.yml, bitcoin-core-ci.yml: replaced with thin wrappers that call the corresponding reusable workflows on the support branch. CMakeLists.txt: - Remove add_subdirectory(example): example/ moves to the support branch and is built from support's own CMakeLists.txt. README.md: - Update documentation links to point to the support branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collaborator
Author
|
Updated f26575b -> 5432abc ( |
This was referenced Jun 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR removes documentation, CI scripts, and examples from the
masterbranch, moving it to asupportbranch instead.This reduces the number of files that need to be imported into the bitcoin core subtree, and should make subtree bumps in bitcoin easier to review since they will no longer contain extraneous changes. It should also facilitate review within the libmultiprocess repository so PRs that actually modify the library can receive greater attention and PRs that only change support files can be merged more quickly.
This PR is an alternative to trying to exclude support files from the bitcoin core subtree (#276) which is a more complicated change that does not have same review benefits. The idea was originally brought up in #232 (comment).
This PR depends on #286, #289, and #288 should be merged after them.