Add an undeclared-depends_on addon dependency detector#948
Open
eduralph wants to merge 1 commit into
Open
Conversation
eduralph
force-pushed
the
split/addon-dependency-detector
branch
from
June 13, 2026 14:18
fdb8ba5 to
0bfb6a6
Compare
eduralph
marked this pull request as ready for review
June 13, 2026 14:19
Split out of the CI-pipeline PR (gramps-project#820) per the one-change-per-PR review: this is a standalone feature, not CI infrastructure. Detects addons that import another addon's module without declaring it in depends_on (the Mantis-13707 class), by loading each registered module in an isolated subprocess and classifying the failure. The isolated loads run in a bounded thread pool (configurable; default scales with CPUs) instead of one 30s-timeout subprocess per module serially — so the detector's wall-clock stays bounded on the full ~144-addon set (review finding R-F). Logic split into tests/addon_dependencies.py (the engine) + its test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
eduralph
force-pushed
the
split/addon-dependency-detector
branch
from
June 13, 2026 14:26
0bfb6a6 to
edb290d
Compare
eduralph
marked this pull request as draft
June 13, 2026 14:29
eduralph
marked this pull request as ready for review
June 13, 2026 14:30
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.
Split out of #820 per the one-change-per-PR review. Standalone feature, not CI
infrastructure, so it ships on its own.
Depends on #820 (merge after it): the test is auto-run by the
python3 -m unittest discover -s tests -p "test_*.py"step #820 introduces. It doesnot import #820's code, though — the engine is stdlib-only and the test runs green
standalone under plain
unittest(its loader is injectable, so the classifier/poollogic is exercised without spawning real subprocesses). So this branch stays on clean
maintenance/gramps60(detector-only diff); #820 only governs when it's auto-invoked.What
Detects addons that import another addon's module without declaring it in
depends_on(the Mantis-13707 class), by loading each registered module in an isolated subprocess
and classifying the failure.
tests/addon_dependencies.py— the engine (stdlib only; self-contained).tests/test_addon_dependencies.py— itsunittesttest (auto-discovered with theother
tests/harness tests once Add CI/CD pipeline with container-based testing (Feature Request ID 9393 in Mantis) #820's discover step is present).R-F (bounded runtime)
Isolated loads run in a bounded thread pool (configurable; default scales with CPUs)
rather than one 30s-timeout subprocess per registered module, serially — so the
detector's wall-clock stays bounded across the full ~144-addon set.
Draft until its own review/sign-off. Companion split-out from #820: the TMG test split (#949).
🤖 Generated with Claude Code