Skip to content

Commit 662bcf5

Browse files
committed
PR(DOCS): Add one-off breaking change log
Document the SourceHub-to-Vera and Remote DAC migration in BREAKLOG.md. Explain how intentional one-off breaking changes outside the standing VERSIONING.md exceptions are communicated and add contributor guidance.
1 parent b922f84 commit 662bcf5

3 files changed

Lines changed: 74 additions & 1 deletion

File tree

BREAKLOG.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Breaking Change Log
2+
3+
This log records intentional one-off compatibility breaks that DefraDB ships without waiting for a major release, as described by the [versioning policy](./VERSIONING.md). These are genuine breaking changes, not the standing exceptions in that policy.
4+
5+
Unreleased entries are grouped under their release version when they ship.
6+
7+
## Unreleased
8+
9+
### Rename SourceHub to Vera and SourceHub Document ACP to Remote DAC
10+
11+
The SourceHub project has been renamed to [Vera](https://github.com/sourcenetwork/vera). DefraDB now calls the Vera-backed Document ACP implementation Remote DAC, alongside the existing Local DAC. DefraDB does not retain the former configuration values or API names as compatibility aliases.
12+
13+
DefraDB also adopts Vera's planned `LogID` terminology for the Remote DAC log identifier instead of retaining SourceHub's `ChainID` terminology. The current Vera SDK still accepts this value through `WithChainID`; that implementation detail remains inside the Remote DAC adapter so DefraDB users will not face another rename when Vera updates its API.
14+
15+
Update Remote DAC deployments and integrations to use Vera endpoints and dependencies.
16+
17+
#### Configuration and tooling
18+
19+
| Surface | Previous | Replacement |
20+
|---------|----------|-------------|
21+
| Document ACP type | `source-hub` | `remote` |
22+
| Document ACP type flag | `--document-acp-type source-hub` | `--document-acp-type remote` |
23+
| Document ACP type environment variable | `DEFRA_ACP_DOCUMENT_TYPE=source-hub` | `DEFRA_ACP_DOCUMENT_TYPE=remote` |
24+
| Document ACP configuration namespace | `acp.document.sourceHub.*` | `acp.document.remote.*` |
25+
| Remote DAC log ID configuration | `acp.document.sourceHub.ChainID` | `acp.document.remote.LogID` |
26+
| Environment-based configuration namespace | `DEFRA_ACP_DOCUMENT_SOURCEHUB_*` | `DEFRA_ACP_DOCUMENT_REMOTE_*` |
27+
| Remote DAC log ID environment variable | `DEFRA_ACP_DOCUMENT_SOURCEHUB_CHAINID` | `DEFRA_ACP_DOCUMENT_REMOTE_LOGID` |
28+
| Client address flag | `--source-hub-address` | `--remote-dac-address` |
29+
| Go module | `github.com/sourcenetwork/sourcehub` | `github.com/sourcenetwork/vera` |
30+
| Container image | `ghcr.io/sourcenetwork/sourcehub` | `ghcr.io/sourcenetwork/vera` |
31+
| Integration test ACP type | `DEFRA_DOCUMENT_ACP_TYPE=source-hub` | `DEFRA_DOCUMENT_ACP_TYPE=remote` |
32+
| Integration test image | `DEFRA_SOURCEHUB_IMAGE` | `DEFRA_VERA_IMAGE` |
33+
| Make target | `make test:source-hub` | `make test:remote-dac` |
34+
35+
The namespace-only change applies to `GRPCAddress`, `CometRPCAddress`, `KeyName`, and `address`. The `ChainID` setting instead becomes `LogID`, as shown above.
36+
37+
Addresses supplied through `acp.document.remote.address` or `--remote-dac-address`, including the JWT `authorized_account` claim, must use Vera's `vera` Bech32 prefix instead of SourceHub's `source` prefix.
38+
39+
#### Go API
40+
41+
| Previous | Replacement |
42+
|----------|-------------|
43+
| `dac.NewSourceHubACP` | `dac.NewRemoteDocumentACP` |
44+
| `dac.NewACPSourceHub` | `dac.NewRemoteDocumentACPClient` |
45+
| `dac.NewSourceHubDocumentACP` (JS/WASM) | `dac.NewRemoteDocumentACP` |
46+
| `dac.SourceHubDocumentACP` | `dac.RemoteDocumentACP` |
47+
| `SourceHubDocumentACP` in `acp/types` | `RemoteDocumentACP` in `acp/types` |
48+
| `options.NodeSourceHubDocumentACPType` | `options.NodeRemoteDocumentACPType` |
49+
| `NodeDocumentACPOptions.SourceHubChainID` | `NodeDocumentACPOptions.RemoteDACLogID` |
50+
| `NodeDocumentACPOptions.SourceHubGRPCAddress` | `NodeDocumentACPOptions.RemoteDACGRPCAddress` |
51+
| `NodeDocumentACPOptions.SourceHubCometRPCAddress` | `NodeDocumentACPOptions.RemoteDACCometRPCAddress` |
52+
| `NodeDocumentACPOptionsBuilder.SetChainID` | `NodeDocumentACPOptionsBuilder.SetLogID` |
53+
| `node.ErrSignerMissingForSourceHubACP` | `node.ErrSignerMissingForRemoteDAC` |
54+
| `sourcehub.TxSigner` | `vera.TxSigner` |
55+
56+
#### C API
57+
58+
These mappings are included for migration completeness and do not change the C bindings' [current versioning status](./VERSIONING.md#the-c-embedded-client).
59+
60+
The Document ACP type stored in `NodeInitOptions.documentACPType` changes from `"source-hub"` to `"remote"`. The related fields are renamed as follows:
61+
62+
| Previous | Replacement |
63+
|----------|-------------|
64+
| `sourceHubChainID` | `remoteDACLogID` |
65+
| `sourceHubGRPCAddress` | `remoteDACGRPCAddress` |
66+
| `sourceHubCometRPCAddress` | `remoteDACCometRPCAddress` |

CONTRIBUTING_INTERNAL.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@ For significant architectural changes or major new features, write a **[Source I
279279
>
280280
> 1. Include the `BREAKING CHANGE` keyword in the **commit message body** (not the title)
281281
> 2. Follow it with a description of what changed and why
282-
> 3. Document the changes in [`docs/data_format_changes/`](./docs/data_format_changes/) for the change detector to pass
282+
> 3. For an intentional one-off breaking change outside a major release, add the affected interfaces and migration guidance to [`BREAKLOG.md`](./BREAKLOG.md)
283+
> 4. If the stored data format changes, document it in [`docs/data_format_changes/`](./docs/data_format_changes/) for the change detector to pass
283284
284285
---
285286

VERSIONING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ Generally, we will be incrementing the DefraDB release version in strict accorda
1212
1313
However, in some areas the line is blurry and controversial, and very occasionally deemed to be impractical in the short-term. The rest of this document outlines these special areas and our versioning policy on them.
1414

15+
## One-off breaking changes
16+
17+
In exceptional cases, we may intentionally ship an isolated breaking change without waiting for a major release. These are genuine compatibility breaks and one-off departures from our usual semantic-versioning policy; they do not establish a new category of unprotected API.
18+
19+
Every such change is recorded in the [breaking change log](./BREAKLOG.md), including the affected interfaces and migration guidance. Consumers should review the entries between their current and target versions before every upgrade.
20+
1521
## Errors
1622

1723
At the moment, our errors are largely string based - they are driven by a single concrete implementation of the standard Go `error` interface [here](./errors/defraError.go#L60).

0 commit comments

Comments
 (0)