From eee5e90df442586b7f891df4fc0c67d273534737 Mon Sep 17 00:00:00 2001 From: Michael Schmoock Date: Thu, 16 Mar 2023 17:29:26 +0100 Subject: [PATCH 01/23] clearnet: adds clearnet plugin This can be used to enfroce clearnet connections on all peers or a given `peer_id`. --- README.md | 2 + clearnet/README.md | 10 ++++ clearnet/clearnet.py | 114 ++++++++++++++++++++++++++++++++++++++ clearnet/requirements.txt | 1 + clearnet/test_clearnet.py | 22 ++++++++ 5 files changed, 149 insertions(+) create mode 100644 clearnet/README.md create mode 100755 clearnet/clearnet.py create mode 100644 clearnet/requirements.txt create mode 100644 clearnet/test_clearnet.py diff --git a/README.md b/README.md index 104b5eb13..02798ba58 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ Community curated plugins for Core-Lightning. | [circular][circular] | A smart rebalancing plugin for Core Lightning routing nodes | | [csvexportpays][csvexportpays] | A plugin that exports all payments to a CSV file | | [currencyrate][currencyrate] | A plugin to convert other currencies to BTC using web requests | +| [clearnet][clearnet] | A plugin that can be used to enforce clearnet connections when possible | | [donations][donations] | A simple donations page to accept donations from the web | | [drain][drain] | Draining, filling and balancing channels with automatic chunks. | | [event-websocket][event-websocket] | Exposes notifications over a Websocket | @@ -242,3 +243,4 @@ un-archive it. [blip12]: https://github.com/lightning/blips/blob/42cec1d0f66eb68c840443abb609a5a9acb34f8e/blip-0012.md [circular]: https://github.com/giovannizotta/circular [python-teos]: https://github.com/talaia-labs/python-teos +[clearnet]: https://github.com/lightningd/plugins/tree/master/clearnet diff --git a/clearnet/README.md b/clearnet/README.md new file mode 100644 index 000000000..f3f83bc7e --- /dev/null +++ b/clearnet/README.md @@ -0,0 +1,10 @@ +# clearnet enforcer plugin +This plugin aims to prefer usage over clearnet connections. +It does so by disconnecing TOR connections when there are known and usable +clearnet addresses. + +# Options + +# Methods +## clearnet-enforce [peer_id] +Tries to enforce clearnet on all peer or on a given peer_id diff --git a/clearnet/clearnet.py b/clearnet/clearnet.py new file mode 100755 index 000000000..85cada76f --- /dev/null +++ b/clearnet/clearnet.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +import socket +from contextlib import closing +from pyln.client import Plugin, RpcError + +plugin = Plugin() + + +def get_address_type(addrstr: str): + """ I know this can be more sophisticated, but works """ + if ".onion:" in addrstr: + return 'tor' + if addrstr[0].isdigit(): + return 'ipv4' + if addrstr.startswith("["): + return 'ipv6' + return 'dns' + + +# taken from: +# https://stackoverflow.com/questions/19196105/how-to-check-if-a-network-port-is-open +def check_socket(host: str, port: int, timeout: float = None): + """ Checks if a socket can be opened to a host """ + if host.count('.') == 3: + proto = socket.AF_INET + if host.count(':') > 1: + proto = socket.AF_INET6 + with closing(socket.socket(proto, socket.SOCK_STREAM)) as sock: + if timeout is not None: + sock.settimeout(timeout) # seconds (float) + if sock.connect_ex((host, port)) == 0: + return True + else: + return False + + +def clearnet_pid(peer: dict, messages: list): + peer_id = peer['id'] + if not peer['connected']: + messages += [f"Peer is not conencted: {peer_id}"] + return False + if get_address_type(peer['netaddr'][0]) != 'tor': + messages += [f"Already connected via clearnet: {peer_id}"] + return True + + # lets check what gossip knows about this peer + nodes = plugin.rpc.listnodes(peer_id)['nodes'] + if len(nodes) == 0: + messages += [f"Error: No gossip for: {peer_id}"] + return + addrs = [a for a in nodes[0]['addresses'] if not a['type'].startswith("tor")] + if len(addrs) == 0: + messages += [f"Error: No clearnet addresses known for: {peer_id}"] + return + + # now check addrs for open ports + for addr in addrs: + if addr['type'] == 'dns': + messages += [f"TODO: DNS lookups for: {addr['address']}"] + continue + if check_socket(addr['address'], addr['port'], 2.0): + # disconnect + result = plugin.rpc.disconnect(peer_id, True) + if len(result) != 0: + messages += [f"Error: Can't disconnect: {peer_id} {result}"] + continue + + # try clearnet connection + try: + result = plugin.rpc.connect(peer_id, addr['address'], addr['port']) + newtype = result['address']['type'] + if not newtype.startswith('tor'): + messages += [f"Established clearnet connection for: {peer_id} with {newtype}"] + return True + except RpcError: # we got an connection error, try reconnect + messages += [f"Error: Connection failed for: {peer_id} with {addr['type']}"] + try: + result = plugin.rpc.connect(peer_id) # without address + newtype = result['address']['type'] + if not newtype.startswith('tor'): + messages += [f"Established clearnet connection for: {peer_id} with {newtype}"] + return True + except RpcError: # we got a reconnection error + messages += [f"Error: Reconnection failed for: {peer_id}"] + continue + messages += [f"Reconnected: {peer_id} with {newtype}"] + continue + return False + + +@plugin.method("clearnet") +def clearnet(plugin: Plugin, peer_id: str = None): + """ Enforce a clearnet connection on all peers or a given `peer_id`.""" + if peer_id is None: + peers = plugin.rpc.listpeers(peer_id)['peers'] + else: + if not isinstance(peer_id, str) or len(peer_id) != 66: + return f"Error: Invalid peer_id: {peer_id}" + peers = plugin.rpc.listpeers(peer_id)['peers'] + if len(peers) == 0: + return f"Error: peer not found: {peer_id}" + + messages = [] + for peer in peers: + clearnet_pid(peer, messages) + return messages + + +@plugin.init() +def init(options: dict, configuration: dict, plugin: Plugin, **kwargs): + plugin.log(f"clearnet enforcer plugin initialized") + + +plugin.run() diff --git a/clearnet/requirements.txt b/clearnet/requirements.txt new file mode 100644 index 000000000..7ebb30ebc --- /dev/null +++ b/clearnet/requirements.txt @@ -0,0 +1 @@ +pyln-client>=0.12 diff --git a/clearnet/test_clearnet.py b/clearnet/test_clearnet.py new file mode 100644 index 000000000..9c7468861 --- /dev/null +++ b/clearnet/test_clearnet.py @@ -0,0 +1,22 @@ +import os +from pyln.testing.fixtures import * # noqa: F401,F403 + +plugin_path = os.path.join(os.path.dirname(__file__), "clearnet.py") + + +def test_clearnet_starts(node_factory): + l1 = node_factory.get_node() + # Test dynamically + l1.rpc.plugin_start(plugin_path) + l1.rpc.plugin_stop(plugin_path) + l1.rpc.plugin_start(plugin_path) + l1.stop() + # Then statically + l1.daemon.opts["plugin"] = plugin_path + l1.start() + + +def test_clearnet_runs(node_factory): + pluginopt = {'plugin': plugin_path} + l1, l2 = node_factory.line_graph(2, opts=pluginopt) + l1.rpc.clearnet() From 1713f9aebbec0ee81389e736b1a82e3203c83609 Mon Sep 17 00:00:00 2001 From: Yuki Kishimoto Date: Tue, 2 May 2023 15:22:34 +0000 Subject: [PATCH 02/23] Add `cln-ntfy` --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 02798ba58..835ebaea5 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Community curated plugins for Core-Lightning. | [csvexportpays][csvexportpays] | A plugin that exports all payments to a CSV file | | [currencyrate][currencyrate] | A plugin to convert other currencies to BTC using web requests | | [clearnet][clearnet] | A plugin that can be used to enforce clearnet connections when possible | +| [cln-ntfy][cln-ntfy] | Core Lightning plugin for sending `ntfy` alerts. | | [donations][donations] | A simple donations page to accept donations from the web | | [drain][drain] | Draining, filling and balancing channels with automatic chunks. | | [event-websocket][event-websocket] | Exposes notifications over a Websocket | @@ -244,3 +245,4 @@ un-archive it. [circular]: https://github.com/giovannizotta/circular [python-teos]: https://github.com/talaia-labs/python-teos [clearnet]: https://github.com/lightningd/plugins/tree/master/clearnet +[cln-ntfy]: https://github.com/yukibtc/cln-ntfy From a3d3388d6a62d4fabfa449de1dedfea60b8ea376 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Mon, 22 May 2023 18:27:44 +0200 Subject: [PATCH 03/23] prom: Fix breakage due to msat purge Closes #450 --- prometheus/prometheus.py | 6 +++++- prometheus/test_prometheus.py | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/prometheus/prometheus.py b/prometheus/prometheus.py index 5c28b4878..bb712bb1e 100755 --- a/prometheus/prometheus.py +++ b/prometheus/prometheus.py @@ -32,7 +32,11 @@ def collect(self): value=blockheight, ) - fees_msat = info["msatoshi_fees_collected"] + print(info) + fees_msat = int(info.get( + "fees_collected_msat", + info.get("msatoshi_fees_collected", None) + )) yield GaugeMetricFamily( 'lightning_fees_collected_msat', 'How much have we been paid to route payments?', diff --git a/prometheus/test_prometheus.py b/prometheus/test_prometheus.py index 21d960d80..6a9f2ed52 100644 --- a/prometheus/test_prometheus.py +++ b/prometheus/test_prometheus.py @@ -1,5 +1,6 @@ import os from pyln.testing.fixtures import * # noqa: F401,F403 +import urllib plugin_path = os.path.join(os.path.dirname(__file__), "prometheus.py") @@ -14,3 +15,13 @@ def test_prometheus_starts(node_factory): # Then statically l1.daemon.opts["plugin"] = plugin_path l1.start() + + +def test_prometheus_scrape(node_factory): + """Test that we can scrape correctly. + """ + l1 = node_factory.get_node(options={'plugin': plugin_path}) + scrape = urllib.request.urlopen("http://localhost:9750") + + + From ce078bb74e10b5dea779fcd9fbe77e1d3e72db7a Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Wed, 19 Jul 2023 19:09:54 +0200 Subject: [PATCH 04/23] prom: More msat-purge... --- prometheus/prometheus.py | 69 +++++++++++++++++++---------------- prometheus/test_prometheus.py | 13 +++++++ 2 files changed, 51 insertions(+), 31 deletions(-) diff --git a/prometheus/prometheus.py b/prometheus/prometheus.py index bb712bb1e..df1414269 100755 --- a/prometheus/prometheus.py +++ b/prometheus/prometheus.py @@ -32,7 +32,6 @@ def collect(self): value=blockheight, ) - print(info) fees_msat = int(info.get( "fees_collected_msat", info.get("msatoshi_fees_collected", None) @@ -88,10 +87,19 @@ def collect(self): labels=['id'], ) - for p in peers: - labels = [p['id']] - count.add_metric(labels, len(p['channels'])) - connected.add_metric(labels, int(p['connected'])) + channels = self.rpc.listpeerchannels()['channels'] + # Associate each channel with a peer + peers = {} + conn = {} + for c in channels: + peer_id = c['peer_id'] + peers[peer_id] = peers.get(peer_id, 0) + 1 + conn[peer_id] = conn.get(peer_id, 0) + c['peer_connected'] + + for p in peers.keys(): + labels = [p] + count.add_metric(labels, peers[p]) + connected.add_metric(labels, conn.get(p, 0)) return [count, connected] @@ -163,32 +171,31 @@ def collect(self): labels=['id', 'scid', 'alias'], ) - peers = self.rpc.listpeers()['peers'] - for p in peers: - for c in p['channels']: - # append alias for human readable labels, if no label is found fill with shortid. - node = self.rpc.listnodes(p['id'])['nodes'] - if len(node) != 0 and 'alias' in node[0]: - alias = node[0]['alias'] - else: - alias = 'unknown' - - labels = [p['id'], c.get('short_channel_id', c.get('channel_id')), alias] - balance_gauge.add_metric(labels, c['to_us_msat'].to_satoshi()) - spendable_gauge.add_metric(labels, - c['spendable_msat'].to_satoshi()) - total_gauge.add_metric(labels, c['total_msat'].to_satoshi()) - htlc_gauge.add_metric(labels, len(c['htlcs'])) - - in_payments_offered_gauge.add_metric(labels, c['in_payments_offered']) - in_payments_fulfilled_gauge.add_metric(labels, c['in_payments_fulfilled']) - in_msatoshi_offered_gauge.add_metric(labels, c['in_msatoshi_offered']) - in_msatoshi_fulfilled_gauge.add_metric(labels, c['in_msatoshi_fulfilled']) - - out_payments_offered_gauge.add_metric(labels, c['out_payments_offered']) - out_payments_fulfilled_gauge.add_metric(labels, c['out_payments_fulfilled']) - out_msatoshi_offered_gauge.add_metric(labels, c['out_msatoshi_offered']) - out_msatoshi_fulfilled_gauge.add_metric(labels, c['out_msatoshi_fulfilled']) + channels = self.rpc.listpeerchannels()['channels'] + for c in channels: + # append alias for human readable labels, if no label is found fill with shortid. + node = self.rpc.listnodes(c['peer_id'])['nodes'] + if len(node) != 0 and 'alias' in node[0]: + alias = node[0]['alias'] + else: + alias = 'unknown' + + labels = [c['peer_id'], c.get('short_channel_id', c.get('channel_id')), alias] + balance_gauge.add_metric(labels, c['to_us_msat'].to_satoshi()) + spendable_gauge.add_metric(labels, + c['spendable_msat'].to_satoshi()) + total_gauge.add_metric(labels, c['total_msat'].to_satoshi()) + htlc_gauge.add_metric(labels, len(c['htlcs'])) + + in_payments_offered_gauge.add_metric(labels, c['in_payments_offered']) + in_payments_fulfilled_gauge.add_metric(labels, c['in_payments_fulfilled']) + in_msatoshi_offered_gauge.add_metric(labels, int(c['in_offered_msat'])) + in_msatoshi_fulfilled_gauge.add_metric(labels, int(c['in_fulfilled_msat'])) + + out_payments_offered_gauge.add_metric(labels, c['out_payments_offered']) + out_payments_fulfilled_gauge.add_metric(labels, c['out_payments_fulfilled']) + out_msatoshi_offered_gauge.add_metric(labels, int(c['out_offered_msat'])) + out_msatoshi_fulfilled_gauge.add_metric(labels, int(c['out_fulfilled_msat'])) return [ htlc_gauge, diff --git a/prometheus/test_prometheus.py b/prometheus/test_prometheus.py index 6a9f2ed52..6394a844a 100644 --- a/prometheus/test_prometheus.py +++ b/prometheus/test_prometheus.py @@ -1,6 +1,7 @@ import os from pyln.testing.fixtures import * # noqa: F401,F403 import urllib +from ephemeral_port_reserve import reserve plugin_path = os.path.join(os.path.dirname(__file__), "prometheus.py") @@ -25,3 +26,15 @@ def test_prometheus_scrape(node_factory): +def test_prometheus_channels(node_factory): + port = reserve() + l1, l2, l3 = node_factory.line_graph( + 3, + opts=[ + {}, + {'plugin': plugin_path, 'prometheus-listen': f'127.0.0.1:{port}'}, + {} + ] + ) + scrape = urllib.request.urlopen(f'http://localhost:{port}') + print(scrape) From cf96eb63c1687644042ea85acfd3785527fd98d4 Mon Sep 17 00:00:00 2001 From: ShahanaFarooqui Date: Wed, 13 Sep 2023 11:42:11 -0700 Subject: [PATCH 05/23] Removing commando from archived plugins list --- README.md | 11 ----------- archive/commando/README.md | 13 +++++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 835ebaea5..4a45a258c 100644 --- a/README.md +++ b/README.md @@ -179,16 +179,6 @@ Python plugins developers must ensure their plugin to work with all Python versi - [C# Plugin Guideline and example project][csharp-example] by @joemphilips - [Kotlin plugin guideline and example][kotlin-example] by @vincenzopalazzo -## Archived plugins - -The following is a list of archived plugins that no longer maintained. -If you like a plugin from that list, feel free to update and fix it, so we can -un-archive it. - -| Name | Short description | -| ------------------------------------ | ------------------------------------------------------------------------------------------- | -| [commando][commando] | Authorize peers to run commands on your node, and running commands on them. | - [esplora]: https://github.com/Blockstream/esplora [pers-chans]: https://github.com/lightningd/plugins/tree/master/persistent-channels [probe]: https://github.com/lightningd/plugins/tree/master/probe @@ -235,7 +225,6 @@ un-archive it. [java-api]: https://github.com/clightning4j/JRPClightning [btcli4j]: https://github.com/clightning4j/btcli4j [backup]: https://github.com/lightningd/plugins/tree/master/backup -[commando]: https://github.com/lightningd/plugins/tree/master/archive/commando [reporter]: https://github.com/LNOpenMetrics/go-lnmetrics.reporter [csharp-example]: https://github.com/joemphilips/DotNetLightning/tree/master/examples/HelloWorldPlugin [kotlin-example]: https://vincenzopalazzo.medium.com/a-day-in-a-c-lightning-plugin-with-koltin-c8bbd4fa0406 diff --git a/archive/commando/README.md b/archive/commando/README.md index 43739c6c7..c4a42b251 100644 --- a/archive/commando/README.md +++ b/archive/commando/README.md @@ -1,5 +1,18 @@ # Commando plugin +Commando has been **included in Core Lightning as first class C plugin**. + +It has been actively developed since and has more cool new features added +than listed below. + +Checkout latest updates on commando at: +https://docs.corelightning.org/docs/commando & +https://docs.corelightning.org/reference/lightning-commando + +------------------------------------------------------------------------------------------------------ + +# Archived Commando python plugin + This plugin allows other nodes to send your node commands, and allows you to send them to other nodes. The nodes must be authorized, and must be directly connected. From 78e2d06c11f04595b5cd01f76473e977bf7b12d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1lli=20Zolt=C3=A1n?= Date: Mon, 5 Feb 2024 10:22:54 +0100 Subject: [PATCH 06/23] rebalance: average forward fee report is optional - listforwards call takes half a minute on my machine and consumes lots of memory, as I have hundreds of thousands of forwards right now - it's an option to turn this part of the report off, although by default it's turned on for backward compatibility (others may use this already) --- rebalance/rebalance.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rebalance/rebalance.py b/rebalance/rebalance.py index 487c8ccde..254939e89 100755 --- a/rebalance/rebalance.py +++ b/rebalance/rebalance.py @@ -910,7 +910,7 @@ def get_avg_forward_fees(intervals): @plugin.method("rebalancereport") -def rebalancereport(plugin: Plugin): +def rebalancereport(plugin: Plugin, include_avg_fees: bool = True): """Show information about rebalance """ res = {} @@ -961,10 +961,11 @@ def rebalancereport(plugin: Plugin): else: res["average_rebalance_fee_ppm"] = 0 - avg_forward_fees = get_avg_forward_fees([1, 7, 30]) - res['average_forward_fee_ppm_1d'] = avg_forward_fees[0] - res['average_forward_fee_ppm_7d'] = avg_forward_fees[1] - res['average_forward_fee_ppm_30d'] = avg_forward_fees[2] + if include_avg_fees: + avg_forward_fees = get_avg_forward_fees([1, 7, 30]) + res['average_forward_fee_ppm_1d'] = avg_forward_fees[0] + res['average_forward_fee_ppm_7d'] = avg_forward_fees[1] + res['average_forward_fee_ppm_30d'] = avg_forward_fees[2] return res From 03ebec0dd71421497693c545efd9c592ba0922fc Mon Sep 17 00:00:00 2001 From: Chris Guida Date: Fri, 26 Jan 2024 12:43:19 -0600 Subject: [PATCH 07/23] Update Python versions to >=3.8,<=3.12: update bitcoind version to 22.0 --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e9c06f22c..a873b7228 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] developer: [0,1] experimental: [1] deprecated: [0] @@ -37,9 +37,9 @@ jobs: - name: Download runtime dependencies run: | - export BITCOIND_VERSION="0.20.1" - wget https://storage.googleapis.com/c-lightning-tests/bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.bz2 - tar -xjf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.bz2 + export BITCOIND_VERSION="22.0" + wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIND_VERSION}/bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz + tar -xzf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz sudo mv bitcoin-${BITCOIND_VERSION}/bin/* /usr/local/bin rm -rf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz bitcoin-${BITCOIND_VERSION} From 5305dbea0c46c375e4d14fe0fff4ddc2d1d07a21 Mon Sep 17 00:00:00 2001 From: Chris Guida Date: Fri, 26 Jan 2024 14:38:16 -0600 Subject: [PATCH 08/23] Remove all references to DEVELOPER env var --- .github/workflows/main.yml | 5 +---- drain/test_drain.py | 6 ------ feeadjuster/test_feeadjuster.py | 6 +----- jitrebalance/test_jitrebalance.py | 5 +---- noise/test_chat.py | 3 +-- probe/test_probe.py | 3 --- summary/test_summary.py | 3 +-- 7 files changed, 5 insertions(+), 26 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a873b7228..880a471b7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,14 +12,13 @@ on: jobs: build-and-test: - name: Test PY=${{ matrix.python-version }}, DEV=${{ matrix.developer }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} + name: Test PY=${{ matrix.python-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} runs-on: ubuntu-latest timeout-minutes: 60 strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] - developer: [0,1] experimental: [1] deprecated: [0] @@ -46,7 +45,6 @@ jobs: - name: Compile & install c-lightning@master run: | export EXPERIMENTAL_FEATURES=${{ matrix.experimental }} - export DEVELOPER=${{ matrix.developer }} export COMPAT=${{ matrix.deprecated }} export VALGRIND=0 sudo apt-get install -y \ @@ -89,7 +87,6 @@ jobs: - name: Test with pytest run: | export EXPERIMENTAL_FEATURES=${{ matrix.experimental }} - export DEVELOPER=${{ matrix.developer }} export COMPAT=${{ matrix.deprecated }} export SLOW_MACHINE=1 export TEST_DEBUG=1 diff --git a/drain/test_drain.py b/drain/test_drain.py index 236610072..e4731267b 100644 --- a/drain/test_drain.py +++ b/drain/test_drain.py @@ -1,5 +1,4 @@ from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import DEVELOPER from pyln.client import RpcError from .utils import get_ours, get_theirs, wait_ours, wait_for_all_htlcs import os @@ -24,7 +23,6 @@ def test_plugin_starts(node_factory): l1.start() -@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_drain_and_refill(node_factory, bitcoind): # Scenario: first drain then refill # @@ -84,7 +82,6 @@ def test_drain_and_refill(node_factory, bitcoind): assert(get_theirs(l1, scid12) < theirs_before * 0.05) -@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_fill_and_drain(node_factory, bitcoind): # Scenario: first fill of an empty channel and drain afterwards. # @@ -133,7 +130,6 @@ def test_fill_and_drain(node_factory, bitcoind): assert(get_theirs(l1, scid12) < theirs_before * 0.05) # account some reserves -@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_setbalance(node_factory, bitcoind): # SETUP: a basic circular setup to run setbalance tests # @@ -194,7 +190,6 @@ def balance(node, node_a, scid_a, node_b, scid_b, node_c): wait_for_all_htlcs([node, node_a, node_b]) -@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_drain_chunks(node_factory, bitcoind): # SETUP: a small mesh that enables testing chunks # @@ -277,7 +272,6 @@ def test_drain_chunks(node_factory, bitcoind): assert(get_theirs(l1, scid41) > amount * 0.9) -@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_fill_chunks(node_factory, bitcoind): # SETUP: a small mesh that enables testing chunks # diff --git a/feeadjuster/test_feeadjuster.py b/feeadjuster/test_feeadjuster.py index a2b834618..9efa77c21 100644 --- a/feeadjuster/test_feeadjuster.py +++ b/feeadjuster/test_feeadjuster.py @@ -4,7 +4,7 @@ import unittest from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import DEVELOPER, wait_for +from pyln.testing.utils import wait_for plugin_path = os.path.join(os.path.dirname(__file__), "feeadjuster.py") @@ -70,7 +70,6 @@ def sync_gossip(nodes, scids): wait_for(lambda: node.rpc.listchannels(scid) == n.rpc.listchannels(scid)) -@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_adjusts(node_factory): """ A rather simple network: @@ -140,7 +139,6 @@ def test_feeadjuster_adjusts(node_factory): f'Adjusted fees of {scid_B} with a ratio of 0.2']) -@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_imbalance(node_factory): """ A rather simple network: @@ -217,7 +215,6 @@ def test_feeadjuster_imbalance(node_factory): wait_for_fees(l2, scids, default_fees[0]) -@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_big_enough_liquidity(node_factory): """ A rather simple network: @@ -292,7 +289,6 @@ def test_feeadjuster_big_enough_liquidity(node_factory): wait_for_not_fees(l2, scids, default_fees[0]) -@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_median(node_factory): """ A rather simple network: diff --git a/jitrebalance/test_jitrebalance.py b/jitrebalance/test_jitrebalance.py index f071c996d..0be989e17 100644 --- a/jitrebalance/test_jitrebalance.py +++ b/jitrebalance/test_jitrebalance.py @@ -1,6 +1,6 @@ from pyln.client import RpcError from pyln.testing.fixtures import * # noqa: F401, F403 -from pyln.testing.utils import wait_for, DEVELOPER +from pyln.testing.utils import wait_for import os import time import pytest @@ -13,7 +13,6 @@ reject_plugin = os.path.join(currdir, 'tests/refuse_htlcs.py') -@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_simple_rebalance(node_factory): """Simple rebalance that routes along a cycle to enable the original payment @@ -82,7 +81,6 @@ def no_pending_htlcs(): assert l2.daemon.is_in_log('Succesfully re-filled outgoing capacity') -@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_rebalance_failure(node_factory): """Same setup as the first test : @@ -158,7 +156,6 @@ def no_pending_htlcs(): assert l2.daemon.is_in_log('Timed out while trying to rebalance') -@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_issue_88(node_factory): """Reproduce issue #88: crash due to unconfirmed channel. diff --git a/noise/test_chat.py b/noise/test_chat.py index ecf4b9321..26b8d2174 100644 --- a/noise/test_chat.py +++ b/noise/test_chat.py @@ -3,7 +3,7 @@ from pprint import pprint from pyln.client import RpcError from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import DEVELOPER, wait_for +from pyln.testing.utils import wait_for import hashlib import os import pytest @@ -33,7 +33,6 @@ def test_sendmsg_success(node_factory, executor): @flaky # since we cannot force a payment to take a specific route -@unittest.skipIf(not DEVELOPER, "Fails often") @unittest.skipIf(True, "Just not stable") def test_sendmsg_retry(node_factory, executor): """Fail a sendmsg using a cheap route, and check that it retries. diff --git a/probe/test_probe.py b/probe/test_probe.py index ee54d9150..4a6580df4 100644 --- a/probe/test_probe.py +++ b/probe/test_probe.py @@ -1,7 +1,6 @@ import unittest import os from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import DEVELOPER plugin_path = os.path.join(os.path.dirname(__file__), "probe.py") @@ -18,7 +17,6 @@ def test_probe_starts(node_factory): l1.start() -@unittest.skipIf(not DEVELOPER, "Gossip is slow") def test_probe(node_factory): l1, l2, l3, l4 = node_factory.line_graph( 4, @@ -36,7 +34,6 @@ def test_probe(node_factory): assert(res['failcode'] == 16399) -@unittest.skipIf(not DEVELOPER, "Gossip is slow") def test_route_unreachable(node_factory): l1, l2, l3, l4 = node_factory.line_graph( 4, diff --git a/summary/test_summary.py b/summary/test_summary.py index 364cfed68..e4f8e39b3 100644 --- a/summary/test_summary.py +++ b/summary/test_summary.py @@ -5,7 +5,7 @@ from pyln.client import Plugin from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import DEVELOPER, wait_for +from pyln.testing.utils import wait_for from .summary_avail import trace_availability @@ -264,7 +264,6 @@ def test_summary_opts(directory): assert(o in help_out) -@unittest.skipIf(not DEVELOPER, "We need fast gossip for line_graph") def test_summary_exclude(node_factory): l1, l2 = node_factory.line_graph(2, opts=pluginopt) From 009a0fbad8edc34a6c0e481c34ce8001708853ec Mon Sep 17 00:00:00 2001 From: Chris Guida Date: Fri, 26 Jan 2024 18:11:30 -0600 Subject: [PATCH 09/23] Use latest release tag v23.11 for c-lightning instead of master; update GitHub action versions --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 880a471b7..449bef74d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,14 +23,14 @@ jobs: deprecated: [0] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: Checkout c-lightning@master - uses: actions/checkout@v3 + - name: Checkout c-lightning@v23.11 + uses: actions/checkout@v4 with: repository: 'ElementsProject/lightning' path: 'lightning' - ref: 'master' + ref: 'v23.11' submodules: 'recursive' fetch-depth: 0 # Required for pyln versions to be recognized @@ -80,7 +80,7 @@ jobs: sudo make install - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From 3754a9e0f810cdb71d9552911fa03bdaae004b5d Mon Sep 17 00:00:00 2001 From: Chris Guida Date: Mon, 29 Jan 2024 18:46:44 -0600 Subject: [PATCH 10/23] Demote autopilot, backup, donations, drain, helpme, historian, paytest, probe, prometheus, rebalance, and summary to the archive drain: fix drain msats drain: failing CI because of msats historian: add inotify to historian deps historian: update lockfile --- .github/workflows/main.yml | 1 + {autopilot => archive/autopilot}/README.md | 0 {autopilot => archive/autopilot}/__init__.py | 0 {autopilot => archive/autopilot}/autopilot.py | 0 {autopilot => archive/autopilot}/bech32.py | 0 .../autopilot}/c-lightning-autopilot.py | 0 .../autopilot}/lib_autopilot.py | 0 .../autopilot}/pyproject.toml | 0 .../autopilot}/test_autopilot.py | 0 {backup => archive/backup}/README.md | 0 {backup => archive/backup}/backend.py | 0 {backup => archive/backup}/backends.py | 0 {backup => archive/backup}/backup-cli | 0 {backup => archive/backup}/backup.py | 0 {backup => archive/backup}/filebackend.py | 0 {backup => archive/backup}/poetry.lock | 0 {backup => archive/backup}/protocol.py | 0 {backup => archive/backup}/pyproject.toml | 0 {backup => archive/backup}/remote.md | 0 {backup => archive/backup}/server.py | 0 {backup => archive/backup}/socketbackend.py | 0 {backup => archive/backup}/test_backup.py | 0 .../backup}/tests/pre-4090-backup.dbak | Bin {donations => archive/donations}/LICENSE | 0 {donations => archive/donations}/README.md | 0 {donations => archive/donations}/donations.py | 0 {donations => archive/donations}/poetry.lock | 0 .../donations}/pyproject.toml | 0 .../donations}/templates/donation.html | 0 .../donations}/test_donations.py | 0 {drain => archive/drain}/README.md | 0 {drain => archive/drain}/__init__.py | 0 {drain => archive/drain}/clnutils.py | 0 {drain => archive/drain}/drain.py | 4 +-- {drain => archive/drain}/requirements-dev.txt | 0 {drain => archive/drain}/requirements.txt | 0 {drain => archive/drain}/test_drain.py | 0 {drain => archive/drain}/utils.py | 0 {helpme => archive/helpme}/Makefile | 0 {helpme => archive/helpme}/README.md | 0 {helpme => archive/helpme}/helpme.py | 0 .../helpme}/requirements-dev.txt | 0 {helpme => archive/helpme}/requirements.txt | 0 {helpme => archive/helpme}/test_helpme.py | 0 {historian => archive/historian}/README.org | 0 .../historian}/cli/backup.py | 0 .../historian}/cli/common.py | 0 {historian => archive/historian}/cli/db.py | 0 {historian => archive/historian}/common.py | 0 {historian => archive/historian}/gossipd.py | 0 .../historian}/historian-cli | 0 {historian => archive/historian}/historian.py | 0 {historian => archive/historian}/poetry.lock | 32 ++++++++++++++++-- .../historian}/pyproject.toml | 1 + .../historian}/test_historian.py | 0 {paytest => archive/paytest}/README.org | 0 {paytest => archive/paytest}/paytest.py | 0 {paytest => archive/paytest}/poetry.lock | 0 {paytest => archive/paytest}/requirements.txt | 0 {paytest => archive/paytest}/test_paytest.py | 0 {probe => archive/probe}/README.md | 0 {probe => archive/probe}/probe.py | 0 {probe => archive/probe}/requirements.txt | 0 {probe => archive/probe}/test_probe.py | 0 {prometheus => archive/prometheus}/README.md | 0 .../prometheus}/prometheus.py | 0 .../prometheus}/requirements.txt | 0 .../prometheus}/test_prometheus.py | 0 {rebalance => archive/rebalance}/README.md | 0 {rebalance => archive/rebalance}/clnutils.py | 0 {rebalance => archive/rebalance}/rebalance.py | 0 .../rebalance}/requirements.txt | 0 .../rebalance}/test_rebalance.py | 0 {summary => archive/summary}/README.md | 0 {summary => archive/summary}/__init__.py | 0 {summary => archive/summary}/requirements.txt | 0 {summary => archive/summary}/summary.py | 0 {summary => archive/summary}/summary_avail.py | 0 {summary => archive/summary}/test_summary.py | 0 79 files changed, 34 insertions(+), 4 deletions(-) rename {autopilot => archive/autopilot}/README.md (100%) rename {autopilot => archive/autopilot}/__init__.py (100%) rename {autopilot => archive/autopilot}/autopilot.py (100%) rename {autopilot => archive/autopilot}/bech32.py (100%) rename {autopilot => archive/autopilot}/c-lightning-autopilot.py (100%) rename {autopilot => archive/autopilot}/lib_autopilot.py (100%) rename {autopilot => archive/autopilot}/pyproject.toml (100%) rename {autopilot => archive/autopilot}/test_autopilot.py (100%) rename {backup => archive/backup}/README.md (100%) rename {backup => archive/backup}/backend.py (100%) rename {backup => archive/backup}/backends.py (100%) rename {backup => archive/backup}/backup-cli (100%) rename {backup => archive/backup}/backup.py (100%) rename {backup => archive/backup}/filebackend.py (100%) rename {backup => archive/backup}/poetry.lock (100%) rename {backup => archive/backup}/protocol.py (100%) rename {backup => archive/backup}/pyproject.toml (100%) rename {backup => archive/backup}/remote.md (100%) rename {backup => archive/backup}/server.py (100%) rename {backup => archive/backup}/socketbackend.py (100%) rename {backup => archive/backup}/test_backup.py (100%) rename {backup => archive/backup}/tests/pre-4090-backup.dbak (100%) rename {donations => archive/donations}/LICENSE (100%) rename {donations => archive/donations}/README.md (100%) rename {donations => archive/donations}/donations.py (100%) rename {donations => archive/donations}/poetry.lock (100%) rename {donations => archive/donations}/pyproject.toml (100%) rename {donations => archive/donations}/templates/donation.html (100%) rename {donations => archive/donations}/test_donations.py (100%) rename {drain => archive/drain}/README.md (100%) rename {drain => archive/drain}/__init__.py (100%) rename {drain => archive/drain}/clnutils.py (100%) rename {drain => archive/drain}/drain.py (99%) rename {drain => archive/drain}/requirements-dev.txt (100%) rename {drain => archive/drain}/requirements.txt (100%) rename {drain => archive/drain}/test_drain.py (100%) rename {drain => archive/drain}/utils.py (100%) rename {helpme => archive/helpme}/Makefile (100%) rename {helpme => archive/helpme}/README.md (100%) rename {helpme => archive/helpme}/helpme.py (100%) rename {helpme => archive/helpme}/requirements-dev.txt (100%) rename {helpme => archive/helpme}/requirements.txt (100%) rename {helpme => archive/helpme}/test_helpme.py (100%) rename {historian => archive/historian}/README.org (100%) rename {historian => archive/historian}/cli/backup.py (100%) rename {historian => archive/historian}/cli/common.py (100%) rename {historian => archive/historian}/cli/db.py (100%) rename {historian => archive/historian}/common.py (100%) rename {historian => archive/historian}/gossipd.py (100%) rename {historian => archive/historian}/historian-cli (100%) rename {historian => archive/historian}/historian.py (100%) rename {historian => archive/historian}/poetry.lock (98%) rename {historian => archive/historian}/pyproject.toml (96%) rename {historian => archive/historian}/test_historian.py (100%) rename {paytest => archive/paytest}/README.org (100%) rename {paytest => archive/paytest}/paytest.py (100%) rename {paytest => archive/paytest}/poetry.lock (100%) rename {paytest => archive/paytest}/requirements.txt (100%) rename {paytest => archive/paytest}/test_paytest.py (100%) rename {probe => archive/probe}/README.md (100%) rename {probe => archive/probe}/probe.py (100%) rename {probe => archive/probe}/requirements.txt (100%) rename {probe => archive/probe}/test_probe.py (100%) rename {prometheus => archive/prometheus}/README.md (100%) rename {prometheus => archive/prometheus}/prometheus.py (100%) rename {prometheus => archive/prometheus}/requirements.txt (100%) rename {prometheus => archive/prometheus}/test_prometheus.py (100%) rename {rebalance => archive/rebalance}/README.md (100%) rename {rebalance => archive/rebalance}/clnutils.py (100%) rename {rebalance => archive/rebalance}/rebalance.py (100%) rename {rebalance => archive/rebalance}/requirements.txt (100%) rename {rebalance => archive/rebalance}/test_rebalance.py (100%) rename {summary => archive/summary}/README.md (100%) rename {summary => archive/summary}/__init__.py (100%) rename {summary => archive/summary}/requirements.txt (100%) rename {summary => archive/summary}/summary.py (100%) rename {summary => archive/summary}/summary_avail.py (100%) rename {summary => archive/summary}/test_summary.py (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 449bef74d..719a02edc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -92,6 +92,7 @@ jobs: export TEST_DEBUG=1 export TRAVIS=1 export CLN_PATH=${{ github.workspace }}/lightning + pip3 install --upgrade pip pip3 install --user -U virtualenv pip > /dev/null python3 .ci/test.py diff --git a/autopilot/README.md b/archive/autopilot/README.md similarity index 100% rename from autopilot/README.md rename to archive/autopilot/README.md diff --git a/autopilot/__init__.py b/archive/autopilot/__init__.py similarity index 100% rename from autopilot/__init__.py rename to archive/autopilot/__init__.py diff --git a/autopilot/autopilot.py b/archive/autopilot/autopilot.py similarity index 100% rename from autopilot/autopilot.py rename to archive/autopilot/autopilot.py diff --git a/autopilot/bech32.py b/archive/autopilot/bech32.py similarity index 100% rename from autopilot/bech32.py rename to archive/autopilot/bech32.py diff --git a/autopilot/c-lightning-autopilot.py b/archive/autopilot/c-lightning-autopilot.py similarity index 100% rename from autopilot/c-lightning-autopilot.py rename to archive/autopilot/c-lightning-autopilot.py diff --git a/autopilot/lib_autopilot.py b/archive/autopilot/lib_autopilot.py similarity index 100% rename from autopilot/lib_autopilot.py rename to archive/autopilot/lib_autopilot.py diff --git a/autopilot/pyproject.toml b/archive/autopilot/pyproject.toml similarity index 100% rename from autopilot/pyproject.toml rename to archive/autopilot/pyproject.toml diff --git a/autopilot/test_autopilot.py b/archive/autopilot/test_autopilot.py similarity index 100% rename from autopilot/test_autopilot.py rename to archive/autopilot/test_autopilot.py diff --git a/backup/README.md b/archive/backup/README.md similarity index 100% rename from backup/README.md rename to archive/backup/README.md diff --git a/backup/backend.py b/archive/backup/backend.py similarity index 100% rename from backup/backend.py rename to archive/backup/backend.py diff --git a/backup/backends.py b/archive/backup/backends.py similarity index 100% rename from backup/backends.py rename to archive/backup/backends.py diff --git a/backup/backup-cli b/archive/backup/backup-cli similarity index 100% rename from backup/backup-cli rename to archive/backup/backup-cli diff --git a/backup/backup.py b/archive/backup/backup.py similarity index 100% rename from backup/backup.py rename to archive/backup/backup.py diff --git a/backup/filebackend.py b/archive/backup/filebackend.py similarity index 100% rename from backup/filebackend.py rename to archive/backup/filebackend.py diff --git a/backup/poetry.lock b/archive/backup/poetry.lock similarity index 100% rename from backup/poetry.lock rename to archive/backup/poetry.lock diff --git a/backup/protocol.py b/archive/backup/protocol.py similarity index 100% rename from backup/protocol.py rename to archive/backup/protocol.py diff --git a/backup/pyproject.toml b/archive/backup/pyproject.toml similarity index 100% rename from backup/pyproject.toml rename to archive/backup/pyproject.toml diff --git a/backup/remote.md b/archive/backup/remote.md similarity index 100% rename from backup/remote.md rename to archive/backup/remote.md diff --git a/backup/server.py b/archive/backup/server.py similarity index 100% rename from backup/server.py rename to archive/backup/server.py diff --git a/backup/socketbackend.py b/archive/backup/socketbackend.py similarity index 100% rename from backup/socketbackend.py rename to archive/backup/socketbackend.py diff --git a/backup/test_backup.py b/archive/backup/test_backup.py similarity index 100% rename from backup/test_backup.py rename to archive/backup/test_backup.py diff --git a/backup/tests/pre-4090-backup.dbak b/archive/backup/tests/pre-4090-backup.dbak similarity index 100% rename from backup/tests/pre-4090-backup.dbak rename to archive/backup/tests/pre-4090-backup.dbak diff --git a/donations/LICENSE b/archive/donations/LICENSE similarity index 100% rename from donations/LICENSE rename to archive/donations/LICENSE diff --git a/donations/README.md b/archive/donations/README.md similarity index 100% rename from donations/README.md rename to archive/donations/README.md diff --git a/donations/donations.py b/archive/donations/donations.py similarity index 100% rename from donations/donations.py rename to archive/donations/donations.py diff --git a/donations/poetry.lock b/archive/donations/poetry.lock similarity index 100% rename from donations/poetry.lock rename to archive/donations/poetry.lock diff --git a/donations/pyproject.toml b/archive/donations/pyproject.toml similarity index 100% rename from donations/pyproject.toml rename to archive/donations/pyproject.toml diff --git a/donations/templates/donation.html b/archive/donations/templates/donation.html similarity index 100% rename from donations/templates/donation.html rename to archive/donations/templates/donation.html diff --git a/donations/test_donations.py b/archive/donations/test_donations.py similarity index 100% rename from donations/test_donations.py rename to archive/donations/test_donations.py diff --git a/drain/README.md b/archive/drain/README.md similarity index 100% rename from drain/README.md rename to archive/drain/README.md diff --git a/drain/__init__.py b/archive/drain/__init__.py similarity index 100% rename from drain/__init__.py rename to archive/drain/__init__.py diff --git a/drain/clnutils.py b/archive/drain/clnutils.py similarity index 100% rename from drain/clnutils.py rename to archive/drain/clnutils.py diff --git a/drain/drain.py b/archive/drain/drain.py similarity index 99% rename from drain/drain.py rename to archive/drain/drain.py index 4f6ae6ed2..f92eb4c0c 100755 --- a/drain/drain.py +++ b/archive/drain/drain.py @@ -351,7 +351,7 @@ def try_for_htlc_fee(payload, peer_id, amount, chunk, spendable_before): def read_params(command: str, scid: str, percentage: float, chunks: int, - retry_for: int, maxfeepercent: float, exemptfee: Millisatoshi): + retry_for: int, maxfeepercent: float, exemptfee: int): # check parameters if command != 'drain' and command != 'fill' and command != 'setbalance': @@ -466,7 +466,7 @@ def execute(payload: dict): @plugin.method("drain") def drain(plugin, scid: str, percentage: float = 100, chunks: int = 0, retry_for: int = 60, - maxfeepercent: float = 0.5, exemptfee: Millisatoshi = Millisatoshi(5000)): + maxfeepercent: float = 0.5, exemptfee: int = 5000): """Draining channel liquidity with circular payments. Percentage defaults to 100, resulting in an empty channel. diff --git a/drain/requirements-dev.txt b/archive/drain/requirements-dev.txt similarity index 100% rename from drain/requirements-dev.txt rename to archive/drain/requirements-dev.txt diff --git a/drain/requirements.txt b/archive/drain/requirements.txt similarity index 100% rename from drain/requirements.txt rename to archive/drain/requirements.txt diff --git a/drain/test_drain.py b/archive/drain/test_drain.py similarity index 100% rename from drain/test_drain.py rename to archive/drain/test_drain.py diff --git a/drain/utils.py b/archive/drain/utils.py similarity index 100% rename from drain/utils.py rename to archive/drain/utils.py diff --git a/helpme/Makefile b/archive/helpme/Makefile similarity index 100% rename from helpme/Makefile rename to archive/helpme/Makefile diff --git a/helpme/README.md b/archive/helpme/README.md similarity index 100% rename from helpme/README.md rename to archive/helpme/README.md diff --git a/helpme/helpme.py b/archive/helpme/helpme.py similarity index 100% rename from helpme/helpme.py rename to archive/helpme/helpme.py diff --git a/helpme/requirements-dev.txt b/archive/helpme/requirements-dev.txt similarity index 100% rename from helpme/requirements-dev.txt rename to archive/helpme/requirements-dev.txt diff --git a/helpme/requirements.txt b/archive/helpme/requirements.txt similarity index 100% rename from helpme/requirements.txt rename to archive/helpme/requirements.txt diff --git a/helpme/test_helpme.py b/archive/helpme/test_helpme.py similarity index 100% rename from helpme/test_helpme.py rename to archive/helpme/test_helpme.py diff --git a/historian/README.org b/archive/historian/README.org similarity index 100% rename from historian/README.org rename to archive/historian/README.org diff --git a/historian/cli/backup.py b/archive/historian/cli/backup.py similarity index 100% rename from historian/cli/backup.py rename to archive/historian/cli/backup.py diff --git a/historian/cli/common.py b/archive/historian/cli/common.py similarity index 100% rename from historian/cli/common.py rename to archive/historian/cli/common.py diff --git a/historian/cli/db.py b/archive/historian/cli/db.py similarity index 100% rename from historian/cli/db.py rename to archive/historian/cli/db.py diff --git a/historian/common.py b/archive/historian/common.py similarity index 100% rename from historian/common.py rename to archive/historian/common.py diff --git a/historian/gossipd.py b/archive/historian/gossipd.py similarity index 100% rename from historian/gossipd.py rename to archive/historian/gossipd.py diff --git a/historian/historian-cli b/archive/historian/historian-cli similarity index 100% rename from historian/historian-cli rename to archive/historian/historian-cli diff --git a/historian/historian.py b/archive/historian/historian.py similarity index 100% rename from historian/historian.py rename to archive/historian/historian.py diff --git a/historian/poetry.lock b/archive/historian/poetry.lock similarity index 98% rename from historian/poetry.lock rename to archive/historian/poetry.lock index eb6015d1f..1cdc9df08 100644 --- a/historian/poetry.lock +++ b/archive/historian/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.1 and should not be changed by hand. [[package]] name = "asn1crypto" @@ -390,6 +390,21 @@ files = [ {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] +[[package]] +name = "inotify" +version = "0.2.10" +description = "An adapter to Linux kernel support for inotify directory-watching." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "inotify-0.2.10-py2-none-any.whl", hash = "sha256:397f8785450e41f606fe4eb6f5e8e0a1c70b354b56495225fc6c6fe7e07db0c9"}, + {file = "inotify-0.2.10.tar.gz", hash = "sha256:974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"}, +] + +[package.dependencies] +nose = "*" + [[package]] name = "itsdangerous" version = "2.1.2" @@ -525,6 +540,19 @@ files = [ {file = "more_itertools-9.0.0-py3-none-any.whl", hash = "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41"}, ] +[[package]] +name = "nose" +version = "1.3.7" +description = "nose extends unittest to make testing easier" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "nose-1.3.7-py2-none-any.whl", hash = "sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a"}, + {file = "nose-1.3.7-py3-none-any.whl", hash = "sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac"}, + {file = "nose-1.3.7.tar.gz", hash = "sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"}, +] + [[package]] name = "packaging" version = "22.0" @@ -971,4 +999,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "5dfdd4459dfffcf602f5f4b1bb6aedeb5da484cb758671a0ca5e4ee3ea2a2e11" +content-hash = "bd763b3fec77a5c059bcc1f6207339efdb2df96cc9539e07456bff00abb70e51" diff --git a/historian/pyproject.toml b/archive/historian/pyproject.toml similarity index 96% rename from historian/pyproject.toml rename to archive/historian/pyproject.toml index e768b77e5..69cde1eb1 100644 --- a/historian/pyproject.toml +++ b/archive/historian/pyproject.toml @@ -8,6 +8,7 @@ license = "MIT" [tool.poetry.dependencies] python = "^3.7" pyln-client = "0.11.1" +inotify = "^0.2.10" [tool.poetry.dev-dependencies] pyln-testing = "0.11.1" diff --git a/historian/test_historian.py b/archive/historian/test_historian.py similarity index 100% rename from historian/test_historian.py rename to archive/historian/test_historian.py diff --git a/paytest/README.org b/archive/paytest/README.org similarity index 100% rename from paytest/README.org rename to archive/paytest/README.org diff --git a/paytest/paytest.py b/archive/paytest/paytest.py similarity index 100% rename from paytest/paytest.py rename to archive/paytest/paytest.py diff --git a/paytest/poetry.lock b/archive/paytest/poetry.lock similarity index 100% rename from paytest/poetry.lock rename to archive/paytest/poetry.lock diff --git a/paytest/requirements.txt b/archive/paytest/requirements.txt similarity index 100% rename from paytest/requirements.txt rename to archive/paytest/requirements.txt diff --git a/paytest/test_paytest.py b/archive/paytest/test_paytest.py similarity index 100% rename from paytest/test_paytest.py rename to archive/paytest/test_paytest.py diff --git a/probe/README.md b/archive/probe/README.md similarity index 100% rename from probe/README.md rename to archive/probe/README.md diff --git a/probe/probe.py b/archive/probe/probe.py similarity index 100% rename from probe/probe.py rename to archive/probe/probe.py diff --git a/probe/requirements.txt b/archive/probe/requirements.txt similarity index 100% rename from probe/requirements.txt rename to archive/probe/requirements.txt diff --git a/probe/test_probe.py b/archive/probe/test_probe.py similarity index 100% rename from probe/test_probe.py rename to archive/probe/test_probe.py diff --git a/prometheus/README.md b/archive/prometheus/README.md similarity index 100% rename from prometheus/README.md rename to archive/prometheus/README.md diff --git a/prometheus/prometheus.py b/archive/prometheus/prometheus.py similarity index 100% rename from prometheus/prometheus.py rename to archive/prometheus/prometheus.py diff --git a/prometheus/requirements.txt b/archive/prometheus/requirements.txt similarity index 100% rename from prometheus/requirements.txt rename to archive/prometheus/requirements.txt diff --git a/prometheus/test_prometheus.py b/archive/prometheus/test_prometheus.py similarity index 100% rename from prometheus/test_prometheus.py rename to archive/prometheus/test_prometheus.py diff --git a/rebalance/README.md b/archive/rebalance/README.md similarity index 100% rename from rebalance/README.md rename to archive/rebalance/README.md diff --git a/rebalance/clnutils.py b/archive/rebalance/clnutils.py similarity index 100% rename from rebalance/clnutils.py rename to archive/rebalance/clnutils.py diff --git a/rebalance/rebalance.py b/archive/rebalance/rebalance.py similarity index 100% rename from rebalance/rebalance.py rename to archive/rebalance/rebalance.py diff --git a/rebalance/requirements.txt b/archive/rebalance/requirements.txt similarity index 100% rename from rebalance/requirements.txt rename to archive/rebalance/requirements.txt diff --git a/rebalance/test_rebalance.py b/archive/rebalance/test_rebalance.py similarity index 100% rename from rebalance/test_rebalance.py rename to archive/rebalance/test_rebalance.py diff --git a/summary/README.md b/archive/summary/README.md similarity index 100% rename from summary/README.md rename to archive/summary/README.md diff --git a/summary/__init__.py b/archive/summary/__init__.py similarity index 100% rename from summary/__init__.py rename to archive/summary/__init__.py diff --git a/summary/requirements.txt b/archive/summary/requirements.txt similarity index 100% rename from summary/requirements.txt rename to archive/summary/requirements.txt diff --git a/summary/summary.py b/archive/summary/summary.py similarity index 100% rename from summary/summary.py rename to archive/summary/summary.py diff --git a/summary/summary_avail.py b/archive/summary/summary_avail.py similarity index 100% rename from summary/summary_avail.py rename to archive/summary/summary_avail.py diff --git a/summary/test_summary.py b/archive/summary/test_summary.py similarity index 100% rename from summary/test_summary.py rename to archive/summary/test_summary.py From 37cd99c7cf67bb80e95ff0945ec41c127bc99a39 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 30 Jan 2024 12:42:45 -0600 Subject: [PATCH 11/23] Require Python >= 3.8 for poetry dependencies --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 37c38af47..5e1220f52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["Christian Decker "] license = "MIT" [tool.poetry.dependencies] -python = "^3.7" +python = "^3.8" virtualenv = "^20.13.1" [tool.poetry.dev-dependencies] From 4ec7a9f5fbd66e17a9e0e67ae11d5ce57d00746a Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 30 Jan 2024 14:01:34 -0600 Subject: [PATCH 12/23] Update CLN version in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9b3b4136d..fb5852456 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG CLN_VERSION="0.11.1" +ARG CLN_VERSION="23.11.2" FROM elementsproject/lightningd:v${CLN_VERSION} From 71bc8860522837c2cfdcd2e26ff3533b822f2d57 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 30 Jan 2024 14:07:42 -0600 Subject: [PATCH 13/23] Update packages in pyproject.toml and poetry.lock --- poetry.lock | 164 ++++++++++++------------------------------------- pyproject.toml | 4 +- 2 files changed, 41 insertions(+), 127 deletions(-) diff --git a/poetry.lock b/poetry.lock index c01595dd6..7376756be 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,154 +1,68 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + [[package]] name = "distlib" -version = "0.3.4" +version = "0.3.8" description = "Distribution utilities" -category = "main" optional = false python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] [[package]] name = "filelock" -version = "3.4.1" +version = "3.13.1" description = "A platform independent file lock." -category = "main" -optional = false -python-versions = ">=3.6" - -[package.extras] -docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] -testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] - -[[package]] -name = "importlib-metadata" -version = "4.8.3" -description = "Read metadata from Python packages" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] - -[[package]] -name = "importlib-resources" -version = "5.4.0" -description = "Read resources from Python packages" -category = "main" optional = false -python-versions = ">=3.6" - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "platformdirs" -version = "2.4.0" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" +version = "4.1.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, + {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, +] [package.extras] -docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "typing-extensions" -version = "4.1.1" -description = "Backported and Experimental Type Hints for Python 3.6+" -category = "main" -optional = false -python-versions = ">=3.6" +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "virtualenv" -version = "20.13.1" +version = "20.25.0" description = "Virtual Python Environment builder" -category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.25.0-py3-none-any.whl", hash = "sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3"}, + {file = "virtualenv-20.25.0.tar.gz", hash = "sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b"}, +] [package.dependencies] -distlib = ">=0.3.1,<1" -filelock = ">=3.2,<4" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} -platformdirs = ">=2,<3" -six = ">=1.9.0,<2" - -[package.extras] -docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] -testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] - -[[package]] -name = "zipp" -version = "3.6.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.6" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [metadata] -lock-version = "1.1" -python-versions = "^3.6" -content-hash = "d3b247c4d82b6954ba7b1b436255f57c9c1f33233b68c06ae8e71175277454c4" - -[metadata.files] -distlib = [ - {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, - {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, -] -filelock = [ - {file = "filelock-3.4.1-py3-none-any.whl", hash = "sha256:a4bc51381e01502a30e9f06dd4fa19a1712eab852b6fb0f84fd7cce0793d8ca3"}, - {file = "filelock-3.4.1.tar.gz", hash = "sha256:0f12f552b42b5bf60dba233710bf71337d35494fc8bdd4fd6d9f6d082ad45e06"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, - {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, -] -importlib-resources = [ - {file = "importlib_resources-5.4.0-py3-none-any.whl", hash = "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45"}, - {file = "importlib_resources-5.4.0.tar.gz", hash = "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"}, -] -platformdirs = [ - {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"}, - {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -typing-extensions = [ - {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, - {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, -] -virtualenv = [ - {file = "virtualenv-20.13.1-py2.py3-none-any.whl", hash = "sha256:45e1d053cad4cd453181ae877c4ffc053546ae99e7dd049b9ff1d9be7491abf7"}, - {file = "virtualenv-20.13.1.tar.gz", hash = "sha256:e0621bcbf4160e4e1030f05065c8834b4e93f4fcc223255db2a823440aca9c14"}, -] -zipp = [ - {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, - {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, -] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "d3df28639c654748ad599a9cda6395a5b7c4d9d71ed7b5b2806e0fddf9f3a377" diff --git a/pyproject.toml b/pyproject.toml index 5e1220f52..52268e944 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,10 +7,10 @@ license = "MIT" [tool.poetry.dependencies] python = "^3.8" -virtualenv = "^20.13.1" +virtualenv = "^20.25.0" [tool.poetry.dev-dependencies] [build-system] -requires = ["poetry-core>=1.0.0"] +requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" From e5dbaea2559d44decf1a60611a3e8dc14648bbd7 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 30 Jan 2024 14:26:51 -0600 Subject: [PATCH 14/23] Update Python versions in README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4a45a258c..f36a444d2 100644 --- a/README.md +++ b/README.md @@ -154,9 +154,9 @@ your environment. #### Minimum supported Python version -The minimum supported version of Python for this repository is currently `3.6.x` (23 Dec 2016). -Python plugins users must ensure to have a version `>= 3.6`. -Python plugins developers must ensure their plugin to work with all Python versions `>= 3.6`. +The minimum supported version of Python for this repository is currently `3.8.x` (14 Oct 2019). +Python plugins users must ensure to have a version `>= 3.8`. +Python plugins developers must ensure their plugin to work with all Python versions `>= 3.8`. ## More Plugins from the Community @@ -205,7 +205,7 @@ Python plugins developers must ensure their plugin to work with all Python versi [js-api]: https://github.com/lightningd/clightningjs [ts-api]: https://github.com/runcitadel/c-lightning.ts [monitor]: https://github.com/renepickhardt/plugins/tree/master/monitor -[nostrify]: https://github.com/joelklabo/nostrify +[nostrify]: https://github.com/joelklabo/nostrify [reckless]: https://github.com/darosior/reckless [request-invoice]: https://github.com/lightningd/plugins/tree/master/request-invoice [sauron]: https://github.com/lightningd/plugins/tree/master/sauron From 4e2747825400695df65836fd843ac0bc541d004b Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 30 Jan 2024 17:26:22 -0600 Subject: [PATCH 15/23] Add bitcoind-version 26.0 to matrix Remove bitcoind-version 22.0 from matrix --- .github/workflows/main.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 719a02edc..00e503f5f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,13 +12,14 @@ on: jobs: build-and-test: - name: Test PY=${{ matrix.python-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} + name: Test PY=${{ matrix.python-version }}, BCD=${{ matrix.bitcoind-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} runs-on: ubuntu-latest timeout-minutes: 60 strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + bitcoind-version: ["26.0"] experimental: [1] deprecated: [0] @@ -36,7 +37,7 @@ jobs: - name: Download runtime dependencies run: | - export BITCOIND_VERSION="22.0" + export BITCOIND_VERSION=${{ matrix.bitcoind-version }} wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIND_VERSION}/bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz tar -xzf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz sudo mv bitcoin-${BITCOIND_VERSION}/bin/* /usr/local/bin From 7cbfcaf02570ba101117d9e8f251269276573a5f Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Thu, 1 Feb 2024 15:08:53 -0600 Subject: [PATCH 16/23] Use ubuntu-22.04 image for CI completion job --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 00e503f5f..8bcd884ba 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -102,7 +102,7 @@ jobs: # signals successful completion. Used for the PR status to pass # before merging. name: CI completion - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 needs: - build-and-test steps: From e538e3d559f4336a15bb9f59e51bafc0200b83f6 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Thu, 1 Feb 2024 15:40:46 -0600 Subject: [PATCH 17/23] Rename directory 'archive' to 'Unmaintained' --- {archive => Unmaintained}/autopilot/README.md | 0 {archive => Unmaintained}/autopilot/__init__.py | 0 {archive => Unmaintained}/autopilot/autopilot.py | 0 {archive => Unmaintained}/autopilot/bech32.py | 0 .../autopilot/c-lightning-autopilot.py | 0 .../autopilot/lib_autopilot.py | 0 {archive => Unmaintained}/autopilot/pyproject.toml | 0 .../autopilot/test_autopilot.py | 0 {archive => Unmaintained}/backup/README.md | 0 {archive => Unmaintained}/backup/backend.py | 0 {archive => Unmaintained}/backup/backends.py | 0 {archive => Unmaintained}/backup/backup-cli | 0 {archive => Unmaintained}/backup/backup.py | 0 {archive => Unmaintained}/backup/filebackend.py | 0 {archive => Unmaintained}/backup/poetry.lock | 0 {archive => Unmaintained}/backup/protocol.py | 0 {archive => Unmaintained}/backup/pyproject.toml | 0 {archive => Unmaintained}/backup/remote.md | 0 {archive => Unmaintained}/backup/server.py | 0 {archive => Unmaintained}/backup/socketbackend.py | 0 {archive => Unmaintained}/backup/test_backup.py | 0 .../backup/tests/pre-4090-backup.dbak | Bin {archive => Unmaintained}/commando/README.md | 0 {archive => Unmaintained}/commando/commando.py | 0 {archive => Unmaintained}/commando/requirements.txt | 0 {archive => Unmaintained}/commando/test_commando.py | 0 {archive => Unmaintained}/donations/LICENSE | 0 {archive => Unmaintained}/donations/README.md | 0 {archive => Unmaintained}/donations/donations.py | 0 {archive => Unmaintained}/donations/poetry.lock | 0 {archive => Unmaintained}/donations/pyproject.toml | 0 .../donations/templates/donation.html | 0 .../donations/test_donations.py | 0 {archive => Unmaintained}/drain/README.md | 0 {archive => Unmaintained}/drain/__init__.py | 0 {archive => Unmaintained}/drain/clnutils.py | 0 {archive => Unmaintained}/drain/drain.py | 0 .../drain/requirements-dev.txt | 0 {archive => Unmaintained}/drain/requirements.txt | 0 {archive => Unmaintained}/drain/test_drain.py | 0 {archive => Unmaintained}/drain/utils.py | 0 {archive => Unmaintained}/helpme/Makefile | 0 {archive => Unmaintained}/helpme/README.md | 0 {archive => Unmaintained}/helpme/helpme.py | 0 .../helpme/requirements-dev.txt | 0 {archive => Unmaintained}/helpme/requirements.txt | 0 {archive => Unmaintained}/helpme/test_helpme.py | 0 {archive => Unmaintained}/historian/README.org | 0 {archive => Unmaintained}/historian/cli/backup.py | 0 {archive => Unmaintained}/historian/cli/common.py | 0 {archive => Unmaintained}/historian/cli/db.py | 0 {archive => Unmaintained}/historian/common.py | 0 {archive => Unmaintained}/historian/gossipd.py | 0 {archive => Unmaintained}/historian/historian-cli | 0 {archive => Unmaintained}/historian/historian.py | 0 {archive => Unmaintained}/historian/poetry.lock | 0 {archive => Unmaintained}/historian/pyproject.toml | 0 .../historian/test_historian.py | 0 {archive => Unmaintained}/paytest/README.org | 0 {archive => Unmaintained}/paytest/paytest.py | 0 {archive => Unmaintained}/paytest/poetry.lock | 0 {archive => Unmaintained}/paytest/requirements.txt | 0 {archive => Unmaintained}/paytest/test_paytest.py | 0 {archive => Unmaintained}/probe/README.md | 0 {archive => Unmaintained}/probe/probe.py | 0 {archive => Unmaintained}/probe/requirements.txt | 0 {archive => Unmaintained}/probe/test_probe.py | 0 {archive => Unmaintained}/prometheus/README.md | 0 {archive => Unmaintained}/prometheus/prometheus.py | 0 .../prometheus/requirements.txt | 0 .../prometheus/test_prometheus.py | 0 {archive => Unmaintained}/rebalance/README.md | 0 {archive => Unmaintained}/rebalance/clnutils.py | 0 {archive => Unmaintained}/rebalance/rebalance.py | 0 .../rebalance/requirements.txt | 0 .../rebalance/test_rebalance.py | 0 {archive => Unmaintained}/summary/README.md | 0 {archive => Unmaintained}/summary/__init__.py | 0 {archive => Unmaintained}/summary/requirements.txt | 0 {archive => Unmaintained}/summary/summary.py | 0 {archive => Unmaintained}/summary/summary_avail.py | 0 {archive => Unmaintained}/summary/test_summary.py | 0 82 files changed, 0 insertions(+), 0 deletions(-) rename {archive => Unmaintained}/autopilot/README.md (100%) rename {archive => Unmaintained}/autopilot/__init__.py (100%) rename {archive => Unmaintained}/autopilot/autopilot.py (100%) rename {archive => Unmaintained}/autopilot/bech32.py (100%) rename {archive => Unmaintained}/autopilot/c-lightning-autopilot.py (100%) rename {archive => Unmaintained}/autopilot/lib_autopilot.py (100%) rename {archive => Unmaintained}/autopilot/pyproject.toml (100%) rename {archive => Unmaintained}/autopilot/test_autopilot.py (100%) rename {archive => Unmaintained}/backup/README.md (100%) rename {archive => Unmaintained}/backup/backend.py (100%) rename {archive => Unmaintained}/backup/backends.py (100%) rename {archive => Unmaintained}/backup/backup-cli (100%) rename {archive => Unmaintained}/backup/backup.py (100%) rename {archive => Unmaintained}/backup/filebackend.py (100%) rename {archive => Unmaintained}/backup/poetry.lock (100%) rename {archive => Unmaintained}/backup/protocol.py (100%) rename {archive => Unmaintained}/backup/pyproject.toml (100%) rename {archive => Unmaintained}/backup/remote.md (100%) rename {archive => Unmaintained}/backup/server.py (100%) rename {archive => Unmaintained}/backup/socketbackend.py (100%) rename {archive => Unmaintained}/backup/test_backup.py (100%) rename {archive => Unmaintained}/backup/tests/pre-4090-backup.dbak (100%) rename {archive => Unmaintained}/commando/README.md (100%) rename {archive => Unmaintained}/commando/commando.py (100%) rename {archive => Unmaintained}/commando/requirements.txt (100%) rename {archive => Unmaintained}/commando/test_commando.py (100%) rename {archive => Unmaintained}/donations/LICENSE (100%) rename {archive => Unmaintained}/donations/README.md (100%) rename {archive => Unmaintained}/donations/donations.py (100%) rename {archive => Unmaintained}/donations/poetry.lock (100%) rename {archive => Unmaintained}/donations/pyproject.toml (100%) rename {archive => Unmaintained}/donations/templates/donation.html (100%) rename {archive => Unmaintained}/donations/test_donations.py (100%) rename {archive => Unmaintained}/drain/README.md (100%) rename {archive => Unmaintained}/drain/__init__.py (100%) rename {archive => Unmaintained}/drain/clnutils.py (100%) rename {archive => Unmaintained}/drain/drain.py (100%) rename {archive => Unmaintained}/drain/requirements-dev.txt (100%) rename {archive => Unmaintained}/drain/requirements.txt (100%) rename {archive => Unmaintained}/drain/test_drain.py (100%) rename {archive => Unmaintained}/drain/utils.py (100%) rename {archive => Unmaintained}/helpme/Makefile (100%) rename {archive => Unmaintained}/helpme/README.md (100%) rename {archive => Unmaintained}/helpme/helpme.py (100%) rename {archive => Unmaintained}/helpme/requirements-dev.txt (100%) rename {archive => Unmaintained}/helpme/requirements.txt (100%) rename {archive => Unmaintained}/helpme/test_helpme.py (100%) rename {archive => Unmaintained}/historian/README.org (100%) rename {archive => Unmaintained}/historian/cli/backup.py (100%) rename {archive => Unmaintained}/historian/cli/common.py (100%) rename {archive => Unmaintained}/historian/cli/db.py (100%) rename {archive => Unmaintained}/historian/common.py (100%) rename {archive => Unmaintained}/historian/gossipd.py (100%) rename {archive => Unmaintained}/historian/historian-cli (100%) rename {archive => Unmaintained}/historian/historian.py (100%) rename {archive => Unmaintained}/historian/poetry.lock (100%) rename {archive => Unmaintained}/historian/pyproject.toml (100%) rename {archive => Unmaintained}/historian/test_historian.py (100%) rename {archive => Unmaintained}/paytest/README.org (100%) rename {archive => Unmaintained}/paytest/paytest.py (100%) rename {archive => Unmaintained}/paytest/poetry.lock (100%) rename {archive => Unmaintained}/paytest/requirements.txt (100%) rename {archive => Unmaintained}/paytest/test_paytest.py (100%) rename {archive => Unmaintained}/probe/README.md (100%) rename {archive => Unmaintained}/probe/probe.py (100%) rename {archive => Unmaintained}/probe/requirements.txt (100%) rename {archive => Unmaintained}/probe/test_probe.py (100%) rename {archive => Unmaintained}/prometheus/README.md (100%) rename {archive => Unmaintained}/prometheus/prometheus.py (100%) rename {archive => Unmaintained}/prometheus/requirements.txt (100%) rename {archive => Unmaintained}/prometheus/test_prometheus.py (100%) rename {archive => Unmaintained}/rebalance/README.md (100%) rename {archive => Unmaintained}/rebalance/clnutils.py (100%) rename {archive => Unmaintained}/rebalance/rebalance.py (100%) rename {archive => Unmaintained}/rebalance/requirements.txt (100%) rename {archive => Unmaintained}/rebalance/test_rebalance.py (100%) rename {archive => Unmaintained}/summary/README.md (100%) rename {archive => Unmaintained}/summary/__init__.py (100%) rename {archive => Unmaintained}/summary/requirements.txt (100%) rename {archive => Unmaintained}/summary/summary.py (100%) rename {archive => Unmaintained}/summary/summary_avail.py (100%) rename {archive => Unmaintained}/summary/test_summary.py (100%) diff --git a/archive/autopilot/README.md b/Unmaintained/autopilot/README.md similarity index 100% rename from archive/autopilot/README.md rename to Unmaintained/autopilot/README.md diff --git a/archive/autopilot/__init__.py b/Unmaintained/autopilot/__init__.py similarity index 100% rename from archive/autopilot/__init__.py rename to Unmaintained/autopilot/__init__.py diff --git a/archive/autopilot/autopilot.py b/Unmaintained/autopilot/autopilot.py similarity index 100% rename from archive/autopilot/autopilot.py rename to Unmaintained/autopilot/autopilot.py diff --git a/archive/autopilot/bech32.py b/Unmaintained/autopilot/bech32.py similarity index 100% rename from archive/autopilot/bech32.py rename to Unmaintained/autopilot/bech32.py diff --git a/archive/autopilot/c-lightning-autopilot.py b/Unmaintained/autopilot/c-lightning-autopilot.py similarity index 100% rename from archive/autopilot/c-lightning-autopilot.py rename to Unmaintained/autopilot/c-lightning-autopilot.py diff --git a/archive/autopilot/lib_autopilot.py b/Unmaintained/autopilot/lib_autopilot.py similarity index 100% rename from archive/autopilot/lib_autopilot.py rename to Unmaintained/autopilot/lib_autopilot.py diff --git a/archive/autopilot/pyproject.toml b/Unmaintained/autopilot/pyproject.toml similarity index 100% rename from archive/autopilot/pyproject.toml rename to Unmaintained/autopilot/pyproject.toml diff --git a/archive/autopilot/test_autopilot.py b/Unmaintained/autopilot/test_autopilot.py similarity index 100% rename from archive/autopilot/test_autopilot.py rename to Unmaintained/autopilot/test_autopilot.py diff --git a/archive/backup/README.md b/Unmaintained/backup/README.md similarity index 100% rename from archive/backup/README.md rename to Unmaintained/backup/README.md diff --git a/archive/backup/backend.py b/Unmaintained/backup/backend.py similarity index 100% rename from archive/backup/backend.py rename to Unmaintained/backup/backend.py diff --git a/archive/backup/backends.py b/Unmaintained/backup/backends.py similarity index 100% rename from archive/backup/backends.py rename to Unmaintained/backup/backends.py diff --git a/archive/backup/backup-cli b/Unmaintained/backup/backup-cli similarity index 100% rename from archive/backup/backup-cli rename to Unmaintained/backup/backup-cli diff --git a/archive/backup/backup.py b/Unmaintained/backup/backup.py similarity index 100% rename from archive/backup/backup.py rename to Unmaintained/backup/backup.py diff --git a/archive/backup/filebackend.py b/Unmaintained/backup/filebackend.py similarity index 100% rename from archive/backup/filebackend.py rename to Unmaintained/backup/filebackend.py diff --git a/archive/backup/poetry.lock b/Unmaintained/backup/poetry.lock similarity index 100% rename from archive/backup/poetry.lock rename to Unmaintained/backup/poetry.lock diff --git a/archive/backup/protocol.py b/Unmaintained/backup/protocol.py similarity index 100% rename from archive/backup/protocol.py rename to Unmaintained/backup/protocol.py diff --git a/archive/backup/pyproject.toml b/Unmaintained/backup/pyproject.toml similarity index 100% rename from archive/backup/pyproject.toml rename to Unmaintained/backup/pyproject.toml diff --git a/archive/backup/remote.md b/Unmaintained/backup/remote.md similarity index 100% rename from archive/backup/remote.md rename to Unmaintained/backup/remote.md diff --git a/archive/backup/server.py b/Unmaintained/backup/server.py similarity index 100% rename from archive/backup/server.py rename to Unmaintained/backup/server.py diff --git a/archive/backup/socketbackend.py b/Unmaintained/backup/socketbackend.py similarity index 100% rename from archive/backup/socketbackend.py rename to Unmaintained/backup/socketbackend.py diff --git a/archive/backup/test_backup.py b/Unmaintained/backup/test_backup.py similarity index 100% rename from archive/backup/test_backup.py rename to Unmaintained/backup/test_backup.py diff --git a/archive/backup/tests/pre-4090-backup.dbak b/Unmaintained/backup/tests/pre-4090-backup.dbak similarity index 100% rename from archive/backup/tests/pre-4090-backup.dbak rename to Unmaintained/backup/tests/pre-4090-backup.dbak diff --git a/archive/commando/README.md b/Unmaintained/commando/README.md similarity index 100% rename from archive/commando/README.md rename to Unmaintained/commando/README.md diff --git a/archive/commando/commando.py b/Unmaintained/commando/commando.py similarity index 100% rename from archive/commando/commando.py rename to Unmaintained/commando/commando.py diff --git a/archive/commando/requirements.txt b/Unmaintained/commando/requirements.txt similarity index 100% rename from archive/commando/requirements.txt rename to Unmaintained/commando/requirements.txt diff --git a/archive/commando/test_commando.py b/Unmaintained/commando/test_commando.py similarity index 100% rename from archive/commando/test_commando.py rename to Unmaintained/commando/test_commando.py diff --git a/archive/donations/LICENSE b/Unmaintained/donations/LICENSE similarity index 100% rename from archive/donations/LICENSE rename to Unmaintained/donations/LICENSE diff --git a/archive/donations/README.md b/Unmaintained/donations/README.md similarity index 100% rename from archive/donations/README.md rename to Unmaintained/donations/README.md diff --git a/archive/donations/donations.py b/Unmaintained/donations/donations.py similarity index 100% rename from archive/donations/donations.py rename to Unmaintained/donations/donations.py diff --git a/archive/donations/poetry.lock b/Unmaintained/donations/poetry.lock similarity index 100% rename from archive/donations/poetry.lock rename to Unmaintained/donations/poetry.lock diff --git a/archive/donations/pyproject.toml b/Unmaintained/donations/pyproject.toml similarity index 100% rename from archive/donations/pyproject.toml rename to Unmaintained/donations/pyproject.toml diff --git a/archive/donations/templates/donation.html b/Unmaintained/donations/templates/donation.html similarity index 100% rename from archive/donations/templates/donation.html rename to Unmaintained/donations/templates/donation.html diff --git a/archive/donations/test_donations.py b/Unmaintained/donations/test_donations.py similarity index 100% rename from archive/donations/test_donations.py rename to Unmaintained/donations/test_donations.py diff --git a/archive/drain/README.md b/Unmaintained/drain/README.md similarity index 100% rename from archive/drain/README.md rename to Unmaintained/drain/README.md diff --git a/archive/drain/__init__.py b/Unmaintained/drain/__init__.py similarity index 100% rename from archive/drain/__init__.py rename to Unmaintained/drain/__init__.py diff --git a/archive/drain/clnutils.py b/Unmaintained/drain/clnutils.py similarity index 100% rename from archive/drain/clnutils.py rename to Unmaintained/drain/clnutils.py diff --git a/archive/drain/drain.py b/Unmaintained/drain/drain.py similarity index 100% rename from archive/drain/drain.py rename to Unmaintained/drain/drain.py diff --git a/archive/drain/requirements-dev.txt b/Unmaintained/drain/requirements-dev.txt similarity index 100% rename from archive/drain/requirements-dev.txt rename to Unmaintained/drain/requirements-dev.txt diff --git a/archive/drain/requirements.txt b/Unmaintained/drain/requirements.txt similarity index 100% rename from archive/drain/requirements.txt rename to Unmaintained/drain/requirements.txt diff --git a/archive/drain/test_drain.py b/Unmaintained/drain/test_drain.py similarity index 100% rename from archive/drain/test_drain.py rename to Unmaintained/drain/test_drain.py diff --git a/archive/drain/utils.py b/Unmaintained/drain/utils.py similarity index 100% rename from archive/drain/utils.py rename to Unmaintained/drain/utils.py diff --git a/archive/helpme/Makefile b/Unmaintained/helpme/Makefile similarity index 100% rename from archive/helpme/Makefile rename to Unmaintained/helpme/Makefile diff --git a/archive/helpme/README.md b/Unmaintained/helpme/README.md similarity index 100% rename from archive/helpme/README.md rename to Unmaintained/helpme/README.md diff --git a/archive/helpme/helpme.py b/Unmaintained/helpme/helpme.py similarity index 100% rename from archive/helpme/helpme.py rename to Unmaintained/helpme/helpme.py diff --git a/archive/helpme/requirements-dev.txt b/Unmaintained/helpme/requirements-dev.txt similarity index 100% rename from archive/helpme/requirements-dev.txt rename to Unmaintained/helpme/requirements-dev.txt diff --git a/archive/helpme/requirements.txt b/Unmaintained/helpme/requirements.txt similarity index 100% rename from archive/helpme/requirements.txt rename to Unmaintained/helpme/requirements.txt diff --git a/archive/helpme/test_helpme.py b/Unmaintained/helpme/test_helpme.py similarity index 100% rename from archive/helpme/test_helpme.py rename to Unmaintained/helpme/test_helpme.py diff --git a/archive/historian/README.org b/Unmaintained/historian/README.org similarity index 100% rename from archive/historian/README.org rename to Unmaintained/historian/README.org diff --git a/archive/historian/cli/backup.py b/Unmaintained/historian/cli/backup.py similarity index 100% rename from archive/historian/cli/backup.py rename to Unmaintained/historian/cli/backup.py diff --git a/archive/historian/cli/common.py b/Unmaintained/historian/cli/common.py similarity index 100% rename from archive/historian/cli/common.py rename to Unmaintained/historian/cli/common.py diff --git a/archive/historian/cli/db.py b/Unmaintained/historian/cli/db.py similarity index 100% rename from archive/historian/cli/db.py rename to Unmaintained/historian/cli/db.py diff --git a/archive/historian/common.py b/Unmaintained/historian/common.py similarity index 100% rename from archive/historian/common.py rename to Unmaintained/historian/common.py diff --git a/archive/historian/gossipd.py b/Unmaintained/historian/gossipd.py similarity index 100% rename from archive/historian/gossipd.py rename to Unmaintained/historian/gossipd.py diff --git a/archive/historian/historian-cli b/Unmaintained/historian/historian-cli similarity index 100% rename from archive/historian/historian-cli rename to Unmaintained/historian/historian-cli diff --git a/archive/historian/historian.py b/Unmaintained/historian/historian.py similarity index 100% rename from archive/historian/historian.py rename to Unmaintained/historian/historian.py diff --git a/archive/historian/poetry.lock b/Unmaintained/historian/poetry.lock similarity index 100% rename from archive/historian/poetry.lock rename to Unmaintained/historian/poetry.lock diff --git a/archive/historian/pyproject.toml b/Unmaintained/historian/pyproject.toml similarity index 100% rename from archive/historian/pyproject.toml rename to Unmaintained/historian/pyproject.toml diff --git a/archive/historian/test_historian.py b/Unmaintained/historian/test_historian.py similarity index 100% rename from archive/historian/test_historian.py rename to Unmaintained/historian/test_historian.py diff --git a/archive/paytest/README.org b/Unmaintained/paytest/README.org similarity index 100% rename from archive/paytest/README.org rename to Unmaintained/paytest/README.org diff --git a/archive/paytest/paytest.py b/Unmaintained/paytest/paytest.py similarity index 100% rename from archive/paytest/paytest.py rename to Unmaintained/paytest/paytest.py diff --git a/archive/paytest/poetry.lock b/Unmaintained/paytest/poetry.lock similarity index 100% rename from archive/paytest/poetry.lock rename to Unmaintained/paytest/poetry.lock diff --git a/archive/paytest/requirements.txt b/Unmaintained/paytest/requirements.txt similarity index 100% rename from archive/paytest/requirements.txt rename to Unmaintained/paytest/requirements.txt diff --git a/archive/paytest/test_paytest.py b/Unmaintained/paytest/test_paytest.py similarity index 100% rename from archive/paytest/test_paytest.py rename to Unmaintained/paytest/test_paytest.py diff --git a/archive/probe/README.md b/Unmaintained/probe/README.md similarity index 100% rename from archive/probe/README.md rename to Unmaintained/probe/README.md diff --git a/archive/probe/probe.py b/Unmaintained/probe/probe.py similarity index 100% rename from archive/probe/probe.py rename to Unmaintained/probe/probe.py diff --git a/archive/probe/requirements.txt b/Unmaintained/probe/requirements.txt similarity index 100% rename from archive/probe/requirements.txt rename to Unmaintained/probe/requirements.txt diff --git a/archive/probe/test_probe.py b/Unmaintained/probe/test_probe.py similarity index 100% rename from archive/probe/test_probe.py rename to Unmaintained/probe/test_probe.py diff --git a/archive/prometheus/README.md b/Unmaintained/prometheus/README.md similarity index 100% rename from archive/prometheus/README.md rename to Unmaintained/prometheus/README.md diff --git a/archive/prometheus/prometheus.py b/Unmaintained/prometheus/prometheus.py similarity index 100% rename from archive/prometheus/prometheus.py rename to Unmaintained/prometheus/prometheus.py diff --git a/archive/prometheus/requirements.txt b/Unmaintained/prometheus/requirements.txt similarity index 100% rename from archive/prometheus/requirements.txt rename to Unmaintained/prometheus/requirements.txt diff --git a/archive/prometheus/test_prometheus.py b/Unmaintained/prometheus/test_prometheus.py similarity index 100% rename from archive/prometheus/test_prometheus.py rename to Unmaintained/prometheus/test_prometheus.py diff --git a/archive/rebalance/README.md b/Unmaintained/rebalance/README.md similarity index 100% rename from archive/rebalance/README.md rename to Unmaintained/rebalance/README.md diff --git a/archive/rebalance/clnutils.py b/Unmaintained/rebalance/clnutils.py similarity index 100% rename from archive/rebalance/clnutils.py rename to Unmaintained/rebalance/clnutils.py diff --git a/archive/rebalance/rebalance.py b/Unmaintained/rebalance/rebalance.py similarity index 100% rename from archive/rebalance/rebalance.py rename to Unmaintained/rebalance/rebalance.py diff --git a/archive/rebalance/requirements.txt b/Unmaintained/rebalance/requirements.txt similarity index 100% rename from archive/rebalance/requirements.txt rename to Unmaintained/rebalance/requirements.txt diff --git a/archive/rebalance/test_rebalance.py b/Unmaintained/rebalance/test_rebalance.py similarity index 100% rename from archive/rebalance/test_rebalance.py rename to Unmaintained/rebalance/test_rebalance.py diff --git a/archive/summary/README.md b/Unmaintained/summary/README.md similarity index 100% rename from archive/summary/README.md rename to Unmaintained/summary/README.md diff --git a/archive/summary/__init__.py b/Unmaintained/summary/__init__.py similarity index 100% rename from archive/summary/__init__.py rename to Unmaintained/summary/__init__.py diff --git a/archive/summary/requirements.txt b/Unmaintained/summary/requirements.txt similarity index 100% rename from archive/summary/requirements.txt rename to Unmaintained/summary/requirements.txt diff --git a/archive/summary/summary.py b/Unmaintained/summary/summary.py similarity index 100% rename from archive/summary/summary.py rename to Unmaintained/summary/summary.py diff --git a/archive/summary/summary_avail.py b/Unmaintained/summary/summary_avail.py similarity index 100% rename from archive/summary/summary_avail.py rename to Unmaintained/summary/summary_avail.py diff --git a/archive/summary/test_summary.py b/Unmaintained/summary/test_summary.py similarity index 100% rename from archive/summary/test_summary.py rename to Unmaintained/summary/test_summary.py From 7bf1ab844b8db028194b29d155dccd072748c2ba Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Sat, 3 Feb 2024 20:36:38 -0600 Subject: [PATCH 18/23] Add cln-version 'master' and 'v23.11' to matrix --- .github/workflows/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8bcd884ba..b5fc31b1b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ on: jobs: build-and-test: - name: Test PY=${{ matrix.python-version }}, BCD=${{ matrix.bitcoind-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} + name: Test PY=${{ matrix.python-version }}, BCD=${{ matrix.bitcoind-version }}, CLN=${{ matrix.cln-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }} runs-on: ubuntu-latest timeout-minutes: 60 strategy: @@ -20,18 +20,19 @@ jobs: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] bitcoind-version: ["26.0"] + cln-version: ["master", "v23.11"] experimental: [1] deprecated: [0] steps: - uses: actions/checkout@v4 - - name: Checkout c-lightning@v23.11 + - name: Checkout c-lightning@${{ matrix.cln-version }} uses: actions/checkout@v4 with: repository: 'ElementsProject/lightning' path: 'lightning' - ref: 'v23.11' + ref: ${{ matrix.cln-version }} submodules: 'recursive' fetch-depth: 0 # Required for pyln versions to be recognized From 08c2c24e46b62dac3d5224b6ddfc69ea612e3e9b Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Sat, 3 Feb 2024 21:06:41 -0600 Subject: [PATCH 19/23] Move jitrebalance, feeadjuster, noise to Unmaintained directory --- {feeadjuster => Unmaintained/feeadjuster}/README.md | 0 {feeadjuster => Unmaintained/feeadjuster}/clnutils.py | 0 {feeadjuster => Unmaintained/feeadjuster}/feeadjuster.py | 0 {feeadjuster => Unmaintained/feeadjuster}/requirements.txt | 0 {feeadjuster => Unmaintained/feeadjuster}/test_clnutils.py | 0 {feeadjuster => Unmaintained/feeadjuster}/test_feeadjuster.py | 0 {jitrebalance => Unmaintained/jitrebalance}/jitrebalance.py | 0 {jitrebalance => Unmaintained/jitrebalance}/requirements.txt | 0 {jitrebalance => Unmaintained/jitrebalance}/test_jitrebalance.py | 0 {jitrebalance => Unmaintained/jitrebalance}/tests/hold_htlcs.py | 0 {jitrebalance => Unmaintained/jitrebalance}/tests/refuse_htlcs.py | 0 {noise => Unmaintained/noise}/README.org | 0 {noise => Unmaintained/noise}/noise.py | 0 {noise => Unmaintained/noise}/onion.py | 0 {noise => Unmaintained/noise}/primitives.py | 0 {noise => Unmaintained/noise}/requirements-dev.txt | 0 {noise => Unmaintained/noise}/requirements.txt | 0 {noise => Unmaintained/noise}/test_chat.py | 0 {noise => Unmaintained/noise}/zbase32.py | 0 19 files changed, 0 insertions(+), 0 deletions(-) rename {feeadjuster => Unmaintained/feeadjuster}/README.md (100%) rename {feeadjuster => Unmaintained/feeadjuster}/clnutils.py (100%) rename {feeadjuster => Unmaintained/feeadjuster}/feeadjuster.py (100%) rename {feeadjuster => Unmaintained/feeadjuster}/requirements.txt (100%) rename {feeadjuster => Unmaintained/feeadjuster}/test_clnutils.py (100%) rename {feeadjuster => Unmaintained/feeadjuster}/test_feeadjuster.py (100%) rename {jitrebalance => Unmaintained/jitrebalance}/jitrebalance.py (100%) rename {jitrebalance => Unmaintained/jitrebalance}/requirements.txt (100%) rename {jitrebalance => Unmaintained/jitrebalance}/test_jitrebalance.py (100%) rename {jitrebalance => Unmaintained/jitrebalance}/tests/hold_htlcs.py (100%) rename {jitrebalance => Unmaintained/jitrebalance}/tests/refuse_htlcs.py (100%) rename {noise => Unmaintained/noise}/README.org (100%) rename {noise => Unmaintained/noise}/noise.py (100%) rename {noise => Unmaintained/noise}/onion.py (100%) rename {noise => Unmaintained/noise}/primitives.py (100%) rename {noise => Unmaintained/noise}/requirements-dev.txt (100%) rename {noise => Unmaintained/noise}/requirements.txt (100%) rename {noise => Unmaintained/noise}/test_chat.py (100%) rename {noise => Unmaintained/noise}/zbase32.py (100%) diff --git a/feeadjuster/README.md b/Unmaintained/feeadjuster/README.md similarity index 100% rename from feeadjuster/README.md rename to Unmaintained/feeadjuster/README.md diff --git a/feeadjuster/clnutils.py b/Unmaintained/feeadjuster/clnutils.py similarity index 100% rename from feeadjuster/clnutils.py rename to Unmaintained/feeadjuster/clnutils.py diff --git a/feeadjuster/feeadjuster.py b/Unmaintained/feeadjuster/feeadjuster.py similarity index 100% rename from feeadjuster/feeadjuster.py rename to Unmaintained/feeadjuster/feeadjuster.py diff --git a/feeadjuster/requirements.txt b/Unmaintained/feeadjuster/requirements.txt similarity index 100% rename from feeadjuster/requirements.txt rename to Unmaintained/feeadjuster/requirements.txt diff --git a/feeadjuster/test_clnutils.py b/Unmaintained/feeadjuster/test_clnutils.py similarity index 100% rename from feeadjuster/test_clnutils.py rename to Unmaintained/feeadjuster/test_clnutils.py diff --git a/feeadjuster/test_feeadjuster.py b/Unmaintained/feeadjuster/test_feeadjuster.py similarity index 100% rename from feeadjuster/test_feeadjuster.py rename to Unmaintained/feeadjuster/test_feeadjuster.py diff --git a/jitrebalance/jitrebalance.py b/Unmaintained/jitrebalance/jitrebalance.py similarity index 100% rename from jitrebalance/jitrebalance.py rename to Unmaintained/jitrebalance/jitrebalance.py diff --git a/jitrebalance/requirements.txt b/Unmaintained/jitrebalance/requirements.txt similarity index 100% rename from jitrebalance/requirements.txt rename to Unmaintained/jitrebalance/requirements.txt diff --git a/jitrebalance/test_jitrebalance.py b/Unmaintained/jitrebalance/test_jitrebalance.py similarity index 100% rename from jitrebalance/test_jitrebalance.py rename to Unmaintained/jitrebalance/test_jitrebalance.py diff --git a/jitrebalance/tests/hold_htlcs.py b/Unmaintained/jitrebalance/tests/hold_htlcs.py similarity index 100% rename from jitrebalance/tests/hold_htlcs.py rename to Unmaintained/jitrebalance/tests/hold_htlcs.py diff --git a/jitrebalance/tests/refuse_htlcs.py b/Unmaintained/jitrebalance/tests/refuse_htlcs.py similarity index 100% rename from jitrebalance/tests/refuse_htlcs.py rename to Unmaintained/jitrebalance/tests/refuse_htlcs.py diff --git a/noise/README.org b/Unmaintained/noise/README.org similarity index 100% rename from noise/README.org rename to Unmaintained/noise/README.org diff --git a/noise/noise.py b/Unmaintained/noise/noise.py similarity index 100% rename from noise/noise.py rename to Unmaintained/noise/noise.py diff --git a/noise/onion.py b/Unmaintained/noise/onion.py similarity index 100% rename from noise/onion.py rename to Unmaintained/noise/onion.py diff --git a/noise/primitives.py b/Unmaintained/noise/primitives.py similarity index 100% rename from noise/primitives.py rename to Unmaintained/noise/primitives.py diff --git a/noise/requirements-dev.txt b/Unmaintained/noise/requirements-dev.txt similarity index 100% rename from noise/requirements-dev.txt rename to Unmaintained/noise/requirements-dev.txt diff --git a/noise/requirements.txt b/Unmaintained/noise/requirements.txt similarity index 100% rename from noise/requirements.txt rename to Unmaintained/noise/requirements.txt diff --git a/noise/test_chat.py b/Unmaintained/noise/test_chat.py similarity index 100% rename from noise/test_chat.py rename to Unmaintained/noise/test_chat.py diff --git a/noise/zbase32.py b/Unmaintained/noise/zbase32.py similarity index 100% rename from noise/zbase32.py rename to Unmaintained/noise/zbase32.py From 38402c41a1670cedd5dfe91403119339d274ddee Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Sat, 3 Feb 2024 21:28:46 -0600 Subject: [PATCH 20/23] Revert changes in drain, historian, jitrebalance, probe, summary, noise, feeadjuster --- Unmaintained/drain/drain.py | 4 +-- Unmaintained/drain/test_drain.py | 6 ++++ Unmaintained/feeadjuster/test_feeadjuster.py | 6 +++- Unmaintained/historian/poetry.lock | 32 ++----------------- Unmaintained/historian/pyproject.toml | 1 - .../jitrebalance/test_jitrebalance.py | 5 ++- Unmaintained/noise/test_chat.py | 3 +- Unmaintained/probe/test_probe.py | 3 ++ Unmaintained/summary/test_summary.py | 3 +- 9 files changed, 26 insertions(+), 37 deletions(-) diff --git a/Unmaintained/drain/drain.py b/Unmaintained/drain/drain.py index f92eb4c0c..4f6ae6ed2 100755 --- a/Unmaintained/drain/drain.py +++ b/Unmaintained/drain/drain.py @@ -351,7 +351,7 @@ def try_for_htlc_fee(payload, peer_id, amount, chunk, spendable_before): def read_params(command: str, scid: str, percentage: float, chunks: int, - retry_for: int, maxfeepercent: float, exemptfee: int): + retry_for: int, maxfeepercent: float, exemptfee: Millisatoshi): # check parameters if command != 'drain' and command != 'fill' and command != 'setbalance': @@ -466,7 +466,7 @@ def execute(payload: dict): @plugin.method("drain") def drain(plugin, scid: str, percentage: float = 100, chunks: int = 0, retry_for: int = 60, - maxfeepercent: float = 0.5, exemptfee: int = 5000): + maxfeepercent: float = 0.5, exemptfee: Millisatoshi = Millisatoshi(5000)): """Draining channel liquidity with circular payments. Percentage defaults to 100, resulting in an empty channel. diff --git a/Unmaintained/drain/test_drain.py b/Unmaintained/drain/test_drain.py index e4731267b..236610072 100644 --- a/Unmaintained/drain/test_drain.py +++ b/Unmaintained/drain/test_drain.py @@ -1,4 +1,5 @@ from pyln.testing.fixtures import * # noqa: F401,F403 +from pyln.testing.utils import DEVELOPER from pyln.client import RpcError from .utils import get_ours, get_theirs, wait_ours, wait_for_all_htlcs import os @@ -23,6 +24,7 @@ def test_plugin_starts(node_factory): l1.start() +@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_drain_and_refill(node_factory, bitcoind): # Scenario: first drain then refill # @@ -82,6 +84,7 @@ def test_drain_and_refill(node_factory, bitcoind): assert(get_theirs(l1, scid12) < theirs_before * 0.05) +@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_fill_and_drain(node_factory, bitcoind): # Scenario: first fill of an empty channel and drain afterwards. # @@ -130,6 +133,7 @@ def test_fill_and_drain(node_factory, bitcoind): assert(get_theirs(l1, scid12) < theirs_before * 0.05) # account some reserves +@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_setbalance(node_factory, bitcoind): # SETUP: a basic circular setup to run setbalance tests # @@ -190,6 +194,7 @@ def balance(node, node_a, scid_a, node_b, scid_b, node_c): wait_for_all_htlcs([node, node_a, node_b]) +@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_drain_chunks(node_factory, bitcoind): # SETUP: a small mesh that enables testing chunks # @@ -272,6 +277,7 @@ def test_drain_chunks(node_factory, bitcoind): assert(get_theirs(l1, scid41) > amount * 0.9) +@unittest.skipIf(not DEVELOPER, "slow gossip, needs DEVELOPER=1") def test_fill_chunks(node_factory, bitcoind): # SETUP: a small mesh that enables testing chunks # diff --git a/Unmaintained/feeadjuster/test_feeadjuster.py b/Unmaintained/feeadjuster/test_feeadjuster.py index 9efa77c21..a2b834618 100644 --- a/Unmaintained/feeadjuster/test_feeadjuster.py +++ b/Unmaintained/feeadjuster/test_feeadjuster.py @@ -4,7 +4,7 @@ import unittest from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import wait_for +from pyln.testing.utils import DEVELOPER, wait_for plugin_path = os.path.join(os.path.dirname(__file__), "feeadjuster.py") @@ -70,6 +70,7 @@ def sync_gossip(nodes, scids): wait_for(lambda: node.rpc.listchannels(scid) == n.rpc.listchannels(scid)) +@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_adjusts(node_factory): """ A rather simple network: @@ -139,6 +140,7 @@ def test_feeadjuster_adjusts(node_factory): f'Adjusted fees of {scid_B} with a ratio of 0.2']) +@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_imbalance(node_factory): """ A rather simple network: @@ -215,6 +217,7 @@ def test_feeadjuster_imbalance(node_factory): wait_for_fees(l2, scids, default_fees[0]) +@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_big_enough_liquidity(node_factory): """ A rather simple network: @@ -289,6 +292,7 @@ def test_feeadjuster_big_enough_liquidity(node_factory): wait_for_not_fees(l2, scids, default_fees[0]) +@unittest.skipIf(not DEVELOPER, "Too slow without fast gossip") def test_feeadjuster_median(node_factory): """ A rather simple network: diff --git a/Unmaintained/historian/poetry.lock b/Unmaintained/historian/poetry.lock index 1cdc9df08..eb6015d1f 100644 --- a/Unmaintained/historian/poetry.lock +++ b/Unmaintained/historian/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "asn1crypto" @@ -390,21 +390,6 @@ files = [ {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] -[[package]] -name = "inotify" -version = "0.2.10" -description = "An adapter to Linux kernel support for inotify directory-watching." -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "inotify-0.2.10-py2-none-any.whl", hash = "sha256:397f8785450e41f606fe4eb6f5e8e0a1c70b354b56495225fc6c6fe7e07db0c9"}, - {file = "inotify-0.2.10.tar.gz", hash = "sha256:974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"}, -] - -[package.dependencies] -nose = "*" - [[package]] name = "itsdangerous" version = "2.1.2" @@ -540,19 +525,6 @@ files = [ {file = "more_itertools-9.0.0-py3-none-any.whl", hash = "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41"}, ] -[[package]] -name = "nose" -version = "1.3.7" -description = "nose extends unittest to make testing easier" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "nose-1.3.7-py2-none-any.whl", hash = "sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a"}, - {file = "nose-1.3.7-py3-none-any.whl", hash = "sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac"}, - {file = "nose-1.3.7.tar.gz", hash = "sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"}, -] - [[package]] name = "packaging" version = "22.0" @@ -999,4 +971,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "bd763b3fec77a5c059bcc1f6207339efdb2df96cc9539e07456bff00abb70e51" +content-hash = "5dfdd4459dfffcf602f5f4b1bb6aedeb5da484cb758671a0ca5e4ee3ea2a2e11" diff --git a/Unmaintained/historian/pyproject.toml b/Unmaintained/historian/pyproject.toml index 69cde1eb1..e768b77e5 100644 --- a/Unmaintained/historian/pyproject.toml +++ b/Unmaintained/historian/pyproject.toml @@ -8,7 +8,6 @@ license = "MIT" [tool.poetry.dependencies] python = "^3.7" pyln-client = "0.11.1" -inotify = "^0.2.10" [tool.poetry.dev-dependencies] pyln-testing = "0.11.1" diff --git a/Unmaintained/jitrebalance/test_jitrebalance.py b/Unmaintained/jitrebalance/test_jitrebalance.py index 0be989e17..f071c996d 100644 --- a/Unmaintained/jitrebalance/test_jitrebalance.py +++ b/Unmaintained/jitrebalance/test_jitrebalance.py @@ -1,6 +1,6 @@ from pyln.client import RpcError from pyln.testing.fixtures import * # noqa: F401, F403 -from pyln.testing.utils import wait_for +from pyln.testing.utils import wait_for, DEVELOPER import os import time import pytest @@ -13,6 +13,7 @@ reject_plugin = os.path.join(currdir, 'tests/refuse_htlcs.py') +@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_simple_rebalance(node_factory): """Simple rebalance that routes along a cycle to enable the original payment @@ -81,6 +82,7 @@ def no_pending_htlcs(): assert l2.daemon.is_in_log('Succesfully re-filled outgoing capacity') +@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_rebalance_failure(node_factory): """Same setup as the first test : @@ -156,6 +158,7 @@ def no_pending_htlcs(): assert l2.daemon.is_in_log('Timed out while trying to rebalance') +@unittest.skipIf(not DEVELOPER, "gossip is too slow if we're not in developer mode") def test_issue_88(node_factory): """Reproduce issue #88: crash due to unconfirmed channel. diff --git a/Unmaintained/noise/test_chat.py b/Unmaintained/noise/test_chat.py index 26b8d2174..ecf4b9321 100644 --- a/Unmaintained/noise/test_chat.py +++ b/Unmaintained/noise/test_chat.py @@ -3,7 +3,7 @@ from pprint import pprint from pyln.client import RpcError from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import wait_for +from pyln.testing.utils import DEVELOPER, wait_for import hashlib import os import pytest @@ -33,6 +33,7 @@ def test_sendmsg_success(node_factory, executor): @flaky # since we cannot force a payment to take a specific route +@unittest.skipIf(not DEVELOPER, "Fails often") @unittest.skipIf(True, "Just not stable") def test_sendmsg_retry(node_factory, executor): """Fail a sendmsg using a cheap route, and check that it retries. diff --git a/Unmaintained/probe/test_probe.py b/Unmaintained/probe/test_probe.py index 4a6580df4..ee54d9150 100644 --- a/Unmaintained/probe/test_probe.py +++ b/Unmaintained/probe/test_probe.py @@ -1,6 +1,7 @@ import unittest import os from pyln.testing.fixtures import * # noqa: F401,F403 +from pyln.testing.utils import DEVELOPER plugin_path = os.path.join(os.path.dirname(__file__), "probe.py") @@ -17,6 +18,7 @@ def test_probe_starts(node_factory): l1.start() +@unittest.skipIf(not DEVELOPER, "Gossip is slow") def test_probe(node_factory): l1, l2, l3, l4 = node_factory.line_graph( 4, @@ -34,6 +36,7 @@ def test_probe(node_factory): assert(res['failcode'] == 16399) +@unittest.skipIf(not DEVELOPER, "Gossip is slow") def test_route_unreachable(node_factory): l1, l2, l3, l4 = node_factory.line_graph( 4, diff --git a/Unmaintained/summary/test_summary.py b/Unmaintained/summary/test_summary.py index e4f8e39b3..364cfed68 100644 --- a/Unmaintained/summary/test_summary.py +++ b/Unmaintained/summary/test_summary.py @@ -5,7 +5,7 @@ from pyln.client import Plugin from pyln.testing.fixtures import * # noqa: F401,F403 -from pyln.testing.utils import wait_for +from pyln.testing.utils import DEVELOPER, wait_for from .summary_avail import trace_availability @@ -264,6 +264,7 @@ def test_summary_opts(directory): assert(o in help_out) +@unittest.skipIf(not DEVELOPER, "We need fast gossip for line_graph") def test_summary_exclude(node_factory): l1, l2 = node_factory.line_graph(2, opts=pluginopt) From 63d33e643e7475349fb2d62fc9d538275aa7c9d4 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Sun, 4 Feb 2024 00:41:59 -0600 Subject: [PATCH 21/23] Update README Add new section Unmaintained plugins Cleanup and sort plugin and link lists --- README.md | 123 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 70 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index f36a444d2..aac979dff 100644 --- a/README.md +++ b/README.md @@ -9,45 +9,58 @@ Community curated plugins for Core-Lightning. | Name | Short description | | ------------------------------------ | ------------------------------------------------------------------------------------------- | | [autopilot][autopilot] | An autopilot that suggests channels that should be established | -| [backup][backup] | A simple and reliable backup plugin | | [boltz-channel-creation][boltz] | A Core-Lightning plugin for Boltz Channel Creation Swaps | | [btcli4j][btcli4j] | A Bitcoin Backend to enable safely the pruning mode, and support also rest APIs. | | [circular][circular] | A smart rebalancing plugin for Core Lightning routing nodes | -| [csvexportpays][csvexportpays] | A plugin that exports all payments to a CSV file | -| [currencyrate][currencyrate] | A plugin to convert other currencies to BTC using web requests | | [clearnet][clearnet] | A plugin that can be used to enforce clearnet connections when possible | | [cln-ntfy][cln-ntfy] | Core Lightning plugin for sending `ntfy` alerts. | -| [donations][donations] | A simple donations page to accept donations from the web | +| [csvexportpays][csvexportpays] | A plugin that exports all payments to a CSV file | +| [currencyrate][currencyrate] | A plugin to convert other currencies to BTC using web requests | | [drain][drain] | Draining, filling and balancing channels with automatic chunks. | | [event-websocket][event-websocket] | Exposes notifications over a Websocket | -| [feeadjuster][feeadjuster] | Dynamic fees to keep your channels more balanced | | [go-lnmetrics.reporter][reporter] | Collect and report of the lightning node metrics | | [graphql][graphql] | Exposes the Core-Lightning API over [graphql][graphql-spec] | | [invoice-queue][invoice-queue] | Listen to lightning invoices from multiple nodes and send to a redis queue for processing | | [lightning-qt][lightning-qt] | A bitcoin-qt-like GUI for lightningd | | [listmempoolfunds][listmempoolfunds] | Track unconfirmed wallet deposits | | [monitor][monitor] | helps you analyze the health of your peers and channels | -| [noise][noise] | Chat with your fellow node operators | +| [nloop][nloop] | Generic Lightning Loop for boltz | | [nostrify][nostrify] | Send CLN events to Nostr | | [paythrough][paythrough] | Pay an invoice through a specific channel, regardless of better routes | | [persistent-channels][pers-chans] | Maintains a number of channels to peers | | [poncho][poncho] | Turns CLN into a [hosted channels][blip12] provider | -| [probe][probe] | Regularly probes the network for stability | -| [prometheus][prometheus] | Lightning node exporter for the prometheus timeseries server | | [pruning][pruning] | This plugin manages pruning of bitcoind such that it can always sync | | [python-teos][python-teos] | The Eye of Satoshi - Lightning Watchtower | | [rebalance][rebalance] | Keeps your channels balanced | | [reckless][reckless] | An **experimental** plugin manager (search/install plugins) | -| [requestinvoice][request-invoice] | Http server to request invoices | | [sauron][sauron] | A Bitcoin backend relying on [Esplora][esplora]'s API | | [sitzprobe][sitzprobe] | A Lightning Network payment rehearsal utility | | [sparko][sparko] | RPC over HTTP with fine-grained permissions, SSE and spark-wallet support | | [summary][summary] | Print a nice summary of the node status | | [trustedcoin][trustedcoin] | Replace your Bitcoin Core with data from public block explorers | -| [webhook][webhook] | Dispatches webhooks based from [event notifications][event-notifications] | | [watchtower][watchtower-client] | Watchtower client for The Eye of Satoshi | +| [webhook][webhook] | Dispatches webhooks based from [event notifications][event-notifications] | | [zmq][zmq] | Publishes notifications via [ZeroMQ][zmq-home] to configured endpoints | -| [nloop][nloop] | Generic Lightning Loop for boltz | + +## Unmaintained plugins + +| Name | Short description | +| ------------------------------------ | ------------------------------------------------------------------------------------------- | +| [autopilot][autopilot] | An autopilot that suggests channels that should be established | +| [backup][backup] | A simple and reliable backup plugin | +| [commando][commando] | This plugin allows to send commands between nodes | +| [donations][donations] | A simple donations page to accept donations from the web | +| [drain][drain] | Draining, filling and balancing channels with automatic chunks. | +| [feeadjuster][feeadjuster] | Dynamic fees to keep your channels more balanced | +| [helpme][helpme] | This plugin is designed to walk you through setting up a fresh Core-Lightning node | +| [historian][historian] | Archiving the Lightning Network | +| [jitrebalance][jitrebalance] | The JITrebalance plugin | +| [noise][noise] | Chat with your fellow node operators | +| [paytest][paytest] | A plugin to benchmark the performance of the ~pay~ plugin | +| [probe][probe] | Regularly probes the network for stability | +| [prometheus][prometheus] | Lightning node exporter for the prometheus timeseries server | +| [rebalance][rebalance] | Keeps your channels balanced | +| [summary][summary] | Print a nice summary of the node status | ## Installation @@ -179,59 +192,63 @@ Python plugins developers must ensure their plugin to work with all Python versi - [C# Plugin Guideline and example project][csharp-example] by @joemphilips - [Kotlin plugin guideline and example][kotlin-example] by @vincenzopalazzo -[esplora]: https://github.com/Blockstream/esplora -[pers-chans]: https://github.com/lightningd/plugins/tree/master/persistent-channels -[probe]: https://github.com/lightningd/plugins/tree/master/probe -[noise]: https://github.com/lightningd/plugins/tree/master/noise -[prometheus]: https://github.com/lightningd/plugins/tree/master/prometheus -[summary]: https://github.com/lightningd/plugins/tree/master/summary -[donations]: https://github.com/lightningd/plugins/tree/master/donations -[drain]: https://github.com/lightningd/plugins/tree/master/drain -[plugin-docs]: https://lightning.readthedocs.io/PLUGINS.html +[autopilot]: https://github.com/lightningd/plugins/tree/master/Unmaintained/autopilot +[backup]: https://github.com/lightningd/plugins/tree/master/Unmaintained/backup +[blip12]: https://github.com/lightning/blips/blob/42cec1d0f66eb68c840443abb609a5a9acb34f8e/blip-0012.md +[boltz]: https://github.com/BoltzExchange/channel-creation-plugin +[btcli4j]: https://github.com/clightning4j/btcli4j [c-api]: https://github.com/ElementsProject/lightning/blob/master/plugins/libplugin.h +[circular]: https://github.com/giovannizotta/circular +[clearnet]: https://github.com/lightningd/plugins/tree/master/clearnet +[cln-ntfy]: https://github.com/yukibtc/cln-ntfy +[commando]: https://github.com/lightningd/plugins/tree/master/Unmaintained/commando +[cpp-api]: https://github.com/darosior/lightningcpp +[csharp-example]: https://github.com/joemphilips/DotNetLightning/tree/master/examples/HelloWorldPlugin +[csvexportpays]: https://github.com/0xB10C/c-lightning-plugin-csvexportpays [currencyrate]: https://github.com/lightningd/plugins/tree/master/currencyrate -[python-api]: https://github.com/ElementsProject/lightning/tree/master/contrib/pylightning -[python-api-pypi]: https://pypi.org/project/pylightning/ +[donations]: https://github.com/lightningd/plugins/tree/master/Unmaintained/donations +[drain]: https://github.com/lightningd/plugins/tree/master/Unmaintained/drain +[esplora]: https://github.com/Blockstream/esplora +[event-notifications]: https://lightning.readthedocs.io/PLUGINS.html#event-notifications +[event-websocket]: https://github.com/rbndg/c-lightning-events +[feeadjuster]: https://github.com/lightningd/plugins/tree/master/Unmaintained/feeadjuster [go-api]: https://github.com/niftynei/glightning -[sitzprobe]: https://github.com/niftynei/sitzprobe -[autopilot]: https://github.com/lightningd/plugins/tree/master/autopilot -[rebalance]: https://github.com/lightningd/plugins/tree/master/rebalance [graphql]: https://github.com/nettijoe96/c-lightning-graphql [graphql-spec]: https://graphql.org/ +[helpme]: https://github.com/lightningd/plugins/tree/master/Unmaintained/helpme +[historian]: https://github.com/lightningd/plugins/tree/master/Unmaintained/historian +[invoice-queue]: https://github.com/rbndg/Lightning-Invoice-Queue +[java-api]: https://github.com/clightning4j/JRPClightning +[jitrebalance]: https://github.com/lightningd/plugins/tree/master/Unmaintained/jitrebalance +[js-api]: https://github.com/lightningd/clightningjs +[kotlin-example]: https://vincenzopalazzo.medium.com/a-day-in-a-c-lightning-plugin-with-koltin-c8bbd4fa0406 [lightning-qt]: https://github.com/darosior/pylightning-qt [listmempoolfunds]: https://github.com/andrewtoth/listmempoolfunds -[paythrough]: https://github.com/andrewtoth/paythrough -[cpp-api]: https://github.com/darosior/lightningcpp -[js-api]: https://github.com/lightningd/clightningjs -[ts-api]: https://github.com/runcitadel/c-lightning.ts [monitor]: https://github.com/renepickhardt/plugins/tree/master/monitor +[nloop]: https://github.com/bitbankinc/NLoop +[noise]: https://github.com/lightningd/plugins/tree/master/Unmaintained/noise [nostrify]: https://github.com/joelklabo/nostrify +[paytest]: https://github.com/lightningd/plugins/tree/master/Unmaintained/paytest +[paythrough]: https://github.com/andrewtoth/paythrough +[pers-chans]: https://github.com/lightningd/plugins/tree/master/persistent-channels +[plugin-docs]: https://lightning.readthedocs.io/PLUGINS.html +[poncho]: https://github.com/fiatjaf/poncho +[probe]: https://github.com/lightningd/plugins/tree/master/Unmaintained/probe +[prometheus]: https://github.com/lightningd/plugins/tree/master/Unmaintained/prometheus +[pruning]: https://github.com/Start9Labs/c-lightning-pruning-plugin +[python-api]: https://github.com/ElementsProject/lightning/tree/master/contrib/pylightning +[python-api-pypi]: https://pypi.org/project/pylightning/ +[python-teos]: https://github.com/talaia-labs/python-teos +[rebalance]: https://github.com/lightningd/plugins/tree/master/Unmaintained/rebalance [reckless]: https://github.com/darosior/reckless -[request-invoice]: https://github.com/lightningd/plugins/tree/master/request-invoice +[reporter]: https://github.com/LNOpenMetrics/go-lnmetrics.reporter [sauron]: https://github.com/lightningd/plugins/tree/master/sauron -[zmq-home]: https://zeromq.org/ -[zmq]: https://github.com/lightningd/plugins/tree/master/zmq -[csvexportpays]: https://github.com/0xB10C/c-lightning-plugin-csvexportpays -[pruning]: https://github.com/Start9Labs/c-lightning-pruning-plugin +[sitzprobe]: https://github.com/niftynei/sitzprobe [sparko]: https://github.com/fiatjaf/sparko -[webhook]: https://github.com/fiatjaf/webhook +[summary]: https://github.com/lightningd/plugins/tree/master/Unmaintained/summary [trustedcoin]: https://github.com/fiatjaf/trustedcoin -[event-notifications]: https://lightning.readthedocs.io/PLUGINS.html#event-notifications -[event-websocket]: https://github.com/rbndg/c-lightning-events -[invoice-queue]: https://github.com/rbndg/Lightning-Invoice-Queue -[boltz]: https://github.com/BoltzExchange/channel-creation-plugin -[feeadjuster]: https://github.com/lightningd/plugins/tree/master/feeadjuster +[ts-api]: https://github.com/runcitadel/c-lightning.ts [watchtower-client]: https://github.com/talaia-labs/rust-teos/tree/master/watchtower-plugin -[java-api]: https://github.com/clightning4j/JRPClightning -[btcli4j]: https://github.com/clightning4j/btcli4j -[backup]: https://github.com/lightningd/plugins/tree/master/backup -[reporter]: https://github.com/LNOpenMetrics/go-lnmetrics.reporter -[csharp-example]: https://github.com/joemphilips/DotNetLightning/tree/master/examples/HelloWorldPlugin -[kotlin-example]: https://vincenzopalazzo.medium.com/a-day-in-a-c-lightning-plugin-with-koltin-c8bbd4fa0406 -[nloop]: https://github.com/bitbankinc/NLoop -[poncho]: https://github.com/fiatjaf/poncho -[blip12]: https://github.com/lightning/blips/blob/42cec1d0f66eb68c840443abb609a5a9acb34f8e/blip-0012.md -[circular]: https://github.com/giovannizotta/circular -[python-teos]: https://github.com/talaia-labs/python-teos -[clearnet]: https://github.com/lightningd/plugins/tree/master/clearnet -[cln-ntfy]: https://github.com/yukibtc/cln-ntfy +[webhook]: https://github.com/fiatjaf/lightningd-webhook +[zmq]: https://github.com/lightningd/plugins/tree/master/zmq +[zmq-home]: https://zeromq.org/ From 92186296e226f65b357a240e70f008d2af08e0c1 Mon Sep 17 00:00:00 2001 From: fmhoeger Date: Tue, 6 Feb 2024 13:20:25 -0600 Subject: [PATCH 22/23] Rename directory 'Unmaintained' back to 'archived' Update text and links for archived plugins in README --- README.md | 37 ++++++++++-------- .../autopilot/README.md | 0 .../autopilot/__init__.py | 0 .../autopilot/autopilot.py | 0 .../autopilot/bech32.py | 0 .../autopilot/c-lightning-autopilot.py | 0 .../autopilot/lib_autopilot.py | 0 .../autopilot/pyproject.toml | 0 .../autopilot/test_autopilot.py | 0 {Unmaintained => archived}/backup/README.md | 0 {Unmaintained => archived}/backup/backend.py | 0 {Unmaintained => archived}/backup/backends.py | 0 {Unmaintained => archived}/backup/backup-cli | 0 {Unmaintained => archived}/backup/backup.py | 0 .../backup/filebackend.py | 0 {Unmaintained => archived}/backup/poetry.lock | 0 {Unmaintained => archived}/backup/protocol.py | 0 .../backup/pyproject.toml | 0 {Unmaintained => archived}/backup/remote.md | 0 {Unmaintained => archived}/backup/server.py | 0 .../backup/socketbackend.py | 0 .../backup/test_backup.py | 0 .../backup/tests/pre-4090-backup.dbak | Bin {Unmaintained => archived}/commando/README.md | 0 .../commando/commando.py | 0 .../commando/requirements.txt | 0 .../commando/test_commando.py | 0 {Unmaintained => archived}/donations/LICENSE | 0 .../donations/README.md | 0 .../donations/donations.py | 0 .../donations/poetry.lock | 0 .../donations/pyproject.toml | 0 .../donations/templates/donation.html | 0 .../donations/test_donations.py | 0 {Unmaintained => archived}/drain/README.md | 0 {Unmaintained => archived}/drain/__init__.py | 0 {Unmaintained => archived}/drain/clnutils.py | 0 {Unmaintained => archived}/drain/drain.py | 0 .../drain/requirements-dev.txt | 0 .../drain/requirements.txt | 0 .../drain/test_drain.py | 0 {Unmaintained => archived}/drain/utils.py | 0 .../feeadjuster/README.md | 0 .../feeadjuster/clnutils.py | 0 .../feeadjuster/feeadjuster.py | 0 .../feeadjuster/requirements.txt | 0 .../feeadjuster/test_clnutils.py | 0 .../feeadjuster/test_feeadjuster.py | 0 {Unmaintained => archived}/helpme/Makefile | 0 {Unmaintained => archived}/helpme/README.md | 0 {Unmaintained => archived}/helpme/helpme.py | 0 .../helpme/requirements-dev.txt | 0 .../helpme/requirements.txt | 0 .../helpme/test_helpme.py | 0 .../historian/README.org | 0 .../historian/cli/backup.py | 0 .../historian/cli/common.py | 0 .../historian/cli/db.py | 0 .../historian/common.py | 0 .../historian/gossipd.py | 0 .../historian/historian-cli | 0 .../historian/historian.py | 0 .../historian/poetry.lock | 0 .../historian/pyproject.toml | 0 .../historian/test_historian.py | 0 .../jitrebalance/jitrebalance.py | 0 .../jitrebalance/requirements.txt | 0 .../jitrebalance/test_jitrebalance.py | 0 .../jitrebalance/tests/hold_htlcs.py | 0 .../jitrebalance/tests/refuse_htlcs.py | 0 {Unmaintained => archived}/noise/README.org | 0 {Unmaintained => archived}/noise/noise.py | 0 {Unmaintained => archived}/noise/onion.py | 0 .../noise/primitives.py | 0 .../noise/requirements-dev.txt | 0 .../noise/requirements.txt | 0 {Unmaintained => archived}/noise/test_chat.py | 0 {Unmaintained => archived}/noise/zbase32.py | 0 {Unmaintained => archived}/paytest/README.org | 0 {Unmaintained => archived}/paytest/paytest.py | 0 .../paytest/poetry.lock | 0 .../paytest/requirements.txt | 0 .../paytest/test_paytest.py | 0 {Unmaintained => archived}/probe/README.md | 0 {Unmaintained => archived}/probe/probe.py | 0 .../probe/requirements.txt | 0 .../probe/test_probe.py | 0 .../prometheus/README.md | 0 .../prometheus/prometheus.py | 0 .../prometheus/requirements.txt | 0 .../prometheus/test_prometheus.py | 0 .../rebalance/README.md | 0 .../rebalance/clnutils.py | 0 .../rebalance/rebalance.py | 0 .../rebalance/requirements.txt | 0 .../rebalance/test_rebalance.py | 0 {Unmaintained => archived}/summary/README.md | 0 .../summary/__init__.py | 0 .../summary/requirements.txt | 0 {Unmaintained => archived}/summary/summary.py | 0 .../summary/summary_avail.py | 0 .../summary/test_summary.py | 0 102 files changed, 21 insertions(+), 16 deletions(-) rename {Unmaintained => archived}/autopilot/README.md (100%) rename {Unmaintained => archived}/autopilot/__init__.py (100%) rename {Unmaintained => archived}/autopilot/autopilot.py (100%) rename {Unmaintained => archived}/autopilot/bech32.py (100%) rename {Unmaintained => archived}/autopilot/c-lightning-autopilot.py (100%) rename {Unmaintained => archived}/autopilot/lib_autopilot.py (100%) rename {Unmaintained => archived}/autopilot/pyproject.toml (100%) rename {Unmaintained => archived}/autopilot/test_autopilot.py (100%) rename {Unmaintained => archived}/backup/README.md (100%) rename {Unmaintained => archived}/backup/backend.py (100%) rename {Unmaintained => archived}/backup/backends.py (100%) rename {Unmaintained => archived}/backup/backup-cli (100%) rename {Unmaintained => archived}/backup/backup.py (100%) rename {Unmaintained => archived}/backup/filebackend.py (100%) rename {Unmaintained => archived}/backup/poetry.lock (100%) rename {Unmaintained => archived}/backup/protocol.py (100%) rename {Unmaintained => archived}/backup/pyproject.toml (100%) rename {Unmaintained => archived}/backup/remote.md (100%) rename {Unmaintained => archived}/backup/server.py (100%) rename {Unmaintained => archived}/backup/socketbackend.py (100%) rename {Unmaintained => archived}/backup/test_backup.py (100%) rename {Unmaintained => archived}/backup/tests/pre-4090-backup.dbak (100%) rename {Unmaintained => archived}/commando/README.md (100%) rename {Unmaintained => archived}/commando/commando.py (100%) rename {Unmaintained => archived}/commando/requirements.txt (100%) rename {Unmaintained => archived}/commando/test_commando.py (100%) rename {Unmaintained => archived}/donations/LICENSE (100%) rename {Unmaintained => archived}/donations/README.md (100%) rename {Unmaintained => archived}/donations/donations.py (100%) rename {Unmaintained => archived}/donations/poetry.lock (100%) rename {Unmaintained => archived}/donations/pyproject.toml (100%) rename {Unmaintained => archived}/donations/templates/donation.html (100%) rename {Unmaintained => archived}/donations/test_donations.py (100%) rename {Unmaintained => archived}/drain/README.md (100%) rename {Unmaintained => archived}/drain/__init__.py (100%) rename {Unmaintained => archived}/drain/clnutils.py (100%) rename {Unmaintained => archived}/drain/drain.py (100%) rename {Unmaintained => archived}/drain/requirements-dev.txt (100%) rename {Unmaintained => archived}/drain/requirements.txt (100%) rename {Unmaintained => archived}/drain/test_drain.py (100%) rename {Unmaintained => archived}/drain/utils.py (100%) rename {Unmaintained => archived}/feeadjuster/README.md (100%) rename {Unmaintained => archived}/feeadjuster/clnutils.py (100%) rename {Unmaintained => archived}/feeadjuster/feeadjuster.py (100%) rename {Unmaintained => archived}/feeadjuster/requirements.txt (100%) rename {Unmaintained => archived}/feeadjuster/test_clnutils.py (100%) rename {Unmaintained => archived}/feeadjuster/test_feeadjuster.py (100%) rename {Unmaintained => archived}/helpme/Makefile (100%) rename {Unmaintained => archived}/helpme/README.md (100%) rename {Unmaintained => archived}/helpme/helpme.py (100%) rename {Unmaintained => archived}/helpme/requirements-dev.txt (100%) rename {Unmaintained => archived}/helpme/requirements.txt (100%) rename {Unmaintained => archived}/helpme/test_helpme.py (100%) rename {Unmaintained => archived}/historian/README.org (100%) rename {Unmaintained => archived}/historian/cli/backup.py (100%) rename {Unmaintained => archived}/historian/cli/common.py (100%) rename {Unmaintained => archived}/historian/cli/db.py (100%) rename {Unmaintained => archived}/historian/common.py (100%) rename {Unmaintained => archived}/historian/gossipd.py (100%) rename {Unmaintained => archived}/historian/historian-cli (100%) rename {Unmaintained => archived}/historian/historian.py (100%) rename {Unmaintained => archived}/historian/poetry.lock (100%) rename {Unmaintained => archived}/historian/pyproject.toml (100%) rename {Unmaintained => archived}/historian/test_historian.py (100%) rename {Unmaintained => archived}/jitrebalance/jitrebalance.py (100%) rename {Unmaintained => archived}/jitrebalance/requirements.txt (100%) rename {Unmaintained => archived}/jitrebalance/test_jitrebalance.py (100%) rename {Unmaintained => archived}/jitrebalance/tests/hold_htlcs.py (100%) rename {Unmaintained => archived}/jitrebalance/tests/refuse_htlcs.py (100%) rename {Unmaintained => archived}/noise/README.org (100%) rename {Unmaintained => archived}/noise/noise.py (100%) rename {Unmaintained => archived}/noise/onion.py (100%) rename {Unmaintained => archived}/noise/primitives.py (100%) rename {Unmaintained => archived}/noise/requirements-dev.txt (100%) rename {Unmaintained => archived}/noise/requirements.txt (100%) rename {Unmaintained => archived}/noise/test_chat.py (100%) rename {Unmaintained => archived}/noise/zbase32.py (100%) rename {Unmaintained => archived}/paytest/README.org (100%) rename {Unmaintained => archived}/paytest/paytest.py (100%) rename {Unmaintained => archived}/paytest/poetry.lock (100%) rename {Unmaintained => archived}/paytest/requirements.txt (100%) rename {Unmaintained => archived}/paytest/test_paytest.py (100%) rename {Unmaintained => archived}/probe/README.md (100%) rename {Unmaintained => archived}/probe/probe.py (100%) rename {Unmaintained => archived}/probe/requirements.txt (100%) rename {Unmaintained => archived}/probe/test_probe.py (100%) rename {Unmaintained => archived}/prometheus/README.md (100%) rename {Unmaintained => archived}/prometheus/prometheus.py (100%) rename {Unmaintained => archived}/prometheus/requirements.txt (100%) rename {Unmaintained => archived}/prometheus/test_prometheus.py (100%) rename {Unmaintained => archived}/rebalance/README.md (100%) rename {Unmaintained => archived}/rebalance/clnutils.py (100%) rename {Unmaintained => archived}/rebalance/rebalance.py (100%) rename {Unmaintained => archived}/rebalance/requirements.txt (100%) rename {Unmaintained => archived}/rebalance/test_rebalance.py (100%) rename {Unmaintained => archived}/summary/README.md (100%) rename {Unmaintained => archived}/summary/__init__.py (100%) rename {Unmaintained => archived}/summary/requirements.txt (100%) rename {Unmaintained => archived}/summary/summary.py (100%) rename {Unmaintained => archived}/summary/summary_avail.py (100%) rename {Unmaintained => archived}/summary/test_summary.py (100%) diff --git a/README.md b/README.md index aac979dff..e3636b4e4 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,12 @@ Community curated plugins for Core-Lightning. | [webhook][webhook] | Dispatches webhooks based from [event notifications][event-notifications] | | [zmq][zmq] | Publishes notifications via [ZeroMQ][zmq-home] to configured endpoints | -## Unmaintained plugins +## Archived plugins + +The following is a list of archived plugins that are no longer maintained and reside inside the 'archived' subdirectory. +Any plugins that fail CI will be archived. + +If you like a plugin from that list, feel free to update and fix it, so we can un-archive it. | Name | Short description | | ------------------------------------ | ------------------------------------------------------------------------------------------- | @@ -192,8 +197,8 @@ Python plugins developers must ensure their plugin to work with all Python versi - [C# Plugin Guideline and example project][csharp-example] by @joemphilips - [Kotlin plugin guideline and example][kotlin-example] by @vincenzopalazzo -[autopilot]: https://github.com/lightningd/plugins/tree/master/Unmaintained/autopilot -[backup]: https://github.com/lightningd/plugins/tree/master/Unmaintained/backup +[autopilot]: https://github.com/lightningd/plugins/tree/master/archived/autopilot +[backup]: https://github.com/lightningd/plugins/tree/master/archived/backup [blip12]: https://github.com/lightning/blips/blob/42cec1d0f66eb68c840443abb609a5a9acb34f8e/blip-0012.md [boltz]: https://github.com/BoltzExchange/channel-creation-plugin [btcli4j]: https://github.com/clightning4j/btcli4j @@ -201,51 +206,51 @@ Python plugins developers must ensure their plugin to work with all Python versi [circular]: https://github.com/giovannizotta/circular [clearnet]: https://github.com/lightningd/plugins/tree/master/clearnet [cln-ntfy]: https://github.com/yukibtc/cln-ntfy -[commando]: https://github.com/lightningd/plugins/tree/master/Unmaintained/commando +[commando]: https://github.com/lightningd/plugins/tree/master/archived/commando [cpp-api]: https://github.com/darosior/lightningcpp [csharp-example]: https://github.com/joemphilips/DotNetLightning/tree/master/examples/HelloWorldPlugin [csvexportpays]: https://github.com/0xB10C/c-lightning-plugin-csvexportpays [currencyrate]: https://github.com/lightningd/plugins/tree/master/currencyrate -[donations]: https://github.com/lightningd/plugins/tree/master/Unmaintained/donations -[drain]: https://github.com/lightningd/plugins/tree/master/Unmaintained/drain +[donations]: https://github.com/lightningd/plugins/tree/master/archived/donations +[drain]: https://github.com/lightningd/plugins/tree/master/archived/drain [esplora]: https://github.com/Blockstream/esplora [event-notifications]: https://lightning.readthedocs.io/PLUGINS.html#event-notifications [event-websocket]: https://github.com/rbndg/c-lightning-events -[feeadjuster]: https://github.com/lightningd/plugins/tree/master/Unmaintained/feeadjuster +[feeadjuster]: https://github.com/lightningd/plugins/tree/master/archived/feeadjuster [go-api]: https://github.com/niftynei/glightning [graphql]: https://github.com/nettijoe96/c-lightning-graphql [graphql-spec]: https://graphql.org/ -[helpme]: https://github.com/lightningd/plugins/tree/master/Unmaintained/helpme -[historian]: https://github.com/lightningd/plugins/tree/master/Unmaintained/historian +[helpme]: https://github.com/lightningd/plugins/tree/master/archived/helpme +[historian]: https://github.com/lightningd/plugins/tree/master/archived/historian [invoice-queue]: https://github.com/rbndg/Lightning-Invoice-Queue [java-api]: https://github.com/clightning4j/JRPClightning -[jitrebalance]: https://github.com/lightningd/plugins/tree/master/Unmaintained/jitrebalance +[jitrebalance]: https://github.com/lightningd/plugins/tree/master/archived/jitrebalance [js-api]: https://github.com/lightningd/clightningjs [kotlin-example]: https://vincenzopalazzo.medium.com/a-day-in-a-c-lightning-plugin-with-koltin-c8bbd4fa0406 [lightning-qt]: https://github.com/darosior/pylightning-qt [listmempoolfunds]: https://github.com/andrewtoth/listmempoolfunds [monitor]: https://github.com/renepickhardt/plugins/tree/master/monitor [nloop]: https://github.com/bitbankinc/NLoop -[noise]: https://github.com/lightningd/plugins/tree/master/Unmaintained/noise +[noise]: https://github.com/lightningd/plugins/tree/master/archived/noise [nostrify]: https://github.com/joelklabo/nostrify -[paytest]: https://github.com/lightningd/plugins/tree/master/Unmaintained/paytest +[paytest]: https://github.com/lightningd/plugins/tree/master/archived/paytest [paythrough]: https://github.com/andrewtoth/paythrough [pers-chans]: https://github.com/lightningd/plugins/tree/master/persistent-channels [plugin-docs]: https://lightning.readthedocs.io/PLUGINS.html [poncho]: https://github.com/fiatjaf/poncho -[probe]: https://github.com/lightningd/plugins/tree/master/Unmaintained/probe -[prometheus]: https://github.com/lightningd/plugins/tree/master/Unmaintained/prometheus +[probe]: https://github.com/lightningd/plugins/tree/master/archived/probe +[prometheus]: https://github.com/lightningd/plugins/tree/master/archived/prometheus [pruning]: https://github.com/Start9Labs/c-lightning-pruning-plugin [python-api]: https://github.com/ElementsProject/lightning/tree/master/contrib/pylightning [python-api-pypi]: https://pypi.org/project/pylightning/ [python-teos]: https://github.com/talaia-labs/python-teos -[rebalance]: https://github.com/lightningd/plugins/tree/master/Unmaintained/rebalance +[rebalance]: https://github.com/lightningd/plugins/tree/master/archived/rebalance [reckless]: https://github.com/darosior/reckless [reporter]: https://github.com/LNOpenMetrics/go-lnmetrics.reporter [sauron]: https://github.com/lightningd/plugins/tree/master/sauron [sitzprobe]: https://github.com/niftynei/sitzprobe [sparko]: https://github.com/fiatjaf/sparko -[summary]: https://github.com/lightningd/plugins/tree/master/Unmaintained/summary +[summary]: https://github.com/lightningd/plugins/tree/master/archived/summary [trustedcoin]: https://github.com/fiatjaf/trustedcoin [ts-api]: https://github.com/runcitadel/c-lightning.ts [watchtower-client]: https://github.com/talaia-labs/rust-teos/tree/master/watchtower-plugin diff --git a/Unmaintained/autopilot/README.md b/archived/autopilot/README.md similarity index 100% rename from Unmaintained/autopilot/README.md rename to archived/autopilot/README.md diff --git a/Unmaintained/autopilot/__init__.py b/archived/autopilot/__init__.py similarity index 100% rename from Unmaintained/autopilot/__init__.py rename to archived/autopilot/__init__.py diff --git a/Unmaintained/autopilot/autopilot.py b/archived/autopilot/autopilot.py similarity index 100% rename from Unmaintained/autopilot/autopilot.py rename to archived/autopilot/autopilot.py diff --git a/Unmaintained/autopilot/bech32.py b/archived/autopilot/bech32.py similarity index 100% rename from Unmaintained/autopilot/bech32.py rename to archived/autopilot/bech32.py diff --git a/Unmaintained/autopilot/c-lightning-autopilot.py b/archived/autopilot/c-lightning-autopilot.py similarity index 100% rename from Unmaintained/autopilot/c-lightning-autopilot.py rename to archived/autopilot/c-lightning-autopilot.py diff --git a/Unmaintained/autopilot/lib_autopilot.py b/archived/autopilot/lib_autopilot.py similarity index 100% rename from Unmaintained/autopilot/lib_autopilot.py rename to archived/autopilot/lib_autopilot.py diff --git a/Unmaintained/autopilot/pyproject.toml b/archived/autopilot/pyproject.toml similarity index 100% rename from Unmaintained/autopilot/pyproject.toml rename to archived/autopilot/pyproject.toml diff --git a/Unmaintained/autopilot/test_autopilot.py b/archived/autopilot/test_autopilot.py similarity index 100% rename from Unmaintained/autopilot/test_autopilot.py rename to archived/autopilot/test_autopilot.py diff --git a/Unmaintained/backup/README.md b/archived/backup/README.md similarity index 100% rename from Unmaintained/backup/README.md rename to archived/backup/README.md diff --git a/Unmaintained/backup/backend.py b/archived/backup/backend.py similarity index 100% rename from Unmaintained/backup/backend.py rename to archived/backup/backend.py diff --git a/Unmaintained/backup/backends.py b/archived/backup/backends.py similarity index 100% rename from Unmaintained/backup/backends.py rename to archived/backup/backends.py diff --git a/Unmaintained/backup/backup-cli b/archived/backup/backup-cli similarity index 100% rename from Unmaintained/backup/backup-cli rename to archived/backup/backup-cli diff --git a/Unmaintained/backup/backup.py b/archived/backup/backup.py similarity index 100% rename from Unmaintained/backup/backup.py rename to archived/backup/backup.py diff --git a/Unmaintained/backup/filebackend.py b/archived/backup/filebackend.py similarity index 100% rename from Unmaintained/backup/filebackend.py rename to archived/backup/filebackend.py diff --git a/Unmaintained/backup/poetry.lock b/archived/backup/poetry.lock similarity index 100% rename from Unmaintained/backup/poetry.lock rename to archived/backup/poetry.lock diff --git a/Unmaintained/backup/protocol.py b/archived/backup/protocol.py similarity index 100% rename from Unmaintained/backup/protocol.py rename to archived/backup/protocol.py diff --git a/Unmaintained/backup/pyproject.toml b/archived/backup/pyproject.toml similarity index 100% rename from Unmaintained/backup/pyproject.toml rename to archived/backup/pyproject.toml diff --git a/Unmaintained/backup/remote.md b/archived/backup/remote.md similarity index 100% rename from Unmaintained/backup/remote.md rename to archived/backup/remote.md diff --git a/Unmaintained/backup/server.py b/archived/backup/server.py similarity index 100% rename from Unmaintained/backup/server.py rename to archived/backup/server.py diff --git a/Unmaintained/backup/socketbackend.py b/archived/backup/socketbackend.py similarity index 100% rename from Unmaintained/backup/socketbackend.py rename to archived/backup/socketbackend.py diff --git a/Unmaintained/backup/test_backup.py b/archived/backup/test_backup.py similarity index 100% rename from Unmaintained/backup/test_backup.py rename to archived/backup/test_backup.py diff --git a/Unmaintained/backup/tests/pre-4090-backup.dbak b/archived/backup/tests/pre-4090-backup.dbak similarity index 100% rename from Unmaintained/backup/tests/pre-4090-backup.dbak rename to archived/backup/tests/pre-4090-backup.dbak diff --git a/Unmaintained/commando/README.md b/archived/commando/README.md similarity index 100% rename from Unmaintained/commando/README.md rename to archived/commando/README.md diff --git a/Unmaintained/commando/commando.py b/archived/commando/commando.py similarity index 100% rename from Unmaintained/commando/commando.py rename to archived/commando/commando.py diff --git a/Unmaintained/commando/requirements.txt b/archived/commando/requirements.txt similarity index 100% rename from Unmaintained/commando/requirements.txt rename to archived/commando/requirements.txt diff --git a/Unmaintained/commando/test_commando.py b/archived/commando/test_commando.py similarity index 100% rename from Unmaintained/commando/test_commando.py rename to archived/commando/test_commando.py diff --git a/Unmaintained/donations/LICENSE b/archived/donations/LICENSE similarity index 100% rename from Unmaintained/donations/LICENSE rename to archived/donations/LICENSE diff --git a/Unmaintained/donations/README.md b/archived/donations/README.md similarity index 100% rename from Unmaintained/donations/README.md rename to archived/donations/README.md diff --git a/Unmaintained/donations/donations.py b/archived/donations/donations.py similarity index 100% rename from Unmaintained/donations/donations.py rename to archived/donations/donations.py diff --git a/Unmaintained/donations/poetry.lock b/archived/donations/poetry.lock similarity index 100% rename from Unmaintained/donations/poetry.lock rename to archived/donations/poetry.lock diff --git a/Unmaintained/donations/pyproject.toml b/archived/donations/pyproject.toml similarity index 100% rename from Unmaintained/donations/pyproject.toml rename to archived/donations/pyproject.toml diff --git a/Unmaintained/donations/templates/donation.html b/archived/donations/templates/donation.html similarity index 100% rename from Unmaintained/donations/templates/donation.html rename to archived/donations/templates/donation.html diff --git a/Unmaintained/donations/test_donations.py b/archived/donations/test_donations.py similarity index 100% rename from Unmaintained/donations/test_donations.py rename to archived/donations/test_donations.py diff --git a/Unmaintained/drain/README.md b/archived/drain/README.md similarity index 100% rename from Unmaintained/drain/README.md rename to archived/drain/README.md diff --git a/Unmaintained/drain/__init__.py b/archived/drain/__init__.py similarity index 100% rename from Unmaintained/drain/__init__.py rename to archived/drain/__init__.py diff --git a/Unmaintained/drain/clnutils.py b/archived/drain/clnutils.py similarity index 100% rename from Unmaintained/drain/clnutils.py rename to archived/drain/clnutils.py diff --git a/Unmaintained/drain/drain.py b/archived/drain/drain.py similarity index 100% rename from Unmaintained/drain/drain.py rename to archived/drain/drain.py diff --git a/Unmaintained/drain/requirements-dev.txt b/archived/drain/requirements-dev.txt similarity index 100% rename from Unmaintained/drain/requirements-dev.txt rename to archived/drain/requirements-dev.txt diff --git a/Unmaintained/drain/requirements.txt b/archived/drain/requirements.txt similarity index 100% rename from Unmaintained/drain/requirements.txt rename to archived/drain/requirements.txt diff --git a/Unmaintained/drain/test_drain.py b/archived/drain/test_drain.py similarity index 100% rename from Unmaintained/drain/test_drain.py rename to archived/drain/test_drain.py diff --git a/Unmaintained/drain/utils.py b/archived/drain/utils.py similarity index 100% rename from Unmaintained/drain/utils.py rename to archived/drain/utils.py diff --git a/Unmaintained/feeadjuster/README.md b/archived/feeadjuster/README.md similarity index 100% rename from Unmaintained/feeadjuster/README.md rename to archived/feeadjuster/README.md diff --git a/Unmaintained/feeadjuster/clnutils.py b/archived/feeadjuster/clnutils.py similarity index 100% rename from Unmaintained/feeadjuster/clnutils.py rename to archived/feeadjuster/clnutils.py diff --git a/Unmaintained/feeadjuster/feeadjuster.py b/archived/feeadjuster/feeadjuster.py similarity index 100% rename from Unmaintained/feeadjuster/feeadjuster.py rename to archived/feeadjuster/feeadjuster.py diff --git a/Unmaintained/feeadjuster/requirements.txt b/archived/feeadjuster/requirements.txt similarity index 100% rename from Unmaintained/feeadjuster/requirements.txt rename to archived/feeadjuster/requirements.txt diff --git a/Unmaintained/feeadjuster/test_clnutils.py b/archived/feeadjuster/test_clnutils.py similarity index 100% rename from Unmaintained/feeadjuster/test_clnutils.py rename to archived/feeadjuster/test_clnutils.py diff --git a/Unmaintained/feeadjuster/test_feeadjuster.py b/archived/feeadjuster/test_feeadjuster.py similarity index 100% rename from Unmaintained/feeadjuster/test_feeadjuster.py rename to archived/feeadjuster/test_feeadjuster.py diff --git a/Unmaintained/helpme/Makefile b/archived/helpme/Makefile similarity index 100% rename from Unmaintained/helpme/Makefile rename to archived/helpme/Makefile diff --git a/Unmaintained/helpme/README.md b/archived/helpme/README.md similarity index 100% rename from Unmaintained/helpme/README.md rename to archived/helpme/README.md diff --git a/Unmaintained/helpme/helpme.py b/archived/helpme/helpme.py similarity index 100% rename from Unmaintained/helpme/helpme.py rename to archived/helpme/helpme.py diff --git a/Unmaintained/helpme/requirements-dev.txt b/archived/helpme/requirements-dev.txt similarity index 100% rename from Unmaintained/helpme/requirements-dev.txt rename to archived/helpme/requirements-dev.txt diff --git a/Unmaintained/helpme/requirements.txt b/archived/helpme/requirements.txt similarity index 100% rename from Unmaintained/helpme/requirements.txt rename to archived/helpme/requirements.txt diff --git a/Unmaintained/helpme/test_helpme.py b/archived/helpme/test_helpme.py similarity index 100% rename from Unmaintained/helpme/test_helpme.py rename to archived/helpme/test_helpme.py diff --git a/Unmaintained/historian/README.org b/archived/historian/README.org similarity index 100% rename from Unmaintained/historian/README.org rename to archived/historian/README.org diff --git a/Unmaintained/historian/cli/backup.py b/archived/historian/cli/backup.py similarity index 100% rename from Unmaintained/historian/cli/backup.py rename to archived/historian/cli/backup.py diff --git a/Unmaintained/historian/cli/common.py b/archived/historian/cli/common.py similarity index 100% rename from Unmaintained/historian/cli/common.py rename to archived/historian/cli/common.py diff --git a/Unmaintained/historian/cli/db.py b/archived/historian/cli/db.py similarity index 100% rename from Unmaintained/historian/cli/db.py rename to archived/historian/cli/db.py diff --git a/Unmaintained/historian/common.py b/archived/historian/common.py similarity index 100% rename from Unmaintained/historian/common.py rename to archived/historian/common.py diff --git a/Unmaintained/historian/gossipd.py b/archived/historian/gossipd.py similarity index 100% rename from Unmaintained/historian/gossipd.py rename to archived/historian/gossipd.py diff --git a/Unmaintained/historian/historian-cli b/archived/historian/historian-cli similarity index 100% rename from Unmaintained/historian/historian-cli rename to archived/historian/historian-cli diff --git a/Unmaintained/historian/historian.py b/archived/historian/historian.py similarity index 100% rename from Unmaintained/historian/historian.py rename to archived/historian/historian.py diff --git a/Unmaintained/historian/poetry.lock b/archived/historian/poetry.lock similarity index 100% rename from Unmaintained/historian/poetry.lock rename to archived/historian/poetry.lock diff --git a/Unmaintained/historian/pyproject.toml b/archived/historian/pyproject.toml similarity index 100% rename from Unmaintained/historian/pyproject.toml rename to archived/historian/pyproject.toml diff --git a/Unmaintained/historian/test_historian.py b/archived/historian/test_historian.py similarity index 100% rename from Unmaintained/historian/test_historian.py rename to archived/historian/test_historian.py diff --git a/Unmaintained/jitrebalance/jitrebalance.py b/archived/jitrebalance/jitrebalance.py similarity index 100% rename from Unmaintained/jitrebalance/jitrebalance.py rename to archived/jitrebalance/jitrebalance.py diff --git a/Unmaintained/jitrebalance/requirements.txt b/archived/jitrebalance/requirements.txt similarity index 100% rename from Unmaintained/jitrebalance/requirements.txt rename to archived/jitrebalance/requirements.txt diff --git a/Unmaintained/jitrebalance/test_jitrebalance.py b/archived/jitrebalance/test_jitrebalance.py similarity index 100% rename from Unmaintained/jitrebalance/test_jitrebalance.py rename to archived/jitrebalance/test_jitrebalance.py diff --git a/Unmaintained/jitrebalance/tests/hold_htlcs.py b/archived/jitrebalance/tests/hold_htlcs.py similarity index 100% rename from Unmaintained/jitrebalance/tests/hold_htlcs.py rename to archived/jitrebalance/tests/hold_htlcs.py diff --git a/Unmaintained/jitrebalance/tests/refuse_htlcs.py b/archived/jitrebalance/tests/refuse_htlcs.py similarity index 100% rename from Unmaintained/jitrebalance/tests/refuse_htlcs.py rename to archived/jitrebalance/tests/refuse_htlcs.py diff --git a/Unmaintained/noise/README.org b/archived/noise/README.org similarity index 100% rename from Unmaintained/noise/README.org rename to archived/noise/README.org diff --git a/Unmaintained/noise/noise.py b/archived/noise/noise.py similarity index 100% rename from Unmaintained/noise/noise.py rename to archived/noise/noise.py diff --git a/Unmaintained/noise/onion.py b/archived/noise/onion.py similarity index 100% rename from Unmaintained/noise/onion.py rename to archived/noise/onion.py diff --git a/Unmaintained/noise/primitives.py b/archived/noise/primitives.py similarity index 100% rename from Unmaintained/noise/primitives.py rename to archived/noise/primitives.py diff --git a/Unmaintained/noise/requirements-dev.txt b/archived/noise/requirements-dev.txt similarity index 100% rename from Unmaintained/noise/requirements-dev.txt rename to archived/noise/requirements-dev.txt diff --git a/Unmaintained/noise/requirements.txt b/archived/noise/requirements.txt similarity index 100% rename from Unmaintained/noise/requirements.txt rename to archived/noise/requirements.txt diff --git a/Unmaintained/noise/test_chat.py b/archived/noise/test_chat.py similarity index 100% rename from Unmaintained/noise/test_chat.py rename to archived/noise/test_chat.py diff --git a/Unmaintained/noise/zbase32.py b/archived/noise/zbase32.py similarity index 100% rename from Unmaintained/noise/zbase32.py rename to archived/noise/zbase32.py diff --git a/Unmaintained/paytest/README.org b/archived/paytest/README.org similarity index 100% rename from Unmaintained/paytest/README.org rename to archived/paytest/README.org diff --git a/Unmaintained/paytest/paytest.py b/archived/paytest/paytest.py similarity index 100% rename from Unmaintained/paytest/paytest.py rename to archived/paytest/paytest.py diff --git a/Unmaintained/paytest/poetry.lock b/archived/paytest/poetry.lock similarity index 100% rename from Unmaintained/paytest/poetry.lock rename to archived/paytest/poetry.lock diff --git a/Unmaintained/paytest/requirements.txt b/archived/paytest/requirements.txt similarity index 100% rename from Unmaintained/paytest/requirements.txt rename to archived/paytest/requirements.txt diff --git a/Unmaintained/paytest/test_paytest.py b/archived/paytest/test_paytest.py similarity index 100% rename from Unmaintained/paytest/test_paytest.py rename to archived/paytest/test_paytest.py diff --git a/Unmaintained/probe/README.md b/archived/probe/README.md similarity index 100% rename from Unmaintained/probe/README.md rename to archived/probe/README.md diff --git a/Unmaintained/probe/probe.py b/archived/probe/probe.py similarity index 100% rename from Unmaintained/probe/probe.py rename to archived/probe/probe.py diff --git a/Unmaintained/probe/requirements.txt b/archived/probe/requirements.txt similarity index 100% rename from Unmaintained/probe/requirements.txt rename to archived/probe/requirements.txt diff --git a/Unmaintained/probe/test_probe.py b/archived/probe/test_probe.py similarity index 100% rename from Unmaintained/probe/test_probe.py rename to archived/probe/test_probe.py diff --git a/Unmaintained/prometheus/README.md b/archived/prometheus/README.md similarity index 100% rename from Unmaintained/prometheus/README.md rename to archived/prometheus/README.md diff --git a/Unmaintained/prometheus/prometheus.py b/archived/prometheus/prometheus.py similarity index 100% rename from Unmaintained/prometheus/prometheus.py rename to archived/prometheus/prometheus.py diff --git a/Unmaintained/prometheus/requirements.txt b/archived/prometheus/requirements.txt similarity index 100% rename from Unmaintained/prometheus/requirements.txt rename to archived/prometheus/requirements.txt diff --git a/Unmaintained/prometheus/test_prometheus.py b/archived/prometheus/test_prometheus.py similarity index 100% rename from Unmaintained/prometheus/test_prometheus.py rename to archived/prometheus/test_prometheus.py diff --git a/Unmaintained/rebalance/README.md b/archived/rebalance/README.md similarity index 100% rename from Unmaintained/rebalance/README.md rename to archived/rebalance/README.md diff --git a/Unmaintained/rebalance/clnutils.py b/archived/rebalance/clnutils.py similarity index 100% rename from Unmaintained/rebalance/clnutils.py rename to archived/rebalance/clnutils.py diff --git a/Unmaintained/rebalance/rebalance.py b/archived/rebalance/rebalance.py similarity index 100% rename from Unmaintained/rebalance/rebalance.py rename to archived/rebalance/rebalance.py diff --git a/Unmaintained/rebalance/requirements.txt b/archived/rebalance/requirements.txt similarity index 100% rename from Unmaintained/rebalance/requirements.txt rename to archived/rebalance/requirements.txt diff --git a/Unmaintained/rebalance/test_rebalance.py b/archived/rebalance/test_rebalance.py similarity index 100% rename from Unmaintained/rebalance/test_rebalance.py rename to archived/rebalance/test_rebalance.py diff --git a/Unmaintained/summary/README.md b/archived/summary/README.md similarity index 100% rename from Unmaintained/summary/README.md rename to archived/summary/README.md diff --git a/Unmaintained/summary/__init__.py b/archived/summary/__init__.py similarity index 100% rename from Unmaintained/summary/__init__.py rename to archived/summary/__init__.py diff --git a/Unmaintained/summary/requirements.txt b/archived/summary/requirements.txt similarity index 100% rename from Unmaintained/summary/requirements.txt rename to archived/summary/requirements.txt diff --git a/Unmaintained/summary/summary.py b/archived/summary/summary.py similarity index 100% rename from Unmaintained/summary/summary.py rename to archived/summary/summary.py diff --git a/Unmaintained/summary/summary_avail.py b/archived/summary/summary_avail.py similarity index 100% rename from Unmaintained/summary/summary_avail.py rename to archived/summary/summary_avail.py diff --git a/Unmaintained/summary/test_summary.py b/archived/summary/test_summary.py similarity index 100% rename from Unmaintained/summary/test_summary.py rename to archived/summary/test_summary.py From b000c701e31bccd47430dccad953075a4b4263ba Mon Sep 17 00:00:00 2001 From: Michael Schmoock Date: Wed, 7 Feb 2024 09:43:10 +0100 Subject: [PATCH 23/23] github: fix workflow badge on readme page The old badge was pointing to the workflows name https://github.com/lightningd/plugins/workflows/Integration%20Tests/badge.svg However this seems to be always failing. Pointing to the workflow file main.yml, which only contains the one integration test workflow, gives a now green badge. I'm not totally into the github internals, so maybe I'm mistaken on this one. Feedback appreciated. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3636b4e4..95011b88b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Community curated plugins for Core-Lightning. -![Integration Tests](https://github.com/lightningd/plugins/workflows/Integration%20Tests/badge.svg) +![Integration Tests](https://github.com/lightningd/plugins/actions/workflows/main.yml/badge.svg) ## Available plugins