Skip to content

Commit b52e9c7

Browse files
committed
docs: add changeset
1 parent f3e5174 commit b52e9c7

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

.changeset/warm-lies-joke.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
"@evolution-sdk/devnet": minor
3+
---
4+
5+
**Restructured module exports** for better modularity and clarity:
6+
- Replaced monolithic `Devnet` and `DevnetDefault` exports with granular named exports: `Cluster`, `Config`, `Container`, `Genesis`, and `Images`
7+
- Renamed types: `DevNetCluster``Cluster.Cluster`, `DevNetContainer``Container.Container`
8+
- Moved `DEFAULT_SHELLEY_GENESIS` from `DevnetDefault` to `Config` module
9+
10+
**New Features:**
11+
12+
- **Genesis module** - Calculate and query genesis UTxOs with Cardano's `initialFundsPseudoTxIn` algorithm:
13+
- `calculateUtxosFromConfig()` - Deterministically compute genesis UTxOs from Shelley genesis configuration using blake2b-256 hashing
14+
- `queryUtxos()` - Query actual genesis UTxOs from running node via cardano-cli
15+
- Provides predictable UTxO structure for testing without node interaction
16+
17+
- **Images module** - Docker image management utilities:
18+
- `isAvailable()` - Check if Docker image exists locally
19+
- `pull()` - Pull Docker images with progress logging
20+
- `ensureAvailable()` - Conditionally pull images only when needed
21+
22+
**Improvements:**
23+
24+
- Enhanced error handling with specific error reasons (`address_conversion_failed`, `utxo_query_failed`, `utxo_parse_failed`, `image_inspection_failed`, `image_pull_failed`)
25+
- All operations provide both Effect-based and Promise-based APIs for flexibility
26+
- Improved test coverage with descriptive cluster names for easier debugging
27+
- Full Effect error channel integration throughout the package
28+
29+
**Breaking Changes:**
30+
31+
Migration required for existing devnet users:
32+
33+
```typescript
34+
// Before
35+
import { Devnet, DevnetDefault } from "@evolution-sdk/devnet"
36+
37+
const cluster = await Devnet.Cluster.make()
38+
const config = DevnetDefault.DEFAULT_SHELLEY_GENESIS
39+
40+
// After
41+
import { Cluster, Config } from "@evolution-sdk/devnet"
42+
43+
const cluster = await Cluster.make()
44+
const config = Config.DEFAULT_SHELLEY_GENESIS
45+
```
46+
47+
All module functionality remains the same, only import syntax has changed to use destructured named exports from the main package.

0 commit comments

Comments
 (0)