chore: remove dead code, orphan files, and stale CMake plumbing#100
Open
chore: remove dead code, orphan files, and stale CMake plumbing#100
Conversation
Tier-A cleanup with no behavioral change in the CI/Docker build path:
Files removed (orphaned, no consumer):
- .travis.yml (referenced a Dockerfile-test that no longer exists)
- Doxyfile (Doxygen 1.8.13 from 2017; not invoked by any build step)
- libraries/wallet/Doxyfile.in + generate_api_documentation.pl
(gated on PERL_FOUND AND DOXYGEN_FOUND AND NOT Ninja, never true in
the apt-installed Docker builder; the standin was the actual code path)
- programs/util/schema_test.cpp (CMakeLists block was already commented out)
- programs/util/{inflation_plot,newplugin,pretty_schema,saltpass}.py
(Python helpers with no shell/CMake/Dockerfile consumer)
Dead conditionals removed:
- Root CMakeLists: USE_PCH/cotire include, ENABLE_INSTALLER CPack block
(cotire abandoned in 2017; ENABLE_INSTALLER never set, and its
if(LINUX) branch was dead even when alive — CMake doesn't define LINUX)
- libraries/network/CMakeLists.txt + libraries/utilities/CMakeLists.txt:
latent cotire() calls that would have failed configure if USE_PCH
was ever enabled (the include() was already gone)
- libraries/wallet/CMakeLists.txt: collapsed the Perl/Doxygen-or-standin
if/else; standin is now the unconditional code path
- programs/CMakeLists.txt: stale `#add_subdirectory( delayed_node )`
pointing at a directory that doesn't exist
Dead `#if 0` blocks removed (4 blocks, ~70 lines):
- libraries/network/node.cpp x2 (one with a live #else preserved)
- libraries/network/peer_connection.cpp x1
- libraries/network/message_oriented_connection.cpp x1
Dockerfile sync:
- Dropped now-deleted Doxyfile from the four `COPY` lines so the
production/testnet/lowmem/mongo builds don't fail on a missing path
Net diff: 22 files changed, 10 insertions(+), 5600 deletions(-).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Drop three subtrees that are dead in the shipping build: - plugins/auth_util — debug-only RPC helpers; not registered in any default config and never referenced by API consumers. Removed plugin source, vizd registration, and link dependency. - programs/js_operation_serializer — one-shot dev tool that emits operation schemas; output not consumed by vizd or CI. - programs/size_checker — one-shot dev tool that prints struct sizes; output not consumed by vizd or CI. Also drops the matching add_subdirectory() entries in programs/CMakeLists.txt which would otherwise break configure after directory removal. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
libraries/version/ no longer exists, but three CMake files still referenced it as commented-out targets/include paths or stale trailing comments. CMake silently absorbs missing include dirs as useless -I flags, and the comments mislead future readers. - libraries/protocol/CMakeLists.txt: remove commented add_dependencies, trailing comment on target_link_libraries, and the two non-existent ../../version/include paths. - libraries/network/CMakeLists.txt: remove commented ../version/include. - plugins/test_api/CMakeLists.txt: remove duplicate trailing target_link_libraries comment. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- CMakeLists.txt: GUI_CLIENT_EXECUTABLE_NAME, CUSTOM_URL_SCHEME, and INSTALLER_APP_ID were only consumed by the CPack/installer block removed in a47dd1e. Now set but never read. - libraries/utilities/CMakeLists.txt: prepended libraries/fc/GitVersionGen to CMAKE_MODULE_PATH, but that directory does not exist (fc lives in thirdparty/fc/). The real path is already added at root scope, so the line was a silently-ignored no-op pointing at a phantom location. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The debug-node-edit-script and edit-script CLI options have been a silent no-op since at least the f07fbc2 import: both populated the _edit_scripts vector, but the only code that read it was already commented out in plugin_startup(). Operators relying on either option have been getting silent failures, so the deprecation warning misled rather than informed. Removes: - both CLI options and the matching set_program_options override (header decl + impl) - _edit_scripts and the never-read _private_keys field - the commented-out for/if blocks in plugin_startup, plugin_shutdown, and apply_debug_updates - a redundant trailing return in plugin_shutdown - the orphaned commented decls (save_/load_debug_updates, signals2::scoped_connection trio, _debug_updates type-alias note) - the now-unused fc/io/buffered_iostream and fc/io/fstream includes The plugin's actual feature surface (debug_generate_blocks, debug_push_*, debug_update callbacks) is unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Removing the override entirely in 666d98d made plugin abstract because appbase::plugin's set_program_options is pure virtual. Restore the declaration with an empty inline body, matching the pattern used by block_info::plugin and other plugins that take no options. The CLI options that previously lived in this method (debug-node-edit-script and edit-script) remain removed; only the empty override scaffold returns. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Doxygen pipeline was removed in Tier A core. These referencing artifacts were left behind: - documentation/doxygen/ — Doxygen styling assets (CSS, layout XML, header/footer HTML), only consumed by the removed pipeline - programs/build_helpers/check_reflect.py — parses doxygen/xml/index.xml which is never produced - documentation/building.md — apt install line for the doxygen package All references verified absent across CMake, scripts, Dockerfiles, and CI. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Qoder is a local AI dev tool whose research artifacts were committed. Treat the same as .claude/ — local-only, gitignored — so future runs don't pollute the repo. Files remain on disk for the original author. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Each removed rule references a file or directory absent from the
current tree:
- libraries/wallet/Doxyfile, api_documentation.cpp, doxygen — Tier A
removed the Doxygen build pipeline
- programs/js_operation_serializer/* — program removed in Tier A
- programs/delayed_node, programs/size_checker — directories absent
- programs/util/inflation_model — file absent
- tests/* (six entries) — no tests/ directory exists in this repo
- documentation/doxygen/{html,xml,latex} — moot after parent dir removal
Live build artifacts (git_revision.cpp, vizd, cli_wallet, cat-parts,
get_dev_key) remain ignored.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Typo'd filename (note "guild" vs "guide"). No references in build files, scripts, CI, source code, or other documentation. Safe to drop. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Removes the unread CHAIN_INTERNAL_PLUGINS env-var from plugins/CMakeLists.txt, rewrites documentation/plugin.md to match the actual plugin layout (no auto-discovery; explicit registration in programs/vizd/main.cpp), drops the unbuildable chain_test target reference from documentation/building.md, and fixes two latent NameError typos (false/true lowercase) in programs/build_helpers/cat_parts.py — unreachable today only because hardfork.d/ contains regular .hf files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Captures 51 file-cited findings from a tech-debt-skill audit run against the current branch baseline. Reference for Tier B planning beyond PR #100. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.
Summary
Five-commit dead-code sweep across CMake, Dockerfiles, and one plugin. Net
-6510 linesacross 35 files. Each commit is self-contained and individually reviewable.19e6d68Doxyfile,.travis.yml, util scripts),cotire/USE_PCHremoval,ENABLE_INSTALLER/CPack removal,#if 0blocks inlibraries/network/,delayed_nodesubdir comment, Doxygen-onlywalletplumbing7843238plugins/auth_util/(debug-only RPCs, never registered in any default config),programs/js_operation_serializer/andprograms/size_checker/(dev-only one-shot tools whose output isn't consumed byvizdor CI). Fix matchingadd_subdirectory()lines so configure stays valid.5f1a918graphene::version(target/include paths point atlibraries/version/, which doesn't exist) inlibraries/protocol/,libraries/network/,plugins/test_api/c431c60GUI_CLIENT_EXECUTABLE_NAME,CUSTOM_URL_SCHEME,INSTALLER_APP_ID) consumed only by the CPack block removed in Tier A; drop boguslibraries/fc/GitVersionGenmodule path (real path isthirdparty/fc/...and is already added at root scope)666d98dplugins/debug_node: removedebug-node-edit-scriptandedit-scriptCLI options + the_edit_scriptsfield they populated. Both have been silent no-ops since the f07fbc2 import — the only code that read the field was already commented out. Also drop_private_keys(declared but never used), commented-out signal/method decls, two/* ... */blocks inplugin_startup/plugin_shutdown, and now-unusedfc/io/buffered_iostreamandfc/io/fstreamincludes.What this is not
vizdin any default config. The plugins that remain registered are the same set; the only operator-visible delta is that twodebug_nodeCLI options that were already no-ops will now produce a hardunknown optionerror if anyone has them in a config — which is a strict improvement over the silent-failure-with-deprecation-warning that's been there since 2022.vote_operation,content_operation,delete_content_operation) — those look dead but are required for chain replay from genesis.test_api/debug_nodebehind a CMake option — that would be a separate behavior-change PR if desired.Test plan
docker-pr-build.yml) — confirms the DockerfileDoxyfileremoval and the missingadd_subdirectory()entries don't break CMake configure.vizdbinary builds and is non-zero size (existing CI smoke).cmake -B build && cmake --build build --target vizdsucceeds on Linux.cli_walletstill builds (touched byprograms/CMakeLists.txt— theadd_subdirectory(cli_wallet)line is preserved).vizdwith the defaultshare/vizd/config/config.ini, observe normal plugin initialization log lines.Tier A follow-up commits (added 2026-04-30)
Same Tier A risk profile as the original bundle — every reference verified absent before deletion. No source files compiled into
vizdare touched.9a2b34adocumentation/doxygen/styling assets,programs/build_helpers/check_reflect.py(parses doxygen XML that's never produced), and thedoxygenapt-package mention indocumentation/building.md3172b37.qoder/AI-tool research artifacts (130 files). Treated like.claude/— gitignored going forward; files preserved on disk locally.7bd4448.gitignorerules pointing at files/dirs absent from the tree: Doxyfile, js_operation_serializer, delayed_node, size_checker, inflation_model, thetests/*block, and doxygen output dirs. Fixes a missing trailing newline as a side effect.0bbb803documentation/git_guildelines.md— typo'd filename ("guild" vs "guide"), zero references in build, scripts, CI, code, or docs.Aggregate impact (these 4 commits): ~3.9k lines of real on-disk deletions plus the
.qoder/untrack (purely bookkeeping — files persist on disk).🤖 Generated with Claude Code