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
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@

## Unreleased

- Accept decision 0012 and prepare breaking 0.3.0 declarations in all eight
## 0.3.0 — 2026-09-26

- Publish the immutable source release at `f825f3f4a79135646b775e25dcd770656546b4a1`.
Verify clean public Go/npm/Rust/Python/Maven Central and anonymous
Swift/C++/Haskell consumers. Hackage remains deferred.
[Delivery evidence](docs/languages.md#version-030-delivery) records each route.

- Accept decision 0012 and publish breaking 0.3.0 declarations in all eight
languages: `Wire.send(message)` is addressless; `WireTree = DeixisNode<Wire>`
provides complete byte-keyed structure; the former addressed interface becomes
`AddressedWire`. Align the model with Bitstore Data/DataTree, preserve Endpoint
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ addresses. Bitstore uses the same construction: `Data.read(): Promise<Bytes>`
and `DataTree = DeixisNode<Data>`. [Decision 0012](docs/decisions/0012-explicit-data-and-wire-trees.md)
records the shared contract and the intentional breaking rename.

**Source status: 0.3.0 declarations; publication pending.** The last published
release is [0.2.0](https://github.com/Bitspark/bitwire/releases/tag/v0.2.0).
**[0.3.0 is released](https://github.com/Bitspark/bitwire/releases/tag/v0.3.0).**
All eight delivery routes are verified: Go, npm, Rust, Python and Maven Central,
plus Swift/C++/Haskell source consumers. Hackage remains deferred.
The [language matrix](docs/languages.md) records the evidence for each route.
All eight source bindings distinguish the primitive, full tree and addressed
carrier. Historical evidence remains versioned separately; compiling these
interfaces does not prove runtime structural conformance. The
Expand Down
12 changes: 9 additions & 3 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
# Releases

The last published release is `0.2.0`; source declarations target `0.3.0` under
[decision 0012](docs/decisions/0012-explicit-data-and-wire-trees.md). Publication
is pending until the release process and clean registry checks succeed.
Version [0.3.0 is released](https://github.com/Bitspark/bitwire/releases/tag/v0.3.0)
under [decision 0012](docs/decisions/0012-explicit-data-and-wire-trees.md).
Go/npm/Rust/Python/Maven Central and Swift/C++/Haskell source consumers are
verified. Hackage remains deferred. The
[delivery table](docs/languages.md#version-030-delivery) records verified results.
`0.1.0` and `0.2.0` remain immutable. A release identifies the shared contract revision,
native bindings and independent cases. The [language matrix](docs/languages.md)
records implementation, package validation, registry publication and consumer
adoption separately. A source tag does not claim an upload to every registry.

This release changes primitive/tree declarations. The public received-context
evidence originally planned for 0.3.0 in decision 0007 remains pending work in
the runtime/profile lane; the version number is not evidence it was delivered.

## Compatibility and readiness

Before 1.0, a breaking contract or native API change increments the minor version;
Expand Down
7 changes: 7 additions & 0 deletions docs/decisions/0012-explicit-data-and-wire-trees.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,10 @@ There is no compatibility alias that keeps the old addressed meaning under
`Wire`; compilation failures identify call sites that must choose the correct
capability. The spelling is intentionally changed now, before more consumers
build against the ambiguous contract.

## Delivery record

The immutable [v0.3.0 release](https://github.com/Bitspark/bitwire/releases/tag/v0.3.0)
was published on 2026-09-26 at `f825f3f4a79135646b775e25dcd770656546b4a1`.
The [language matrix](../languages.md#version-030-delivery) records each verified
distribution and separates package publication from production runtime adoption.
4 changes: 2 additions & 2 deletions docs/integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
Decision 0012 names the primitive `Wire`, its complete structure
`WireTree = DeixisNode<Wire>`, and existing addressed access `AddressedWire`.
Bitstore follows the same structure with `Data.read()` and `DataTree`.
All eight source bindings target 0.3.0; publication and runtime adoption are
separate. Follow the [migration guide](migration-0.3.md) and
All eight bindings are present in the immutable 0.3.0 release. Distribution
verification and runtime adoption remain separate. Follow the [migration guide](migration-0.3.md) and
[language matrix](languages.md) rather than inferring adoption from old tests.

## Released baseline (0.2 names)
Expand Down
48 changes: 38 additions & 10 deletions docs/languages.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,51 @@ a repository-root manifest so a Git dependency can resolve the public package.
C++ initially uses tagged source and an installable CMake package; registry
recipes can be added without changing the access contract.

## Source revision 0.3.0
## Version 0.3.0 delivery

[Decision 0012](decisions/0012-explicit-data-and-wire-trees.md) is accepted.
All eight source bindings distinguish `Wire.send(message)`, the complete
All eight bindings distinguish `Wire.send(message)`, the complete
`WireTree = DeixisNode<Wire>`, and `AddressedWire.send(path, message)`.
Each tree supplies own, complete byte-keyed children, partial selection and
decomposition, matching Bitstore's DataTree. Endpoint and return-address
surfaces remain addressed. See the [migration guide](migration-0.3.md).

| Delivery boundary | Status |
| --- | --- |
| Shared contract and eight native source declarations | Updated for 0.3.0. |
| Source/package checks | Run by core and native CI jobs; compilation is not runtime conformance. |
| Independent full-tree observations | Go/TypeScript test-only interpreters; see [tree cases](../conformance/trees/README.md). |
| Production full-tree construction and derived operators | Owned and delivered separately by bitruntime. |
| 0.3.0 registry publication and clean installed consumers | Pending; changing version fields is not publication. |
| Downstream adoption | Verify separately against migrated runtime and dependency versions. |
The immutable [v0.3.0 release](https://github.com/Bitspark/bitwire/releases/tag/v0.3.0)
was created on 2026-09-26 and names
commit `f825f3f4a79135646b775e25dcd770656546b4a1`, merged through
[PR #50](https://github.com/Bitspark/bitwire/pull/50). Its annotated tag object is
`713c9c8b0df718e77f572fe4eb6937a2c429bc22`. The
[exact-commit public provenance rehearsal](https://github.com/Bitspark/bitwire/actions/runs/36231327044)
passed. Distribution availability is verified independently:

| Language | Public delivery of 0.3.0 | Installation evidence |
| --- | --- | --- |
| Go | `github.com/Bitspark/bitwire@v0.3.0` through the public Go proxy. | Fresh strict public-proxy consumer passed with checksum database enabled, the exact release commit and no replacements. |
| TypeScript | [`@bitspark/bitwire@0.3.0`](https://www.npmjs.com/package/@bitspark/bitwire/v/0.3.0) with provenance. | Fresh public npm installation, TypeScript compilation and runtime entry-point import passed. |
| Rust | [`bitspark-bitwire@0.3.0`](https://crates.io/crates/bitspark-bitwire/0.3.0) published. | Publication and a clean public consumer passed in the [core workflow](https://github.com/Bitspark/bitwire/actions/runs/36231433436). |
| Python | [`bitspark-bitwire==0.3.0`](https://pypi.org/project/bitspark-bitwire/0.3.0/) on PyPI. | Public installed-package tests passed after source/wheel checks and publication. |
| Swift | Public SwiftPM Git dependency, exact version `0.3.0`. | Fresh anonymous URL consumer built and ran against the exact release commit. |
| C++ | Public tagged source and installed `Bitwire::wire` CMake package. | Anonymous release checkout and external installed-package consumer passed against the exact release commit. |
| Java | [`dev.bitspark:bitwire:0.3.0`](https://repo.maven.apache.org/maven2/dev/bitspark/bitwire/0.3.0/) on Maven Central. | Signed artifacts published; an independent Central consumer compiled and ran with a fresh Maven repository. |
| Haskell | Public Git dependency pinned to the 0.3.0 release commit; Hackage remains deferred. | Anonymous Git consumer built and ran with a fresh Cabal store against the exact release. |

The [core publication and public registry verification](https://github.com/Bitspark/bitwire/actions/runs/36231433436)
passed for Go, npm and Rust. [Python publication and installed-package verification](https://github.com/Bitspark/bitwire/actions/runs/36232678897)
passed using the configured API-token route. [Swift/C++/Haskell anonymous source verification](https://github.com/Bitspark/bitwire/actions/runs/36232682234)
passed against the immutable release. [Maven Central publication and clean-consumer verification](https://github.com/Bitspark/bitwire/actions/runs/36232680583)
also passed against that release. All eight delivery routes are verified.
Hackage remains deferred under the existing uploader-approval decision.

The [tree reference observations](../conformance/trees/README.md) exercise
independent Go/TypeScript test-only interpreters. The package contains no
production tree runtime. Runtime and downstream adoption remain separately
verified in their owners; compiling these declarations or installing a package
does not establish those behaviors.

Decision 0007 originally planned public received-context evidence for 0.3.0.
That separate lifecycle feature is not delivered by this naming/structure
revision: existing message associations and addressed return semantics remain
unchanged. Its design and delivery remain pending in the runtime/profile lane.

## Published 0.2.0 delivery (historical names)

Expand Down
3 changes: 2 additions & 1 deletion docs/wire/contract.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Wire and WireTree contract

This page specifies the shared contract for Bitwire 0.3.0, currently unreleased.
This page specifies the shared contract in the immutable
[Bitwire v0.3.0 release](https://github.com/Bitspark/bitwire/releases/tag/v0.3.0).
[Decision 0012](../decisions/0012-explicit-data-and-wire-trees.md) separates
addressless interaction, its full structure and addressed carriers. The
[conformance work](../../conformance/README.md) records executable evidence
Expand Down
5 changes: 5 additions & 0 deletions poster/DESIGN.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Poster design

**Historical overview:** this design describes the 0.2 addressed contract.
That former `Wire` is `AddressedWire` in 0.3; `Wire` is addressless and
`WireTree` provides complete byte-keyed structure. The poster and its design
remain historical material. See the [0.3 migration guide](../docs/migration-0.3.md).

The editorial and visual contract for [the poster](index.html). Facts come from
[SEAM.md](SEAM.md); this file decides what a reader sees, in what order, and
why it looks the way it does.
Expand Down
10 changes: 8 additions & 2 deletions wire/cpp/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Bitwire for C++

**Source contract: 0.3.0; publication pending.** `Wire` is the addressless
Version 0.3.0 is available as public tagged source. An external installed-package
consumer passed against the exact public release in the
[source verification workflow](https://github.com/Bitspark/bitwire/actions/runs/36232682234).
See the [delivery matrix](https://github.com/Bitspark/bitwire/blob/main/docs/languages.md#version-030-delivery)
for the separately verified distribution and runtime boundaries.

**Contract: 0.3.0.** `Wire` is the addressless
primitive `send(message)`. `WireTree = DeixisNode<Wire>` provides the complete
finite, acyclic structure: own value, complete byte-keyed children, partial
selection and decomposition. Keys are exact arbitrary bytes, including empty
Expand All @@ -21,7 +27,7 @@ space, local identity, received context and closure rules remain intact.
Carrier paths remain exact Unicode-scalar strings under unchanged `bitwire/1`;
they do not imply support for arbitrary tree byte keys on that carrier.

The following addressed-carrier examples use the **0.3 source names**. Older
The following addressed-carrier examples use the **0.3 contract names**. Older
0.2.0 artifacts used `Wire` for the addressed interface; their release evidence
does not validate the renamed declarations or full structural trees.

Expand Down
12 changes: 9 additions & 3 deletions wire/go/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Bitwire for Go

**Source contract: 0.3.0; publication pending.** `Wire` is the addressless
Version 0.3.0 is public through the Go proxy. A fresh consumer passed with the
checksum database enabled, no replacement and the exact release commit in the
[core workflow](https://github.com/Bitspark/bitwire/actions/runs/36231433436).
See the [delivery matrix](https://github.com/Bitspark/bitwire/blob/main/docs/languages.md#version-030-delivery)
for the separately verified distribution and runtime boundaries.

**Contract: 0.3.0.** `Wire` is the addressless
primitive `send(message)`. `WireTree = DeixisNode<Wire>` provides the complete
finite, acyclic structure: own value, complete byte-keyed children, partial
selection and decomposition. Keys are exact arbitrary bytes, including empty
Expand All @@ -21,7 +27,7 @@ space, local identity, received context and closure rules remain intact.
Carrier paths remain exact Unicode-scalar strings under unchanged `bitwire/1`;
they do not imply support for arbitrary tree byte keys on that carrier.

The following addressed-carrier examples use the **0.3 source names**. Older
The following addressed-carrier examples use the **0.3 contract names**. Older
0.2.0 artifacts used `Wire` for the addressed interface; their release evidence
does not validate the renamed declarations or full structural trees.

Expand All @@ -41,7 +47,7 @@ type Endpoint interface {
```

[wire.go](wire.go) contains the supporting frame, return-address and receiver
types. After 0.3.0 is published, install that module with:
types. Install the released module with:

```console
go get github.com/Bitspark/bitwire@v0.3.0
Expand Down
15 changes: 11 additions & 4 deletions wire/hs/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Bitwire for Haskell

**Source contract: 0.3.0; publication pending.** `Wire` is the addressless
Version 0.3.0 is available through the public Git release. A fresh anonymous
Git consumer passed with an isolated Cabal store in the
[source verification workflow](https://github.com/Bitspark/bitwire/actions/runs/36232682234).
Hackage publication remains deferred.
See the [delivery matrix](https://github.com/Bitspark/bitwire/blob/main/docs/languages.md#version-030-delivery)
for the separately verified distribution and runtime boundaries.

**Contract: 0.3.0.** `Wire` is the addressless
primitive `send(message)`. `WireTree = DeixisNode<Wire>` provides the complete
finite, acyclic structure: own value, complete byte-keyed children, partial
selection and decomposition. Keys are exact arbitrary bytes, including empty
Expand All @@ -21,7 +28,7 @@ space, local identity, received context and closure rules remain intact.
Carrier paths remain exact Unicode-scalar strings under unchanged `bitwire/1`;
they do not imply support for arbitrary tree byte keys on that carrier.

The following addressed-carrier examples use the **0.3 source names**. Older
The following addressed-carrier examples use the **0.3 contract names**. Older
0.2.0 artifacts used `Wire` for the addressed interface; their release evidence
does not validate the renamed declarations or full structural trees.

Expand All @@ -36,7 +43,7 @@ delivery evidence. This package does not claim Nightseam Haskell adoption.

## Install from Git

After the immutable 0.3.0 release is published, add its tag to your
Add the immutable 0.3.0 release tag to your
application's `cabal.project`:

```cabal
Expand Down Expand Up @@ -150,7 +157,7 @@ To verify the already published 0.1.0 Git release (historical evidence):
node wire/hs/check-git.mjs
```

After publishing 0.3.0, verify the updated public interface explicitly:
To repeat the verified 0.3.0 public-interface check explicitly:

```text
node wire/hs/check-git.mjs --tag v0.3.0 --version 0.3.0
Expand Down
22 changes: 16 additions & 6 deletions wire/java/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Bitwire for Java

**Source contract: 0.3.0; publication pending.** `Wire` is the addressless
Version 0.3.0 is published on Maven Central. An independent consumer compiled
and ran using only Central resolution and a fresh Maven repository in the
[publication workflow](https://github.com/Bitspark/bitwire/actions/runs/36232680583).
See the [delivery matrix](https://github.com/Bitspark/bitwire/blob/main/docs/languages.md#version-030-delivery)
for the separately verified distribution and runtime boundaries.

**Contract: 0.3.0.** `Wire` is the addressless
primitive `send(message)`. `WireTree = DeixisNode<Wire>` provides the complete
finite, acyclic structure: own value, complete byte-keyed children, partial
selection and decomposition. Keys are exact arbitrary bytes, including empty
Expand All @@ -21,15 +27,19 @@ space, local identity, received context and closure rules remain intact.
Carrier paths remain exact Unicode-scalar strings under unchanged `bitwire/1`;
they do not imply support for arbitrary tree byte keys on that carrier.

The following addressed-carrier examples use the **0.3 source names**. Older
The following addressed-carrier examples use the **0.3 contract names**. Older
0.2.0 artifacts used `Wire` for the addressed interface; their release evidence
does not validate the renamed declarations or full structural trees.

`dev.bitspark:bitwire:0.3.0` presents the shared relative-path AddressedWire contract
for Java 21. It has no runtime dependencies. The public Java package and automatic
module name are both `dev.bitspark.bitwire`.
`dev.bitspark:bitwire:0.3.0` presents addressless Wire, full WireTree structure
and addressed carrier access for Java 21. It has no runtime dependencies. The
public Java package and automatic module name are both `dev.bitspark.bitwire`.

Install [version 0.3.0 from Maven Central](https://repo.maven.apache.org/maven2/dev/bitspark/bitwire/0.3.0/)
using the coordinates below. Its signed binary, POM, sources and Javadoc and
clean consumer are verified in the publication workflow linked above.

Version 0.2.0 is available on [Maven Central](https://repo.maven.apache.org/maven2/dev/bitspark/bitwire/0.2.0/).
The historical version 0.2.0 remains available on [Maven Central](https://repo.maven.apache.org/maven2/dev/bitspark/bitwire/0.2.0/).
The [publication run](https://github.com/Bitspark/bitwire/actions/runs/35589087610)
signed and published the binary, POM, sources and Javadoc, then compiled and ran
an independent consumer using only Central resolution in a fresh Maven repository.
Expand Down
9 changes: 7 additions & 2 deletions wire/py/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Bitwire for Python

**Source contract: 0.3.0; publication pending.** `Wire` is the addressless
Version 0.3.0 is published on PyPI. Public installed-package tests passed in the
[publication workflow](https://github.com/Bitspark/bitwire/actions/runs/36232678897).
See the [delivery matrix](https://github.com/Bitspark/bitwire/blob/main/docs/languages.md#version-030-delivery)
for the separately verified distribution and runtime boundaries.

**Contract: 0.3.0.** `Wire` is the addressless
primitive `send(message)`. `WireTree = DeixisNode<Wire>` provides the complete
finite, acyclic structure: own value, complete byte-keyed children, partial
selection and decomposition. Keys are exact arbitrary bytes, including empty
Expand All @@ -21,7 +26,7 @@ space, local identity, received context and closure rules remain intact.
Carrier paths remain exact Unicode-scalar strings under unchanged `bitwire/1`;
they do not imply support for arbitrary tree byte keys on that carrier.

The following addressed-carrier examples use the **0.3 source names**. Older
The following addressed-carrier examples use the **0.3 contract names**. Older
0.2.0 artifacts used `Wire` for the addressed interface; their release evidence
does not validate the renamed declarations or full structural trees.

Expand Down
Loading
Loading