1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Publish a module
Publishing writes to your PDS: the wasm, a `com.fedfork.exec.wasm.module` record and the source it was
built from. The build runs in a `rust:<your rustc version>` container (podman, docker or Apple's
`container`), so `atlibs verify` reproduces it anywhere.
In the repo from [Write a module](write.md), built once (`cargo wasm` writes `Cargo.lock`):
```bash run=account
cd my-module
git init -q && git add -A && git commit -qm my-module
git remote add origin https://example.com/you/my-module # the source manifest records it
atlibs login you.bsky.social
atlibs publish --dry-run --as you.bsky.social
atlibs publish --as you.bsky.social
```
```output
…
would-publish my-module <pin> -
0 published, 0 unchanged, 1 would publish, 0 skipped:dirty, 0 drift, 0 failed (cache …)
…
published my-module <pin> <cid> you.bsky.social/my-module
1 published, 0 unchanged, 0 would publish, 0 skipped:dirty, 0 drift, 0 failed (cache …)
```
Publishing refuses uncommitted sources. Later runs publish only what changed. Without OAuth:
`--app-password you.bsky.social --password-env APP_PASSWORD` in place of `--as`.
## Verify, add, run
Anyone can rebuild it and compare, then use it:
```bash run=account
atlibs verify you.bsky.social/my-module
cd "$(mktemp -d)"
atlibs add you.bsky.social/my-module
atlibs run my-module describe '{"did":"did:plc:ocnuqjlzgohypj3zoznermms"}'
```
```output
…"reproducible": true…
added my-module (you.bsky.social/my-module) pin …
```
## Remove it
```bash run=account
atlibs publish delete com.fedfork.exec.wasm.module/my-module --as you.bsky.social
```
Signed-in modules (a session record), pins, what is uploaded: [Publish a module](../modules/publish.md).
Previous: [Write a module](write.md) | Next: [Compose](compose.md)