Skip to content

Rebrand the Honeydew converter from OSI to Ossie - #313

Open
baruchoxman wants to merge 2 commits into
apache:mainfrom
baruchoxman:rebrand-honeydew-connector-to-ossie
Open

Rebrand the Honeydew converter from OSI to Ossie#313
baruchoxman wants to merge 2 commits into
apache:mainfrom
baruchoxman:rebrand-honeydew-connector-to-ossie

Conversation

@baruchoxman

@baruchoxman baruchoxman commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

The Honeydew converter was the last Python converter still carrying the project's
former OSI name. Every other Python converter (snowflake, dbt, databricks,
gooddata, gsf, orionbelt, wisdom) already follows the
apache-ossie-<vendor> / ossie_<vendor> / ossie-<vendor> convention, so this
brings Honeydew in line and clears the OSI naming out of the converter entirely.

Packaging

before after
distribution honeydew-osi apache-ossie-honeydew
import package honeydew_osi ossie_honeydew
console script honeydew-osi ossie-honeydew
test module test_honeydew_osi_converter.py test_ossie_honeydew_converter.py
description "…and OSI semantic model" "Honeydew workspace YAML <> Apache Ossie converter"

CLI

ossie-honeydew ossie-to-honeydew -i input.yaml -o output_dir/
ossie-honeydew honeydew-to-ossie -i workspace_dir/ -o output.yaml

osi-to-honeydew / honeydew-to-osi are renamed to ossie-to-honeydew /
honeydew-to-ossie. The converter has not been released, so there are no
published invocations to break — flagging it explicitly in case a reviewer
would rather keep the old spellings as hidden aliases.

Internals and docs

Public and internal identifiers follow: SUPPORTED_OSI_VERSION
SUPPORTED_OSSIE_VERSION, convert_osi_to_honeydewconvert_ossie_to_honeydew,
convert_honeydew_to_osiconvert_honeydew_to_ossie, plus the _osi_* helpers
and osi_* locals. Prose in the README, module docstring, comments and CLI help
says Ossie rather than OSI, following
#244.

The one behavioural change: the preserved metadata section

The converter stores Ossie-only fields (ai_context, label, unique_keys,
custom_extensions, vendors) in a named Honeydew metadata section so they
survive a Honeydew → Ossie → Honeydew round trip. That section is renamed
osiossie.

Since the name is a persisted key, _read_ossie_metadata continues to accept
the legacy osi section on read while only ever writing ossie. Without that
fallback, exporting a workspace produced by an earlier version silently drops
every preserved field — verified before adding it, and now covered by
test_read_legacy_osi_metadata_section.

Documentation links

Honeydew has since renamed its own OSI page to
Apache Ossie (OSI), which
documents this converter from the Honeydew side. The README now links to it, and
points the "workspace YAML" reference at Honeydew's
YAML schema page rather than the docs root
— matching how the omni, dbt and databricks READMEs link to the specific
vendor format page.

Related Issues

None.

Verification

  • uv sync && uv run pytest in converters/honeydew129 passed (128 existing
    • 1 new legacy-metadata regression test).
  • uv run ossie-honeydew --help lists the renamed subcommands.
  • Round-tripped examples/tpcds_semantic_model.yaml through
    ossie-to-honeydewhoneydew-to-ossie. The exported Ossie YAML is
    byte-identical to the output produced before this change; the only difference in
    the generated Honeydew workspace is the osiossie metadata section name.
  • Exporting a workspace written by the pre-rename converter produces byte-identical
    Ossie YAML, confirming the legacy-section fallback works.
  • Every link in the converter (3 external, 1 relative) resolves.

Checklist

Specification

  • Spec changes are included in core-spec/ and follow the existing structure
  • Spec changes have been discussed on the mailing list or in a linked issue
  • Breaking changes to the spec are clearly called out in the summary

No specification changes. Note core-spec/spec.md documents a HONEYDEW vendor
extension that converters/README.md's "Supported Vendors" table omits; left alone
here as it predates this PR.

Ontology

  • Ontology changes in ontology/ are consistent with spec changes
  • New or modified terms are defined and documented

No ontology changes.

Converters

  • Converter logic in converters/ is updated to reflect spec or ontology changes — naming and docs, plus the legacy-metadata fallback described above
  • New converters include tests under the converter's test directory

Validation

  • Validation rules in validation/ are updated if the spec changed
  • New validation cases are covered by tests

No validation changes.

Documentation

  • docs/ is updated to reflect any user-facing changes — docs/ carries no converter-specific naming; the converter README is updated
  • New features or behaviors are documented with examples where appropriate
  • CONTRIBUTING.md is updated if the contribution process changed

Examples

  • examples/ are added or updated for any new spec constructs or converter support

No new constructs.

Tests

  • All existing tests pass (pytest / CI green)
  • New functionality is covered by tests

Compliance

  • ASF license headers are present on all new source files
  • No third-party dependencies are added without PMC/IPMC approval — the uv.lock change is the distribution rename only

The Honeydew converter still carried the project's former OSI name in its
distribution name, package, console script and docs, unlike every other
Python converter which uses the apache-ossie-<vendor> / ossie_<vendor> /
ossie-<vendor> convention. Bring it in line:

  honeydew-osi   -> apache-ossie-honeydew   (distribution)
  honeydew_osi   -> ossie_honeydew          (import package)
  honeydew-osi   -> ossie-honeydew          (console script)

Prose in the README, module docstrings, comments and CLI help now says
Ossie instead of OSI, matching the snowflake and orionbelt converters
after the same rebrand.

The subcommand names osi-to-honeydew / honeydew-to-osi are unchanged, as
are the internal identifiers (SUPPORTED_OSI_VERSION, convert_osi_to_*) and
the "osi" Honeydew metadata section name, which is a persisted round-trip
key rather than branding.

Also adds the final newline .editorconfig requires to the two moved Python
files.

Signed-off-by: Baruch Oxman <baruch@honeydew.ai>
Follow-up to the packaging rebrand, now that the OSI-era names can go:

  osi-to-honeydew / honeydew-to-osi -> ossie-to-honeydew / honeydew-to-ossie
  SUPPORTED_OSI_VERSION             -> SUPPORTED_OSSIE_VERSION
  convert_osi_to_honeydew           -> convert_ossie_to_honeydew
  convert_honeydew_to_osi           -> convert_honeydew_to_ossie
  _build/_read_osi_metadata, _entity_to_osi_dataset, _parse_osi_source and
  the remaining _osi_* helpers and osi_* locals

The Honeydew metadata section the converter writes to preserve Ossie-only
fields is now named "ossie" rather than "osi". Because that name is a
persisted key, `_read_ossie_metadata` still accepts the legacy "osi"
section: without it, exporting a workspace produced by an earlier version
would silently drop every preserved ai_context, label, unique_keys and
custom_extensions entry. Covered by
test_read_legacy_osi_metadata_section.

Also points the README at Honeydew's current documentation: the workspace
YAML schema page, and the Apache Ossie (OSI) page that documents this
integration from the Honeydew side.

Signed-off-by: Baruch Oxman <baruch@honeydew.ai>
@baruchoxman baruchoxman changed the title Rebrand the Honeydew converter to Ossie Rebrand the Honeydew converter from OSI to Ossie Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant