base-cli 0.4.3__tar.gz → 0.5.1__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.
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/bug_report.yml +50 -0
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/config.yml +8 -0
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/documentation.yml +25 -0
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/feature_request.yml +25 -0
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/support.md +12 -0
- base_cli-0.5.1/.github/ISSUE_TEMPLATE/support.yml +30 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/workflows/compatibility.yml +37 -4
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/workflows/dependency-matrix.yml +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/workflows/docs.yml +6 -0
- base_cli-0.5.1/.github/workflows/package.yml +548 -0
- base_cli-0.5.1/.github/workflows/project-intake.yml +309 -0
- base_cli-0.5.1/.github/workflows/tests.yml +201 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/CHANGELOG.md +111 -8
- {base_cli-0.4.3 → base_cli-0.5.1}/CONTRIBUTING.md +7 -10
- {base_cli-0.4.3 → base_cli-0.5.1}/PKG-INFO +119 -37
- {base_cli-0.4.3 → base_cli-0.5.1}/README.md +112 -33
- base_cli-0.5.1/VERSION +1 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/base_manifest.yaml +6 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/README.md +22 -9
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/atlas_click/README.md +2 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/atlas_click/pyproject.toml +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/atlas_click/tests/test_consumer.py +0 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/beacon_typer/README.md +5 -4
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/beacon_typer/pyproject.toml +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/beacon_typer/src/beacon_typer/cli.py +0 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/beacon_typer/tests/test_consumer.py +0 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/cinder_automation/README.md +1 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/cinder_automation/pyproject.toml +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/cinder_automation/src/cinder_automation/cli.py +4 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/cinder_automation/tests/test_consumer.py +0 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/adopter-readiness.md +4 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/adoption-evidence.md +11 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/api-reference.md +32 -32
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/api-stability.md +13 -4
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/cache-ownership-and-layout.md +23 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/compatibility-dashboard.md +2 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/consumer-profiles.md +28 -0
- base_cli-0.5.1/docs/consumer-quickstart.md +92 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/coverage-policy.md +5 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/dependency-support.md +3 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/extensions.md +6 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/index.md +10 -0
- base_cli-0.5.1/docs/integrations.md +85 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/json-contracts.md +68 -4
- base_cli-0.5.1/docs/local-config.md +62 -0
- base_cli-0.5.1/docs/migration-0.5.md +33 -0
- base_cli-0.5.1/docs/optional-output-dependencies.md +78 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/output-contracts.md +11 -0
- base_cli-0.5.1/docs/performance.md +210 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/platform-support.md +30 -5
- base_cli-0.5.1/docs/release-0.5.0-checklist.md +55 -0
- base_cli-0.5.1/docs/releasing.md +231 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/security-review.md +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/security-threat-model.md +19 -2
- base_cli-0.5.1/docs/strict-json-consumer.md +93 -0
- base_cli-0.5.1/docs/testing.md +86 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/typer-adapter.md +16 -6
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/automation_observability_app/src/automation_observability_app/cli.py +3 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/minimal_cli/src/minimal_cli/cli.py +3 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_app/README.md +6 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_app/pyproject.toml +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_app_core.py +71 -14
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_attach.py +12 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_click_compat.py +37 -7
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_lifecycle.py +8 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_lifecycle_install.py +46 -5
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_private_files.py +31 -5
- base_cli-0.5.1/lib/python/base_cli/_run.py +868 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_runtime.py +354 -29
- base_cli-0.5.1/lib/python/base_cli/_stdout_capture.py +117 -0
- base_cli-0.5.1/lib/python/base_cli/_windows_retention.py +100 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/config.py +187 -15
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/context.py +13 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/extensions.py +28 -23
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/inspection.py +3 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/integrations.py +32 -8
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/json_contracts.py +61 -16
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/lifecycle_options.py +20 -1
- base_cli-0.5.1/lib/python/base_cli/logging.py +448 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/output.py +115 -39
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/paths.py +36 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/profile.py +43 -11
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/redaction.py +56 -6
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/typer.py +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli.egg-info/PKG-INFO +119 -37
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli.egg-info/SOURCES.txt +45 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli.egg-info/requires.txt +5 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/pyproject.toml +7 -5
- base_cli-0.5.1/scripts/benchmark_runtime.py +912 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/generate_api_reference.py +41 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/generate_release_metadata.py +21 -10
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/record_compatibility_evidence.py +17 -1
- base_cli-0.5.1/scripts/release_metadata_helpers.py +24 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_changelog.py +88 -1
- base_cli-0.5.1/scripts/validate_consumer_typing.py +48 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_coverage.py +25 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_docs.py +6 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_package_artifact.py +47 -5
- base_cli-0.5.1/scripts/validate_release_docs.py +66 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_release_metadata.py +31 -10
- base_cli-0.5.1/scripts/validate_release_provenance.py +181 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_release_ref.py +8 -2
- base_cli-0.5.1/scripts/verify_pypi_metadata.py +76 -0
- base_cli-0.5.1/scripts/verify_release_assets.py +178 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_adversarial_regressions.py +4 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_lifecycle.py +4 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_registration.py +16 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_run.py +75 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_run_metadata.py +185 -3
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_runtime_boundary.py +9 -0
- base_cli-0.5.1/tests/test_batteries_included_config.py +362 -0
- base_cli-0.5.1/tests/test_benchmark_runtime.py +235 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_cleanup_security.py +35 -2
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_click_tree_attachment.py +157 -3
- base_cli-0.5.1/tests/test_community_issue_templates.py +18 -0
- base_cli-0.5.1/tests/test_config_discovery_trust.py +93 -0
- base_cli-0.5.1/tests/test_consumer_quickstart_docs.py +28 -0
- base_cli-0.5.1/tests/test_dependency_documentation.py +29 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_explicit_config_validation.py +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_extensions.py +85 -0
- base_cli-0.5.1/tests/test_framework_config_runtime.py +316 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_generate_compatibility_dashboard.py +3 -3
- base_cli-0.5.1/tests/test_generated_api_reference.py +17 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_integrations.py +68 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_json_contracts.py +205 -2
- base_cli-0.5.1/tests/test_json_descriptor_capture.py +78 -0
- base_cli-0.5.1/tests/test_logger_ownership.py +111 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_logging.py +86 -0
- base_cli-0.5.1/tests/test_logging_hot_path.py +217 -0
- base_cli-0.5.1/tests/test_optional_output_dependencies_docs.py +29 -0
- base_cli-0.5.1/tests/test_optional_yaml_dependency.py +87 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_output.py +125 -0
- base_cli-0.5.1/tests/test_package_workflow.py +78 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_paths.py +36 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_platform_edge_paths.py +89 -2
- base_cli-0.5.1/tests/test_project_intake.py +509 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_public_api.py +1 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_redaction_security.py +84 -0
- base_cli-0.5.1/tests/test_retention_contention.py +93 -0
- base_cli-0.5.1/tests/test_retention_platform.py +61 -0
- base_cli-0.5.1/tests/test_run_app_reentrancy.py +122 -0
- base_cli-0.5.1/tests/test_run_bundle_retention.py +432 -0
- base_cli-0.5.1/tests/test_run_json_preflight.py +227 -0
- base_cli-0.5.1/tests/test_strict_json_consumer_docs.py +27 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_typer_adapter.py +38 -0
- base_cli-0.5.1/tests/test_validate_changelog.py +120 -0
- base_cli-0.5.1/tests/test_validate_consumer_typing.py +34 -0
- base_cli-0.5.1/tests/test_validate_coverage.py +26 -0
- base_cli-0.5.1/tests/test_validate_package_artifact.py +15 -0
- base_cli-0.5.1/tests/test_validate_release_docs.py +49 -0
- base_cli-0.5.1/tests/test_validate_release_provenance.py +227 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_validate_release_ref.py +4 -0
- base_cli-0.5.1/tests/test_verify_pypi_metadata.py +34 -0
- base_cli-0.5.1/tests/test_verify_release_assets.py +139 -0
- base_cli-0.5.1/tests/test_windows_retention.py +43 -0
- base_cli-0.4.3/.github/ISSUE_TEMPLATE/support.md +0 -28
- base_cli-0.4.3/.github/workflows/package.yml +0 -294
- base_cli-0.4.3/.github/workflows/project-intake.yml +0 -255
- base_cli-0.4.3/.github/workflows/tests.yml +0 -147
- base_cli-0.4.3/VERSION +0 -1
- base_cli-0.4.3/docs/integrations.md +0 -54
- base_cli-0.4.3/docs/local-config.md +0 -24
- base_cli-0.4.3/docs/performance.md +0 -33
- base_cli-0.4.3/docs/releasing.md +0 -148
- base_cli-0.4.3/lib/python/base_cli/_run.py +0 -431
- base_cli-0.4.3/lib/python/base_cli/logging.py +0 -292
- base_cli-0.4.3/scripts/benchmark_runtime.py +0 -114
- base_cli-0.4.3/tests/test_batteries_included_config.py +0 -173
- base_cli-0.4.3/tests/test_benchmark_runtime.py +0 -21
- base_cli-0.4.3/tests/test_optional_yaml_dependency.py +0 -42
- base_cli-0.4.3/tests/test_run_bundle_retention.py +0 -190
- base_cli-0.4.3/tests/test_validate_changelog.py +0 -64
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/base-project.yml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/pull_request_template.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/workflows/examples.yml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/.github/workflows/issue-branch-policy.yml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/LICENSE +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/MANIFEST.in +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/SECURITY.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/atlas_click/src/atlas_click/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/atlas_click/src/atlas_click/cli.py +1 -1
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/beacon_typer/src/beacon_typer/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/cinder_automation/src/cinder_automation/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/compatibility/consumers/manifest.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/framework-choice.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/migration-argparse.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/migration-cement.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/migration-click.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/migration-typer.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/migrations.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/schemas.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/docs/user-config-typing.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/README.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/automation_observability_app/README.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/automation_observability_app/pyproject.toml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/automation_observability_app/src/automation_observability_app/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/automation_observability_app/tests/test_cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/minimal_cli/README.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/minimal_cli/pyproject.toml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/minimal_cli/src/minimal_cli/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/minimal_cli/tests/test_cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/README.md +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/pyproject.toml +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/src/nested_click_app/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/src/nested_click_app/cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/src/nested_click_app/plugin.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/nested_click_app/tests/test_cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typed_consumer.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_app/src/typer_app/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_app/src/typer_app/cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_app/tests/test_cli.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/examples/typer_consumer.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/__init__.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_cleanup.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/_dependencies.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/app.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/asyncio_adapter.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/attachment.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/command_filters.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/command_protocol.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/deprecations.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/errors.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/exit_codes.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/experimental.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/history.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/py.typed +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/runtime.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/command-protocol.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/error.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/inspection.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/log.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/ndjson.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/schemas/v1/output.schema.json +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli/testing.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli.egg-info/dependency_links.txt +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/lib/python/base_cli.egg-info/top_level.txt +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/generate_compatibility_dashboard.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_consumers.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_contract_fixtures.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_examples.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_installed_package.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/scripts/validate_schemas.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/setup.cfg +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/conftest.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_api_stability.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_dry_run.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_log_retention.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_module_boundaries.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_quiet.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_runtime_errors.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_security_boundaries.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_startup_transaction.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_app_subcommands.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_command_filters.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_command_protocol.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_context_workspace.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_generic_core.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_history.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_inspection.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_invocation_parity.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_lifecycle_options.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_profile.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_security_documentation.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_testing.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_typed_contracts.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_validate_docs.py +0 -0
- {base_cli-0.4.3 → base_cli-0.5.1}/tests/test_validate_schemas.py +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible base-cli defect
|
|
3
|
+
title: "bug: "
|
|
4
|
+
labels:
|
|
5
|
+
- bug
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Do not include secrets, personal data, or vulnerability details. Use SECURITY.md for private reports.
|
|
11
|
+
- type: input
|
|
12
|
+
id: version
|
|
13
|
+
attributes:
|
|
14
|
+
label: Version or commit
|
|
15
|
+
description: Include the installed release, package revision, or commit.
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
- type: input
|
|
19
|
+
id: environment
|
|
20
|
+
attributes:
|
|
21
|
+
label: Environment
|
|
22
|
+
description: Include Python, Click/Typer, OS, architecture, and relevant extras.
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
id: reproduction
|
|
27
|
+
attributes:
|
|
28
|
+
label: Reproduction
|
|
29
|
+
description: Give the smallest command, fixture, or test that reproduces the problem.
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: expected
|
|
34
|
+
attributes:
|
|
35
|
+
label: Expected behavior
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
- type: textarea
|
|
39
|
+
id: actual
|
|
40
|
+
attributes:
|
|
41
|
+
label: Actual behavior
|
|
42
|
+
render: text
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
45
|
+
- type: textarea
|
|
46
|
+
id: logs
|
|
47
|
+
attributes:
|
|
48
|
+
label: Relevant logs
|
|
49
|
+
description: Redact credentials, tokens, personal data, and private paths.
|
|
50
|
+
render: text
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: true
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Support and adoption questions
|
|
4
|
+
url: https://github.com/orgs/basefoundry/discussions
|
|
5
|
+
about: Ask ecosystem-wide usage and onboarding questions in the canonical public forum.
|
|
6
|
+
- name: Private security report
|
|
7
|
+
url: https://github.com/basefoundry/base-cli/security/advisories/new
|
|
8
|
+
about: Never disclose vulnerabilities or sensitive data in a public issue.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Documentation improvement
|
|
2
|
+
description: Report missing, incorrect, or confusing base-cli documentation
|
|
3
|
+
title: "docs: "
|
|
4
|
+
labels:
|
|
5
|
+
- documentation
|
|
6
|
+
body:
|
|
7
|
+
- type: input
|
|
8
|
+
id: location
|
|
9
|
+
attributes:
|
|
10
|
+
label: Documentation location
|
|
11
|
+
description: Give the URL or repository path.
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: problem
|
|
16
|
+
attributes:
|
|
17
|
+
label: Problem
|
|
18
|
+
description: Explain what a reader cannot understand or do.
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: suggestion
|
|
23
|
+
attributes:
|
|
24
|
+
label: Suggested improvement
|
|
25
|
+
description: Describe the corrected or clearer outcome.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Feature proposal
|
|
2
|
+
description: Propose a user-facing base-cli capability or improvement
|
|
3
|
+
title: "feature: "
|
|
4
|
+
labels:
|
|
5
|
+
- enhancement
|
|
6
|
+
body:
|
|
7
|
+
- type: textarea
|
|
8
|
+
id: problem
|
|
9
|
+
attributes:
|
|
10
|
+
label: User problem
|
|
11
|
+
description: Who is affected, and what are they unable to do today?
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: outcome
|
|
16
|
+
attributes:
|
|
17
|
+
label: Desired outcome
|
|
18
|
+
description: Describe what success looks like without requiring a particular implementation.
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: alternatives
|
|
23
|
+
attributes:
|
|
24
|
+
label: Alternatives and context
|
|
25
|
+
description: Include workarounds, constraints, or compatibility concerns.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Adoption support
|
|
3
|
+
about: Request migration or downstream compatibility help
|
|
4
|
+
title: "[Support] "
|
|
5
|
+
labels: ""
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Use the Support and adoption question form when it is available. Include the
|
|
10
|
+
base-cli version, Python and operating-system versions, a minimal
|
|
11
|
+
reproduction, and redacted evidence. Never include secrets; use SECURITY.md
|
|
12
|
+
for private vulnerability reports.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Support and adoption question
|
|
2
|
+
description: Ask for help using or evaluating base-cli
|
|
3
|
+
title: "support: "
|
|
4
|
+
labels:
|
|
5
|
+
- adoption support
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
For general ecosystem questions, prefer Base Discussions. Do not include secrets or security-sensitive details here.
|
|
11
|
+
- type: input
|
|
12
|
+
id: version
|
|
13
|
+
attributes:
|
|
14
|
+
label: Version or commit
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: textarea
|
|
18
|
+
id: environment
|
|
19
|
+
attributes:
|
|
20
|
+
label: Environment
|
|
21
|
+
description: Include Python, Click/Typer, OS, architecture, and relevant extras.
|
|
22
|
+
validations:
|
|
23
|
+
required: true
|
|
24
|
+
- type: textarea
|
|
25
|
+
id: goal
|
|
26
|
+
attributes:
|
|
27
|
+
label: Goal and evidence
|
|
28
|
+
description: What are you trying to do, what did you try, and what happened?
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
@@ -37,6 +37,33 @@ jobs:
|
|
|
37
37
|
- name: Run adapter and Beacon compatibility tests
|
|
38
38
|
run: python -m pytest tests/test_typer_adapter.py compatibility/consumers/beacon_typer/tests
|
|
39
39
|
|
|
40
|
+
typer-click-boundaries:
|
|
41
|
+
name: Typer ${{ matrix.typer-version }} / Click ${{ matrix.click-version }} / Python ${{ matrix.python-version }}
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
timeout-minutes: 20
|
|
44
|
+
strategy:
|
|
45
|
+
fail-fast: false
|
|
46
|
+
matrix:
|
|
47
|
+
python-version: ["3.10", "3.14"]
|
|
48
|
+
typer-version: ["0.25.1", "0.27.2"]
|
|
49
|
+
click-version: ["8.2.1", "8.5.0"]
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
52
|
+
- name: Set up Python
|
|
53
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
54
|
+
with:
|
|
55
|
+
python-version: ${{ matrix.python-version }}
|
|
56
|
+
- name: Install framework and supported Typer adapter
|
|
57
|
+
run: |
|
|
58
|
+
python -m pip install "setuptools<77" "wheel"
|
|
59
|
+
python -m pip install ".[dev,typer]"
|
|
60
|
+
- name: Pin the tested Click/Typer boundary pair
|
|
61
|
+
run: python -m pip install --upgrade "click==${{ matrix.click-version }}" "typer==${{ matrix.typer-version }}"
|
|
62
|
+
- name: Install Beacon fixture without dependency resolution
|
|
63
|
+
run: python -m pip install --no-deps compatibility/consumers/beacon_typer
|
|
64
|
+
- name: Run adapter and Beacon compatibility tests
|
|
65
|
+
run: python -m pytest tests/test_typer_adapter.py compatibility/consumers/beacon_typer/tests
|
|
66
|
+
|
|
40
67
|
downstream:
|
|
41
68
|
name: Install and test independent consumers
|
|
42
69
|
runs-on: ubuntu-latest
|
|
@@ -56,11 +83,17 @@ jobs:
|
|
|
56
83
|
python -m pip install dist/*.whl
|
|
57
84
|
- name: Validate consumer manifest
|
|
58
85
|
run: python scripts/validate_consumers.py
|
|
59
|
-
- name: Install consumers
|
|
86
|
+
- name: Install consumers without dependency resolution
|
|
87
|
+
run: |
|
|
88
|
+
python -m pip install --no-deps compatibility/consumers/atlas_click
|
|
89
|
+
python -m pip install --no-deps compatibility/consumers/beacon_typer
|
|
90
|
+
python -m pip install --no-deps "compatibility/consumers/cinder_automation[observability]"
|
|
91
|
+
- name: Verify the installed framework matches the source release
|
|
60
92
|
run: |
|
|
61
|
-
|
|
62
|
-
python -
|
|
63
|
-
|
|
93
|
+
expected="$(tr -d '\r\n' < VERSION)"
|
|
94
|
+
actual="$(python -c 'from importlib.metadata import version; print(version("base-cli"))')"
|
|
95
|
+
test "$actual" = "$expected"
|
|
96
|
+
python -m pip check
|
|
64
97
|
- name: Run downstream compatibility suites
|
|
65
98
|
run: |
|
|
66
99
|
for tests in compatibility/consumers/*/tests; do
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
fail-fast: false
|
|
21
21
|
matrix:
|
|
22
22
|
python-version: ["3.10", "3.14"]
|
|
23
|
-
click-version: ["8.1.*", "8.2.*", "8.3.*", "8.4.*"]
|
|
23
|
+
click-version: ["8.1.*", "8.2.*", "8.3.*", "8.4.*", "8.5.*"]
|
|
24
24
|
pyyaml-version: ["6.0.*"]
|
|
25
25
|
steps:
|
|
26
26
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
@@ -22,6 +22,8 @@ on:
|
|
|
22
22
|
- ".github/workflows/dependency-matrix.yml"
|
|
23
23
|
- ".github/workflows/compatibility.yml"
|
|
24
24
|
- "tests/validate.sh"
|
|
25
|
+
- "tests/full_validate.sh"
|
|
26
|
+
- "docs/testing.md"
|
|
25
27
|
- ".github/workflows/docs.yml"
|
|
26
28
|
pull_request:
|
|
27
29
|
paths:
|
|
@@ -33,6 +35,8 @@ on:
|
|
|
33
35
|
- "scripts/validate_docs.py"
|
|
34
36
|
- "scripts/generate_api_reference.py"
|
|
35
37
|
- "tests/validate.sh"
|
|
38
|
+
- "tests/full_validate.sh"
|
|
39
|
+
- "docs/testing.md"
|
|
36
40
|
- ".github/workflows/docs.yml"
|
|
37
41
|
workflow_dispatch:
|
|
38
42
|
|
|
@@ -51,6 +55,8 @@ jobs:
|
|
|
51
55
|
steps:
|
|
52
56
|
- name: Check out source
|
|
53
57
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
58
|
+
with:
|
|
59
|
+
fetch-depth: 0
|
|
54
60
|
|
|
55
61
|
- name: Set up Python
|
|
56
62
|
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|