Skip to content

Releases: luoyueyuguang/roofp

lyroofp 0.2.3

Choose a tag to compare

@luoyueyuguang luoyueyuguang released this 19 Jul 13:41

lyroofp 0.2.3

This release makes the repository and standalone Skill safe for an agent to use without prior roofp context.

Package identity

  • Install the distribution with python -m pip install lyroofp==0.2.3.
  • Import the Python API with import roofp.
  • Run the CLI with roofp and configure the MCP server command as roofp-mcp.
  • Do not use import lyroofp or a lyroofp command.

Agent cold-start improvements

  • Added a repository quick start and an exact implementation-to-test map to AGENTS.md.
  • Replaced ambiguous root-level module names with the real roofp/... paths.
  • Clarified that roofp-mcp is a long-running stdio server, not a one-shot health check.
  • Added explicit MCP-available, CLI-fallback, and MCP-configuration branches to SKILL.md.
  • Pinned the standalone Skill to the matching lyroofp==0.2.3 distribution.
  • Completed theoretical/measured, bandwidth-level/kind, FMA-counting, and sparsity metadata in all MCP examples.
  • Kept local Skill artifacts outside repository checkouts and documented that peer-hardware comparison requires compare_rooflines.
  • Added automated cold-start checks for source paths, paired tests, version pins, server behavior, safe artifact paths, and MCP metadata.

Validation

  • 68 unit, CLI, MCP protocol, model, plot, unit, packaging, and documentation tests pass.
  • Ruff, formatting, Mypy, compile, lock-file, dependency, Skill, coverage, distribution-content, and isolated-wheel checks pass.
  • The exact wheel and sdist attached here were installed and validated from TestPyPI and PyPI.
  • TestPyPI and PyPI report the same SHA-256 digests as SHA256SUMS.

Run sha256sum -c SHA256SUMS in the directory containing all attached files to verify the release.

lyroofp 0.2.2

Choose a tag to compare

@luoyueyuguang luoyueyuguang released this 19 Jul 08:36

lyroofp 0.2.2

This release synchronizes the package documentation, distribution metadata, and public release artifacts.

Package identity

  • Install the PyPI distribution with python -m pip install lyroofp==0.2.2.
  • Import the Python API with import roofp.
  • Run the CLI with roofp and the MCP server with roofp-mcp.
  • There is no public import lyroofp package or lyroofp command.

Changes

  • Synchronized README.md, README_zh.md, AGENTS.md, and SKILL.md with the current schema 2.0 CLI, MCP, comparison, plotting, testing, and release behavior.
  • Added automated checks that pair English/Chinese README headings, code examples, and link targets.
  • Added repository and CI validation for SKILL.md.
  • Corrected atomic artifact replacement so newly created JSON and plot files use mode 0644, while existing target permissions remain preserved.
  • Regenerated the standalone ideal Roofline example with the current accessible colors and bound-region hatching.
  • Included the Skill validator in the source distribution and strengthened wheel/sdist verification.

Validation

  • 64 unit and protocol tests pass on the release commit.
  • Ruff, formatting, Mypy, compile, lock-file, dependency, Skill, coverage, distribution-content, and clean-wheel-install checks pass.
  • The exact wheel and sdist attached here were published to and installed from both TestPyPI and PyPI.
  • TestPyPI and PyPI report the same SHA-256 digests as SHA256SUMS.

Run sha256sum -c SHA256SUMS in the directory containing all attached files to verify the release.

roofp 0.2.0

Choose a tag to compare

@luoyueyuguang luoyueyuguang released this 18 Jul 11:11

Highlights

  • Introduces schema-versioned Roofline analysis with explicit dimensional field names and separate evaluations for ideal, measured, and additional roofs.
  • Replaces JSON-string MCP parameters with validated structured inputs and structured outputs.
  • Separates theoretical hardware capability from per-hardware measured utilization; above-roof measurements are reported but excluded from rankings.
  • Adds precision, FLOP-counting, bandwidth-level, sparsity, and measurement-kind metadata with compatibility warnings.
  • Makes MCP SVG output opt-in and bounds response sizes.
  • Fixes peer comparison plots, removes pyplot global figure state, and keeps SVG/PNG/PDF output support.
  • Makes CLI stdout valid JSON, moves status messages to stderr, adds atomic output writes, strict config validation, --analysis-only, and --version.
  • Adds Python 3.10–3.14 CI, minimum-dependency checks, wheel-only installation checks, linting, typing, coverage, protocol tests, and distribution validation.

Breaking changes

  • MCP operators_json and roofs_json string parameters are replaced by structured operators, roofs, and workloads arrays.
  • MCP results are returned as structured content instead of JSON strings.
  • Ambiguous 0.1 output aliases such as compute_flops, roof_performance_flops, and headroom_ratio are removed.
  • OperatorPoint now accepts arithmetic_intensity directly; achieved bandwidth is derived.
  • compare_rooflines accepts optional per-hardware measurements instead of applying one measured performance value to every roof.
  • SVG is returned from MCP only when include_svg: true is requested.

See the updated README and SKILL.md for migration examples.

Validation

  • 57 tests pass with warnings treated as errors.
  • Branch coverage: 88%.
  • Ruff, Ruff formatting, Mypy, compileall, lockfile, and dependency checks pass.
  • SKILL.md passes the Codex skill validator.
  • The wheel and sdist were built, inspected, and the wheel was installed and exercised in an isolated environment.
  • SHA256SUMS is attached for the published wheel and sdist.

Commit: 0efb1e0469911eddf9cdc13ddc51f00fabd44558