Skip to content

Define a tested BibLaTeX structural compatibility profile #586

Description

@claell

Problem

The documentation says that BibLaTeX and Biber data sources should be parseable because they share the general BibTeX syntax, but the suite does not define a concrete compatibility profile. That makes it easy to regress richer records while testing only traditional BibTeX entry types and fields.

The missing contract includes the @set support requested in #105, but is broader:

  • @xdata inheritance containers and xdata references;
  • BibLaTeX entry types such as @online and @software;
  • date ranges, UTF-8 values, related-entry fields, and entry sets;
  • Biber data annotations and extended name forms; and
  • entry-type and field names supplied by custom Biber data models.

Proposed contract

Add one synthetic, non-personal fixture and tests that require the default structural parser/writer to retain entry types, keys, field names, values, and source order across a canonical round trip. The parser should remain schema-agnostic: unknown types and fields are data and should not require a BibLaTeX dialect flag.

Document the boundary clearly. Structural preservation does not mean that this package validates a BibLaTeX data model, resolves @set or @xdata semantics, or interprets names, annotations, dates, and lists as typed values. Biber remains the semantic validator/processor.

The tests depend on preserving entry-type spelling as proposed in PR #570. Biber-style nested comments remain the separate parser feature tracked in #372 / PR #585.

Conversion between BibTeX and BibLaTeX should not be part of this change. Because the data models are not generally losslessly equivalent, conversion needs a later opt-in mapping profile with explicit loss reporting.

Activity

  1. claell commented on Jul 16, 2026

    @claell
    ContributorAuthor

    A validated draft implementation is available in PR #587: #587. The final two commits define and document the BibLaTeX profile; the first three are the explicit PR #570 case-preservation prerequisite.

  2. MiWeiss commented on Sep 2, 2026

    @MiWeiss
    Collaborator

    Hi @claell — I'm posting this same note on all of your July 16 issues and PRs (#567–#597), so apologies for the form-letter feel.

    I'm closing this. The batch — 13 issues, 18 PRs, ~3,000 lines, opened within a two-hour window with spec-style language and forward-references to PR numbers that didn't exist yet — reads as AI-generated rather than something you hit and verified by hand. Reviewing it properly would cost me more time than just fixing the parser myself.

    If this is a real bug you've actually hit: reopen it with a concrete repro and a small, human-verified fix, and I'll review it. Any nontrivial design or API choice should be discussed in the issue first, before code is written. Otherwise, please disclose and verify AI-assisted contributions before submitting them in future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions