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
43 changes: 4 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,45 +56,10 @@ Each version is marked with appropriate `basedon-vX.X.X-beta` tags. We are using

## Updating LND version in BTCPay Server

See [UPDATING-LND-NOTES.md](UPDATING-LND-NOTES.md) for the practical checklist and known gotchas (Docker base images, arm builders, downstream PR mechanics).

1. **Update https://github.com/btcpayserver/lnd**

a) Go to https://github.com/lightningnetwork/lnd/releases and find the commit on which we should add our resources.
b) Checkout a new branch for that commit, usually in the format of `lnd/v0.18.3-beta`.
c) Cherry-pick the `Adding BtcPayServer related files and resources` commit. [Example commit](https://github.com/btcpayserver/lnd/commit/ae4bb33c6a3db8b7cc01d18fdf46e600ead9bed4).
d) Tag it with the `basedon-v*` prefix name and push it. For v0.18.1, the tag name was `basedon-v0.18.3-beta`.
i. Before you push the tag to GitHub Actions to build and publish the image to Docker Hub, you can test if building the image works locally.
ii. You can do this for linuxamd64 for example by using command `docker build --pull -t local-lnd:test_version -f linuxamd64.Dockerfile .`
e) The build process will start (the workflow [matches on tag format](.github/workflows/publish.yml) and requires the `DOCKERHUB_USERNAME`/`DOCKERHUB_TOKEN` repo secrets). Watch the run under the repo's [Actions tab](https://github.com/btcpayserver/lnd/actions).
f) The resulting image will be published to Docker Hub. Example [Docker Hub image for v0.18.3](https://hub.docker.com/layers/btcpayserver/lnd/v0.18.3-beta/images/sha256-513ddd55a5af44a14e27110ee14cb28f1c7a69205bcaa2fba4e66275c1f725e5?context=repo).

Occasionally, there are problems with:
- Versioning of base Docker images used for building Go binaries. You may need to bump that base image - [example commit](https://github.com/btcpayserver/lnd/commit/c841954c515a9d067c24987291316b093b91c2f2).
- [Updating Loop](https://github.com/lightninglabs/loop) as part of the package, which needs to happen occasionally. [Example bump of Loop version](https://github.com/btcpayserver/lnd/commit/b3aecc7ac58280ef662e39ba99461573a30fe79a).

2. **Update https://github.com/btcpayserver/BTCPayServer.Lightning**

Now we need to update the dependency in our Lightning library project. This library has tests, so we will know if something is broken.

a) Modify the `docker-compose.yml` file to reference the new LND version. [Example](https://github.com/btcpayserver/BTCPayServer.Lightning/pull/162/commits/413784ef9b2a8e7aa0496eb91f792ff0086c0ef7).
b) Checkout a new branch for that commit, usually in the format of `feat/lnd-0.18.1`.
c) Title the commit `Bumping LND to 0.18.1-beta`.
d) Open a pull request and reference Docker Hub and Tag. [Example PR](https://github.com/btcpayserver/BTCPayServer.Lightning/pull/194).
e) Once tests pass, you can merge it.

3. **Update https://github.com/btcpayserver/btcpayserver**

This will give access to LND to the whole dev team and allow for further testing on their dev machines if everything works as expected.

a) Modify 4 `docker-compose.yml` files in `BTCPayServer.Tests`. [Example pull request to emulate](https://github.com/btcpayserver/btcpayserver/pull/7547).
b) When you open the PR, include the version and link to the BTCPayServer.Lightning PR.
c) Once tests pass, you can merge it.

4. **Update https://github.com/btcpayserver/btcpayserver-docker**

a) Now that everything is prepared, open a PR in the btcpayserver-docker repository to allow these changes to propagate to everyone. [Example pull request](https://github.com/btcpayserver/btcpayserver-docker/pull/1093).
b) Open the PR in DRAFT mode and tag @NicolasDorier and @Pavlenex as reviewers. They typically handle releases, and once they test that the LND version update works on their server, they can ACK the update and merge it as part of the release process.
Follow the [LND maintenance procedure](https://github.com/btcpayserver/image-maintenance/blob/master/docs/lnd.md)
in [image-maintenance](https://github.com/btcpayserver/image-maintenance) for
upstream bumps, patch preservation, image publication and downstream validation.
Start maintenance agents from that repository so they load the shared instructions.

## Source repository

Expand Down
Loading
Loading