Metadata-Version: 2.4
Name: cf-step-tooling
Version: 0.1.0
Summary: Cogniflow step build tooling utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: rdflib<8.0,>=7.4
Provides-Extra: test
Requires-Dist: pytest<9.0,>=8.0; extra == "test"

# cf-step-tooling

Build-time tooling for Cogniflow step packages.

Current scope:

- `python -m cf_step_tooling.siggen`
- `cf_step_tooling.validation.generate_validation_spec(...)`
- `cf_step_tooling.validation.write_validation_spec(...)`

The package is intentionally tooling-only. It is not part of the runtime ABI
surface and does not expose native provider contracts.

`cf-step-tooling` is intentionally independent from `cf_ontology`. It parses
step RDF documents directly for signature/header generation and validation-spec
output, but it does not run SHACL validation or depend on ontology workspace
state.

The `siggen` CLI keeps `--semantics-dir` and `--scratch` as compatibility
parameters for older callers. They are accepted and ignored.

## Publishing

`cf-step-tooling` is published with the dedicated Windows workflow:

- Workflow: `.github/workflows/cf_step_tooling_windows_publish.yml`
- Package directory: `sandcastle/cf_step_tooling`
- PyPI tag: `cf-step-tooling-v<version>`
- TestPyPI tag: `cf-step-tooling-v<version>-test`

Local preflight:

```powershell
powershell -ExecutionPolicy Bypass -File scripts/mimic_windows_python_publish_workflow.ps1 `
  -WorkflowFile .github/workflows/cf_step_tooling_windows_publish.yml `
  -PackageDir sandcastle/cf_step_tooling `
  -PythonExe py `
  -PythonVersion 3.14
```

Queue a dry-run dispatch:

```powershell
powershell -ExecutionPolicy Bypass -File scripts/queue_windows_python_publish_workflow.ps1 `
  -WorkflowFile .github/workflows/cf_step_tooling_windows_publish.yml `
  -PackageDir sandcastle/cf_step_tooling `
  -PublishTarget none `
  -Ref main `
  -RequireLocalPass `
  -DryRun `
  -ReleaseTag cf-step-tooling-v0.1.0
```
