Skip to content

v0.1.0

Choose a tag to compare

@rogermt rogermt released this 04 Jan 19:36
· 35 commits to master since this release
4f89764

v0.1.0

Scope# Phase 9 Release Notes — Python-Only Release

Version: 0.1.0 (Phase 9)
Date: 2024-01-XX
Status: Release Candidate


Overview

Phase 9 marks the first production-ready release of the MCP Repo Onboarding tool. This release focuses exclusively on Python repositories, providing accurate, validator-compliant ONBOARDING.md documents while establishing a clean architecture for future polyglot support (Phase 10).


1. Python-Only Scope

What Changed

The analyzer now explicitly detects whether Python is present in the repository.

  • Python Detected: Generates full Python-focused onboarding (as in previous phases).
  • Python Not Detected: Generates a validator-compliant ONBOARDING.md but includes a clear, neutral message under Analyzer notes:
    • * Python tooling not detected; this release generates Python-focused onboarding only.

Why This Matters

  • Clarity: Users of non-Python repos (e.g., pure Node.js/TypeScript projects) are no longer misled into thinking they must run pip install or configure a Python venv.
  • Safety: The tool remains safe and deterministic for all repos, but sets honest expectations about its current capabilities.

Python Detection Logic

Python is considered detected if any of the following evidence exists:

  • pyproject.toml at root
  • setup.py or setup.cfg at root
  • requirements*.txt at root or in subdirectories
  • Python source files (.py) present

This is explicit evidence-based detection, not inference.


2. "Other Tooling Detected" — Evidence-Only Reporting

What It Is

Phase 8 introduced a neutral "Other tooling detected" signal. This release (#12) refines it into a robust reporting mechanism that lists secondary tooling (e.g., Node.js, Docker, Go) without suggesting commands.

What It Reports

  • Evidence Files: Explicit lists of files detected (e.g., .nvmrc, package.json, yarn.lock).
  • Sorting: Evidence lists are sorted deterministically (alphabetical).
  • Truncation: Long evidence lists are capped (e.g., "truncated to 3 of 5") to keep onboarding readable.

What It Does NOT Do

  • No Command Suggestions: The analyzer will never suggest npm install, yarn, pnpm, docker build, go run, etc., even if Node.js or Docker is detected.
  • No Version Inference: It does not attempt to infer versions for non-Python tools (e.g., Node.js from .nvmrc).

Example Output (Mixed Python + Node Repo)

## Other tooling detected
* Node.js (client/js/package.json, js/.npmrc, pnpm-lock.yaml; truncated to 3 of 4)
* Docker (website/docker-compose.yml, website/homepage/Dockerfile)
- Python-first onboarding generation (validator-compliant, deterministic output).

### Added
- Framework detection improvements:
  - Detect Streamlit and Gradio from `requirements*.txt` (evidence-based).
- Polyglot awareness (evidence-only):
  - “Other tooling detected” section surfaces secondary tooling based on evidence files only.
  - Evidence lists are deterministically sorted and truncated with explicit wording.
- Onboarding readability improvements:
  - Notebook directory listings are deterministically capped with a truncation note.
- Python-only scope guard:
  - When Python tooling is not detected, ONBOARDING includes a neutral note indicating Python-only scope.

### Changed
- Bash script descriptions:
  - Improved deterministic fallback descriptions for common helper scripts (prevents “No description provided by analyzer.” in common cases).

### Notes
- No non-Python commands are suggested (no npm/yarn/pnpm instructions).
- No subprocess execution; no network calls.

### Next
- Phase 10: non-Python-primary onboarding (e.g., Node-first repos), including primary tooling selection.