Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions crates/lance-graph-consumer-conformance/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
// Exercises the deprecated `MedcareBridge` / `OgitBridge` / `WoaBridge`
// symbols on purpose — this harness IS the conformance gate for them.
// See `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! `lance-graph-consumer-conformance` — cross-crate registry conformance harness.
//!
//! This crate is the CI gate that prevents a consumer crate from shipping a
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ogar/src/bridges/medcare_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ use ogar_vocab::ports::PortSpec;

/// MedCare `NamespaceBridge` — alias over the generic harness, locked to
/// the `Healthcare` namespace via [`HealthcarePort`].
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::HealthcarePort::class_id(name)`. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `HealthcarePort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type MedcareBridge = UnifiedBridge<HealthcarePort>;

/// Canonical namespace name for MedCare / Healthcare. Mirrors
Expand All @@ -41,6 +48,7 @@ pub type MedcareBridge = UnifiedBridge<HealthcarePort>;
pub const NAMESPACE: &str = HealthcarePort::NAMESPACE;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
//! Co-located unit tests for the migrated alias — constructor
//! success/failure, contract methods, codebook resolution, fallback
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ogar/src/bridges/odoo_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,20 @@ use ogar_vocab::ports::PortSpec;

/// Odoo `NamespaceBridge` — alias over the generic harness, locked to
/// the `Odoo` namespace via [`OdooPort`].
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::OdooPort::class_id(name)`. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `OdooPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type OdooBridge = UnifiedBridge<OdooPort>;

/// Canonical namespace name for Odoo. Mirrors `OdooPort::NAMESPACE`.
pub const NAMESPACE: &str = OdooPort::NAMESPACE;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
use super::*;
use lance_graph_ontology::bridge::{BridgeError, NamespaceBridge};
Expand Down
9 changes: 9 additions & 0 deletions crates/lance-graph-ogar/src/bridges/openproject_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ pub use ogar_vocab::ports::OpenProjectPort;
use ogar_vocab::ports::PortSpec;

/// OpenProject `NamespaceBridge` — alias over the generic harness.
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::OpenProjectPort::class_id(name)`. The bridge will
/// be removed once all consumers migrate. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `OpenProjectPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type OpenProjectBridge = UnifiedBridge<OpenProjectPort>;

/// Canonical namespace name for OpenProject. Mirrors
Expand All @@ -41,6 +49,7 @@ pub const NAMESPACE: &str = OpenProjectPort::NAMESPACE;
pub const OPENPROJECT_CODEBOOK: &[(&str, u16)] = ogar_vocab::ports::OPENPROJECT_ALIASES;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
//! Co-located unit tests retained from the pre-migration shape —
//! constructor success/failure, contract methods, codebook
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ogar/src/bridges/redmine_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ use ogar_vocab::ports::PortSpec;
pub use ogar_vocab::ports::RedminePort;

/// Redmine `NamespaceBridge` — alias over the generic harness.
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::RedminePort::class_id(name)`. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `RedminePort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type RedmineBridge = UnifiedBridge<RedminePort>;

/// Canonical namespace name for Redmine. Mirrors `RedminePort::NAMESPACE`
Expand All @@ -33,6 +40,7 @@ pub const NAMESPACE: &str = RedminePort::NAMESPACE;
pub const REDMINE_CODEBOOK: &[(&str, u16)] = ogar_vocab::ports::REDMINE_ALIASES;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
use super::*;
use lance_graph_ontology::bridge::{BridgeError, NamespaceBridge};
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ogar/src/bridges/smb_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,20 @@ pub use ogar_vocab::ports::SmbPort;

/// SMB `NamespaceBridge` — alias over the generic harness, locked to
/// the `SMB` namespace via [`SmbPort`].
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::SmbPort::class_id(name)`. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `SmbPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type SmbBridge = UnifiedBridge<SmbPort>;

/// Canonical namespace name for SMB. Mirrors `SmbPort::NAMESPACE`.
pub const NAMESPACE: &str = SmbPort::NAMESPACE;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
use super::*;
use lance_graph_ontology::bridge::{BridgeError, NamespaceBridge};
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ogar/src/bridges/woa_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,20 @@ pub use ogar_vocab::ports::WoaPort;

/// WoA `NamespaceBridge` — alias over the generic harness, locked to
/// the `WorkOrder` namespace via [`WoaPort`].
///
/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::WoaPort::class_id(name)`. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `WoaPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub type WoaBridge = UnifiedBridge<WoaPort>;

/// Canonical namespace name for WoA. Mirrors `WoaPort::NAMESPACE`.
pub const NAMESPACE: &str = WoaPort::NAMESPACE;

#[cfg(test)]
#[allow(deprecated)] // exercises the deprecated bridge alias on purpose
mod tests {
use super::*;
use lance_graph_ontology::bridge::{BridgeError, NamespaceBridge};
Expand Down
13 changes: 11 additions & 2 deletions crates/lance-graph-ogar/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,18 @@ pub use ogar_vocab::Class;
// which is OGIT and must not depend on ogar-vocab) ──
pub mod bridges;

// Per-port bridge aliases (`MedcareBridge` / `OpenProjectBridge` /
// `RedmineBridge` / `OdooBridge` / `SmbBridge` / `WoaBridge`) are
// `#[deprecated]` (2026-06-22) — pull the classid via the corresponding
// PortSpec instead. The `Port` types and `UnifiedBridge` harness are
// NOT deprecated. See `docs/CONSUMER-BRIDGE-DEPRECATION.md` +
// AdaWorldAPI/OGAR#95.
pub use bridges::{
HealthcarePort, MedcareBridge, OpenProjectBridge, OpenProjectPort, RedmineBridge, RedminePort,
UnifiedBridge,
HealthcarePort, OdooPort, OpenProjectPort, RedminePort, SmbPort, UnifiedBridge, WoaPort,
};
#[allow(deprecated)]
pub use bridges::{
MedcareBridge, OdooBridge, OpenProjectBridge, RedmineBridge, SmbBridge, WoaBridge,
};

/// Codebook parity-guard — the drift fuse between OGAR's authoritative codebook
Expand Down
4 changes: 4 additions & 0 deletions crates/lance-graph-ogar/tests/bridge_codebook_convergence.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
// Skip under Miri — TTL fixtures use `tempfile::tempdir()` +
// `std::fs::create_dir_all/write`, both blocked by Miri's isolation.
#![cfg(not(miri))]
// Exercises the deprecated `OpenProjectBridge` / `RedmineBridge` aliases on
// purpose — the convergence pin is what we're testing. See
// `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! Bridge codebook convergence test — codex P1 on PR #559.
//!
Expand Down
3 changes: 3 additions & 0 deletions crates/lance-graph-ogar/tests/bridge_scope_lock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
// isolation blocks `mkdir`/`open`. Stable and nightly without Miri run it
// normally.
#![cfg(not(miri))]
// Exercises the deprecated bridge aliases on purpose — see
// `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! Bridge scope-lock test.
//!
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
// Skip under Miri — TTL fixtures use `tempfile::tempdir()` +
// `std::fs::create_dir_all/write`, both blocked by Miri's isolation.
#![cfg(not(miri))]
// Exercises the deprecated `OpenProjectBridge` alias on purpose — see
// `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! `OpenProjectBridge` scope-lock test — Northstar plan §3 C4.
//!
Expand Down
3 changes: 3 additions & 0 deletions crates/lance-graph-ogar/tests/redmine_bridge_scope_lock.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
// Skip under Miri — TTL fixtures use `tempfile::tempdir()` +
// `std::fs::create_dir_all/write`, both blocked by Miri's isolation.
#![cfg(not(miri))]
// Exercises the deprecated `RedmineBridge` alias on purpose — see
// `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! `RedmineBridge` scope-lock test — Northstar plan §3 C5.
//!
Expand Down
7 changes: 7 additions & 0 deletions crates/lance-graph-ontology/src/bridges/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,14 @@ mod sharepoint_bridge;
mod spear_bridge;
mod woa_bridge;

// All four legacy per-tenant bridges are `#[deprecated]` (2026-06-22) —
// consumers should pull the classid via an OGAR PortSpec instead. See
// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[allow(deprecated)]
pub use ogit_bridge::OgitBridge;
#[allow(deprecated)]
pub use sharepoint_bridge::SharePointBridge;
#[allow(deprecated)]
pub use spear_bridge::SpearBridge;
#[allow(deprecated)]
pub use woa_bridge::WoaBridge;
6 changes: 6 additions & 0 deletions crates/lance-graph-ontology/src/bridges/ogit_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ use crate::namespace::NamespaceId;
use crate::registry::OntologyRegistry;
use std::sync::Arc;

/// **Deprecated:** pull the classid via the OGAR PortSpec for the
/// relevant namespace (`ogar_vocab::ports::*Port::class_id(name)`).
/// See `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via the OGAR PortSpec for the namespace (e.g. `WoaPort::class_id(name)`) — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub struct OgitBridge {
registry: Arc<OntologyRegistry>,
namespace_name: String,
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ontology/src/bridges/sharepoint_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@ use std::sync::Arc;

pub const NAMESPACE: &str = "SharePoint";

/// **Deprecated:** no OGAR PortSpec exists for `SharePoint` today;
/// consumers should author one in `ogar_vocab::ports` per the
/// `CONSUMER-MIGRATION-HOWTO.md` and then pull the classid via the
/// static port lookup. See `docs/CONSUMER-BRIDGE-DEPRECATION.md` +
/// AdaWorldAPI/OGAR#95.
#[deprecated(
note = "author a `SharePointPort` in `ogar_vocab::ports` and pull the classid via `SharePointPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub struct SharePointBridge {
registry: Arc<OntologyRegistry>,
g_lock: NamespaceId,
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ontology/src/bridges/spear_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ use std::sync::Arc;

pub const NAMESPACE: &str = "EmailCorrespondance";

/// **Deprecated:** no OGAR PortSpec exists for `EmailCorrespondance`
/// today; consumers should author one in `ogar_vocab::ports` per the
/// `CONSUMER-MIGRATION-HOWTO.md` and then pull the classid via the
/// static port lookup. See `docs/CONSUMER-BRIDGE-DEPRECATION.md` +
/// AdaWorldAPI/OGAR#95.
#[deprecated(
note = "author a `SpearPort` in `ogar_vocab::ports` and pull the classid via `SpearPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub struct SpearBridge {
registry: Arc<OntologyRegistry>,
g_lock: NamespaceId,
Expand Down
8 changes: 8 additions & 0 deletions crates/lance-graph-ontology/src/bridges/woa_bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ use std::sync::Arc;

pub const NAMESPACE: &str = "WorkOrder";

/// **Deprecated:** pull the classid via the OGAR PortSpec instead —
/// `ogar_vocab::ports::WoaPort::class_id(name)`. The codebook-aware
/// OGAR-driven bridge `lance_graph_ogar::bridges::WoaBridge` is also
/// deprecated; both share the same replacement path. See
/// `docs/CONSUMER-BRIDGE-DEPRECATION.md` + AdaWorldAPI/OGAR#95.
#[deprecated(
note = "pull the classid via `WoaPort::class_id(name)` — see AdaWorldAPI/OGAR#95 + docs/CONSUMER-BRIDGE-DEPRECATION.md"
)]
pub struct WoaBridge {
registry: Arc<OntologyRegistry>,
g_lock: NamespaceId,
Expand Down
3 changes: 3 additions & 0 deletions crates/lance-graph-ontology/tests/hydrate_real_ogit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
// Miri isolation blocks the syscalls. Stable runs it normally; the test
// even skips gracefully when OGIT_FORK_PATH is unset.
#![cfg(not(miri))]
// Exercises the deprecated `OgitBridge` / `WoaBridge` structs on purpose —
// see `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! Hydrate against the actual `AdaWorldAPI/OGIT` fork.
//!
Expand Down
3 changes: 3 additions & 0 deletions crates/lance-graph-ontology/tests/round_trip_ttl.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
// Skip under Miri — fixture is written to disk via tempfile + std::fs; Miri
// isolation blocks the syscalls. Stable runs it normally.
#![cfg(not(miri))]
// Exercises the deprecated `OgitBridge` struct on purpose — see
// `docs/CONSUMER-BRIDGE-DEPRECATION.md`.
#![allow(deprecated)]

//! End-to-end TTL hydration test.
//!
Expand Down
Loading
Loading