Metadata-Version: 2.2
Name: cf-basic-sinks
Version: 0.2.4
Summary: Cogniflow basic sink StepPackage with Data Hive sink plugin steps.
Author-Email: ODEA Project <info@odea-project.org>
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Requires-Dist: cf-package-contracts>=0.1.0
Provides-Extra: test
Requires-Dist: pytest>=7.4; extra == "test"
Requires-Dist: rdflib<8,>=7; extra == "test"
Description-Content-Type: text/markdown

# cf-basic-sinks

`cf-basic-sinks` provides sink-step manifests and the native plugin implementation for pipeline outputs.

## Steps

| Step | Category | Description |
|------|----------|-------------|
| `cfsink:DataHiveParquetSinkStep` | sink | Commit a canonical Data Hive write through the injected `CfDataHiveSinkContractV1` owner surface |

Published distribution name:

```bash
pip install cf-basic-sinks
```

## Package role

`cf_basic_sinks` ships both the step manifest and the native plugin artifact.

- the package publishes a loadable plugin under `cf_basic_sinks/bin`
- `cfsink:DataHiveParquetSinkStep` executes through that plugin, not an engine built-in path
- backend-specific Data Hive write behavior remains owned by `cf_datahive`
- the plugin consumes the injected `CfDataHiveSinkContractV1` surface instead of linking storage policy directly

## Publishing

`cf_basic_sinks` is published with the dedicated Windows workflow:

- Workflow: `.github/workflows/cf_basic_sinks_windows_publish.yml`
- Package directory: `sandcastle/cf_basic_steps/cf_basic_sinks`
- PyPI tag: `cf-basic-sinks-v<version>`
- TestPyPI tag: `cf-basic-sinks-v<version>-test`

Workflow note:

- test/build jobs publish the step manifest together with the native plugin artifact
- backend-specific native configuration and runtime staging remain owned in `sandcastle/cf_datahive/README.md`

Local preflight:

```powershell
powershell -ExecutionPolicy Bypass -File scripts/mimic_windows_python_publish_workflow.ps1 `
  -WorkflowFile .github/workflows/cf_basic_sinks_windows_publish.yml `
  -PackageDir sandcastle/cf_basic_steps/cf_basic_sinks `
  -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_basic_sinks_windows_publish.yml `
  -PackageDir sandcastle/cf_basic_steps/cf_basic_sinks `
  -PublishTarget testpypi `
  -Ref main `
  -RequireLocalPass `
  -DryRun
```

