code-standards 8.135.5__tar.gz → 8.136.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.
- {code_standards-8.135.5 → code_standards-8.136.2}/PKG-INFO +5 -5
- {code_standards-8.135.5 → code_standards-8.136.2}/pyproject.toml +5 -5
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/_meta.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/api.py +7 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/cli/main.py +18 -34
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/cli-reference.v1.json +2 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/rule-calibration-campaign.v1.json +8 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/rule-inventory.v1.json +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/rule-ledger.json +2 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/configs.py +1 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/doctor.py +7 -6
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/hooks.py +40 -19
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/manifest.py +8 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/packagemanager.py +14 -10
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/retired_suppressions.py +10 -9
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/scaffold.py +64 -43
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/transaction.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/upgrade.py +2 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/catalogs/slack_automations.py +2 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/corpus/manifest.py +7 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/baseline.py +18 -9
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/models.py +113 -23
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/serialize.py +64 -59
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/json_boundary.py +4 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/_cloudbuild_autofix.py +18 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/action_metadata.py +0 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/analysis.py +14 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/autofix.py +0 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/cloudbuild.py +1 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/cloudbuild_schema.py +18 -7
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/devops_programs.py +46 -17
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/devops_source.py +5 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/devops_tools.py +1 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/duplicate_code.py +0 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/embedded_shell.py +0 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/external.py +21 -33
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/library_policy.py +9 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/prepared_devops.py +33 -17
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/prepared_kubernetes.py +51 -16
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/repo_standards.py +7 -6
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/runner.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/scheduling.py +0 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/security_tools.py +14 -6
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/shell_ast.py +11 -10
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/textlint.py +6 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/toml_literals.py +28 -8
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/unused_modules.py +0 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/_values.py +5 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/metadata_verification.py +4 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/registry.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/release_age.py +18 -10
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/rollout.py +24 -21
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/tags.py +6 -3
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/test_selection.py +1 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/typescript.py +12 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/verification_process.py +1 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/wheel_tests.py +20 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/cli_examples.py +8 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/cloudbuild_schema_projection.py +13 -14
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/config_generation.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/docs.py +8 -2
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/repository.py +33 -7
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/ruff_freshness.py +5 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_authoring.py +2 -4
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_catalog_artifact.py +17 -15
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_changes.py +18 -17
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_dependencies.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_maintenance.py +30 -18
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_registration.py +5 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/rules/catalog.py +14 -7
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/rules/corpus_runner.py +1 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/schema_boundary.py +26 -7
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/yaml_boundary.py +8 -2
- code_standards-8.136.2/src/sarj_standards/schemas/rule-catalog.v1.json +1 -0
- code_standards-8.135.5/src/sarj_standards/schemas/rule-catalog.v1.json +0 -1
- {code_standards-8.135.5 → code_standards-8.136.2}/.gitignore +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/LICENSE +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/README.md +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/__main__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/cli/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/Mintfile.mobile.strict +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/LICENSE.actions +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/LICENSE.cronstrue +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/LICENSE.yaml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/generate.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/index.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/package-lock.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/package.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser/upstream.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/action-parser.cjs +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/actionlint.strict.yaml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/basedpyright.python315-watch.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/basedpyright.strict.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/checkov.strict.yml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/compile-eslint.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/detekt.strict.yml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/devops-verification.v1.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/doctor.config.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint-compact-formatter.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint-required-policy.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint-selected-rules.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint.application.mjs +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint.peers.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint.strict.mjs +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/eslint.strict.ts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/hadolint.strict.yaml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ktlint.strict.editorconfig +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/markdownlint.strict.yaml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/mobile-tools.versions.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/mobsf.strict.yml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/pyright.strict.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ruff.application.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ruff.cast.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ruff.python315-watch.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ruff.required.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/ruff.strict.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/rule-level-source.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/schemas/SKAFFOLD-LICENSE +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/schemas/google-build-v1-schema.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/schemas/google-build-v1.LICENSE +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/schemas/skaffold-v4beta7.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/schemas/upstream-schemas.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/semgrep-overrides.txt +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/shellcheck.strict.rc +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/swiftformat.strict +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/swiftlint.strict.yml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/taplo.strict.toml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/tflint.strict.hcl +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/tflint.version.hcl +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/tool-json.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/yamllint.strict.yaml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/zizmor.strict.yml +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/age_transition.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/devops.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/exclusions.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/launcher.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/lifecycle.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/native_bootstrap.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/repository_baseline.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/service.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/adoption/uvtool.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/catalogs/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/corpus/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/corpus/snapshot.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/analysis.schema.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/diagnostics/source.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/filesystem.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/chart_schemas.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/complexity_baseline.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/devops_schema.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/kubernetes_context.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/mobile_tools.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/policy.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/prepared_native.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/python_fixes.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/shell_format.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/shell_policy.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/test_value.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/text_rule_base.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/text_rules/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/text_rules/_registry.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/linting/text_rules/cloudbuild_contract.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/artifacts.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/causality.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/changes.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/ci_artifacts.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/make_checks.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/native_test_setup.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/process.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/publish.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/release_detect.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/retirement.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/reviewed_analysis.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/release/status.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/cli_reference_artifact.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/comment_corpus.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/hooks.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/immutable_git.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/ledger.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_checkout.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_examples.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_imports.mts +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_inventory_artifact.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_level_source.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/rule_lifecycle.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/shell_checks.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/repository/third_party_catalog_artifact.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/rules/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/rules/contracts.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/rules/evaluation.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/setup/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/setup/repository.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/libs/typed_containers.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/py.typed +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/schemas/__init__.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/schemas/_paths.py +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/schemas/rule-catalog.v1.schema.json +0 -0
- {code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/schemas/slack-automations.v1.schema.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: code-standards
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.136.2
|
|
4
4
|
Summary: One deterministic quality gate for Sarj Python, TypeScript, Swift, Kotlin, shell, SQL, IaC, and repository policy.
|
|
5
5
|
Project-URL: Homepage, https://code-standards.sarj.ai/
|
|
6
6
|
Project-URL: Documentation, https://code-standards.sarj.ai/cli/
|
|
@@ -30,10 +30,10 @@ Requires-Dist: pyyaml==6.0.3
|
|
|
30
30
|
Requires-Dist: referencing==0.37.0
|
|
31
31
|
Requires-Dist: repo-standards==6.12.9
|
|
32
32
|
Requires-Dist: ruff==0.17.2
|
|
33
|
-
Requires-Dist: sarj-iac-lint==0.30.
|
|
34
|
-
Requires-Dist: sarj-python-lint==1.
|
|
35
|
-
Requires-Dist: sarj-rule-contracts==0.4.
|
|
36
|
-
Requires-Dist: sarj-sql-lint==0.
|
|
33
|
+
Requires-Dist: sarj-iac-lint==0.30.2
|
|
34
|
+
Requires-Dist: sarj-python-lint==1.81.0
|
|
35
|
+
Requires-Dist: sarj-rule-contracts==0.4.2
|
|
36
|
+
Requires-Dist: sarj-sql-lint==0.29.0
|
|
37
37
|
Requires-Dist: shellcheck-py==0.11.0.1; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'darwin' and platform_machine == 'x86_64') or (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64')
|
|
38
38
|
Requires-Dist: typer==0.27.3
|
|
39
39
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "code-standards"
|
|
3
|
-
version = "8.
|
|
3
|
+
version = "8.136.2"
|
|
4
4
|
description = "One deterministic quality gate for Sarj Python, TypeScript, Swift, Kotlin, shell, SQL, IaC, and repository policy."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.14"
|
|
@@ -17,7 +17,7 @@ classifiers = [
|
|
|
17
17
|
"Topic :: Software Development :: Quality Assurance",
|
|
18
18
|
]
|
|
19
19
|
dependencies = [
|
|
20
|
-
"sarj-rule-contracts==0.4.
|
|
20
|
+
"sarj-rule-contracts==0.4.2",
|
|
21
21
|
"pathspec==1.1.1",
|
|
22
22
|
"basedpyright==1.40.2",
|
|
23
23
|
"deptry==0.25.1",
|
|
@@ -31,9 +31,9 @@ dependencies = [
|
|
|
31
31
|
"repo-standards==6.12.9",
|
|
32
32
|
"ruff==0.17.2",
|
|
33
33
|
"shellcheck-py==0.11.0.1; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'darwin' and platform_machine == 'x86_64') or (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64')",
|
|
34
|
-
"sarj-iac-lint==0.30.
|
|
35
|
-
"sarj-python-lint==1.
|
|
36
|
-
"sarj-sql-lint==0.
|
|
34
|
+
"sarj-iac-lint==0.30.2",
|
|
35
|
+
"sarj-python-lint==1.81.0",
|
|
36
|
+
"sarj-sql-lint==0.29.0",
|
|
37
37
|
"typer==0.27.3",
|
|
38
38
|
]
|
|
39
39
|
|
|
@@ -6,7 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
|
|
7
7
|
try:
|
|
8
8
|
__version__ = version("code-standards")
|
|
9
|
-
except PackageNotFoundError:
|
|
9
|
+
except PackageNotFoundError:
|
|
10
10
|
__version__ = "0.0.0.dev0"
|
|
11
11
|
|
|
12
12
|
CONFIGS_DIR: Path = Path(__file__).resolve().parent / "configs"
|
|
@@ -109,8 +109,7 @@ def _analysis_manifest(root: Path, mode: AnalysisMode) -> Manifest | None:
|
|
|
109
109
|
try:
|
|
110
110
|
return load_manifest(root)
|
|
111
111
|
except ValueError:
|
|
112
|
-
#
|
|
113
|
-
# generations. Current manifests still contribute path exclusions.
|
|
112
|
+
# Legacy manifests may still supply path exclusions.
|
|
114
113
|
return None
|
|
115
114
|
|
|
116
115
|
|
|
@@ -1213,7 +1212,12 @@ def _sync_target_changes(source: Path, destination: Path) -> bool:
|
|
|
1213
1212
|
return True
|
|
1214
1213
|
|
|
1215
1214
|
|
|
1216
|
-
def _object_list(
|
|
1215
|
+
def _object_list(
|
|
1216
|
+
value: object, # sarj-noqa: SARJ528 -- Shallow validation preserves unchecked array elements.
|
|
1217
|
+
label: str,
|
|
1218
|
+
) -> list[ # sarj-noqa: SARJ528 -- Shallow validation preserves unchecked array elements.
|
|
1219
|
+
object
|
|
1220
|
+
]:
|
|
1217
1221
|
if not is_object_list(value):
|
|
1218
1222
|
msg = f"{label} must be an array"
|
|
1219
1223
|
raise TypeError(msg)
|
|
@@ -15,10 +15,10 @@ import subprocess # ruff: ignore[suspicious-subprocess-import] -- repository co
|
|
|
15
15
|
import sys
|
|
16
16
|
import tempfile
|
|
17
17
|
from types import MappingProxyType
|
|
18
|
-
from typing import TYPE_CHECKING, Annotated, Final, NoReturn
|
|
18
|
+
from typing import TYPE_CHECKING, Annotated, Final, NoReturn
|
|
19
19
|
|
|
20
20
|
from packaging.version import InvalidVersion, Version
|
|
21
|
-
from pydantic import BaseModel, ValidationError
|
|
21
|
+
from pydantic import BaseModel, JsonValue, ValidationError
|
|
22
22
|
from repo_standards.core.commit_message import check_local_commit_message_file
|
|
23
23
|
import typer
|
|
24
24
|
|
|
@@ -29,7 +29,6 @@ from sarj_standards.libs.adoption.configs import CONFIG_NAMES
|
|
|
29
29
|
from sarj_standards.libs.filesystem import is_link_like
|
|
30
30
|
from sarj_standards.libs.linting.policy import Policy
|
|
31
31
|
from sarj_standards.libs.rules import RuleSelector
|
|
32
|
-
from sarj_standards.libs.typed_containers import is_object_mapping
|
|
33
32
|
|
|
34
33
|
|
|
35
34
|
_TEXT_DIAGNOSTIC_LIMIT: Final = 50
|
|
@@ -46,7 +45,7 @@ if TYPE_CHECKING:
|
|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
class _CorpusLintReport(BaseModel):
|
|
49
|
-
diagnostics: list[dict[str,
|
|
48
|
+
diagnostics: list[dict[str, JsonValue]]
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
_NEXT_STEPS = (
|
|
@@ -1551,7 +1550,7 @@ def _cmd_rule_evaluate_manifest(args: _Args, root: Path) -> int:
|
|
|
1551
1550
|
|
|
1552
1551
|
command = _corpus_evaluation_command(args)
|
|
1553
1552
|
|
|
1554
|
-
diagnostics: list[dict[str,
|
|
1553
|
+
diagnostics: list[dict[str, JsonValue]] = []
|
|
1555
1554
|
batches: list[dict[str, object]] = []
|
|
1556
1555
|
|
|
1557
1556
|
def observe(source: object, batch: object, stdout: bytes, _stderr: bytes) -> None:
|
|
@@ -1634,19 +1633,18 @@ def _corpus_evaluation_command(args: _Args) -> list[str]:
|
|
|
1634
1633
|
|
|
1635
1634
|
|
|
1636
1635
|
def _corpus_diagnostic(
|
|
1637
|
-
diagnostic: dict[str,
|
|
1636
|
+
diagnostic: dict[str, JsonValue],
|
|
1638
1637
|
corpus: str,
|
|
1639
1638
|
*,
|
|
1640
1639
|
private: bool,
|
|
1641
|
-
) -> dict[str,
|
|
1642
|
-
def rewrite(value:
|
|
1643
|
-
if
|
|
1640
|
+
) -> dict[str, JsonValue]:
|
|
1641
|
+
def rewrite(value: JsonValue) -> JsonValue:
|
|
1642
|
+
if isinstance(value, list):
|
|
1644
1643
|
return [rewrite(item) for item in value]
|
|
1645
|
-
|
|
1646
|
-
if table is None:
|
|
1644
|
+
if not isinstance(value, dict):
|
|
1647
1645
|
return value
|
|
1648
|
-
rewritten: dict[str,
|
|
1649
|
-
for key, item in
|
|
1646
|
+
rewritten: dict[str, JsonValue] = {}
|
|
1647
|
+
for key, item in value.items():
|
|
1650
1648
|
if key == "path" and isinstance(item, str):
|
|
1651
1649
|
rewritten[key] = "<private-corpus-file>" if private else f"{corpus}/{item}"
|
|
1652
1650
|
else:
|
|
@@ -1654,21 +1652,10 @@ def _corpus_diagnostic(
|
|
|
1654
1652
|
return rewritten
|
|
1655
1653
|
|
|
1656
1654
|
rendered = rewrite(diagnostic)
|
|
1657
|
-
|
|
1658
|
-
if table is None: # pragma: no cover - input is a dictionary.
|
|
1655
|
+
if not isinstance(rendered, dict): # pragma: no cover - input is a dictionary.
|
|
1659
1656
|
msg = "corpus diagnostic rendering failed"
|
|
1660
1657
|
raise TypeError(msg)
|
|
1661
|
-
return
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
def _is_object_list(value: object) -> TypeIs[list[object]]:
|
|
1665
|
-
return isinstance(value, list)
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
def _object_table(value: object) -> dict[str, object] | None:
|
|
1669
|
-
if not is_object_mapping(value):
|
|
1670
|
-
return None
|
|
1671
|
-
return {key: item for key, item in value.items() if isinstance(key, str)}
|
|
1658
|
+
return rendered
|
|
1672
1659
|
|
|
1673
1660
|
|
|
1674
1661
|
def cmd_observe(args: _Args) -> int:
|
|
@@ -1829,7 +1816,7 @@ def _validate_analysis_output(args: _Args, root: Path) -> bool:
|
|
|
1829
1816
|
return False
|
|
1830
1817
|
|
|
1831
1818
|
|
|
1832
|
-
def _machine_adoption_gate(root: Path) ->
|
|
1819
|
+
def _machine_adoption_gate(root: Path) -> AnalysisReport | None:
|
|
1833
1820
|
from sarj_standards.libs.adoption import doctor, service # ruff: ignore[import-outside-top-level] -- load sarj_standards.libs.adoption only when this selected operation executes.
|
|
1834
1821
|
from sarj_standards.libs.diagnostics import ( # ruff: ignore[import-outside-top-level] -- load sarj_standards.libs.diagnostics only when this selected operation executes.
|
|
1835
1822
|
Completion,
|
|
@@ -1939,7 +1926,7 @@ def _merge_sync_findings(
|
|
|
1939
1926
|
return _SyncFindings(diagnostics=diagnostics, issues=issues)
|
|
1940
1927
|
|
|
1941
1928
|
|
|
1942
|
-
def _machine_input_error(root: Path, message: str) ->
|
|
1929
|
+
def _machine_input_error(root: Path, message: str) -> AnalysisReport:
|
|
1943
1930
|
from sarj_standards.libs.diagnostics import ( # ruff: ignore[import-outside-top-level] -- machine formats stay lazy
|
|
1944
1931
|
Completion,
|
|
1945
1932
|
ExecutionIssue,
|
|
@@ -2020,8 +2007,7 @@ def _prepare_report_parent(root: Path, output: Path) -> None:
|
|
|
2020
2007
|
|
|
2021
2008
|
|
|
2022
2009
|
def _write_report(root: Path, output: Path, payload: str, *, output_format: str) -> None:
|
|
2023
|
-
#
|
|
2024
|
-
# being replaced after the pre-analysis check.
|
|
2010
|
+
# Recheck the parent path immediately before writing to prevent replacement races.
|
|
2025
2011
|
destination = _report_destination(root, output, output_format=output_format)
|
|
2026
2012
|
parent = destination.parent
|
|
2027
2013
|
descriptor, temporary_name = tempfile.mkstemp(prefix=f".{destination.name}.", suffix=".tmp", dir=parent)
|
|
@@ -2582,8 +2568,7 @@ def _baseline_analysis_reports(args: _Args, root: Path, selected: list[str] | No
|
|
|
2582
2568
|
operations.append(partial(_baseline_external_report, root, selected, trust, "shellcheck"))
|
|
2583
2569
|
if args.jobs == 1 or len(operations) <= 1:
|
|
2584
2570
|
return [operation() for operation in operations]
|
|
2585
|
-
#
|
|
2586
|
-
# a single operation uses its own worker budget. Check every result first.
|
|
2571
|
+
# Inner analyzers run serially under this shared worker budget.
|
|
2587
2572
|
with ThreadPoolExecutor(max_workers=args.jobs, thread_name_prefix="baseline") as workers:
|
|
2588
2573
|
pending = [workers.submit(operation) for operation in operations]
|
|
2589
2574
|
return [result.result() for result in pending]
|
|
@@ -2599,8 +2584,7 @@ def _baseline_scan_rules(args: _Args) -> _BaselineScanRules:
|
|
|
2599
2584
|
scoped_rules = _analysis_rules_for_baseline(args.baseline_rules) if args.baseline_cmd == "update" else None
|
|
2600
2585
|
upstream_eslint = bool(_upstream_eslint_rules_for_baseline(args.baseline_rules))
|
|
2601
2586
|
if upstream_eslint and scoped_rules is not None:
|
|
2602
|
-
#
|
|
2603
|
-
# findings. Validate custom selectors before removing that duplicate scan.
|
|
2587
|
+
# Validate selectors before combining their upstream and custom scans.
|
|
2604
2588
|
for selector in scoped_rules:
|
|
2605
2589
|
if (
|
|
2606
2590
|
selector.startswith("eslint:")
|
{code_standards-8.135.5 → code_standards-8.136.2}/src/sarj_standards/configs/cli-reference.v1.json
RENAMED
|
@@ -3316,6 +3316,6 @@
|
|
|
3316
3316
|
},
|
|
3317
3317
|
"program": "code-standards",
|
|
3318
3318
|
"schemaVersion": 1,
|
|
3319
|
-
"summary": "Adopt, check, fix, diagnose, and update sarj-ai standards (v8.
|
|
3320
|
-
"version": "8.
|
|
3319
|
+
"summary": "Adopt, check, fix, diagnose, and update sarj-ai standards (v8.136.2).",
|
|
3320
|
+
"version": "8.136.2"
|
|
3321
3321
|
}
|
|
@@ -2862,6 +2862,14 @@
|
|
|
2862
2862
|
"evidence": "Twenty-eight focused settings checks cover repeated Python field namespaces, environment-alias independence, owned and inherited fields, ClassVar and Final metadata, private fields, generated and test exclusions, imported BaseSettings ancestry, stable locations and exact suppressions. Private source, paths and identifying pins stay outside public artifacts. Follow-up: packages/python/benchmarks/service-contracts-and-ids-100-passes.json records 100 distinct semantic cases (39 true positives, 61 true negatives, no labeled false positives/negatives), five exact motivating blocking findings, deterministic three-trial cold/warm measurements on 296 guarded sample files, and completed local canonical gates. Private source and identifying pins remain local. Exact-head CI and broader review remain separate gates. The second post-merge audit passed 100 distinct native checks against the actual published sarj-python-lint 1.76.0 wheel, 25 per repaired rule, with zero failures or skips.",
|
|
2863
2863
|
"outcome": "Stage SARJ532 at WARNING without autofix. At least two directly owned public BaseSettings fields must share a complete Python namespace token; environment aliases alone do not qualify. Forty-four matching groups in the private sample remain API/environment review advisories. Preserve existing loading, aliases, defaults and source precedence when grouping manually."
|
|
2864
2864
|
},
|
|
2865
|
+
{
|
|
2866
|
+
"task": "rule-audit/sql/new-table-inline-constraints",
|
|
2867
|
+
"family": "sql",
|
|
2868
|
+
"ruleId": "new-table-inline-constraints",
|
|
2869
|
+
"state": "pending",
|
|
2870
|
+
"evidence": "Authored semantic fixtures cover primary keys, uniqueness, foreign keys, checks and plain unique column indexes on proven fresh tables. Near-miss controls preserve existing-table and online-validation migrations, forward foreign-key dependencies, transaction and migration-section boundaries, quoted identifiers, malformed input and indexes with separate PostgreSQL contracts. Final canonical verification and exact-head CI remain required; private source, paths and identifying pins remain local.",
|
|
2871
|
+
"outcome": "Enforce SARJ121 as an error at the explicit user request, without autofix. Preserve constraint names and options when moving eligible declarations into CREATE TABLE. Ordinary, partial, expression, concurrent and option-bearing indexes remain separate; conditional or unproved table freshness abstains. Calibration remains pending rather than claiming completed release qualification."
|
|
2872
|
+
},
|
|
2865
2873
|
{
|
|
2866
2874
|
"task": "rule-audit/sql/no-analytical-queries-in-transactional-db",
|
|
2867
2875
|
"family": "sql",
|