Community detection and generators are replacements, not ports; fix the 5.0.0 changelog wording
- Dominant language
- Python
- Stars
- 8
- Forks
- 0
- Avg merge
- 6h 10m
- Merged PRs (30d)
- 16
Description
Found by the September 2026 comparison against the C++ sources (see docs/migration-from-cpp.md on branch docs/legacy-heritage (PR #17)).
The 5.0.0 changelog says community detection was "ported from `legacy/Source/community.cpp`" and random graphs "from `legacy/Source/erdos_renyi.cpp`". Neither is accurate:
- `community.cpp` is only a container. The algorithms live in `solution_lanci*.cpp` (Lancichinetti-Fortunato-Kertész-style local community growth with fitness `(mV-mE)/mV^r` and a `t`/`T` add/remove rule) and `solution_submodular.cpp` / `solution_allagglom.cpp` (agglomerative modularity with a submodularity bound). None of that exists in Python; `community/louvain.py` wraps NetworkX Louvain and greedy modularity. None of the C++ community code was linked into the shipped 4.0.0 binary either (see its Makefile), so this is research code from the authors' community-detection work rather than a LaNet-vi feature.
- `mutual_information.cpp`: the Python `arithmetic` NMI equals the C++ `mutual_information`; `busch_information` and `compara_comm` (`utils.cpp`) are not ported.
- `erdos_renyi.cpp` is a 12-line G(n,p) loop seeded with `time(NULL)`, also unlinked; the Python generators are NetworkX wrappers.
Actions: (1) decide whether to port the LFK-style local method as a third `--community-algorithm` (it is the one the authors published with), or drop the claim; (2) reword the 5.0.0 entry (history) or add a clarifying note under [Unreleased]; (3) the community CLI flags are inert today (tracked in the CLI/config issue).
Contributor guide
Research direction
Start with the 5.0.0 changelog entry and docs/migration-from-cpp.md on branch docs/legacy-heritage (PR #17). Check the cited community.cpp, solution_lanci*.cpp, solution_submodular.cpp, solution_allagglom.cpp, mutual_information.cpp, utils.cpp, erdos_renyi.cpp, and the 4.0.0 Makefile. Done means the historical wording or an Unreleased clarification accurately reflects what LaNet-vi includes, with the port decision resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100