+33
PUBLISH.md
+33
PUBLISH.md
···
1
+
# Publishing a new version of the PDS distro
2
+
3
+
Below are the steps to publish a new version of the PDS distribution. The distribution is hosted by GitHub Container Registry, supported by the `build-and-push-ghcr` workflow. We use git tags to generate Docker tags on the resulting images.
4
+
5
+
1. Update the @atproto/pds dependency in the `service/` directory.
6
+
7
+
We're using version `0.4.999` as an example. The latest version of the [`@atproto/pds` package](https://www.npmjs.com/package/@atproto/pds) must already be published on npm.
8
+
```sh
9
+
$ cd service/
10
+
$ pnpm update @atproto/pds@0.4.999
11
+
$ cd ..
12
+
```
13
+
14
+
2. Commit the change directly to `main`.
15
+
16
+
As soon as this is committed and pushed, the workflow to build the Docker image will start running.
17
+
```sh
18
+
$ git add service/
19
+
$ git commit -m "pds v0.4.999"
20
+
$ git push
21
+
```
22
+
23
+
3. Smoke test the new Docker image.
24
+
25
+
The new Docker image built by GitHub can be found [here](https://github.com/bluesky-social/pds/pkgs/container/pds). You can use the `sha-`prefixed tag to deploy this image to a test PDS for smoke testing.
26
+
27
+
4. Finally, tag the latest Docker image version.
28
+
29
+
The Docker image will be tagged as `latest`, `0.4.999`, and `0.4`. Our self-hosters generally use the `0.4` tag, and their PDS distribution will be updated automatically over night in many cases. The Docker tags are generated automatically from git tags.
30
+
```sh
31
+
$ git tag v0.4.999
32
+
$ git push --tags
33
+
```