Skip to content

PolyglotMiner v1.0.0

Choose a tag to compare

@SariYanouche SariYanouche released this 01 Sep 02:23
· 1 commit to main since this release

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 8080

Full documentation, heuristic details, and CLI options are available in the repository README.