Skip to content

Professionalize package presentation#1

Merged
johnm-dta merged 17 commits intomainfrom
feature/professionalize-package
Mar 16, 2026
Merged

Professionalize package presentation#1
johnm-dta merged 17 commits intomainfrom
feature/professionalize-package

Conversation

@johnm-dta
Copy link
Copy Markdown
Owner

Summary

  • README: Expanded from 3-line stub to 140-line professional README with badges, value proposition, quickstart, features overview, and architecture summary
  • PyPI metadata: Added Documentation, Changelog, Bug Tracker, and Homepage URLs to project.urls
  • MkDocs-Material docs site: 13 pages covering getting started, guides (ChaosLLM, ChaosWeb, presets, configuration, metrics, testing fixtures), reference (CLI, HTTP API, config schema), and architecture overview
  • GitHub Actions docs workflow: Deploys to GitHub Pages on push to main
  • Community files: CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md (Contributor Covenant v2.1)
  • GitHub templates: Bug report, feature request, and PR templates
  • Pre-commit config: ruff (lint + format) and mypy (local hook using project venv)
  • DTA branding hooks: Footer attribution in README and docs, logo/favicon placeholders in mkdocs.yml

Test plan

  • All 1087 tests pass
  • Ruff lint and format clean
  • Mypy strict — no issues
  • Pre-commit hooks pass on all files
  • MkDocs builds with --strict — no errors
  • Package builds (wheel + sdist) — docs excluded from sdist
  • No application code changes (only 5 auto-fixed lint issues in test files)

🤖 Generated with Claude Code

johnm-dta and others added 17 commits March 16, 2026 00:11
… truncation, preset race, CLI summary, fixture fields, TestClient leaks

- metrics_store: use nearest-rank (math.ceil) for p50/p95/p99 percentile calculations
- latency: reject inverted min_sec > max_sec in simulate_slow_response
- config_loader: use copy.deepcopy(base) in deep_merge to prevent shared references
- validators: reject fractional floats in parse_range (allow exact integer floats)
- response_generator: double-checked locking for PresetBank lazy init thread safety
- llm/web cli: dynamic _pct field discovery for serve startup error summary
- chaosllm fixture: add forbidden_pct, not_found_pct, connection_failed_pct, connection_stall_pct
- integration tests: wrap TestClient usage in context managers to prevent resource leaks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…eb classify_outcome guard

- metrics_store: guard get_requests outcome filter against missing schema column
- response_generator + content_generator: wrap PresetBank.next() random path in lock
- web/metrics: add status_code is None guard to connection_error classification

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ment BurstConfig disabled-state timing

- injection_engine: add invariant comment + pragma: no cover on unreachable return None
- types: document that duration_sec >= interval_sec is allowed when enabled=False

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…qlType enum

Documentation:
- Add __all__ to top-level errorworks/__init__.py
- Document should_trigger behavior for percentage > 100
- Document update_config snapshot pattern in both servers
- Document _cleanup_stale_connections thread ID reuse limitation

Defensive coding:
- validate_error_decision: raise on unknown categories (with extra_categories escape hatch)
- handle_admin_config: reject non-dict request bodies with 400
- load_config: only inject preset_name if config model has the field

API consistency:
- Unify LLM _template_random_words to match Web signature (min_count, max_count)
- MCP describe_schema: generate from LLM_METRICS_SCHEMA instead of hardcoded
- MCP find_anomalies: derive expected status codes from HTTP_ERRORS

Type safety:
- Replace ColumnDef.sql_type: str with SqlType StrEnum across all call sites

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Design document covering README expansion, PyPI metadata, MkDocs-Material
docs site on GitHub Pages, community files, GitHub templates, and
pre-commit config. Establishes DTA branding hooks for future use.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch mypy pre-commit from mirrors-mypy to local hook using uv run
  (avoids missing dependency issue)
- Remove pinned ruff/mypy versions (implementer pins to actual versions)
- Rename reference/configuration.md to config-schema.md (avoid name clash)
- Specify changelog copy step instead of ambiguous symlink/include
- Add permissions note for docs workflow
- Create separate docs optional-dependency group
- Add sdist exclusion and MkDocs nav notes
- Mark spec as Approved

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8 tasks across 4 chunks: PyPI metadata, community files, GitHub templates,
pre-commit config, README expansion, MkDocs-Material site, and docs workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Also fix existing lint issues caught by the new hooks: sort __all__,
use raw strings for regex match patterns, remove unused variable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e, and architecture

13 documentation pages covering installation, quickstart, ChaosLLM/ChaosWeb
guides, presets, configuration, metrics, testing fixtures, CLI reference,
HTTP API reference, config schema reference, and architecture overview.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Builds MkDocs site and deploys to gh-pages branch on push to main.
Triggers on changes to docs/, mkdocs.yml, or CHANGELOG.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Switch from generic Material palette to DTA brand colours (navy primary,
green accent) with Inter/JetBrains Mono fonts, custom CSS for light/dark
modes, and mermaid diagram support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove unused DEFAULT_MEMORY_DB imports from CLI modules
- Remove trailing blank line in test_metrics_store.py
- Update uv.lock for docs dependency group

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@johnm-dta johnm-dta merged commit d6568ae into main Mar 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant