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
7 changes: 4 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Contributor instructions

Development source is 1.7.0-dev. This consolidation retains the stable 1.6.1 line
separately; it is not a maintenance release or the frozen 6fe8067 RC. Preserve
all source-bound qualification history. Main integration never publishes a version.
Prepared release source is 1.7.0; publication is a separate owner action. Its
parent development line is 1.7.0-dev and stable 1.6.1 remains separate. This is
not a maintenance release or the frozen 6fe8067 RC. Preserve all source-bound
qualification history; source integration never publishes a version.

Swift-JSON requires Swift tools/compiler 6.4+, Swift language mode 6 and
macOS/SDK 27+. Read README.md, CONTRIBUTING.md and the relevant contracts in
Expand Down
22 changes: 15 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## Unreleased — 1.7.0-dev consolidation
## 1.7.0 — prepared source; publication separate

- Reconcile admitted set/matrix APIs with the reviewed public directed graph,
shared JSONTransform compiler/pull VM and optional exact value/schema DSLs.
Expand All @@ -11,7 +11,12 @@
- Preserve finite exact semantics and all predecessor fixtures, failures and
performance/platform holds. Require fresh combined-source qualification; a merge
is development integration and does not publish a version.
- See [combined qualification](Documentation/Qualification/Consolidation2026.md).
- Prepare the combined source with CLI version1.7.0 and a regenerated deterministic
source digest. Record exact final-source outcomes in the
[release checklist](Documentation/Qualification/Release1.7Preparation.md) and
[release notes](Documentation/ReleaseNotes/1.7.0.md).
- Preserve [consolidation qualification](Documentation/Qualification/Consolidation2026.md)
and every historical failed attempt; neither preparation nor CI creates a release.

### Historical JTX10 release-candidate checkpoint (unpublished)

Expand All @@ -29,6 +34,14 @@
- See [candidate qualification](Documentation/Qualification/Release1.7.0.md) for
source-bound gates, Apple/Linux/scoped WASI claims and historical holds.

### Historical authored-DSL prototype checkpoint (unpublished)

The value/schema DSL proposal was developed against the earlier 1.4-era source,
but JSONValueDSL and JSONSchemaDSL are absent from the published 1.4.0, 1.5.0 and
1.6.1 manifests. Their first combined public-product preparation is this 1.7 source.
The prototype introduced trusted authored values/schema documents with native exact
semantics and finite iterative finalization; staging/callbacks remain caller work.

### Historical JSONTransform extraction checkpoints

- Add an optional public compiler/pull API over the single existing private query kernel.
Expand Down Expand Up @@ -113,11 +126,6 @@
The protected public version tag exists; its separate GitHub release remains draft.
These additive APIs are also included in the published 1.5.0 release.

- Add opt-in JSONValueDSL and JSONSchemaDSL products for typed, trusted authored
values and Draft 2020-12 declarations. Exact values and schema semantics remain
owned by the existing engine. Finalization uses one finite iterative ledger;
authored staging and callbacks are explicitly outside its resource accounting.

- Add E2's shallow JSON parsing, checked object construction, decimal-text and
pre-parsed Pointer entry points; exact-key membership and three-state presence
composition; and direct validation from an immutable compiled schema plan.
Expand Down
22 changes: 16 additions & 6 deletions Documentation/Architecture/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,12 +354,22 @@ follows from this contract.

## 1.7.0 release-candidate authority

This unpublished candidate retains the accepted Transform API (42 authored
declarations) and Inspection API (95), with all 56 Navigation declarations
unchanged. Historical provisional headings above remain stable link targets and
checkpoint descriptions; the [candidate contract](../Qualification/Release1.7.0.md)
and final compiler graphs determine current scope. API shape acceptance does not
imply publication, measured allocations or unobserved platform execution.
The current consolidated 1.7 source has twelve library products plus the CLI and
thirteen DocC catalogs, including shared non-product JSONDSLCore. Its qualified
compiler graphs contain 1,500 authored declarations: Transform 42, Inspection 162
and Navigation 56, with the remaining declarations in the other catalogs.
The [combined qualification contract](../Qualification/Consolidation2026.md) and
[source-line matrix](../Qualification/ReleaseLines.md) define this source boundary.
A final versioned candidate must bind its own inventory, checks and assets.

Historical provisional headings above remain stable link targets. The earlier
[frozen RC contract](../Qualification/Release1.7.0.md) belongs to `6fe8067`: ten
libraries plus CLI, 1,214 authored declarations and Inspection 95. It is retained
history, not the current consolidated inventory or a later-source pass.

Transform's accepted 42 declarations and one compiler/VM remain unchanged.
API shape acceptance does not imply publication, measured allocations or
unobserved platform execution.

## Optional Dual DSL P1.2

Expand Down
13 changes: 11 additions & 2 deletions Documentation/CLI.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,17 @@ source, compiler and architecture; library WASI results are a separate boundary.

## Version and source identity

This candidate reports `1.7.0`; latest stable remains `1.6.1`. The source version
does not establish a published version tag. See the [candidate scope and exception](Qualification/Release1.7.0.md).
Development main and a versioned release candidate are distinct sources. Read
`--version` and `--version --json` from the selected checkout: development main
uses `1.7.0-dev`, while a separately frozen 1.7.0 candidate uses `1.7.0` after its
version metadata and source identity are updated and qualified. Neither value
establishes publication. Latest stable remains `1.6.1`.

The [source-line matrix](Qualification/ReleaseLines.md) and
[consolidation contract](Qualification/Consolidation2026.md) describe the current
twelve-library source. The [older RC contract](Qualification/Release1.7.0.md)
retains its ten-library inventory and scoped performance exception as history;
it does not qualify a later combined candidate.

The frozen 1.5.0 executable reports `1.4.0-dev` and revision `unknown`; its release
notes disclose that limitation. The 1.5.1 maintenance release corrects it, and
Expand Down
8 changes: 6 additions & 2 deletions Documentation/Performance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,9 @@ pattern and aggregate-byte quotas; sharing does not bypass admission or work.
Logical retained bytes differ from process RSS. Darwin ru_maxrss is cumulative;
allocator end observations are not isolated workload allocations. These results
make no cross-machine throughput or OS-enforced memory guarantee. Source-attached structural views in unreleased Inspection carry no performance
claim (G4 HOLD). P2 matrix/graph/store/set/retrieval and JSON text-sequence framing
remain deferred.
claim (G4 HOLD). Consolidated 1.7 source includes set/matrix and directed graph
capabilities in JSONInspection, plus package-only store construction/preparation.
Their source admission does not close G4 or establish a speed, allocation or RSS
claim. Public store/follow, wider retrieval/persistence, NAV13 batches and JSON
text-sequence framing remain separately gated, unadmitted work. See the
[combined scope and holds](../Qualification/Consolidation2026.md).
84 changes: 84 additions & 0 deletions Documentation/Qualification/Release1.7Preparation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# 1.7.0 combined release preparation

This contract records preparation of the combined twelve-library1.7.0 source,
not historical RC6fe8067. At preparation, latest stable remains1.6.1. Final source
identity, gate outcomes and performance decisions belong to the qualification
receipt; publication is established by the official release. Preparing a candidate
does not authorize a protected merge, tag or GitHub release publication.

## Candidate scope

The release includes JSON, JSONSchema, JSONSchemaExamples, JSONStreaming,
JSONPatch, JSONHTML, JSONBridges, JSONNavigation, JSONInspection, JSONTransform,
JSONValueDSL, JSONSchemaDSL and swift-json. JSONDSLCore is a shared public module
without a product. Root dependencies remain empty. Preserve Swift 6.4+/language 6,
macOS/iOS 27 minima, Apache-2.0 and all upstream notices.

Navigation 56, Inspection 162, Transform 42 and the total 1,500 authored declarations
are the current reviewed baseline. No new store/follow, batches, persistence,
query grammar, resolver, platform or public API is added during preparation.
Store construction/preparation stays package-only. All existing operation, source
identity, error, cancellation, concurrency and finite-budget contracts remain.

## Shared source ownership

Use one final-source candidate. Navigation/Inspection preparation owns the common
freeze ledger, version/CLI identity, release envelope and combined qualification
binding. Transform review owns API/lifecycle/accounting/shared-kernel findings,
its targeted documentation and the scoped performance evidence/disposition
proposal. Integrate only reviewed focused commits, never whole obsolete drafts.
Do not edit shared main or rewrite the frozen RC.

## Final freeze checklist

| Gate | Required evidence |
| --- | --- |
| Source lease | Current main/base/head/tree, branch/ruleset/check/thread review; no protected-ref changes |
| Transform review | Explicit current-source findings and resolution of concrete contract failures; no speculative feature expansion |
| Version and identity | Candidate CLI 1.7.0, matching literal regression and site metadata, deterministic digest regenerated after final Source/manifest edits |
| Public boundary | Compiler-derived 1,500 declarations preserved; optional import boundaries, private stores/constructors/runtime/context inaccessible |
| Behavior and safety | Native Debug/Release, ASan, TSan, strict/lifetime, ownership full codegen; complete identities and parameter populations |
| Portability | Actual Linux ARM64/x86_64 and explicitly source-bound WASI/Apple scopes; SDK compilation is not device runtime |
| Resource/conformance | All 49 core caps, 16 CLI metrics, 126 restoration identities, pinned independent cases and ordinary-invalid/operational-error separation |
| Consumers and docs | Actual final revision consumers, executable guide/README blocks,13 catalogs, full comments and verified routes/indexes/links |
| Performance disposition | Source-bound G4/P4 measured outcome or explicit applicable maintainer decision; no allocation/RSS/speed claim from partial telemetry |
| Reproducibility | Actual source archive, embedded manifest, byte-equal rebuild, clean Git-free qualification and actual provider receipts |
| Public envelope | Reviewed release notes, source/compiled DocC archives, sanitized public qualification summary, checksums, notices/dependencies/privacy |
| Integration/tag/publication | Separate deliberate owner actions after final-head review and all applicable gates; no automatic release from preparation/CI |

Baseline main qualification is evidence for its exact source. A changed candidate
needs a fresh binding; an unchanged-source reuse must identify precisely which
inputs, flags, commands and scopes are equal. Never relabel an old source run as
a new execution. Preserve every failed attempt and its successful retry separately.

Current expected roots remain 975 native / 959 Linux / 871 WASI, 390 native/Linux and
353 WASI parameter invocations, targeted sharing 60/59. These are discovery
requirements, not preclaimed final-candidate outcomes. Public declaration counts
exclude compiler synthesis; catalog/module count differs from product count.

## Performance and platform limits

Navigation G4 remains HOLD, with zero accepted controlled timing samples.
The original Transform P4 waiver applies to its historical scoped candidate;
later 44/150 and 119/150 windows remain separate partial populations with the
original incomplete-output incident retained. Neither is a new candidate's
allocation/overhead pass. Record any final-source scope mapping and decision
explicitly under the unchanged 10% review trigger. Logical retained bytes are
not process RSS or heap allocation totals; caller work is not an owned instruction
quota. Do not benchmark a busy host or manufacture measurements.

Retain the historical approximately 11% streaming disposition. Do not broaden
mobile/device, full-root WasmKit, WASI sanitizer, CLI/file-I/O, browser, Embedded
Swift or lower-deployment claims beyond actual source-bound evidence. The physical
iPad deferral remains explicit; simulator output is not physical-device evidence.

## Assets and publication boundary

The private working ledger may contain local paths, approvals, raw crash traces
and provider archives. None belongs in public release assets. Publishable assets
need a public-safe receipt with actual commands, source/fixture/toolchain pins,
counts and limitations. Verify every archive/checksum byte before upload.

A path/revision consumer does not prove a nonexistent 1.7.0 version tag. Actual tag
resolution, asset downloads, released DocC and Swift Package Index checks follow
separately authorized tag/publication. Stable1.6.1 remains unchanged throughout.
15 changes: 15 additions & 0 deletions Documentation/Qualification/ReleaseLines.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
| Published 1.6.0 | `f975ac1c5a18af9b422db0994cbc551fd37eee2f` | Eight libraries plus CLI, eight catalogs, 1,077 authored declarations |
| Published 1.6.1 (latest stable) | `e431f157ececc0cf3d061192420b0e36a9062f83` | Same eight-library public API and runtime as 1.6.0; no Inspection |
| Consolidated development source | Main, retaining N2 admitted at `2b24f47e7405821240cf8dfc66b840c9a7f8efa5` | Twelve libraries plus CLI; thirteen catalogs including shared JSONDSLCore; compiler-derived API inventory required |
| Prepared combined 1.7.0 source | Final candidate SHA/tree belongs to its qualification receipt; no tag implied | Same twelve libraries plus CLI, thirteen catalogs and expected 1,500 authored declarations; see current preparation checklist |

Source versions do not establish publication. Consult the
[official releases](https://github.com/ThorFuchs/Swift-JSON/releases) for published
Expand Down Expand Up @@ -37,6 +38,20 @@ Stable 1.6.1 has neither. Consolidated development source stays 1.7.0-dev with t
performance remains HOLD without speed claims; this is distinct from technical
qualification and does not authorize any release/tag.

## Combined 1.7.0 preparation

The [current preparation checklist](Release1.7Preparation.md) and
[draft release notes](../ReleaseNotes/1.7.0.md) describe the twelve-library candidate
being prepared from current main. Its final source is not yet frozen. They are
separate from the historical ten-library RC contract below; latest stable remains
1.6.1 until actual publication.

## Forward release plan

See the [1.7–2.0 roadmap](../ReleaseRoadmap.md) for the proposed shared-version
sequence, current product inventory, direct Navigation ownership and remaining
source-bound release gates. The proposal creates no release or new API approval.

## Historical JTX10 unpublished 1.7.0 candidate

The isolated JTX10 successor integrates main
Expand Down
59 changes: 59 additions & 0 deletions Documentation/ReleaseNotes/1.7.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Swift-JSON 1.7.0 — release notes

These notes describe the combined1.7.0 source. They do not establish publication;
consult the official release and its source-bound qualification asset. The
[release checklist](../Qualification/Release1.7Preparation.md) defines the gates.

## Included capabilities

- Add JSONInspection as an opt-in library: factual complete/prefix array evidence,
source-attached structural snapshots, checked trees/sparse object tables,
first-occurrence exact structural sets, exact numeric matrix orientation and
source-bound directed graphs with bounded complete BFS.
- Add JSONTransform over the existing shared compiler/pull VM, with guarded
invocation-owned execution, exact native output and cumulative CLI accounting.
- Add JSONValueDSL and JSONSchemaDSL for trusted authored values/schema documents.
Finite checked finalization uses existing exact values and native schema
compilation/validation; authored staging/callbacks remain caller work.
- Retain every existing core/schema/example/stream/Patch/HTML/bridge/Navigation
product and the CLI. Twelve libraries plus CLI share the release version;
JSONDSLCore provides shared public generic structure without its own product.

## Compatibility and scope

The public API is additive to stable 1.6.1. Exact bounded decimals, decoded scalar
identity, ordered object storage/order-independent equality, strict UTF-8, offline
immutable schema plans, operation budgets and source-map coherence remain binding.
Default profiles remain finite. Construction and each separately reported read
retain their documented admission boundaries; caller pipelines are not implicitly
one ledger. Missing, explicit null, typed shape failures, operational exhaustion
and cancellation remain distinct.

Apple baselines remain tools/compiler 6.4+, language 6 and macOS/iOS/iPadOS 27+.
Linux and WASI claims retain their qualified architecture/runtime/host scopes.
The final receipt must state actual supported-lane outcomes rather than deriving
mobile runtime, full CLI/WASI, browser or sanitizer guarantees from compilation.
No runtime package dependencies or new backend are introduced.

Private configured-store preparation/construction remains internal to the package.
Public store/follow, NAV13 aggregate access, persistence, retrieval and text-sequence
framing are not part of this release. No matrix arithmetic, graph serializer or
alternative JSON/query semantic authority is added.

## Qualification and known limits

Final-source Native/Linux/safety/ownership/consumer/DocC/archive and scoped portable
receipts are required before release. Independent suite policy exclusions are
separate from evaluated successes. Swift Build planner incidents and successful
unchanged-source retries remain visible; no unconfirmed toolchain fix is claimed.

Controlled Navigation performance remains HOLD. Transform's historical scoped
P4 waiver and later partial sampling windows are not an allocation pass. The
final-source performance disposition belongs to the qualification receipt; no
speed/throughput/allocation-
efficiency/RSS claim is made. Logical accounting is not physical memory.
The existing streaming regression disposition and 10% review trigger are unchanged.

Final source, public qualification, compiled documentation and checksum assets
will be attached only after their actual byte/source checks and the maintainer's
separate release actions. See [the roadmap](../ReleaseRoadmap.md) for later waves.
Loading