PolyglotMiner v1.0.0
PolyglotMiner v1.0.0
This is the initial release of PolyglotMiner, an empirical software engineering tool built to analyze codebase evolution, multi-language composition, and software migrations across Git repositories.
What is in this release
- Codebase Profiling: Fast line counting across 150+ languages, separating pure source code, comments, and blank lines.
- Longitudinal Evolution: Samples equidistant historical milestones (from 0% to 100%) to calculate growth curves, dominance shifts, and language crossover points.
- Dual Analysis Modes: Fast empirical module mode using blobless Git clones, and physical lines of code mode (
--full-loc) for exact line counting. - Migration Mining: Streams commit logs to extract co-changing files and detect 1-to-1 language replacements (such as Java to Kotlin or JavaScript to TypeScript).
- Empirical Heuristics: Classifies codebase trajectories using statistical correlation, code contraction metrics, and file-level churn.
- Authoritative SQLite Storage: Built-in SQLite database using WAL mode for zero-memory, fast query performance.
- Local Web Studio: Interactive browser interface for trajectory visualization, search, and publication exports (LaTeX tables, 300 DPI PNG figures, and CSV).
Installation
git clone https://github.com/SariYanouche/PolyglotMiner.git
cd PolyglotMiner
# Create and activate a virtual environment
python -m venv .venv
# On Linux / macOS:
source .venv/bin/activate
# On Windows (PowerShell):
.\.venv\Scripts\Activate.ps1
# Install in editable mode
pip install -e .Quick Start
# Profile a local directory or remote repository
polyglotminer scan .
# Analyze evolution across 10 milestone intervals
polyglotminer history carlphilipp/chicago-commutes --samples 10 --open
# Run automated discovery and batch evolution mining across 100 repositories
polyglotminer campaign -n 100 --workers 2
# Launch the interactive web studio
polyglotminer ui --port 8080Full documentation, heuristic details, and CLI options are available in the repository README.