Skip to content

chore(ufo-types): depend on promptexecution/ufo-types externally - #201

Open
elasticdotventures wants to merge 1 commit into
mainfrom
chore/ufo-types-external-dependency
Open

chore(ufo-types): depend on promptexecution/ufo-types externally#201
elasticdotventures wants to merge 1 commit into
mainfrom
chore/ufo-types-external-dependency

Conversation

@elasticdotventures

Copy link
Copy Markdown
Member

Summary

crates/ufo-types was an independent reimplementation of the same original spec (gh#511) as promptexecution/ufo-types, which cim-gridy and the b00t monorepo already depend on externally. This completes PromptExecution/ufo-types#3's reconciliation by retiring the local copy in favor of that crate directly, rather than maintaining two implementations of the same thing.

promptexecution/ufo-types#3 ports this crate's exact Satisfies/SatisfiesResult/Disposition/NodeId/Constraint shape, iso types (Lei/Isin/Currency/BankAccount/FinancialInstrument), and sysml.rs (SysML v2 validation, gated behind an opt-in sysml feature) onto the external crate — so ledger-core, ledgerr-mcp, holon-viz, and sysml-derive's dev-dependency all keep working with only an import-path change, not a logic change.

This also completes #145's original, abandoned intent — that PR meant to point ledger-core at the standalone repo but got silently rewritten at squash-merge because the two crates' APIs didn't actually match at the time (see #182 for the full archaeology). This time the dependency compiles because the target crate was ported to this crate's real shape first, not the other way around.

What changed

  • crates/ufo-types/ deleted; removed from the workspace members list.
  • ledger-core, ledgerr-mcp: ufo-types dependency switched from path = "../ufo-types" to a git dependency on promptexecution/ufo-types (pinned by rev to the feat/ledger-ontology-modules branch tip — not a release tag yet, update once promptexecution/ufo-types#3 merges).
  • holon-viz, sysml-derive: same, for their sysml-feature-gated dev-dependency.
  • au_rd.rs, bank_statement.rs: the only source-path change anywhere — direct ufo::MomentStereotype::{Mode,Relator} constructions become UfoStereotype::{Mode,Relator}("<label>".into()) (the flat enum absorbed MomentStereotype's tags via a new .category() method, so this is the same information on one type instead of two). Every other import (satisfies::*, iso::*) is byte-identical.

Test plan

  • cargo test -p ledger-core -p ledgerr-mcp --lib: 201 + 44 passing — identical to the pre-migration baseline on main, zero regressions
  • cargo test -p holon-viz --test sysml_v2_roundtrip: 3 passing
  • cargo test -p sysml-derive --test real_grammar_validation: 5 passing
  • cargo build -p ledger-core -p ledgerr-mcp -p holon-viz -p sysml-derive: clean (one pre-existing, unrelated warning in fbar.rs)

Depends on: PromptExecution/ufo-types#3 (must land first, or at least stay stable at the pinned rev)

crates/ufo-types was an independent reimplementation of the same
original spec (gh#511) as promptexecution/ufo-types, which cim-gridy
and the b00t monorepo already depend on externally. Reconciled onto
that crate (PromptExecution/ufo-types#3) rather than carrying two
copies: it now has this crate's exact Satisfies/SatisfiesResult/
Disposition/NodeId/Constraint shape, iso types (Lei/Isin/Currency/
BankAccount/FinancialInstrument), and sysml.rs (SysML v2 validation,
opt-in `sysml` feature) -- so ledger-core, ledgerr-mcp, holon-viz, and
sysml-derive's dev-dependency all keep working with only an import-
path change, not a logic change.

This completes PR #145's original, abandoned intent (that PR meant to
point ledger-core at the standalone repo but got silently rewritten at
squash-merge because the two crates' APIs didn't actually match at the
time -- see gh:#182 for the full archaeology).
This time the dependency compiles because the target crate was ported
to this crate's real shape first, not the other way around.

Only source-path changes: au_rd.rs and bank_statement.rs's direct
ufo::MomentStereotype::{Mode,Relator} constructions become the now-
unified UfoStereotype::{Mode,Relator}("<label>".into()) (the flat enum
gained MomentStereotype's tags via .category(), so this is the same
information, just carried on one type instead of two). Every other
import path (satisfies::*, iso::*) is unchanged.

Pinned to the PR #3 branch tip by rev, not a release tag yet -- update
to a version tag once that PR merges.

Verified:
- cargo test -p ledger-core -p ledgerr-mcp --lib: 201 + 44 passing,
  identical to the pre-migration baseline (0 regressions)
- cargo test -p holon-viz --test sysml_v2_roundtrip: 3 passing
- cargo test -p sysml-derive --test real_grammar_validation: 5 passing
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