Skip to content

Commit 01277d3

Browse files
Merge branch 'master' into flake-update
2 parents 0d8035b + 6a05f24 commit 01277d3

File tree

21 files changed

+108
-107
lines changed

21 files changed

+108
-107
lines changed

.github/workflows/pypi.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
run: |
7676
echo "Pyln VERSION: $VERSION"
7777
uv build --package ${{ matrix.PACKAGE }}
78-
uv publish --package ${{ matrix.PACKAGE }} --publish-url https://test.pypi.org/legacy/ --skip-existing
78+
uv publish --publish-url https://test.pypi.org/legacy/ --check-url https://test.pypi.org/simple/
7979
8080
- name: Publish distribution 📦 to PyPI
8181
if: github.repository == 'ElementsProject/lightning' && steps.set-values.outputs.DISTLOCATION == 'prod'
@@ -87,7 +87,7 @@ jobs:
8787
cd ${{ env.WORKDIR }}
8888
export VERSION=$(git describe --tags --abbrev=0)
8989
echo "Pyln VERSION: $VERSION"
90-
make upgrade-version NEW_VERSION=$VERSION
90+
make update-pyln-versions NEW_VERSION=$VERSION
9191
cd /github/workspace
9292
uv build --package ${{ matrix.PACKAGE }}
93-
uv publish --package ${{ matrix.PACKAGE }}
93+
uv publish

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
25.09rc4
1+
25.09

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6-
## [25.09rc4] - 2025-08-28: "Hot Wallet Guardian"
6+
## [25.09] - 2025-09-01: "Hot Wallet Guardian"
77

88
This release named by @king-11.
99

@@ -119,7 +119,7 @@ Note: You should always set `allow-deprecated-apis=false` to test for changes.
119119
[#7344]: https://github.com/ElementsProject/lightning/pull/7344
120120
[#8410]: https://github.com/ElementsProject/lightning/pull/8410
121121
[#8249]: https://github.com/ElementsProject/lightning/pull/8249
122-
[25.09rc4]: https://github.com/ElementsProject/lightning/releases/tag/v25.09rc4
122+
[25.09]: https://github.com/ElementsProject/lightning/releases/tag/v25.09
123123

124124

125125

Dockerfile

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,9 @@ RUN apt-get update -qq && \
8989
tclsh
9090

9191
ENV PATH="/root/.local/bin:$PATH" \
92-
PYTHON_VERSION=3 \
93-
POETRY_VERSION=2.0.1
94-
RUN curl -sSL https://install.python-poetry.org | python3 - && \
95-
poetry self add poetry-plugin-export
96-
RUN mkdir -p /root/.venvs && \
97-
python3 -m venv /root/.venvs/cln && \
98-
. /root/.venvs/cln/bin/activate && \
99-
pip3 install --upgrade pip setuptools wheel
92+
PYTHON_VERSION=3
93+
RUN wget -qO- https://astral.sh/uv/install.sh | sh && \
94+
&& uv sync --all-extras --all-groups
10095

10196
RUN wget -q https://zlib.net/fossils/zlib-1.2.13.tar.gz -O zlib.tar.gz && \
10297
wget -q https://www.sqlite.org/2019/sqlite-src-3290000.zip -O sqlite.zip && \
@@ -108,13 +103,6 @@ RUN git clone --recursive /tmp/lightning . && \
108103
git checkout $(git --work-tree=/tmp/lightning --git-dir=/tmp/lightning/.git rev-parse HEAD)
109104

110105
# Do not build python plugins here, python doesn't support cross compilation.
111-
RUN poetry lock && \
112-
poetry export -o requirements.txt --without-hashes
113-
RUN mkdir -p /root/.venvs && \
114-
python3 -m venv /root/.venvs/cln && \
115-
. /root/.venvs/cln/bin/activate && \
116-
pip3 install -r requirements.txt && \
117-
pip3 cache purge
118106
WORKDIR /
119107

120108
FROM base-builder AS base-builder-linux-amd64
@@ -228,46 +216,14 @@ RUN ( ! [ -n "${target_host}" ] ) || \
228216
RUN ( ! [ "${target_host}" = "arm-linux-gnueabihf" ] ) || \
229217
(sed -i '/documentation = "https:\/\/docs.rs\/cln-grpc"/a include = ["**\/*.*"]' cln-grpc/Cargo.toml)
230218

231-
# Ensure that the desired grpcio-tools & protobuf versions are installed
232-
# https://github.com/ElementsProject/lightning/pull/7376#issuecomment-2161102381
233-
RUN poetry lock && poetry install && \
234-
poetry self add poetry-plugin-export
235-
236219
# Ensure that git differences are removed before making bineries, to avoid `-modded` suffix
237-
# poetry.lock changed due to pyln-client, pyln-proto and pyln-testing version updates
238220
RUN git reset --hard HEAD
239221

240-
RUN ./configure --prefix=/tmp/lightning_install --enable-static && poetry run make install
222+
RUN ./configure --prefix=/tmp/lightning_install --enable-static && uv run make install
241223

242224
WORKDIR /opt/lightningd
243225
RUN echo 'RUSTUP_INSTALL_OPTS="${RUSTUP_INSTALL_OPTS}"' > /tmp/rustup_install_opts.txt
244226

245-
# We need to build python plugins on the target's arch because python doesn't support cross build
246-
FROM ${BASE_DISTRO} AS builder-python
247-
RUN apt-get update -qq && \
248-
apt-get install -qq -y --no-install-recommends \
249-
git \
250-
curl \
251-
libtool \
252-
pkg-config \
253-
autoconf \
254-
automake \
255-
build-essential \
256-
libffi-dev \
257-
libssl-dev \
258-
python3 \
259-
python3-dev \
260-
python3-pip \
261-
python3-venv && \
262-
apt-get clean && \
263-
rm -rf /var/lib/apt/lists/*
264-
265-
ENV PYTHON_VERSION=3
266-
RUN mkdir -p /root/.venvs && \
267-
python3 -m venv /root/.venvs/cln && \
268-
. /root/.venvs/cln/bin/activate && \
269-
pip3 install --upgrade pip setuptools wheel
270-
271227
# Copy rustup_install_opts.txt file from builder
272228
COPY --from=builder /tmp/rustup_install_opts.txt /tmp/rustup_install_opts.txt
273229
# Setup ENV $RUSTUP_INSTALL_OPTS for this stage
@@ -286,7 +242,6 @@ RUN apt-get update && \
286242
inotify-tools \
287243
jq \
288244
python3 \
289-
python3-pip && \
290245
apt-get clean && \
291246
rm -rf /var/lib/apt/lists/*
292247

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -756,13 +756,16 @@ clean: obsclean
756756

757757
# See doc/contribute-to-core-lightning/contributor-workflow.md
758758
PYLNS=client proto testing
759-
update-versions: update-pyln-versions update-reckless-version update-dot-version update-doc-examples
759+
update-versions: update-pyln-versions update-reckless-version update-dot-version # FIXME: update-doc-examples
760+
@uv lock
761+
760762
update-pyln-versions: $(PYLNS:%=update-pyln-version-%)
761763

762764
update-pyln-version-%:
763765
@if [ -z "$(NEW_VERSION)" ]; then echo "Set NEW_VERSION!" >&2; exit 1; fi
764766
@echo "Updating contrib/pyln-$* to $(NEW_VERSION)"
765767
@sed -i.bak 's/^version = .*/version = "$(NEW_VERSION)"/' contrib/pyln-$*/pyproject.toml && rm contrib/pyln-$*/pyproject.toml.bak
768+
@sed -i.bak 's/^__version__ = .*/__version__ = "$(NEW_VERSION)"/' contrib/pyln-$*/pyln/$*/__init__.py && rm contrib/pyln-$*/pyln/$*/__init__.py.bak
766769

767770
pyln-release: $(PYLNS:%=pyln-release-%)
768771

connectd/multiplex.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,7 @@ static struct io_plan *write_to_peer(struct io_conn *peer_conn,
10931093
if (!msg) {
10941094
/* Tell them to read again, */
10951095
io_wake(&peer->subds);
1096+
io_wake(&peer->peer_in);
10961097

10971098
/* Wait for them to wake us */
10981099
return msg_queue_wait(peer_conn, peer->peer_outq,
@@ -1266,8 +1267,11 @@ static struct io_plan *read_body_from_peer_done(struct io_conn *peer_conn,
12661267
return next_read(peer_conn, peer);
12671268

12681269
/* If we swallow this, just try again. */
1269-
if (handle_message_locally(peer, decrypted))
1270-
return next_read(peer_conn, peer);
1270+
if (handle_message_locally(peer, decrypted)) {
1271+
/* Make sure to update peer->peer_in_lastmsg so we blame correct msg! */
1272+
io_wake(peer->peer_outq);
1273+
goto out;
1274+
}
12711275

12721276
/* After this we should be able to match to subd by channel_id */
12731277
if (!extract_channel_id(decrypted, &channel_id)) {
@@ -1334,6 +1338,7 @@ static struct io_plan *read_body_from_peer_done(struct io_conn *peer_conn,
13341338

13351339
/* Wait for them to wake us */
13361340
peer->peer_in_lastmsg = type;
1341+
out:
13371342
peer->peer_in_lasttime = time_mono();
13381343

13391344
return io_wait(peer_conn, &peer->peer_in, next_read, peer);
Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM fedora:35
22

3+
ENV UV_PYTHON=3.12
34
ENV BITCOIN_VERSION=27.1
5+
46
WORKDIR /tmp
57

68
RUN dnf update -y && \
@@ -10,11 +12,6 @@ RUN dnf update -y && \
1012
dnf install -y \
1113
clang \
1214
libsq3-devel \
13-
python3-devel \
14-
python3-mako \
15-
python3-pip \
16-
python3-virtualenv \
17-
python3-setuptools \
1815
redhat-lsb \
1916
net-tools \
2017
valgrind \
@@ -26,18 +23,15 @@ RUN dnf update -y && \
2623
cargo && \
2724
dnf clean all
2825

29-
RUN python3 -m pip install uv
30-
31-
RUN wget https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION-x86_64-linux-gnu.tar.gz -O bitcoin.tar.gz && \
26+
RUN wget https://storage.googleapis.com/c-lightning-tests/bitcoind/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \
27+
-O bitcoin.tar.gz && \
3228
tar -xvzf bitcoin.tar.gz && \
3329
mv bitcoin-$BITCOIN_VERSION/bin/bitcoin* /usr/local/bin/ && \
3430
mv bitcoin-$BITCOIN_VERSION/lib/* /usr/local/lib/ && \
3531
mv bitcoin-$BITCOIN_VERSION/include/* /usr/local/include/ && \
3632
mv bitcoin-$BITCOIN_VERSION/share/man/man1/* /usr/share/man/man1 && \
3733
rm -rf bitcoin.tar.gz bitcoin-$BITCOIN_VERSION
3834

39-
ENV PATH=/opt/venv/bin:${PATH}
40-
RUN python3 -m pip install pip wheel && \
41-
python3 -m virtualenv /opt/venv && \
42-
/opt/venv/bin/python3 -m pip install --force-reinstall -U pip poetry wheel
43-
RUN poetry self add poetry-plugin-export
35+
# Ensure `uv` can be found
36+
ENV PATH=${PATH}:/root/.local/bin
37+
RUN wget -qO- https://astral.sh/uv/install.sh | sh

contrib/keys/madel.txt

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
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
50+
daOogCmnCPU=
51+
=g2EI
52+
-----END PGP PUBLIC KEY BLOCK-----

contrib/pyln-client/pyln/client/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from .gossmapstats import GossmapStats
55
from .version import NodeVersion
66

7-
__version__ = "25.09rc4"
7+
__version__ = "25.09"
88

99
__all__ = [
1010
"LightningRpc",

contrib/pyln-client/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pyln-client"
3-
version = "25.09rc4"
3+
version = "25.09"
44
description = "Client library and plugin library for Core Lightning"
55
authors = [{ name = "Christian Decker", email = "decker.christian@gmail.com" }]
66
license = { text = "BSD-MIT" }

0 commit comments

Comments
 (0)