Skip to content

Releases: calchiwo/ExplainThisRepo

ExplainThisRepo v0.3.1

08 Feb 17:28

Choose a tag to compare

Maintenance realease

What's Changed

  • chore(deps): bump requests from 2.31.0 to 2.32.5 in #127
  • chore(deps): bump google-generativeai from 0.5.4 to 0.8.6 in #128
  • chore(deps): bump python-dotenv from 1.0.1 to 1.2.1 in #129
  • chore(deps): bump rich from 13.7.1 to 14.3.2 in #130

This release improves stability and keep dependencies up to date

Full Changelog: v0.3.0...v0.3.1

ExplainThisRepo v0.3.0

08 Feb 14:57

Choose a tag to compare

What Changed

  • Replaced manual sys.argv length-based parsing with argparse
  • Introduced a mutually exclusive group for --quick, --simple, --detailed, and --stack
  • Enabled order-independent CLI flags
  • Removed brittle argument-length branching logic
  • Standardized help output using argparse’s native system
  • Added structured examples in CLI help output
  • Improved repository argument validation with parser.error()
  • Replaced silent repo reader failure with visible warning
  • Cleaned up CLI control flow and validation structure
  • Refactored CLI orchestration for long-term extensibility

What Was Fixed

  • Fixed incorrect --doctor exit code logic
  • Doctor now fails properly if Gemini endpoint is unreachable
  • Prevented false-positive health checks
  • Removed hidden error swallowing during repository file reads
  • Eliminated flag parsing edge cases caused by positional assumptions

Full Changelog: v0.2.4...v0.3.0

ExplainThisRepo v0.2.4

01 Feb 14:44

Choose a tag to compare

This release focuses on developer workflow, project tooling, and reliability. No user-facing behavior changed. The goal was to make the project easier to develop, test, and maintain.

What improved

  • Developer tooling foundation
  • Added requirements-dev.txt
  • Separated runtime dependencies from development tools
  • Standardized local setup for contributors

Code quality workflow

  • Linting support with pyflakes
  • Formatting support with black
  • Consistent structure for maintaining code style

Testing readiness

  • Added pytest and pytest-cov
  • Project is now ready for proper test coverage going forward

Packaging and release workflow

  • Added support for build and twine
  • Makes packaging and publishing predictable and repeatable

Makefile upgrades

  • Expanded Makefile to cover:

    • setup
    • lint
    • format
    • doctor
    • build
    • publish
    • clean
  • Reduced manual steps in development and releases


Why this matters

This version strengthens the engineering backbone of ExplainThisRepo. Future features will ship faster, with better quality control and a smoother contributor experience.

What's Changed

  • feat(python): Add URL and SSH repo input support by @calchiwo in #101
  • Clarified repository input methods by @calchiwo in #102
  • Enhance README with flexible repository input details by @calchiwo in #103
  • Updated usage examples for ExplainThisRepo to use 'owner/repo' format. by @calchiwo in #104
  • Updated contributing guidelines for clarity and consistency. by @calchiwo in #105
  • chore: enhance Makefile with lint, format, doctor and release workflow. by @calchiwo in #106

Full Changelog: v0.2.3...v0.2.4

ExplainThisRepo v0.2.3

30 Jan 10:48

Choose a tag to compare

Improvement

  • Input parsing layer rewritten for flexibility
  • Strict GitHub domain validation added
  • Query strings and URL fragments ignored
  • Safe .git suffix handling
  • SSH clone URL support

Repo input is now flexible. The CLI accepts GitHub link formats, not just owner/repo.

Newly supported

  • Full URLs
    https://github.com/owner/repo

  • URLs without scheme
    github.com/owner/repo

  • Issue and PR links
    https://github.com/owner/repo/issues/123

  • URLs with query or fragment
    ?tab=readme, #readme

  • SSH clone URLs
    git@github.com:owner/repo.git

  • Common http/https typo cases

All inputs normalize internally to:

owner/repo

Technical

  • Input parser upgraded
  • Query and fragment stripped
  • .git suffix handled safely
  • Strict GitHub domain validation added

No change to engine, modes, or output.
Pure CLI usability upgrade.

Full Changelog: v0.2.2...v0.2.3

ExplainThisRepo v0.2.2

28 Jan 17:21

Choose a tag to compare

What's Changed

  • Cleaner help banner output
  • Tool name, version, and description now shown clearly
  • Help command discoverability improved

Full Changelog: v0.2.1...v0.2.2

v0.2.1

28 Jan 14:52

Choose a tag to compare

ExplainThisRepo just leveled up from “AI that explains repos” → tool that understands repos.

This release introduces --stack, a deterministic tech stack detector for both the Node (npm) and Python (PyPI) CLIs.


New: --stack

Run:

explainthisrepo owner/repo --stack

You now get a structured stack breakdown like:

Stack summary for vercel/next.js

Languages:

  • TypeScript
  • JavaScript

Frameworks/Libraries:

  • React
  • Next.js

Tooling:

  • ESLint
  • Jest

Infrastructure / Deploy:

  • Docker
  • GitHub Actions

How it works:

--stack is not AI guessing.

It uses static repo signal analysis:

File extensions → languages

package.json, pyproject.toml, go.mod, etc → frameworks & tooling

Lockfiles → package managers

Config files → infra & deployment

GitHub Languages API → byte-level language detection

--

What changed

  • Added stack_detector.py
  • Added stack_printer.py
  • Extended repo_reader to return tree + key files
  • Added GitHub Languages API integration
  • Added --stack flag (mutually exclusive with other modes)

Fixes:

  • Fixed dataclass mutable default bug in Python ReadResult
  • Prevented shared state across instances
  • Hardened error handling for stack mode fetches
  • Maintained backward compatibility with existing CLI flows

No impact to --quick, --simple, or default EXPLAIN.md generation


Why this matters:

ExplainThisRepo is now:

Not just a repo explainer
But a repo analysis CLI

This pushes the tool closer to developer infrastructure, not chatbot tooling.

Full Changelog: v0.2.0...v0.2.1

ExplainThisRepo v0.2.0

23 Jan 15:47

Choose a tag to compare

What’s new

Added --simple mode (2-step pipeline)

  • Generates the full repo explanation internally

  • Summarizes it into simple “Key points from the repo” format

  • Prints only the simple output (no EXPLAIN.md)

Usage

simple summary (no file)

explainthisrepo owner/repo --simple

one-sentence definition

explainthisrepo owner/repo --quick

full explanation to EXPLAIN.md

explainthisrepo owner/repo
explainthisrepo owner/repo --detailed

Install

pip install -U explainthisrepo

Full Changelog: v0.1.9...v0.2.0

ExplainThisRepo v0.1.9

23 Jan 13:09

Choose a tag to compare

What's Changed

Python package metadata update:

  • added classifiers in pyproject.toml (proper PyPI metadata)
  • improved README badges (PyPI + npm + Node) in #68
  • added MIT license badges in #69

No CLI behavior changes.

Full Changelog: v0.1.8...v0.1.9

ExplainThisRepo v0.1.8

22 Jan 23:45

Choose a tag to compare

v0.1.8 - PyPI: Repo code reading

This release upgrades the PyPI version of ExplainThisRepo from relying on README to actual repo understanding.

What changed

  • Added repo reader: fetches repo structure + key files
  • Explanations now include:
    • repo tree context
    • key file snippets (signal files)
  • Better output even when README is weak or missing

Usage

pip install -U explainthisrepo
explainthisrepo owner/repo --detailed

Notes

  • Quick mode remains unchanged
  • Repo reader failures do not crash the CLI (safe fallback)

Full Changelog: v0.1.7...v0.1.8

ExplainThisRepo v0.1.7

22 Jan 10:42

Choose a tag to compare

Changes

Refactor: moved --quick prompt logic out of cli.py into prompt.py

Cleaner separation of concerns:

cli.py = CLI flow only

prompt.py = prompt definitions only

Why

This makes the codebase easier to maintain and easier to extend (new modes/flags won’t clutter CLI logic).

What's Changed

Full Changelog: v0.1.6...v0.1.7