mayhem-cli 0.5.1__tar.gz → 0.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/.github/workflows/release.yml +32 -1
- mayhem_cli-0.6.2/CHANGELOG.md +415 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/Justfile +9 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/PKG-INFO +1 -1
- mayhem_cli-0.6.2/cliff.toml +87 -0
- mayhem_cli-0.6.2/docs/config.md +285 -0
- mayhem_cli-0.6.2/docs/features.md +408 -0
- mayhem_cli-0.6.2/docs/grounding-log.md +64 -0
- mayhem_cli-0.6.2/docs/grounding-rules.md +70 -0
- mayhem_cli-0.6.2/docs/re-design.md +1405 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/app.py +24 -3
- mayhem_cli-0.6.2/src/mayhem/cli/coverage_cmd.py +325 -0
- mayhem_cli-0.6.2/src/mayhem/cli/expert.py +473 -0
- mayhem_cli-0.6.2/src/mayhem/cli/explore.py +378 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/lifecycle.py +81 -1
- mayhem_cli-0.6.2/src/mayhem/cli/next_cmd.py +216 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/resolver.py +1 -1
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/config.py +70 -12
- mayhem_cli-0.6.2/src/mayhem/controller/cell_runner.py +174 -0
- mayhem_cli-0.6.2/src/mayhem/controller/explore_flow.py +257 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/planner.py +42 -0
- mayhem_cli-0.6.2/src/mayhem/domain/cell_rules.py +48 -0
- mayhem_cli-0.6.2/src/mayhem/domain/coverage.py +204 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/candidate_gates.py +20 -0
- mayhem_cli-0.6.2/src/mayhem/infra/coverage_repository.py +271 -0
- mayhem_cli-0.6.2/src/mayhem/infra/kpi.py +172 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/migrations.py +27 -0
- mayhem_cli-0.6.2/src/mayhem/infra/ranking.py +150 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/e2e/test_cli_e2e.py +7 -5
- mayhem_cli-0.6.2/tests/unit/test_accept_criteria.py +158 -0
- mayhem_cli-0.6.2/tests/unit/test_additive_schema.py +136 -0
- mayhem_cli-0.6.2/tests/unit/test_cell_rules.py +86 -0
- mayhem_cli-0.6.2/tests/unit/test_cell_runner.py +204 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_cli.py +2 -1
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_cli_campaign.py +3 -1
- mayhem_cli-0.6.2/tests/unit/test_cli_contract.py +113 -0
- mayhem_cli-0.6.2/tests/unit/test_command_inventory.py +117 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_coverage.py +79 -0
- mayhem_cli-0.6.2/tests/unit/test_coverage_repository.py +157 -0
- mayhem_cli-0.6.2/tests/unit/test_kpi.py +82 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_migrations.py +29 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_planner.py +74 -0
- mayhem_cli-0.6.2/tests/unit/test_ranking.py +182 -0
- mayhem_cli-0.5.1/src/mayhem/domain/coverage.py +0 -106
- mayhem_cli-0.5.1/src/mayhem/infra/coverage_repository.py +0 -101
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/.gitignore +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/README.md +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/docs/compensation.md +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/docs/drill-spec.md +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/k8s/README.md +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/k8s/kubernetes.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/k8s/mayhem.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/data/hello.txt +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/data/index.html +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/docker-compose.mayhem.yml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/docker-compose.yml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/mayhem.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/examples/testCase/nginx.conf +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/pyproject.toml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agent/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agent/cli.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/capabilities.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/executors.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/impact.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/lease_client.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/probes.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/protocol.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/server.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/sinks.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/transports.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/agents/watchdog.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/campaign.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/config_cmd.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/context.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/dependency.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/exit_codes.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/experiment.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/services.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/style.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/toolkit.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/cli/topology.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/compensation.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/executor.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/janitor.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/observability_collector.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/observations.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/recovery.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/resilience_report.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/resource_manager.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/controller/safety.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/campaigns.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/cancellation.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/candidates.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/capabilities.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/catalog.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/checks.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/common.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/decisions.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/errors.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/events.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/execution_context.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/execution_loci.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/experiments.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/faults.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/identity.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/k8s_adapter.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/leases.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/load_strategy.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/m5_campaign.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/maniac.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/observability.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/outcomes.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/remote_agent_interface.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/resources.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/risks.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/run_outcome.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/runtime_adapter.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/success.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/domain/topology.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/campaign_engine.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/candidate_generator.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/lease_repository.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/maniac.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/migrator.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/report.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/infra/store.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/py.typed +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/spec.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/fingerprint.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/hashing.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/manifests/docker.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/manifests/podman.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/manifests/stress-ng.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/manifests/tc-netem.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/manifests/toxiproxy.yaml +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/registry.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/toolkit/tool_runner.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/adapter_registry.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/base.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/compose.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/docker_adapter.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/docker_runtime.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/providers/podman_adapter.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/resolve.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/src/mayhem/topology/service.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/conftest.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/e2e/__init__.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/integration/test_agent_serve.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/integration/test_agent_watchdog_e2e.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/integration/test_m5_e2e.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/integration/test_store.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_agent_capabilities.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_agent_protocol.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_agents.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_campaign_run.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_campaigns.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_cancellation.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_candidates.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_capability_matrix.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_capability_registry.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_capability_safety.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_check_spec.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_cli_exit_codes.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_cli_resolver.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_compensation.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_config.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_container_fault_matrix.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_domain_properties.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_drill_spec.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_example_specs_yaml.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_execution_context.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_executor.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_executor_drill.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_fault_catalog_all.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_faults.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_fingerprint.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_fork_atomicity.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_impact_gate.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_janitor.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_lease_repository.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_leases.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_lifecycle_run_liveness.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_load_strategy.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_m12_step1_catalog.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_m7_k8s.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_m8_operations.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_m9_catalog.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_maniac.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_network_path_model.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_observability.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_observations.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_recovery.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_report.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_resilience_report.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_resolve.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_resource_conflict_exec.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_resource_manager.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_resources.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_risks.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_run_outcome.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_runtime_adapter.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_safety.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_success.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_three_locus.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_tool_runner.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_topology.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_topology_ctr.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_topology_providers.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/tests/unit/test_watchdog.py +0 -0
- {mayhem_cli-0.5.1 → mayhem_cli-0.6.2}/uv.lock +0 -0
|
@@ -55,4 +55,35 @@ jobs:
|
|
|
55
55
|
# magichrist, repo Mayhem, workflow release.yml). Do NOT add a
|
|
56
56
|
# username/password here — the action would try token auth.
|
|
57
57
|
- name: Publish to PyPI
|
|
58
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
58
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
59
|
+
|
|
60
|
+
publish-github-release:
|
|
61
|
+
name: Create GitHub release from cliff changelog
|
|
62
|
+
needs: test
|
|
63
|
+
runs-on: ubuntu-latest
|
|
64
|
+
permissions:
|
|
65
|
+
contents: write # create the GitHub release
|
|
66
|
+
steps:
|
|
67
|
+
# Full history + tags so git-cliff can resolve commit ranges.
|
|
68
|
+
- uses: actions/checkout@v4
|
|
69
|
+
with:
|
|
70
|
+
fetch-depth: 0
|
|
71
|
+
- name: Install git-cliff
|
|
72
|
+
run: |
|
|
73
|
+
curl -sSL -o /tmp/git-cliff.tar.gz \
|
|
74
|
+
https://github.com/orhun/git-cliff/releases/download/v2.14.1/git-cliff-2.14.1-x86_64-unknown-linux-gnu.tar.gz
|
|
75
|
+
tar -xzf /tmp/git-cliff.tar.gz -C /tmp
|
|
76
|
+
sudo install -m755 /tmp/git-cliff-*/git-cliff /usr/local/bin/git-cliff
|
|
77
|
+
git-cliff --version
|
|
78
|
+
# NOTE: names the invoking tag explicitly (`--tag`) instead of using
|
|
79
|
+
# `--latest` — when HEAD sits exactly on the tag (always true for a
|
|
80
|
+
# tag-push checkout) `--latest` degrades to a single-commit section.
|
|
81
|
+
# `--tag "$GITHUB_REF_NAME"` renders the same latest-release notes for
|
|
82
|
+
# both tag conventions (`0.5.1` and `v0.5.1`).
|
|
83
|
+
- name: Render release notes
|
|
84
|
+
run: git-cliff --config cliff.toml --tag "$GITHUB_REF_NAME" --strip header -o /tmp/body.md
|
|
85
|
+
- name: Create GitHub release
|
|
86
|
+
uses: softprops/action-gh-release@v2
|
|
87
|
+
with:
|
|
88
|
+
name: ${{ github.ref_name }}
|
|
89
|
+
body_path: /tmp/body.md
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
This changelog is generated from the project's git history by
|
|
6
|
+
[git-cliff](https://git-cliff.org). Mayhem commits are grouped both by the
|
|
7
|
+
**drill phase** that produced them (Explore / Expert / Coverage / Next) and
|
|
8
|
+
by conventional-commit type — see the phase map below.
|
|
9
|
+
|
|
10
|
+
## 0.6.0 - 2026-09-11
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### 🚀 Features
|
|
15
|
+
|
|
16
|
+
- Plan for 0.6.0
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### 📚 Documentation
|
|
21
|
+
|
|
22
|
+
- **feat-1**: Ground every §1 claim in a verification log + persona design rules
|
|
23
|
+
|
|
24
|
+
- New features dictation
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### 🧪 Testing
|
|
29
|
+
|
|
30
|
+
- Verify config absorption, CLI contract, coverage, KPI + ranking
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 0.5.1 - 2026-09-09
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### 🚀 Features
|
|
38
|
+
|
|
39
|
+
- Add example experiment definitions (maniac-hour, proc-pause-drill)
|
|
40
|
+
|
|
41
|
+
- Add net.load fault
|
|
42
|
+
|
|
43
|
+
- Add color logs, better readability, also fix some bugs
|
|
44
|
+
|
|
45
|
+
- Add execution to agents
|
|
46
|
+
|
|
47
|
+
- Topology service is better now
|
|
48
|
+
|
|
49
|
+
- Lease now have more capabilities
|
|
50
|
+
|
|
51
|
+
- Adrs and milestones are mostly done
|
|
52
|
+
|
|
53
|
+
- Kube and other adrs applied
|
|
54
|
+
|
|
55
|
+
- Add M0011 migration for M5 run and outcome tables
|
|
56
|
+
|
|
57
|
+
- Add Run/Outcome persistence methods to Store
|
|
58
|
+
|
|
59
|
+
- Add M0012 migration for M5 coverage table
|
|
60
|
+
|
|
61
|
+
- Add candidates module
|
|
62
|
+
|
|
63
|
+
- Add coverage module
|
|
64
|
+
|
|
65
|
+
- Add m5_campaign module
|
|
66
|
+
|
|
67
|
+
- Add run_outcome module
|
|
68
|
+
|
|
69
|
+
- Add campaign_engine module
|
|
70
|
+
|
|
71
|
+
- Add candidate_gates module
|
|
72
|
+
|
|
73
|
+
- Add candidate_generator module
|
|
74
|
+
|
|
75
|
+
- Add coverage_repository module
|
|
76
|
+
|
|
77
|
+
- Add maniac module
|
|
78
|
+
|
|
79
|
+
- Add report module
|
|
80
|
+
|
|
81
|
+
- Add new faults and better tested campaign+runner
|
|
82
|
+
|
|
83
|
+
- **resilience**: Attach end-of-run resilience score + diagnosis to drill runs
|
|
84
|
+
|
|
85
|
+
- **dependency**: Add 'mayhem dependency compile' to bake fault tooling into compose
|
|
86
|
+
|
|
87
|
+
- **janitor**: Finalize ORPHANED/RELEASING and surrender stale DIRTY leases
|
|
88
|
+
|
|
89
|
+
- **lifecycle**: TTL-sweep sticky leases before every run
|
|
90
|
+
|
|
91
|
+
- **examples**: Add net.load fault to the testCase api drill
|
|
92
|
+
|
|
93
|
+
- **resilience**: Grade bands and grounded metric table in the report
|
|
94
|
+
|
|
95
|
+
- **cli**: Maniac zero-config synthesis and --ctr container scoping
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
### 🐛 Bug Fixes
|
|
100
|
+
|
|
101
|
+
- **faults**: Better handling
|
|
102
|
+
|
|
103
|
+
- **app**: Fix known issues in app arch
|
|
104
|
+
|
|
105
|
+
- Minor change
|
|
106
|
+
|
|
107
|
+
- Executor is now behaving right
|
|
108
|
+
|
|
109
|
+
- Config old syntax removed, updated DSL
|
|
110
|
+
|
|
111
|
+
- Maniac cli now works as it should
|
|
112
|
+
|
|
113
|
+
- **impact**: Gate every in-container fault on its real tooling
|
|
114
|
+
|
|
115
|
+
- Net.load uses localhost if container exposes port else must gain ip
|
|
116
|
+
|
|
117
|
+
- **leases**: DIRTY is not terminal — may only be surrendered to EXPIRED
|
|
118
|
+
|
|
119
|
+
- **executor**: Resume orphan recovery from any checkpoint state
|
|
120
|
+
|
|
121
|
+
- **compensation**: Clock.skew inject must double-quote $target expansion
|
|
122
|
+
|
|
123
|
+
- **impact**: Gate SYS_TIME faults as inert under rootless engines
|
|
124
|
+
|
|
125
|
+
- **dependency**: Warn when bootstrapped service relies on image CMD only
|
|
126
|
+
|
|
127
|
+
- **examples**: Give testcase-lb an explicit command
|
|
128
|
+
|
|
129
|
+
- Clock.skew and process.stop are fixed, also add failure policy: fast-fail, continue
|
|
130
|
+
|
|
131
|
+
- **faults**: Accept numeric seconds for DURATION params
|
|
132
|
+
|
|
133
|
+
- **topology**: Container resolves as running when state inspect fails
|
|
134
|
+
|
|
135
|
+
- **janitor**: Reclaim crashed controllers' leases before TTL
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
### 💼 Other
|
|
140
|
+
|
|
141
|
+
- Init
|
|
142
|
+
|
|
143
|
+
- Init
|
|
144
|
+
|
|
145
|
+
- Add more bugs
|
|
146
|
+
|
|
147
|
+
- Updated README
|
|
148
|
+
|
|
149
|
+
- Near release
|
|
150
|
+
|
|
151
|
+
- Add more bugs
|
|
152
|
+
|
|
153
|
+
- 0.2.0dev
|
|
154
|
+
|
|
155
|
+
- Update executors module
|
|
156
|
+
|
|
157
|
+
- Update compensation module
|
|
158
|
+
|
|
159
|
+
- Update catalog module
|
|
160
|
+
|
|
161
|
+
- Update faults module
|
|
162
|
+
|
|
163
|
+
- Remove cached .pyc file
|
|
164
|
+
|
|
165
|
+
- Update agent_protocol tests
|
|
166
|
+
|
|
167
|
+
- Update executor tests
|
|
168
|
+
|
|
169
|
+
- Update README
|
|
170
|
+
|
|
171
|
+
- Remove answer2 doc
|
|
172
|
+
|
|
173
|
+
- Update drill-spec doc
|
|
174
|
+
|
|
175
|
+
- Remove milestones docs
|
|
176
|
+
|
|
177
|
+
- Remove plan-drill-spec doc
|
|
178
|
+
|
|
179
|
+
- Remove runtime-adapters plan doc
|
|
180
|
+
|
|
181
|
+
- Update executors module
|
|
182
|
+
|
|
183
|
+
- Update impact module
|
|
184
|
+
|
|
185
|
+
- Update probes module
|
|
186
|
+
|
|
187
|
+
- Update compensation module
|
|
188
|
+
|
|
189
|
+
- Update executor controller module
|
|
190
|
+
|
|
191
|
+
- Update planner module
|
|
192
|
+
|
|
193
|
+
- Update resource_manager module
|
|
194
|
+
|
|
195
|
+
- Update safety module
|
|
196
|
+
|
|
197
|
+
- Update capabilities module
|
|
198
|
+
|
|
199
|
+
- Update catalog module
|
|
200
|
+
|
|
201
|
+
- Update common module
|
|
202
|
+
|
|
203
|
+
- Update events module
|
|
204
|
+
|
|
205
|
+
- Update execution_context module
|
|
206
|
+
|
|
207
|
+
- Update execution_loci module
|
|
208
|
+
|
|
209
|
+
- Update experiments module
|
|
210
|
+
|
|
211
|
+
- Update faults module
|
|
212
|
+
|
|
213
|
+
- Update k8s_adapter module
|
|
214
|
+
|
|
215
|
+
- Update topology module
|
|
216
|
+
|
|
217
|
+
- Update migrations module
|
|
218
|
+
|
|
219
|
+
- Update migrator module
|
|
220
|
+
|
|
221
|
+
- Update report module
|
|
222
|
+
|
|
223
|
+
- Update store module
|
|
224
|
+
|
|
225
|
+
- Update adapter_registry module
|
|
226
|
+
|
|
227
|
+
- Update docker_adapter module
|
|
228
|
+
|
|
229
|
+
- Update topology service module
|
|
230
|
+
|
|
231
|
+
- Update m5 e2e tests
|
|
232
|
+
|
|
233
|
+
- Update agents tests
|
|
234
|
+
|
|
235
|
+
- Update cancellation tests
|
|
236
|
+
|
|
237
|
+
- Update compensation tests
|
|
238
|
+
|
|
239
|
+
- Update coverage tests
|
|
240
|
+
|
|
241
|
+
- Update drill_spec tests
|
|
242
|
+
|
|
243
|
+
- Update executor tests
|
|
244
|
+
|
|
245
|
+
- Update faults tests
|
|
246
|
+
|
|
247
|
+
- Update maniac tests
|
|
248
|
+
|
|
249
|
+
- Update report tests
|
|
250
|
+
|
|
251
|
+
- Update run_outcome tests
|
|
252
|
+
|
|
253
|
+
- Update topology_providers tests
|
|
254
|
+
|
|
255
|
+
- Add MS-Complete doc
|
|
256
|
+
|
|
257
|
+
- Add ADR-M4-3 success criteria
|
|
258
|
+
|
|
259
|
+
- Add ADR-M4-4 observability
|
|
260
|
+
|
|
261
|
+
- Add observability_collector module
|
|
262
|
+
|
|
263
|
+
- Add decisions module
|
|
264
|
+
|
|
265
|
+
- Add observability module
|
|
266
|
+
|
|
267
|
+
- Add success module
|
|
268
|
+
|
|
269
|
+
- Add m7 k8s tests
|
|
270
|
+
|
|
271
|
+
- Add m8 operations tests
|
|
272
|
+
|
|
273
|
+
- Add observability tests
|
|
274
|
+
|
|
275
|
+
- Add success tests
|
|
276
|
+
|
|
277
|
+
- Rewrite README: drill-engine positioning, comparison table, run transcript walkthrough, quickstart
|
|
278
|
+
|
|
279
|
+
- Expand example drill: recovery off, check_spec, success criteria, observability sources, container.restart/pause faults
|
|
280
|
+
|
|
281
|
+
- Print copy-paste run handle with mayhem history command after run
|
|
282
|
+
|
|
283
|
+
- Pass spec_dir into plan_drill so relative asset paths resolve against the drill file
|
|
284
|
+
|
|
285
|
+
- Materialize user-supplied k6 script content into container instead of inline GET script
|
|
286
|
+
|
|
287
|
+
- False keeps fault in place, releases lease terminally as kept_faulted without dirty flag
|
|
288
|
+
|
|
289
|
+
- Embed net.load script content into frozen plan and propagate recovery flag per fault
|
|
290
|
+
|
|
291
|
+
- Add net.load script param for custom k6 script.js path
|
|
292
|
+
|
|
293
|
+
- Add recovery flag to DrillConfig, DrillFault override, and PlannedFault
|
|
294
|
+
|
|
295
|
+
- Emit ProcessNode with main PID so process-addressed faults resolve, matching docker provider
|
|
296
|
+
|
|
297
|
+
- Assert run output includes the mayhem history copy-paste handle
|
|
298
|
+
|
|
299
|
+
- Update README
|
|
300
|
+
|
|
301
|
+
- Remove MS-Complete.md
|
|
302
|
+
|
|
303
|
+
- Remove deprecated ADR documents
|
|
304
|
+
|
|
305
|
+
- Update drill spec documentation
|
|
306
|
+
|
|
307
|
+
- Update agents executors
|
|
308
|
+
|
|
309
|
+
- Update CLI app
|
|
310
|
+
|
|
311
|
+
- Update CLI lifecycle
|
|
312
|
+
|
|
313
|
+
- Update CLI services
|
|
314
|
+
|
|
315
|
+
- Update config
|
|
316
|
+
|
|
317
|
+
- Update controller compensation
|
|
318
|
+
|
|
319
|
+
- Update controller planner
|
|
320
|
+
|
|
321
|
+
- Update domain catalog
|
|
322
|
+
|
|
323
|
+
- Update domain decisions
|
|
324
|
+
|
|
325
|
+
- Update domain experiments
|
|
326
|
+
|
|
327
|
+
- Update unit test CLI
|
|
328
|
+
|
|
329
|
+
- Update unit test maniac
|
|
330
|
+
|
|
331
|
+
- Ongoing pypi release🎊
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
### 🚜 Refactor
|
|
336
|
+
|
|
337
|
+
- Rename package tgondi to mayhem
|
|
338
|
+
|
|
339
|
+
- Ruff format
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
### 📚 Documentation
|
|
344
|
+
|
|
345
|
+
- Update documentation for mayhem rename and add re-design/rename notes
|
|
346
|
+
|
|
347
|
+
- Removed old docs, new arch plan in next commit
|
|
348
|
+
|
|
349
|
+
- Document recovery control and net.load script param in drill spec
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
### 🎨 Styling
|
|
354
|
+
|
|
355
|
+
- Reformat threshold type-check conditional in probes.py
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
### 🧪 Testing
|
|
360
|
+
|
|
361
|
+
- Update and add tests for renamed mayhem package
|
|
362
|
+
|
|
363
|
+
- **e2e**: Automated e2e tests with justfile
|
|
364
|
+
|
|
365
|
+
- **e2e**: Fixed some errors
|
|
366
|
+
|
|
367
|
+
- **e2e**: All tests pass 🎉
|
|
368
|
+
|
|
369
|
+
- **unit**: Near pass
|
|
370
|
+
|
|
371
|
+
- Add M5 campaign semantics and execution loop tests
|
|
372
|
+
|
|
373
|
+
- Add m5 e2e integration tests
|
|
374
|
+
|
|
375
|
+
- Add candidates unit tests
|
|
376
|
+
|
|
377
|
+
- Add coverage unit tests
|
|
378
|
+
|
|
379
|
+
- Add maniac unit tests
|
|
380
|
+
|
|
381
|
+
- Add report unit tests
|
|
382
|
+
|
|
383
|
+
- Add run_outcome unit tests
|
|
384
|
+
|
|
385
|
+
- Test net.load user k6 script content embedding in inject argv
|
|
386
|
+
|
|
387
|
+
- Test recovery flag defaults and per-fault override in DrillSpec
|
|
388
|
+
|
|
389
|
+
- Test recovery:false keeps process stopped with kept_faulted lease and skipped undo
|
|
390
|
+
|
|
391
|
+
- Test net.load script embedding against spec_dir and recovery propagation to plan
|
|
392
|
+
|
|
393
|
+
- Add container x fault matrix and fix stale config-show e2e assertion
|
|
394
|
+
|
|
395
|
+
- **leases**: DIRTY surrender-only and janitor-only EXPIRED transition
|
|
396
|
+
|
|
397
|
+
- **domain**: DIRTY may transition to EXPIRED in the leak-property table
|
|
398
|
+
|
|
399
|
+
- **janitor**: Stale DIRTY surrendered, ORPHANED/RELEASING finalized
|
|
400
|
+
|
|
401
|
+
- **compensation**: Clock.skew full-script expansion regression
|
|
402
|
+
|
|
403
|
+
- **impact**: Rootless detection + SYS_TIME inert gating
|
|
404
|
+
|
|
405
|
+
- **e2e**: Compile warns on program-less service, silent when command declared
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
### ⚙️ Miscellaneous Tasks
|
|
410
|
+
|
|
411
|
+
- Update gitignore for mayhem rename and local artifacts
|
|
412
|
+
|
|
413
|
+
- **examples**: Commit compiled docker-compose.mayhem.yml for testCase
|
|
414
|
+
|
|
415
|
+
<!-- generated by git-cliff -->
|
|
@@ -202,3 +202,12 @@ e2e: stack-up topology toolkit config experiment full campaign test
|
|
|
202
202
|
@echo "╔══════════════════════════════════════════════╗"
|
|
203
203
|
@echo "║ ALL E2E RECIPES PASSED ║"
|
|
204
204
|
@echo "╚══════════════════════════════════════════════╝"
|
|
205
|
+
|
|
206
|
+
# ── changelog ─────────────────────────────────────────────────────────────────
|
|
207
|
+
# Regenerate CHANGELOG.md from git history (git-cliff)
|
|
208
|
+
changelog:
|
|
209
|
+
git-cliff --config cliff.toml -o CHANGELOG.md
|
|
210
|
+
|
|
211
|
+
# Render notes for the current release only (used as the GitHub release body)
|
|
212
|
+
changelog-release:
|
|
213
|
+
git-cliff --config cliff.toml --tag "$$(git describe --tags --abbrev=0)" --strip header
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# git-cliff configuration — https://git-cliff.org/docs/configuration
|
|
2
|
+
# Changelog is rendered by Tera templates; every `{% ... %}` / `{{ ... }}`
|
|
3
|
+
# block is evaluated at render time.
|
|
4
|
+
|
|
5
|
+
[changelog]
|
|
6
|
+
header = """\
|
|
7
|
+
# Changelog
|
|
8
|
+
|
|
9
|
+
All notable changes to this project will be documented in this file.
|
|
10
|
+
|
|
11
|
+
This changelog is generated from the project's git history by
|
|
12
|
+
[git-cliff](https://git-cliff.org). Mayhem commits are grouped both by the
|
|
13
|
+
**drill phase** that produced them (Explore / Expert / Coverage / Next) and
|
|
14
|
+
by conventional-commit type — see the phase map below.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
body = '''{% if version %}
|
|
18
|
+
## {{ version | trim_start_matches(pat='v') }} - {{ timestamp | date(format='%Y-%m-%d') }}
|
|
19
|
+
{% else %}
|
|
20
|
+
## [unreleased]
|
|
21
|
+
{% endif %}
|
|
22
|
+
{% for group, commits in commits | group_by(attribute='group') %}
|
|
23
|
+
|
|
24
|
+
### {{ group | striptags | trim }}
|
|
25
|
+
{% for commit in commits %}
|
|
26
|
+
- {% if commit.scope %}**{{ commit.scope }}**: {% endif %}{{ commit.message | upper_first }}
|
|
27
|
+
{% endfor %}
|
|
28
|
+
{% endfor %}
|
|
29
|
+
'''
|
|
30
|
+
|
|
31
|
+
footer = """\
|
|
32
|
+
<!-- generated by git-cliff -->
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
trim = true
|
|
36
|
+
|
|
37
|
+
# ── Phase-aware grouping ────────────────────────────────────────────────
|
|
38
|
+
# git-cliff assigns a commit to the group of the FIRST parser that matches.
|
|
39
|
+
# Cliff-phase parsers are listed first, so a commit whose scope names a
|
|
40
|
+
# Mayhem drill phase lands in that phase's section; anything else falls
|
|
41
|
+
# through to the conventional-type parsers below. The message regexes are
|
|
42
|
+
# deliberately permissive (`^feat\\(explore\\)`, not `^feat`) so phase
|
|
43
|
+
# grouping keyed on the CLI drill scope wins before type grouping.
|
|
44
|
+
commit_parsers = [
|
|
45
|
+
# ── Drill phases (scope → phase) ──
|
|
46
|
+
{ message = "^feat\\(explore\\)", group = "Phase A · Explore" },
|
|
47
|
+
{ message = "^fix\\(explore\\)", group = "Phase A · Explore" },
|
|
48
|
+
{ message = "^feat\\(expert\\)", group = "Phase B · Expert" },
|
|
49
|
+
{ message = "^fix\\(expert\\)", group = "Phase B · Expert" },
|
|
50
|
+
{ message = "^feat\\(coverage\\)", group = "Phase C · Coverage" },
|
|
51
|
+
{ message = "^fix\\(coverage\\)", group = "Phase C · Coverage" },
|
|
52
|
+
{ message = "^feat\\(next\\)", group = "Phase D · Next" },
|
|
53
|
+
{ message = "^fix\\(next\\)", group = "Phase D · Next" },
|
|
54
|
+
# ── Conventional-commit type fallback ──
|
|
55
|
+
# ── Drill: phases also ──
|
|
56
|
+
{ message = "^feat\\(explore", group = "Phase A · Explore" },
|
|
57
|
+
{ message = "^feat\\(expert", group = "Phase B · Expert Drill" },
|
|
58
|
+
{ message = "^feat\\(coverage", group = "Phase C · Coverage" },
|
|
59
|
+
{ message = "^feat\\(next", group = "Phase D · Next" },
|
|
60
|
+
# ── Drill: type fallthrough ──
|
|
61
|
+
{ message = "^feat", group = "Features" },
|
|
62
|
+
{ message = "^fix", group = "Bug Fixes" },
|
|
63
|
+
{ message = "^perf", group = "Performance" },
|
|
64
|
+
{ message = "^refactor", group = "Refactor" },
|
|
65
|
+
{ message = "^docs", group = "Docs" },
|
|
66
|
+
{ message = "^test", group = "Testing" },
|
|
67
|
+
{ message = "^build", group = "Build" },
|
|
68
|
+
{ message = "^ci", group = "CI" },
|
|
69
|
+
{ message = "^style", group = "Style" },
|
|
70
|
+
{ message = ".*", group = "Other" },
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
# Keep everything; unconventional messages fall to the catch-all.
|
|
74
|
+
filter_commits = false
|
|
75
|
+
sort_commits = "oldest"
|
|
76
|
+
|
|
77
|
+
[git]
|
|
78
|
+
# Traditional commit messages are handled; Mayhem also uses
|
|
79
|
+
# conventional-commit prefixes for the drill scopes above.
|
|
80
|
+
conventional_commits = true
|
|
81
|
+
filter_unconventional = false
|
|
82
|
+
|
|
83
|
+
# Only true release tags (`0.5.1`) become changelog sections; the
|
|
84
|
+
# `0.5.0dev` / `0.2.0dev` milestones fold into their final release.
|
|
85
|
+
tag_pattern = "^[0-9]+(\\.[0-9]+)+$"
|
|
86
|
+
# Sort commits topologically inside git so ranges are stable across runs.
|
|
87
|
+
topo_order = true
|