CoNexDat / CoNexDat/LaNet-vi

Community detection and generators are replacements, not ports; fix the 5.0.0 changelog wording

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.