Skip to content

unstable-spi sin #[cfg] rompe la build en el próximo bump upstream #116

Description

@bzsanti

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:buildBuild / cargo features / packagingbugSomething isn't workingpriority:highAlto

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions