Skip to content

namespace2xml 3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Sep 02:59
· 2 commits to master since this release
7f0f9ae

Contract bundle: r118+33da7b7912fc

Specification: https://github.com/stop-cran/namespace2xml/blob/v3.0.0/docs/specification.md

Contract

  • contract-bundle r118+33da7b7912fc.

Added

  • XML comments outside the document element are preserved as unaddressable envelope metadata.
    Every XML output instance receives the complete leading/trailing envelope, destination folds
    preserve stable source order without duplication, non-XML outputs coalesce all discarded XML
    comments into one destination-scoped WARN003, and the original issue #24 logback.xml corpus
    now has a permanent structural regression gate.
    #100.

  • Specification clauses and diagnostic codes now have generated, stable links. The normative
    specification carries a generated hierarchical contents block and explicit spec-* targets,
    backed by spec/specification-navigation.json; the diagnostic reference links every summary code
    to an explicit diagnostic-* detail target and links Section 22, Appendix B, and occurrence-level
    spec examples back to the contract. The packaged Ansible reference is rendered from the same
    model with immutable collection-tag links, and CI compares the two pages after normalizing only
    those approved link bases.

    This removes three drift-prone surfaces: ad hoc heading parsing in tests, unlinked diagnostic
    tables, and a byte-copied Ansible page whose relative links escaped the collection. It was caused
    by the clean-context agent report that rated specification navigation 2/5 and found agents
    repeatedly downloading and grepping the 307 KB contract. #128.

  • Stable publication is bound to one signed-tag candidate. The release workflow accepts only an
    annotated tag signed by the pinned release key and pointing at the exact green master commit,
    packs once on attempt 1, retains that package and symbols with hashes and source/workflow
    metadata, attests both artifacts, and reconciles partial publication without rebuilding. Public
    NuGet payloads must be byte-identical except for a repository-signature entry, every GitHub
    release asset must be whole-file identical, an existing public artifact is compared before its
    missing counterpart can be pushed, and stable installation plus a smoke transformation pass
    before GitHub release publication. CI deliberately mutates the package comparator, retained
    candidate, and publication transport to prove those gates fail closed.
    #25.

  • Issue #24 is now a package-bound permanent acceptance gate. The release installs the exact
    retained .nupkg from a cleared local-only source and runs the reporter's pinned 33,002-byte
    logback.xml outside the checkout. It checks process channels, diagnostics, element identity,
    count and parentage, comments, and the complete output bytes, records evidence tied to the package
    hash and commit, and proves the oracle red with a controlled identity mutation.
    #24.

  • Section 26 traceability is enforced as a generated completeness contract. Every normative
    clause is mapped to implementation and conformance evidence; CI rejects missing, stale, or
    non-executable links and preserves measured legacy-differential evidence separately from the
    stable contract. #35.

Changed

  • Updated Microsoft.SourceLink.GitHub to 10.0.401 after
    GHSA-23fw-v26w-5fgq made the previous
    transitive Microsoft.Build.Tasks.Git dependency fail the repository's warning-as-error restore.

  • Promoted package, CLI help, installation guidance, conformance fixtures, Ansible integration, and
    security/support documentation from preview identity to stable 3.0.0. Current installation no
    longer requires --prerelease; historical preview evidence remains under its original release.

  • Internal compiler and pipeline impossibilities now throw a narrow invariant exception instead of
    creating a third public transformation result. Stable CLI outcomes are exit 0 or 1; text mode
    emits one invariant line if such a defect escapes, while JSON diagnostics remain exactly one pure
    array with no leaked prose.

Removed

  • Removed the preview-only Unsupported result and exit 70, together with stale tests and
    documentation that treated implementation incompleteness as a supported runtime outcome.