Resumen
El bridge compila incondicionalmente la superficie unstable-spi de upstream, exenta de semver. El próximo bump que toque el SPI romperá la compilación y bloqueará la release sin fallback.
Evidencia
src/experimental_spi.rs:21-24 importa AnalysisPipeline, ChunkGroup, ChunkingStrategy, ClassLabel, ClassifyContext, Element, ElementClassifier, EnrichContext, MetadataEnricher sin #[cfg].
- Registrado incondicionalmente:
src/lib.rs:75 (experimental_spi::register(m)?).
- El propio header lo declara:
src/experimental_spi.rs:5 — "The SPI is exempt from semver upstream while experimental." Puede cambiar en cualquier patch release.
- Pin exacto
oxidize-pdf = "=3.0.1" (Cargo.toml:16) → cada bump debe resolverse a mano.
- Coupling general ancho y profundo: 74
use oxidize_pdf::... a ~26 módulos internos, no una fachada estable.
Impacto
Falla fuerte en compilación (se detecta antes de publicar, bueno) pero bloquea cada bump de upstream sin degradación graceful. Es el fallo duro más probable y de mayor impacto en el treadmill de versiones.
Fix propuesto
#[cfg(feature = "unstable-spi")]-gatear el módulo experimental_spi propio del bridge y su registro en lib.rs, de modo que la rotura del SPI upstream degrade a "submódulo oxidize_pdf.experimental ausente" en vez de "el bridge no compila".
- Evaluar loosen del pin
=3.0.1 a =3.0/tilde si no se requiere lockstep estricto.
Resumen
El bridge compila incondicionalmente la superficie
unstable-spide upstream, exenta de semver. El próximo bump que toque el SPI romperá la compilación y bloqueará la release sin fallback.Evidencia
src/experimental_spi.rs:21-24importaAnalysisPipeline,ChunkGroup,ChunkingStrategy,ClassLabel,ClassifyContext,Element,ElementClassifier,EnrichContext,MetadataEnrichersin#[cfg].src/lib.rs:75(experimental_spi::register(m)?).src/experimental_spi.rs:5— "The SPI is exempt from semver upstream while experimental." Puede cambiar en cualquier patch release.oxidize-pdf = "=3.0.1"(Cargo.toml:16) → cada bump debe resolverse a mano.use oxidize_pdf::...a ~26 módulos internos, no una fachada estable.Impacto
Falla fuerte en compilación (se detecta antes de publicar, bueno) pero bloquea cada bump de upstream sin degradación graceful. Es el fallo duro más probable y de mayor impacto en el treadmill de versiones.
Fix propuesto
#[cfg(feature = "unstable-spi")]-gatear el móduloexperimental_spipropio del bridge y su registro enlib.rs, de modo que la rotura del SPI upstream degrade a "submódulooxidize_pdf.experimentalausente" en vez de "el bridge no compila".=3.0.1a=3.0/tilde si no se requiere lockstep estricto.