File c-lightning.changes of Package c-lightning

-------------------------------------------------------------------
Thu Aug 28 17:50:14 UTC 2025 - marec@detebe.org

- Update to version 25.9.0rc4:
  * change log updated for 25.09rc4
  * updates for rc4: name changes and uv
  * bkpr: don't leak event in fillin_apy_acct_details.
  * wallet: print error, don't just abort, on unknown tags.
  * wallet: handle null currency fields, skip & warn on mismatch.
  * wallet: don't warn if ignored is unset in accounts.db.
  * common: reintroduce "ignored" primary tag.
  * CHANGELOG.md: note that we broke custom rust notifications.
  * uv.lock: update for rc3.

-------------------------------------------------------------------
Wed Aug 27 18:52:27 UTC 2025 - marec@detebe.org

- Update to version 25.9.0rc3:
  * small changes of any reference to rc2 to rc3
  * 2nd attempt rc3 change log
  * rc3 change log updates
  * htlc_wire: fix crash when adding an HTLC
  * pytest: test for crashing with HTLC added tlvs.
  * pay: fix uninitialized var in debug output.
  * offers: loosen payment_constraints on invoices' blinded paths.
  * plugins: generate certificates with required extensions

-------------------------------------------------------------------
Sat Aug 23 10:51:27 UTC 2025 - marec <marec@detebe.org>

- Update to version 25.9.rc2:
  * change version 25.09rc2 for release
  * updated changelog.md for rc2
  * lightningd: fix name of chainmoves journal entry.
  * lightningd: allow account db version 18.
  * ci: remove fetch-tags from checkout
  * script: Poetry migration to uv for Fedora build
  * script: Update rust version to 1.85
  * Run version script for rc1.
  * changelog for 25.09rc1
  * ci: Remove nix check
  * nix: Upgrade channel and flake checker actions
  * rust: Bump cln-plugin==0.5
  * rust: Roll the cln-grpc and cln-rpc versions due to schema changes
  * pytest: wait to make sure moves are registered in coinmoves tests.
  * plugins/bkpr/test/run-recorder: don't hand NULL cmd.
  * bkpr: restore run-recorder.
  * wallet: generate fixup chainmoves and channelmoves when first starting.
  * lightningd: migrate events from bookkeeper at startup.
  * db: support mode where we don't want to create the db.
  * pytest: restore bookkeeper to recover tests.
  * bookkeeper: remove database.
  * bkpr: remove missing event handling.
  * bkpr: convert all the local db sql queries into calls to sql plugin.
  * bkpr: take, don't steal in new_channel_event.
  * bkpr: helpers to query sql plugin for chainmoves and channelmoves.
  * wallet: remove notification on duplicate chain entries.
  * bkpr: use list commands instead of subscribing to notifications.
  * bookkeeper: call refresh before processing any commands.
  * plugins/bkpr/test/run-recorder: remove.
  * libplugin: allow sync interface to be used at all times.
  * bkpr: forward utxo_deposit / utxo_spend notifications to new injectutxodeposit / injectutxospend calls.
  * bookkeeper: don't set origin account to "null" if that's specified as transfer_from.
  * common: use "foreign" in extra_tags to indicate a chain movement is injected.
  * lightningd: new internal-use commands to allow utxo spend / deposit injection.
  * pytest: use assert inside event testing.
  * bkpr: add in-mem & datastore storage for external blockheights.
  * bkpr: pass bkpr struct into all functions in recorder.c.
  * bookkeeper: use the in-memory rebalances.
  * bkpr: infrastructure to keep rebalance pairs in mem & datastore.
  * bkpr: use the in-memory event descriptions, not the database ones.
  * bookkeeper: infrastructure to keep descriptions (annotations) in mem and datastore.
  * bkpr: remove onchain_fees table.
  * bkpr: save and restore onchain_fees from the datastore, not the db.
  * bkpr: keep onchain_fees in memory & datastore.
  * bkpr: remove redundant account_onchain_fees
  * bkpr: move onchain fees access into bkpr/onchain_fee.
  * bkpr: remove accounts table from db altogether.
  * ]bkpr: save accounts in the datastore instead of database.
  * bkpr: use direct names, not another table, in db.
  * bkpr: cache accounts table in memory.
  * bkpr: find_or_create_account() instead of raw new_account().
  * bkpr: move account db functions from recorder.c into account.c.
  * bkpr: expose `struct bkpr` to outside bookkeeper.c.
  * bookkeeper: use modern plugin_get_data() instead of globals.
  * bkpr: strings in structures should be const.
  * bkpr: send a backtrace if we get a fatal db event.
  * bkpr: NULL-out the function migrations.
  * sql: avoid trying to do parallel refreshes.
  * pytest: test for parallel refresh.
  * plugins/sql: use `created_index` as primary key, where available.
  * sql: optimize listchainmoves and listchannelmoves accesses.
  * plugins/sql: add listchainmoves and listchannelmoves.
  * lightningd: add chainmoves and channelmoves to wait command.
  * pytest: test listcoinmoves / listchannelmoves during penalties.
  * pytest: test coinmoves in the case of unexpected fulfill.
  * pytest: test accounting is correct for onchain fulfills.
  * pytest: test listcoinmoves / listchannelmoves for unilateral closes.
  * lightningd: add listchainmoves and listchannelmoves commands.
  * lightningd: speed mapping from coinmoves table to channel for listcoinmoves.
  * wallet: add accessors to read chain_moves & channel_moves tables.
  * lightningd: reorder JSON fields into more coherent order.
  * common: fix values of enum mvt_tag since they're now embedded in the db.
  * wallet: record all coin movements into chain_moves or channel_moves tables.
  * wallet: update chain_moves and channel_moves tables from channel_id -> nonchannel in db when we close it.
  * wallet: routines to append to chain_moves and channel_moves tables.
  * wallet: chain_moves and channel_moves tables.
  * db: helper for binding/reading bitcoin_outpoint.
  * pytest: check current bookkeeper events in saved test_migration snapshot.
  * openingd: test that channel open seems possible before bothering peer.
  * pytest: test that opening a channel below our own minimum fails *gracefully*.
  * xpay: add option to pay bip353.
  * xpay: support paying a (simple) bolt12 offer directly.
  * doc: build documentation for fetchbip353 command.
  * doc: Add macOS uv instructions to installations.md
  * offers: fix fetchinvoice from using disconnected peers.
  * pytest: test for fetchinvoice when a onion-message-capable peer is disconnected.
  * reckless-rpc: increase initial buffer size
  * reckless: reduce uv verbosity and avoid flooding output
  * reckless: store source locations as correct type
  * avoid UB when calling ctype functions
  * doc/schemas: add websocket to type in doc/schemas/notification/connect.json
  * msggen: add override for connect notification in cln-rpc aswell
  * cln-plugin: adapt send_custom_notification to send modern-style notifications.
  * pyln-testing: check plugin notifications against any extant notification schemas.
  * lightningd: add dev option to save hooks and notifications to/from plugins.
  * pyln-client: create modern-style notifications if caller doesn't.
  * libplugin: correctly wrap notifications we send in the notification name.
  * lightningd: make notifications from plugins just like native ones.
  * pyln-client: adapt for modern plugin notifications.
  * lightningd: deprecate `null` short_channel_id and `unknown` old_state in channel_state_changed notification
  * connectd: drop excess gossipd messages.
  * pytest: simple test for pay's custom notifications.
  * script: Add `update-versions` in Makefile again
  * docs: Added `fetchbip353` example in autogenerate script
  * pytest: fix flake in test_route_by_old_scid
  * pyln-testing: don't run reckless under valgrind.
  * xpay: add developer option dev_maxparts
  * askrene: add maxparts
  * askrene: refine: add helper function remove_flows
  * lightningd: use json_escape_unescape_len for log message strings received from plugins
  * use json_escape_unescape_len()
  * ccan: update to get json_escape_unescape_len()
  * lightningd: add channel_type to openchannel & openchannel2 hooks.
  * chore: fix some minor issues
  * common: set errno=0 before calling strto{l,ul,ull}
  * lightningd: have onchaind inform us when to make a channel penalty_adj.
  * bkpr: remove different currency support.
  * bkpr: remove currency support from balances.
  * bkpr: remove unused "account_exits" parameter to account_get_balance().
  * common: put "external" and "wallet" strings, and test functions into common/coin_mvt.h
  * lightningd: extract core of coin_movement notification, for use in list functions.
  * common: make chain_coin_mvt's outpoint member a non-pointer.
  * coin_mvt: put timestamp into the struct.
  * lightningd: separate coin_movement `tags` array into `primary_tag` and `extra_tags`.
  * common: implement primary_mvt_tag() to extract primary tag.
  * coin_mvt: use bitmap instead of tal_arr for tags.
  * common: mvt_tag parsing routine.
  * common: mvt_tag_strs() function to turn tags array into strings.
  * common: enforce the use of a "primary" tag in coin_mvt tags.
  * pytest: don't assume that tags will always be in the same order.
  * common: rename enum mvt_tag values.
  * common/coin_mvt: make more fields const, reorder fields.
  * common/coin_mvt: add struct mvt_account_id to separate channels from others.
  * common/coin_mvt: use enum rather than true/false for credit/debit.
  * common: coin movements for payments need group id as well as part id.
  * common/coin_mvt: make more parameters const.
  * common: remove `struct coin_mvt` altogether.
  * lightningd: use channel_coin_mvt / chain_coin_mvt directly for notifications.
  * db: hand amount_msat / amount_sat by copy, not pointer.
  * common: remove "ignored" tag.
  * onchaind: don't consider our anchors to be payments into the wallet.
  * libplugin: make jsonrpc_set_datastore_binary() take an explicit length.
  * db: better diagnostics when a query fails.
  * pytest: save pre-movement dbs, and accounting dbs.
  * common/htlc_wire: add towire/fromwire helpers for wrapped tlv streams.
  * common: handle taken() extra_tlvs in new_existing_htlc properly.
  * tools: Remove lockfiles from spell-checking
  * tools: Filter "highlight" case insensitive
  * docs: Add extra_tlvs to the htlc_accepted_hook doc
  * tests: Add tests for extra_tlvs in hook
  * lightningd: Add extra_tlvs to htlc_accepted_hook
  * channeld: Add extra_tlvs to incomming wire msg
  * channeld: Add extra_tlvs to wire htlcs
  * channeld: add extra_tlvs from update_add_htlc msg
  * cln-bip353: add plugin that fetches payment instructions from human readable addresses
  * common/json_parse_simple: make convenience functions inline
  * lightningd: fix race with crossover pings.
  * connectd: warn if we ignore peer incoming for longer than 5 seconds.
  * gossipwith: add flag to insist that we receive all messages.
  * pytest: test xpay notifications.
  * xpay: add `pay_part_start` and `pay_part_end` notifications.
  * libplugin: correctly mark that plugin_notification_end STEALS the stream.
  * common: add json_add_timerel helper.
  * connectd: Implement sending of `start_batch`
  * channeld: Cleaner error messages
  * channeld: Implement receiving of `start_batch`
  * splice: Remove `batch_size` from `commitment_signed`
  * splice: Add `start_batch` and an internal wire type
  * pytest: test persistence of old scids, even if we spliced multiple times.
  * lightningd: use the hash table to lookup scids.
  * lightningd: require local_alias in new_channel().
  * wallet: we can assume local_alias field is non-null.
  * bitcoin: have random_scid() function.
  * lightningd: maintain a hash table of short_channel_id, for faster lookup.
  * lightningd: consider old scids when looking up channels (for routing).
  * lightningd: save previous short_channel_ids during splice, and keep in db.
  * wallet: remove now-gratuitous counters from update statements.
  * pytest: test if we correctly route using old scids after splice
  * channeld: Move counting code to its own function
  * psbt: don’t accumlate 0 lenth widtness data
  * splice: Test for two channel splice
  * splice: Even if the psbt’s “match” the sig data may vary
  * splice: Fix cross-channel splices
  * interactive_tx: Add verbose logging
  * splice: Add details to log message
  * splice: Sign shared output early
  * splice: Change abort rules to sent sigs
  * splice: Track if splice sigs are sent
  * splice: Add field to DB to track if we’ve sent sigs
  * splice: Add details to log message
  * docs: Added json_object and json_group_array  to permitted_sqlite3_functions list
  * tests: add sql json function tests
  * plugin: Allow json_object and json_group_array functions in sql plugin
  * openingd: remove compat hacks to "intuit" opt_scid_alias.
  * lightningd: always tell openingd/dualopend what channel type we want.
  * pytest: actually test channel_type when negotiating prviate channel.
  * pytest: test what happens if we *explicitly* ask for a zeroconf channel.
  * pytest: use _ not - in plugin options to zeroconf-selective.py.
  * openingd/dualopend: don't allow peer not to send channel_type.
  * lightningd: make option_channel_type compulsory.
  * docs: Update the developer getting started guide
  * reckless: add uv installer support for legacy projects
  * pytest: test python plugin installation via uv
  * pytest: refactor reckless check_stderr
  * pytest: add reckless regex search
  * reckless: add uv python env installation method
  * reckless: correct direct install from local repo subdirectory
  * reckless: fix installer search
  * tools: enforce minimum sqlite3 version number.
  * db: drop support for sqlite3 < 3.14.
  * sqlite3: consistently comment where we want to upgrade.
  * fix: coincurve build issue
  * fix: replace deprecated flask.escape with markupsafe.escape
  * chore: add libffi
  * chore: add poetry for reckless
  * chore: update docs for uv
  * feat: update release pipeline
  * feat: replace poetry with uv in Makefiles
  * fix: flake8 lint rules
  * fix: macOS for grpico-tools
  * feat: replace poetry with uv for dependency management
  * feat: add pytest config
  * feat: add __init__.py  in packages
  * refactor: pyproject.toml poetry to uv + hatch
  * askrene: paranoid checks ...
  * askrene: refine: remove refine_with_fee_and_limits
  * askrene: rework the caller of the MCF solver
  * askrene: refine: add a step to increase flows ...
  * askrene: refine: expose some of the refine API
  * askrene: refine: disable HTLC min violations
  * askrene: refine: remove flows with HTLC min faults
  * askrene: add new functions to refine flows
  * docs: Updated Connection URI doc to clearify certs order
  * channel: Add test for channel state max
  * channel: Fix channel state max value
  * hsmd: don't assert that our own locktime is > 0.
  * pytest: test for watchtime-blocks=0
  * fuzz-tests: Add coverage increasing inputs to seed corpora
  * fuzz-tests: Make `fuzz-bolt12-invrequest-decode` roundrip
  * configure: Fix debug symbols for installed binaries on macOS
  *  configure: Add macOS-specific debug flags for libbacktrace compatibility
  * nit: installation.md
  * ci: Shasums updated for libsqlite in Ubuntu Noble
  * clnrest: add more valid request and response types
  * wss-proxy: replaced by a rust version
  * doc: fix typo and missing `ws:` prefix documentation.
  * askrene: mcf: trade granularity for performance
  * askrene: prune un-used arcs
  * common/amount: add ceil division operation on msat
  * askrene: update the docs on auto.no_mpp_support
  * askrene: add algorithm for single path routing
  * askrene: add internal API for single-path routes
  * askrene: refactor MCF
  * pytest: add debug print to diagnose flake in test_peer_anchor_push
  * pytest: avoid bad gossip flake in test_htlc_no_force_close
  * pytest: really fix flake in test_reconnect_signed
  * pytest: fix flake in test_splicing_rbf
  * askrene: add a dev parameter to switch algorithm
  * askrene: fix up getroutes_info struct.
  * askrene: move get_routes into do_getroutes.
  * askrene: extract getroutes json formatting function.
  * askrene: extracet convert_flows_to_routes into its own function.
  * plugins/askrene: extract apply_layers into its own function.
  * askrene: houst struct getroutes_info higher to clarify following patches.
  * askrene: refactor get_routes ...
  * doc: App development updated with standard connection URI format
  * askrene: add runtime of getroutes to the logs
  * cln-plugin: don't panic if notification handler returns error
  * doc: Remove c-lightning-REST documentation
  * plugins/sql: fix doc formatting for tables with multiple indices.
  * fuzz-tests: Add a seed corpus for the new test
  * fuzz-tests: Add differential test for HMAC-SHA256
  * devtools/credit: add aliases of previous namers
  * fuzz-tests: Add coverage-increasing inputs to seed corpora
  * fuzz-tests: Enhance b64_encode() validation with roundtrip decoding
  * logs: A basic javascript log viewer
  * hsmtool: implement new "derivetoremote" method
  * BOLT11: Make payment secret field ('s') mandatory
  * pytest: fix up bolt11 tests to include `s` field.
  * bolt11: don't accept wrong-length p, h, s or n fields.
  * common/bolt11: meet the new tighter parsing requirements.
  * lightningd: update comments about known preimages for missing HTLC outputs.
  * wire: use real peer_storage messages now their format is fixed.
  * wire: update splice patch to produce expected peer_wire.csv.
  * channeld: remove experimental-upgrade-protocol.
  * doc: recommend injectpaymentonion in place of sendonion.
  * doc: be explicit (with tests!) on when we don't know amount_msat for listsendpays.
  * doc: Change commando plugin title
  * doc: Update image on App Development page
  * doc: Update json-rpc-api categories due to updated RPC links
  * doc: Fix links to avoid 404 error
  * doc: Update Commando plugin details and link
  * doc: Move deprecated features page from API reference list to Developer's guide
  * docs: Fix script used to update versions in point release instructions
  * doc: flesh out PR section of coding style guidelines.
  * lightningd: remove experimental-anchors / experimental-onion-messages.
  * commando: remove old commando rune commands.
  * lightningd: remove clnrest override options.
  * lightningd: remove --max-locktime-blocks.
  * Makefile: update CLN_NEXT_VERSION to v25.09.
  * deprecations: update v26.05 to v26.06.
  * deprecations: update v26.02 to v26.03.
  * deprecations: update v25.11 to v25.12.
  * deprecations: update v25.08 to v25.09.

-------------------------------------------------------------------
Mon Jun 16 18:18:32 UTC 2025 - marec@detebe.org

- Update to version 25.5.0:
  * meta: update changelog for v25.05
  * github: Update release dates for 25.09
  * pytest: fix flake in test_anchorspend_using_to_remote
  * ccan: update for FreeBSD compile fixes.
  * wallet: load closed channels at init
  * python: raise minimum supported python version to 3.9
  * lightningd: fix log crash on weird escape lines from plugin.
  * CHANGELOG.md: warn that spec compliance mean we broke splicing.
  * gossipd: check for existing channel announcement before sigcheck
  * CI: Update Ubuntu version from 20 to 22 for Github Actions
  * ci: Fix noble repro build by updating sqlite3 version and shasums
  * python: upgrade grpcio-tools to 1.69.0 and protobuf to 5.29.4 for python3.13 compatibility
  * meta: update changelog for 25.05rc1
  * release: update version for 25.05rc1
  * pytest: fix races now connecting is slightly slower.
  * lightningd: don't complain when gossipd gives us channel_update for dying channel.
  * wallet: fix incorrect channel_htlcs id migration.
  * pytest: test to crash on migration from old db.
  * chanbackup: unbias our random peer selection.
  * lightningd: enable peer storage by default,
  * pytest: make test_v2_rbf_liquidity_ad more robust against other datastore users.
  * chanbackup: don't send our backups to peers if they would be overlength.
  * chanbackup: only send channel backups to max 2 peers at a time.
  * chanbackup: use peer table instead of calling "listpeerchannels".
  * chanbackup: cache available peers.
  * chanbackup: use the cache instead of calling listdatastore every time.
  * chanbackup: use local memory to store peer backups.
  * libplugin: fix jsonrpc_set_datastore_binary/jsonrpc_set_datastore_string with NULL cb.
  * chanbackup: only store backups for peers with current/previous channels.
  * chanbackup: use modern plugin_data.
  * chanbackup: less logging in preparation for default enable.
  * chanbackup: remove unnecessary allocation.
  * chanbackup: add spec quotes now we have this in the spec.
  * pytest: fix flake in test_gossip_force_broadcast_channel_msgs caused by ping timeout.
  * gossipwith: add --handle-pings flag.
  * lightningd: fix crash in "shouldn't happen" path.
  * common/bolt11: validate public keys in routing hints
  * splice: Adjust `batch_size` TLV to match Eclair’s
  * msggen: add signmessagewithkey
  * pytest: fix flake in test_peer_anchor_push
  * pytest: fix case where test can do unilateral close
  * lightningd: send announcement_signatures once channel is ready, don't wait until 6 deep.
  * lightningd: don't hand redundant block_height to block notifications.
  * gossipd: don't spam the log on duplicate channel_update.
  * lightningd: split channel update creation functions.
  * lightningd: add another stae check function.
  * channeld: allow announcement_signatures during splice.
  * closingd: ignore announcement_signatures during closing.
  * lightningd: rename `anchor_confirms` to `funding_confirms`.
  * Makefile: escape single-quotes in VERBOSE $(ECHO) argument
  * doc: properly handle ```preformatted blocks```
  * psbt: unused code path could leak
  * splice: Eclair Interop — reestablish corner case
  * splice: Test fix for test crash splice
  * pytest: search for less escaped log messages
  * lightningd: pass all log lines to warning notifiers.
  * lightningd: simplify and optimize plugin escape handling.
  * plugin_log_handle: accommodate multi-line messages
  * pytest: fix test_bitcoind_fail_first to accept multi-line broken messages.
  * reckless: don't update a plugin if a specific tag was previously installed
  * reckless: don't return error if update is unnecessary
  * reckless: only proceed with update when appropriate
  * reckless: return result from update
  * reckless: provide user feedback at info level if enable fails
  * reckless: add update command
  * reckless: refactor install
  * doc: update reckless documentation for direct install
  * pytest: test reckless direct install
  * reckless: store absolute paths in metadata
  * reckless: handle a direct source in the form of a git repo url
  * reckless: accept a full local path as source+name
  * reckless: fix installation from local directories with subpaths
  * pytest: fix flake in replay tests.
  * pytest: fix flake in test_pay_get_error_with_update.
  * pytest: use xpay, not pay for test_multichan_stress/
  * pytest: fix flake in test_update_fee_reconnect.
  * pytest: fix flake in test_zeroconf_forget
  * use amount_msat_mul_div operation to compute fees
  * askrene: fixed routing in high capacity channels
  * askrene-inform-channel: change order of operations
  * Separate reckless utility (1) and reckless rpc (7) documentation
  * sendonion: add total_amount_msat parameter
  * splice: Wait for mempool in tests
  * splice: Add more explicit error messages
  * splice: Message sorting should be using txid parsing
  * splice: Verbose logging for Eclair interop
  * splice: Add test for splice RBF
  * splice: Changing encoding of TLV funding_txid
  * splice: Improve log message for handle_peer_commit_sig
  * splice: Fix txid watch for splice RBF
  * splice: Add support for `tx_abort` during RBF
  * splice: Update test for new reestablish behavior
  * gossip: Limit announcement sigs reply
  * splice: Add verbose log messages for new reestablish TLV
  * splice: Enable user splice RBF
  * splice: Splice script should not abort on sign
  * splice: Enable the receiving of splice RBF
  * splice: Only send or recv commit sig if needed
  * splice: Decrement `next_commitment_number` for Eclair
  * splice: Update to Eclair style of reestablish
  * splice: Allow commit_sig batch in any order
  * splice: Update `our_funds` during splice_lock
  * splice: Clean error statement
  * PSBT: Clean up PSBT chunk allocations
  * splice: Prevent user from signing an unfinal splice
  * PSBT: tal_wally updates and docs
  * PSBT: Add audi_psbt routine
  * PSBT: Change bitcoin_tx routine to use TAKES
  * splice: Use clone instead of steal for PSBT
  * PSBT: Fix compare to not mutate memory
  * splice: Add check for correct txid in `splice_locked`
  * splice: Add splice_txid to splice_locked message
  * Add debug outputs and fix prevtx issue
  * Splice: Update PSBT version handling
  * splice: Resume `splice_locked` on reestablish
  * splice: Add locked field to inflight db
  * Splice: Rotating funding pubkey fix
  * hsmd: refactor hsmd_init
  * add signmessagewithkey RPC
  * add devtool/bip137-verifysignature utility
  * HSMD: add new wire BIP137 sign message API
  * tests: Fix test_emergencyrecover to check for ChannelReestablish
  * Workaround for LND to cause a force-close on our channel
  * doc: clarify that `all` with `utxos` spends all those utxos only.
  * bcli: don't try asking non-full nodes for blocks.
  * pytest: fix flake in test_anchorspend_using_to_remote
  * pytest: fix flake in test_reconnect_signed
  * askrene: fix API breakage, add tests.
  * pytest: fix flake in test_listforwards_and_listhtlcs
  * GitHub: fix "Automerge" button to *actually* depend on tests passing.
  * misc: update Alex's gpg key
  * gossipd: don't try to connect to ourselves if we need more peers.
  * CI: Use `eatmydata` to speed up test runs.
  * CI: don't wait on update-docs-examples
  * CI: don't abandon other runs just because one fails.
  * gossipd: fix false memleak positive in gossmap_manage
  * lightningd: use static buffer for common log path.
  * lightningd: keep a hash table for plugin notifications.
  * lightningd: optimize notifications.
  * lightningd: don't allocate to print node_id for logging.
  * common: don't enable steal loop checking unless we're doing memleak checking.
  * bench: why does sending payments take so long under CI?
  * connectd: fix nagle disabling logic.
  * pytest: test for lack of nagle delay.
  * pytest: fix flake in test_channel_lease_unilat_closes
  * pytest: fix flake in test_onionmessage_forward_fail
  * pytest: fix race in test_peer_anchor_push.
  * pytest: make test_peer_anchor_push robust against short sig generation.
  * pytest: test_fundpsbt_feerates: don't expect correct weight if we have a short signature.
  * pytest: fix occasional short tx in test_onchain_slow_anchor
  * pytest: fix typo in test_anchorspend_using_to_remote
  * pytest: fix flake in test_rbf_to_chain_before_commit
  * pytest: fix flake in test_rbf_reconnect_tx_construct
  * msggen: regenerate.
  * connectd: remove DNS seed lookups.
  * connectd: don't run more than one reconnect timer at once.
  * askrene-bias-channel: bias call add up.
  * lightningd: deprecate (undocumented!) "unknown" old_state field in channel_state_changed notification.
  * pytest: fix another flake in test_zeroconf_forget.
  * pytest: fix up feerates for elements.
  * bitcoin: make input witness weight calculation explicit.
  * pytest: create warning if we grind signature shorter than 71 bytes, don't fail.
  * pytest: enhance tests to test anchor and htlc tx feerates match targets.
  * txprepare: fix `all` amount when other amounts also specified.
  * wallet: implement dev-finalizepsbt for testing feerates.
  * anchorspend: fix weight estimation.
  * bitcoin: fix out-by-one-error in bitcoin_tx_input_weight.
  * channeld: be more accurate with the weight of commitment txs.
  * wallet: generalize wallet_utxo_boost.
  * common: fix utxo_spend_weight to understand how cheap P2TR is.
  * lightningd: fail too-large txs *before* opening channel.
  * wallet: make enum wallet_output_type UPPERCASE.
  * common/utxo: use a real type for the UTXO, not a boolean is_p2sh.
  * hsmd: rename simple_htlc to hsm_htlc, don't gratuitously dynamically allocate.
  * hsmd: roll the definition of simple_htlc into the csv.
  * hsmd: make our private utxo type, to ensure binary compatibility.
  * openingd: don't cast existing_htlc array to simple_htlc array.
  * lightningd: return addrtype when asking wallet_can_spend.
  * lightningd: don't attach an anchor at all if feerate already sufficient.
  * pytest: fix block count in test_zeroconf_forget.
  * pytest: don't use wrappers when we need dev arguments.
  * pyln-testing: fail typecheck gracefully on integer.
  * cln-plugin: trace level logging support
  * doc: Remove mentions of 'helpme' plugin
  * askrene: add LOG_TRACE to every rpc entry point
  * renepay: log renepay steps with LOG_TRACE
  * startup_regtest: show "trace" events in the logs
  * libplugin: fix LOG_TRACE for plugins
  * pyln-client: Adding disableoffer, enableoffer, fetchinvoice, listoffers and offer commands
  * pyln-client: reimplement NodeVersion, simply.
  * tests: Lock `listclosedchannels` sequence
  * doc: add poetry run to build instructions
  * Dockerfile: lock poetry installation to v2.0.1
  * poetry: update all pyproject.toml files for poetry 2.0.1
  * lsps: Add additional documentation
  * lsps: Add test for Lsps0
  * lsps: Add service implementation for LSPS0
  * lsps: Add client implementation of LSPS0
  * lsps: Implement the transport layer for lsps0
  * lsps: Add JSON-RPC V2 server
  * lsps: Implement JSON-RPC V2 client
  * lsps: Implement JSON-RPC message structure
  * pytest: fix race in test_zeroconf_forget
  * CI: disable the doc check for now.
  * libplugin: support LOG_TRACE level logging.
  * pytest: fix flake in test_setconfig_access.
  * CI: fix flake in test_penalty_htlc_tx_timeout
  * pytest: fix flake in test_xpay_twohop_bug
  * plugins: wss-proxy should not return invalid JSON if sed does not exist.
  * cln-rpc: Implemented the `From<u64>` trait for `ShortChannelId`
  * pytest: fix CI hang.
  * doc: Update May release dates
  * Change LOG_INFORM to LOG_TRACE in chanbackup
  * docs: add RUST_PROFILE to installation steps
  * doc: minor typos and standarizations to inline documentaion.
  * lightningd: respond with channel_reestablish if contacted about long-closed channels.
  * lightningd: save shachain for closed channels.
  * channeld: remove never-used "reestablish_only" option.
  * lightningd: keep closed channels in memory.
  * lightningd: allow up to 100 "slow open" channels before forgetting them.
  * lightningd: neaten delete_channel.
  * lightningd: delete all trace of nonexistent channels.
  * wallet: fix erroneous allocation of db_col_optional_scid.
  * lightningd: support index/start/end pagination for listhtlcs.
  * lightningd: add created_index and updated_index to listhtlcs.
  * lightningd: keep indexes updated for channel_htlcs table (aka listhtlcs).
  * lightningd: wait interface for htlcs indexes.
  * wallet: add updated_index to channel_htlcs table.
  * lightningd: allow a more general wait_index increase.
  * lightningd: improve wait API by making details fields per-subsystem.
  * wallet: fix test calls to wallet_htlc_update.
  * Makefile: remove doc/schemas/lightning-sql.json during `obsclean`.
  * lightningd: add `short_channel_id` option to listpeerchannels.
  * bkpr: fix unittest when HAVE_USDT=1
  * trace: prevent memleak report.
  * trace: don't mess up pointers when we reallocate.
  * CI: enable tracing so we test that code.
  * trace: double allocation if we run out.
  * common: remove unnecessary parent_id and remote fields.
  * trace: don't use randombytes_buf(), use pseudorand.
  * trace: use a static buffer instead of tal_fmt().
  * trace: we only ever add two tags, so use a static array.
  * trace: don't copy strings where we don't need to.
  * trace: fix parent handling (and test it!).
  * pytest: add test hooks so we can test tracing.
  * trace: track suspensions, check they match.
  * common/test/run-trace: increase iterations for trivial benchmarking.
  * db: replace UPDATE FROM syntax for SQLite compat
  * CI: Install protobuf on FreeBSD
  * CI: mark external subdirs safe for FreeBSD build
  * CI: install jq for FreeBSD build.
  * ci: install pkg-config for FreeBSD.
  * CI: Try to ensure that poetry can find rust to build packages.
  * CI: fix FreeBSD to use poetry to build.
  * CI: don't try to copy files out of FreeBSD VM
  * CI: don't download bitcoind for FreeBSD build.
  * CI: update freebsd test to python 3.10.
  * rs: Export NotificationStream
  * rs: Refine lib.rs checking for server flag
  * Makefile: also include cln-grpc/Makefile
  * cln-rpc/Makefile: fix typo CLN_RPC_GEN_ALL=>CLN_RPC_GENALL
  * fix: workaround for macOS AF_UNIX path error
  * pytest: fix test_recover_plugin flake
  * pytest: fix race in test_renepay where we didn't wait for all channels.
  * fuzz: don't fail when fuzzer generates valid Act 1 or 2 packets
  * fuzz: don't fail when fuzzer generates valid MAC
  * github: Remove prefix from docs and actions
  * tests: removed lightning- prefix from autogenerate example
  * plugins: Updated Makefile for SQL plugin
  * tools: Removed lightning- for schema filename before generating markdowns
  * make: Updated Make commands
  * schemas: remove `lightning-` prefix from filename
  * common/bolt11: enforce minimum witness program length for fallback addresses
  * docs: Update install docs for v25.02
  * doc: updating rust details
  * ci: Checkout with fresh tags in case the old tag reference is corrupted
  * Update Release Dates for May 2025
  * wallet: don't debug spam every output script as we rescan blocks.
  * make: remove old clnrest directory
  * trace: handle key being freed while suspended.
  * lightningd: rescan for missing p2wkph for closed channels.
  * lightningd: mangle parameter names in bitcoind_getrawblockbyheight_ so mocks don't get shadow warning.
  * wallet: extract "got utxo" function out of wallet_extract_owned_outputs.
  * wallet: remove unused total arg from wallet_extract_owned_outputs.
  * wallet: do change db to watch both p2tr and p2wkph for not-yet-closed channels.
  * lightningd: make sure we register all addresses at opening if peer doesn't support OPT_SHUTDOWN_ANYSEGWIT.
  * pytest: replicate error where we could miss our returned funds on mutual close.
  * pytest: generate broken db examples now, before we fix them.
  * pyln-testing: routines to save/restore entire blockchain.
  * wallet: don't assume wally_tx outputs tal_bytelen(script) is the same as script_len.
  * lightningd: don't spam logs on dangling outgoing HTLCs.
  * lightningd: fix anchorspend HTLC deadline logic.
  * lightningd: allow bitcoind_getrawblockbyheight callback to free call struct.
  * trace: minimal fix to avoid crash when > 128 traces active.
  * common: fix crash when we have a localmod with unrepresentable fee values.
  * chore: Add a simple pre-commit config
  * docs: Update instructions to append `rcN` to release candidates
  * dev: Start dev-listaddrs index from 1 not 0
  * docs: Update Security Information on Doc Portal
  * pytest: fix flake in test_blindedpath_privchan.
  * lightningd: avoid high memory usage spike at startup.
  * pytest: fix flake in test_onionmessage_ratelimit.
  * pytest: fix flake in test_setconfig_access.
  * pytest: fix flake in test_last_stable_connection.
  * pytest: fix flake in splice gossip test.
  * pytest: fix flake in test_fetchinvoice
  * lightningd: fix overzealous memleak report.
  * docs: Update Security Information
  * docs: Remove lightning-dev mailing list from README
  * hsmd: enable caching of sub-hashes when signing our PSBT inputs
  * psbt: avoid duplicating the input string when parsing from base64
  * wally: update libwally to 1.4.0
  * pytest: Test that we don't forget zeroconf channels
  * opening: Do not forget a zeroconf channel we own funds in
  * common: implement op_return test.
  * BOLTs: import spec additions for option_simple_close.
  * BOLTs: Add typo fixes and clarifications from "More clarifications around `channel_announcement` handling (#1220)"
  * BOLTs: Update to version with peer storage merged.
  * BOLTS: update which fixes BIP353 quotes, missing invreq field in invoices.
  * BOLTs: update for BOLT, which removes requirement to wait 6 blocks before sending announcement_signatures.
  * plugins/topology: remove local channels from listchannels.
  * plugins: all plugins must now support non-numeric JSON RPC id fields.
  * lightningd: no longer allow plugin flag options with non-false default values.
  * plugins: no longer accept 0/1 for boolean options.
  * lightningd: remove announce-addr-dns flag.
  * lightningd: remove --bind-addr and --addr munging on onions and local sockets.
  * lightningd: remove accept-htlc-tlv-types.
  * lightningd: disable old notification fields.
  * lightningd: remove old listconfigs output.
  * Makefile: update CLN_NEXT_VERSION.
  * doc: remove documentation for disabled commando commands.
  * libplugin: take into account --i-promise-to-fix-broken-api-user for output.
  * pytest: don't need allow-deprecated-apis in test_commando/test_commando_stress any more.
  * lightningd: fix use of deprecation macro.
  * crates: bump versions to 0.4.0
  * dockerfile: Add `poetry lock` before export for wss-proxy
  * ci: Fixed python to version 3.10
  * tools: Create config.vars before ./configure

-------------------------------------------------------------------
Sat Apr 26 10:35:59 UTC 2025 - marec@detebe.org

- Update to version 25.2.2:
  * meta: update changelog and versions for v25.02.2
  * db: replace UPDATE FROM syntax for SQLite compat

-------------------------------------------------------------------
Sat Apr 05 10:02:52 UTC 2025 - marec@detebe.org

- Update to version 25.2.1:
  * v25.02.1: CHANGELOG update
  * 25.02.1: update versions for release
  * poetry: update poetry.lock
  * ci: Checkout with fresh tags in case the old tag reference is corrupted
  * wallet: don't debug spam every output script as we rescan blocks.
  * make: remove plugins/clnrest dir prior to building clnrest
  * make: remove old clnrest directory
  * trace: handle key being freed while suspended.
  * lightningd: don't spam logs on dangling outgoing HTLCs.
  * lightningd: rescan for missing p2wkph for closed channels.
  * lightningd: mangle parameter names in bitcoind_getrawblockbyheight_ so mocks don't get shadow warning.
  * wallet: extract "got utxo" function out of wallet_extract_owned_outputs.
  * wallet: remove unused total arg from wallet_extract_owned_outputs.
  * wallet: do change db to watch both p2tr and p2wkph for not-yet-closed channels.
  * lightningd: make sure we register all addresses at opening if peer doesn't support OPT_SHUTDOWN_ANYSEGWIT.
  * wallet: don't assume wally_tx outputs tal_bytelen(script) is the same as script_len.
  * lightningd: allow bitcoind_getrawblockbyheight callback to free call struct.
  * lightningd: fix anchorspend HTLC deadline logic.
  * common: fix crash when we have a localmod with unrepresentable fee values.
  * trace: minimal fix to avoid crash when > 128 traces active.

-------------------------------------------------------------------
Wed Mar 05 20:09:38 UTC 2025 - marec@detebe.org

- Update to version 25.2.0:
  * meta: update changelog for 25.02
  * offers: don't add blinded path from a disconnected peer.
  * pytest: add a test that we don't use an offline peer for offer paths.
  * onchaind: fix crash if we enounter a tx with no witness.
  * gossipd: fix typo
  * lightningd: fix crash in onchaind replay.
  * meta: update CHANGELOG for 25.02rc3
  * doc: update examples without blinded path hop
  * offers: don't send blinded path to neighbor for *invoices*.
  * msggen: comply with grpc and rust naming conventions
  * msggen: add InjectOnionMessage
  * msggen: add channel_state_changed notification
  * meta: update changelog for v25.02rc2
  * pay: use correct CLTV values for blinded paths.
  * xpay: a test of a similar scenario to a real failure.
  * devtools/bolt12-cli: fix interpretation of blindedpay, amounts.
  * lightningd: redo closing negotiation even if we consider channel closed.
  * lightningd: create helper routine to make socketpair for a channel.
  * gossipd, chanbackup: reduce logging levels
  * onchaind: tell lightningd correct nSequence value for local leases.
  * onchaind: don't tell lightningd to send OUR_DELAYED_RETURN_TO_WALLET too early (leases).
  * pytest: add test that to-local output spend actually works during lease time.
  * meta: update changelog for 25.02
  * wss-proxy: update dependencies
  * lightningd: catch edits of config files *before* we're committed.
  * lightningd: check for writability before allowing setconfig.
  * pytest: don't add bookeeper-db option if bookkeeper is disabled.
  * setconfig: put vars in separate "config.setconfig" file.
  * common: return location of a ".setconfig" file when we load config.
  * setconfig: make source for setconfig "setconfig transient".
  * setconfig: add transient option.
  * lightningd: remove redundant command_check_only()
  * tests: Added test_emergencyrecoverpenaltytxn
  * test_misc.py: Add test_emergencyrecover_old_format_handling
  * Update SCB on every commitment update and handle new format
  * peer_control: Update shainchain and basepoints
  * wallet: Add 'wallet_stub_shachain_init' to persist shachain
  * lightningd: Modify stub_chan() to accomodate new fields
  * scb_wire: Define new subtype 'modern_scb_chan' with 'scb_tlvs'
  * Enable Length-Prefixed TLVs through Generator
  * tools/gen: Enable Subtypes to have TLVStreams
  * pytest: update examples generation for listpeerchannels
  * pytest: test sql deprecated field (now we have one!).
  * fetch max total htlc value from listpeerchannel
  * lightningd: actually deprecate the listpeerchannels field.
  * add max_htlc_value_in_flight_msat to listpeerchan
  * plugins/sql: allow deprecated field access if wildcards are used.
  * doc: Add enableoffer in makefile
  * pyln-testing: on cln 24.02.2 and earlier use log-level=debug
  * pyln-testing: set autoconnect-seeker-peers only in supported cln 24.11+
  * xpay: rename payment_failed to payment_give_up
  * pytest: test xpay gracefully handles failure after success.
  * xpay: add xpay-slow-mode to force waiting for all parts before returning.
  * xpay: refactor payment_succeeded.
  * pyln-client: test dev version
  * Use `check_output` instead of `run`
  * NodeVersion: Fix comparision in CI
  * Print proper error when version comparision fail
  * pyln-testing: Fix compatiblity with old versions
  * Refactor: Provide `lightningd` in constructor
  * Support to query version in pyln-client
  * docs: update bitcoin core install docs
  * lightningd: don't even transiently try to connect to private nodes if --dev-no-reconnect-private.
  * pytest: write a test for --dev-no-reconnect-private.
  * pytest: add multiline help test.
  * lightning-cli: use human_readable for help messages (unescapes \n for us).
  * lightningd: insert "raw" (unescaped) help messages from commands.
  * pyln-client: use `\n` as line separator in lightning-cli help
  * pyln-client: remove unused `doc` variable from plugin.
  * xpay: reduce log entries on rpc_command hook
  * docs: Lock example values to avoid unnecessary updates in schemas
  * pytest: address flakes from blinded paths in bolt12 offers
  * pytest: fix test_xpay_bolt12_no_mpp
  * docs: fix JSON indentation in 'connect' example Changelog-None
  * cln-grpc, clnrest: workaround for logging before shutdown
  * pytest: test that we indeed do MPP even if not advertized.
  * offers: fix incorrect name for field.
  * offers: correctly advertize MPP in invoice features.
  * xpay: in future, don't MPP to pay bolt12 invoices unless invoice explicitly says so.
  * common: if something isn't deprecated yet, it's always ok.
  * offers: don't call create_invoicereq twice.
  * xpay: avoid MPP if invoice does not allow it.
  * askrene: remove all small channels if there's no MPP support.
  * pytest: test that xpay doesn't use MPP if invoice doesn't permit it.
  * devtools: allow encode with `9` flag (for features).
  * askrene: don't include impossible channels in the MCF graph.
  * pytest: test that askrene doesn't simply give up if we are below htlc_minimum.
  * offers: add a blinded path if we have no advertized address.
  * Makefile: update CLN_NEXT_VERSION.
  * lightningd: make i-promise-to-fix-broken-api-user an early option.
  * pytest: add override options to prepare for default removal of rest-port/rest-host options.
  * pytest: expect complaints when we use deprecated commando-runes commands.
  * pytest: stop using deprecated commando_rune commands.
  * pytest: fix change in error msg from latest bitcoind master.
  * testing: don't try to valgrind clnrest, it's Rust.
  * renepay: change the groupid selection
  * renepay: names by convention
  * renepay: bugfix: read groupids as u64
  * pytest: remove test_slow_startup_many_addresses
  * wallet: use htable in wallet_add_onchaind_utxo.
  * wallet: create htable to store scriptpubkeys for issued indexes.
  * wallet: wallet_get_addrtype should tell caller it has no info.
  * wallet: re-add ADDR_P2SH_SEGWIT type to `enum addrtype`
  * pytest: test for slow start when closing tx and large number of addresses.
  * pyln-testing: Fix for disabled schema check
  * Fix: getblockfrompeer was always requesting block to the first peer
  * lightning-cli: fix the access to man pages
  * renepay: add test_unannounced
  * renepay: decode error onion
  * renepay: resolve self payments with fake node
  * renepay: use injectpaymentonion
  * renepay: simplify rpc error callback functions
  * renepay: more informative renesendpay error reply
  * renepay: don't fail parsing sendpay error
  * renepay: make self payments with renesendpay
  * renepay: collect shared secrets
  * renepay: add test for simple offer
  * renepay: refactor create_onion
  * renepay: add function blinded path to json
  * renepay: skip test_previous_sendpays
  * renepay: fix error handling
  * renepay: use our own sendpay rpc
  * renepay: change of variable name for clarity
  * renepay: add rpc that replaces sendpay
  * renepay: enable routing through blinded paths
  * renepay: parse bolt12 invoices
  * single `plugin_notification_serialize` function
  * new notifications: `plugin_stopped` and `plugin_started`
  * BOLT12: remove -offers from bolt12 quotes, update them.
  * fetchinvoice: allow user to specify bip353 name corresponding to how they got offer.
  * offers: enforce restrictions in incoming bip353 name fields.
  * decode: handle new bip353 fields.
  * bolt12: add inv invreq_bip_353_name field to invoice.
  * wire: extract bolt12 by default, now it's merged.
  * wire: update to bolt version which has offers included.
  * wire: update bolts which include sciddir_or_pubkey in blinded path.
  * lightningd: update bolts to clarify channel_update timing.
  * common: update bolts to include hash value in bolt11 test vectors.
  * common: update bolt to neaten pubkey descriptions.
  * wire: fix extracted files.
  * unit-tests: cleanup traces after testing
  * pytest: Address race condition in test_gossip_jsonrpc
  * common: fix memcpy error in Fischer-Yates shuffle.
  * gossipd: fix bogus message when dying channel is pruned.
  * gossipd: check that gossmap code sees updates from gossip_store writes.
  * gossipd: check that we are always appending.
  * gossipd: correctly process dying channels.
  * gossip_store: don't need to check for truncated amounts.
  * gossmap: stricter checks when gossipd itself loads the gossip_store.
  * gossipd: put gossip_store pointer inside gossmap_manage.
  * devtools: have dump-gossipstore print malformed warnings to stdout.
  * gossmap: use mmap directly to check checksums.
  * gossmap: check checksums.
  * tests: put proper checksums into test gossip_store files.
  * gossmap: don't stop reading if we hit a redundant channel_announce.
  * gossmap: add (and use) logging hook.
  * common/gossmap: remove open-by-fd.
  * gossmap: don't crash if we hit a zero-length record.
  * gossipd: make sure we never write bad entries.
  * contrib: startup_regtest.sh linter cleanup
  * pytest: update test_plugin_slowinit to match longer timeout
  * doc: fix missing example update.
  * build: fix rust parallel build race.
  * pytest: fix plugin fail timeout test:
  * pytest: fix race in test_autoclean
  * dev: startup_regtest using wrong null dir
  * lightningd: don't kill onchaind if we are forcing a disconnect.
  * lightningd: increase startup time for plugins to 120 seconds.
  * plugins: Delete old `clnrest` directory from plugins
  * doc: Updated REST documentation
  * clnrest: Rename `cln-rest` to `rest-plugin` as per current naming standards
  * pyln-testing: Removing the `lightning-` prefix check for schema files
  * bkpr: fixup htlc penalty test with anchors
  * bkpr tests: return actual error data, not just a blank assert failure
  * splice: Test for missing user signatures
  * splice: Don’t let users do unsigned splices
  * xpay-handle-pay: test null params
  * xpay-handle-pay: don't assume bolt11 is non NULL
  * xpay-handle-pay: bugfix, handle null parameters
  * lightningd: implement unblacklist.
  * lightningd: represent runes blacklist as simple bitmap.
  * wallet: remove migration code for old commando runes.
  * Splice: Stricter interop errors
  * Splice: Fix comment typo
  * Add ‘v’ to the version from zipfile release
  * gossipd: extra debugging when inject fails.
  * doc: Add new createrune example
  * ci: Update Rust version on Dockerfiles for Ubuntu
  * startup-regtest: only inspect current run's logs for clnrest updates
  * startup-regtest: look for clnrest binary on startup
  * clnrest: replace with rust plugin
  * pay: Print the HTLC result as soon as it's known
  * ci: Move the 'update doc examples' script to a later stage in the CI pipeline
  * ci: Fix for reproducible noble build failure
  * doc: Add `editdescriptionbyoutpoint` and `editdescriptionbypaymentid` in documentation
  * ci: Version update for Fedora reproducible build
  * docs: Remove `lightning-` prefix from all RPCs
  * askrene: don't crash, just report, when a flow's remaining capacity is negative.
  * askrene: expose fmt_flow_full and make more generic.
  * askrene: don't create 0-msat flow in corner case.
  * xpay: make sure we report if we ever try to call getroutes with 0msat.
  * common: don't crash on send_backtrace() if bt_print is NULL.
  * xpay: refuse request to pay 0msat.
  * askrene: don't crash if asked to route 0 msat.
  * lightningd: add option to crash itself after some time.
  * pytest: fix flake in test_onchain_slow_anchor.
  * pytest: mark test_rbf_reconnect_tx_construct flaky:
  * pytest: fix flake in test_onchain_reestablish_reply
  * pytest: make test_gossip_throttle more reliable.
  * devtools/gossipwith: filter for max-messages.
  * gossipd: don't prune if we haven't seen on side's update at all.
  * pytest: fix race in test_reconnect_remote_sends_no_sigs
  * pytest: fix flake in test_connect_ratelimit.
  * pytest: fix test_splice_disconnect_commit
  * pytest: mark xpay real gossip test as slow
  * pytest: fix flake in tests/test_connection.py::test_reconnect_signed
  * connectd: attach input filtering for incoming dev_disconnect.
  * dev_disconnect: add '<' to close after an incoming msg.
  * dev_disconnect: rename to dev_disconnect_out, in preparation for incoming filters.
  * pytest: fix flake in test_no_reconnect_awating_unilateral
  * github: update PR template with 25.02 freeze cutoff date.
  * tests: Add logger config with fixture
  * ci: Send email if the reproducible build process fails
  * gpg: Add gpg public key for cln@blockstream.com
  * build: fix linking to libsodium on macOS
  * build: fixup check for HAVE_GOOD_LIBSODIUM
  * xpay: fix description of description of bias
  * xpay: add maxdelay parameter
  * ccan/htable: update to explicit DUPS/NODUPS types.
  * common: add test for htable churn.
  * wallet: do proper memleak scan of outpoint htables, not notleak().
  * github: Checkout action triggering branch
  * build: Update poetry.lock files for CLN and built-in plugins
  * chore(docker): Update support for Poetry v2.0.0.
  * chore(docker): Clean up formatting and standardize Dockerfile.
  * build: Upgrade Docker base images to Debian Bookworm.
  * build: Fixes for the Docker building libpq lib.
  * docker: add libpq for multi-arch build configuration
  * ci: remove macOS gettext symlinking
  * tools: Add testnet4 support for reckless and hsmtool
  * tests: Add testnet4 default port
  * doc: Add details and script check for testnet4
  * pyln-spec: add testnet4 support
  * common: Chainparams for testnet4 support
  * ci: Fix for FreeBSD workflow
  * tests: Reckless test fix for project must contain name
  * ci: Install poetry-plugin-export for poetry export command
  * ci: Lock MacOS and poetry versions
  * ci: Lock Ubuntu version on 22.04
  * pytest: fix flake in test_restorefrompeer.
  * pytest: fix flake in test_penalty_htlc_tx_fulfill
  * channeld_fakenet: don't be as brute-force trying to derive keys.
  * pytest: fix flake in test_gossip_throttle
  * pytest: fix test in test_gossip_pruning
  * lightningd: fix overzealous memleak detection in json_add_datastore.
  * CI: disable --force-flaky.
  * Changelog: update to match 24.11.1 branch now that's released.
  * pytest: actually test xpay/pay return similarity.
  * xpay: created_at response from pay compatibility is a number, not integer.
  * xpay: simplify printing of destination.
  * xpay: add destination to output
  * pytest: bonus test to make sure xpay uses zeroconf channels correctly.
  * lightningd: injectpaymentonion can use scids of unannounced channels.
  * pytest: test xpay using unannounced channels.
  * xpay: more accurately reflect pay when xpay-handle-pay is set.
  * xpay: emulate maxfeepercent and exemptfee when xpay-handle-pay used
  * xpay: tell injectpaymentonion what the amount being delivered to destination is.
  * lightningd: populate listsendpays destination from injectpaymentonion if we can.
  * injectpaymentionion: allow specification of actual amount which reaches destination.
  * doc: fix injectpaymentonion schema.
  * lightning-cli: fix malformed response bug
  * common: don't send trace messages by default, don't ratelimit at all.
  * splice: alpine build warning causing failure
  * Changelog-Fixed: xpay no longer logs "Got command" at info level.
  * rust: bump versions for 24.11 release

-------------------------------------------------------------------
Wed Dec 18 16:48:33 UTC 2024 - marec@detebe.org

- Update to version 24.11.1:
  * CHANGELOG.md: update for 24.11.1 release, update other versions.
  * xpay: created_at response from pay compatibility is a number, not integer.
  * xpay: simplify printing of destination.
  * xpay: add destination to output
  * pytest: bonus test to make sure xpay uses zeroconf channels correctly.
  * lightningd: injectpaymentonion can use scids of unannounced channels.
  * pytest: test xpay using unannounced channels.
  * xpay: more accurately reflect pay when xpay-handle-pay is set.
  * xpay: emulate maxfeepercent and exemptfee when xpay-handle-pay used
  * xpay: tell injectpaymentonion what the amount being delivered to destination is.
  * lightningd: populate listsendpays destination from injectpaymentonion if we can.
  * injectpaymentionion: allow specification of actual amount which reaches destination.
  * doc: fix injectpaymentonion schema.
  * lightning-cli: fix malformed response bug
  * common: don't send trace messages by default, don't ratelimit at all.
  * splice: alpine build warning causing failure
  * Changelog-Fixed: xpay no longer logs "Got command" at info level.

-------------------------------------------------------------------
Mon Dec 09 07:57:28 UTC 2024 - marec@detebe.org

- Update to version 24.11.0:
  * Final changes for v24.11
  * doc: fix final release make line.
  * v24.11rc4: hopefully the final Release Candidate
  * logs: Correct an sign mismatch printing the depth change
  * doc: document and test the onionmessage_forward_fail notification.
  * lightningd: notification for `onionmessage_forward_fail`.
  * connectd: message to tell lightningd if we couldn't forward an onion message.
  * doc: document (and test) the injectonionmessage API.
  * lightningd: simplify injectonionmessage API.
  * doc: minor changes to repro.md
  * doc: remove use of sudo from repro.md
  * gossipd: log at trace, not debug for regular messages.
  * ci: Removed branch testing due to checkout confusion between branch vs tag
  * CHANGELOG: update for rc3.
  * build: Prepare release draft in Github actions.
  * build: Sign aggregate release artifact from Github.
  * build: Add architecture to Ubuntu repro artifacts ([#6228]).
  * build: Remove unused Dockerfiles, scripts and Github action.
  * doc: Update release checklist for CI build.
  * build: Allow for signing releases without building a zip.
  * build: Matrix strategy for release builds ([#7776]).
  * build: Release build automation ([#7776]).
  * wire: call unknown types "UNKNOWN X" not "INVALID X".
  * xpay: don't excees maxfee *overall*.
  * pytest: test for maxfee compliance.
  * doc: Update info on 'cl-repro' script
  * decode: don't fail to decode just because a bolt12 invoice has expired.
  * pytest: test (fails) for decoding expired bolt12 invoices.
  * plugins/Makefile: make cln-grpc depend on ALL THE THINGS.
  * CHANGELOG: update for rc2.
  * gossipd: seeker: try to autoconnect with no peers
  * lightningd: disable seeker autoconnect when --offline
  * msggen: add missing rpc commands new to 24.11
  * msggen: add support for short_channel_id_dir and pubkey
  * connectd: fix crash when we get an incoming conn while outgoing attempt is ratelimited.
  * Makefile: ensure that cln-grpc depends on msggen generated rust files.
  * startup_regtest: fix clnrest detection.
  * contrib/startup_regtest: set grpc-port so we can start more than one.
  * doc: Add `GENERATE_EXAMPLES` env
  * doc: Add `GENERATE_EXAMPLES` details
  * ci: Add `GENERATE_EXAMPLES` env in CI & docker build script
  * make: add `repeat-doc-examples` in Makefile for easier future testing
  * make: Added update-doc-examples in update-versions
  * pyln: Add `GENERATE_EXAMPLES` environment variable for Testing
  * gossipd: fix crash in seeker rotation code.
  * connectd: force our own channel gossip to more peers
  * doc: pre-build CI fix due to newly tagged version
  * Build: update to version 24.11rc1
  * CHANGELOG: v24.11-rc1
  * doc: Updated section for Generating Examples in Schema
  * make: Add check-doc-examples in Makefile for check-source
  * doc: Lock askrene example values
  * doc: Lock example values
  * gitignore: cln-xpay plugin
  * askrene: really fix race between layer creation and persistent layer loading.
  * askrene: reorder functions.
  * askrene: don't re-save layers as we restore them!
  * spender: fix multifundchannel ids.
  * lightningd: --dev-low-prio-anchor-blocks and test for low-priority anchors.
  * anchors: create low priority anchor to spend commit tx within a week.
  * lightningd: separate routine to gather utxos and create anchor.
  * lightningd: minor anchorspend cleanups.
  * lightningd: remember when we started closing channel.
  * grpc: Do not print wildcard notifications that don't have a handler
  * pytest: fix up coin_move tests now anchors don't get redundantly spent/
  * lightningd: wire channel closing tx through channel_fail_permanent.
  * lightnind: make channel_set_state string arg const.
  * lightningd: make close_txs parameter to resolve_close_command const.
  * nit: spelling fix
  * pytest: fix flake in test_gossip_force_broadcast_channel_msgs
  * pytest: fix flake in test_ping_timeout
  * pytest: add test for connection ratelimiting.
  * connectd: limit to 10 connections at once.
  * connectd: remove transient flag.
  * pytest: restore test_sendpay_grouping test.
  * connectd: reconnect for non-transient connections.
  * recovery: save last_known_addr for peer if we know it.
  * common: routine to make wireaddr_internal from wireaddr.
  * wallet: save last known address.
  * lightningd: generalize peer_any_channel to filter on entire channel, not just state.
  * connectd: expose --dev-no-reconnect and --dev-fast-reconnect options.
  * gossipd: don't tell connectd what address to connect to.
  * connectd: get our own addresses to contact node from node_announcements.
  * connectd: send self-advertizing gossip rather than having gossipd do it.
  * pyln-testing: disable seeker autoconnect by default
  * common: Make trace debugging output configurate at compile time
  * common: Fix a potential cycle in the trace structure
  * common: Add a tree checker for trace spans
  * common: Remove the recursive parent resolution in traces
  * common: Resume the startup trace after exiting `io_loop`
  * db: Fix a broken span context pointer
  * common: Add some debuggig capabilities to the trace subsystem
  * lightningd/test/Makefile: add missing dependency on header_versions_gen.h
  * startup_regtest: remove experimental-offers flag
  * Makefile: fix defines on ARM macOS
  * pytest: fix flake in test_gossip_pruning.
  * xpay: give an additional block "slack" for CLTV values.
  * pyln-client: restore backwards compatibility with CLN prior to 24.08
  * gossipd: hand gossmap to gossmap_manage_get_node_addresses, not gossmap_manage.
  * gossmap: implement gossmap_random_node(), use it in gossipd.
  * gossipd: use autoconnect-seeker-peers setting
  * lightningd: add option for minimum seeker autoconnect peers
  * pytest: Add seeker autoconnect test
  * gossipd: seeker: select random peer and tell lightningd
  * gossipd: add request to connect to new gossip peer
  * gossipd: seeker: allocate gossiper array at init
  * common/test: fix -O3 compile error with gcc-12 (Ubuntu 12.3.0-17ubuntu1) 12.3.0
  * pytest: fix flake in test_gossip_force_broadcast_channel_msgs
  * pytest: fix flake in test_onchaind_replay.
  * configure: make configuration with address sanitizer find zlib.
  * tests: add pay test over unannounced channels
  * pytest: reenable askrene bias test.
  * Askrene: change median factor to 1.
  * askrene: don't skip fee_fallback test
  * askrene: bugfix queue overflow
  * askrene: remove allocation checks
  * askrene: add compiler flag ASKRENE_UNITTEST
  * askrene: small fixes suggested by Rusty Russell
  * askrene: add arbitrary precision flow unit
  * add ratio ceil and floor operators on amount_msat
  * askrene: fix the median
  * askrene: fix CI
  * askrene: use the new MCF solver
  * askrene: add mcf_refinement to the public API
  * askrene: fix bug, not all arcs exists
  * askrene: add bigger test for MCF
  * askrene: add a MCF refinement
  * askrene algorithm add helper for flow conservation
  * askrene: add a simple MCF solver
  * askrene: add algorithm to compute feasible flow
  * askrene: add dijkstra algorithm
  * askrene: add graph algorithms module
  * askrene: add priorityqueue
  * askrene: add a new graph abstraction
  * lightningd: tell gossipd channel is closed if it tells us about our channel and is wrong.
  * pytest: allow additional gossip filters
  * gossipd: seeker: rotate worst gossiper every 30 minutes
  * gossipd: seeker: rotate out the worst performing gossiper
  * gossipd: add separate counter for unsolicted gossip
  * gossipd: seeker: choose a new node when resyncing
  * gossipd: seeker: add hourly full gossip resync from a random peer
  * gossipd: Increase gossiping peers to 10
  * splice: tx_abort no longer reestablishes
  * splice: Update messages to spec
  * splice: Enable remote funding key rotation
  * splice: Update funding pubkey on splice lock
  * channeld: `tx_abort` should skip reestablish
  * splice: Enable shared tx on `interactivetx`
  * channeld: Move tx lookup function up
  * splice: Update find_channel_output for rotating funding key
  * splice: Update commit sigs to use dynamic remote funding pubkey.
  * splice: Update `commitment_signed_tlvs`
  * splice: Add new funding output balance
  * splice: Update splice signature msg type
  * splice: Remove blockhash from peer msg
  * channeld: Update commitsigs to support remote_funding
  * channeld: Add dynamic funding_pubkeys to channel_txs
  * splice: Pass `remote_funding` between ld and channeld
  * channeld: Add `remote_funding` to inflight
  * channeld: Store `remote_funding` for splice
  * interactivetx: Add support for shared prevtx
  * splice: Add `remote_funding` to database
  * channeld: Fix `tx_abort` encoding
  * splice: Clean up error messages for RPC
  * offers: update block height correctly.
  * test: reproduce WIRE_INVALID_ONION_PAYLOAD
  * lightningd: send errors inside blinded paths correctly.
  * common: provide readable explanation when onion payload is invalid.
  * pytest: fix test_pay tests now we've deprecated experimental-offers.
  * fetchinvoice: check better.
  * tests: add the test for fetching invoice with metadata
  * bolt12: allow to inject payer_metadata
  * db: Correct the name of the `db_exec_prepared` span name
  * askrene: don't create duplicate layers if xpay creates layer before we load them.
  * xpay: don't try to timeout things until after we have created xpay layer.
  * pytest: fix flake in test_gossip_pruning
  * pytest: fix flake in test_onionmessage_ratelimit
  * pytest: fix race in test_autoclean.
  * lightningd: don't access after free on plugin crash
  * pytest: try to fix flake in test_lightningd_still_loading
  * pytest: fix flake in test_wumbo_channels
  * pytest: fix a test that broke because of docstring usage
  * pyln-client: adds testcase for usage in manifest and print_usage
  * pyln-client: refactors usage string generation to reduce code duplication
  * pyln-client: adds description to methods via docstring
  * tools/headerversions.c: fix build without SQLite
  * test: Fixed test plugin source paths for reckless
  * ci: Update Python version from 3.8 to 3.10
  * ci: Update Ubuntu version from 20.04 to 22.04
  * ci: Adding missing jq dependency in script
  * shellcheck: shellcheck fixes
  * ci: Removed CPP check script
  * db: Instrument the DB interactions to trace their execution
  * lightningd: deprecate experimental-offers option.
  * pytest: don't set `experimental-offers` in tests: it's the default now.
  * plugins: don't check for experimental-offers option: it's the default now.
  * docs: no longer tell people experimental-offers is required.
  * offers: make it the default.
  * xpay: make sure to call preapproveinvoice!
  * xpay: make self-pay work.
  * xpay: make the xpay layer persistent.
  * lightningd: allow builtin plugins to be stopped.
  * xpay: age the "xpay" layer so we forget information older than 1 hour.
  * xpay: option to steal easy commands from `pay`.
  * libplugin: allow aux_command use in init()
  * xpay: don't use rpc_scan or jsonrpc_request_sync.
  * xpay: implement partial payments.
  * xpay: add deadline.
  * pytest: test xpay with channeld_fakenet to pay top 100 nodes.
  * devtools: bolt11-cli encode command to make fake invoices.
  * xpay: new plugin which uses askrene, injectpaymentonion.
  * pyln-testing: don't skip renepay and askrene!
  * tools/generate-wire.py: make sure TLV array fields are allocated off TLV.
  * pytest: Allow a specific lightningd for DEBUG_SUBD
  * lightningd: injectpaymentonion should fail on re-attempts.
  * lightningd: don't include empty error in onion returned on failed injectpaymentonion.
  * common: sphinx_path_new to take explicit len.
  * lightningd: fix clang 19 compile error.
  * test: listaddresses tests
  * doc: Add schema for listaddresses
  * rpc: Added listaddresses command
  * wallet: list addresses query
  * wallet: insert addrtype `ADDR_ALL` for issued addresses
  * wallet: save keytype when issuing new address.
  * lightningd: use P2TR for onchain tx spends.
  * lightningd: use P2TR for anchor spends.
  * onchaind: don't get final_key_idx.
  * gitignore: Ignore chaneld_fakenet
  * lightningd: actually deprecate old close fields.
  * pytest: adapt tests to avoid deprecated APIs in close (tx and txid).
  * close: Print multiple txs; Fixes #6467
  * channeld: Add aggressive restart test
  * bkpr: add bookkeeping assertions to splice in + out tests
  * lightningd: deprecate decodepay.
  * Makefile: ensure that cln-grpc depends on msggen generated files.
  * lightningd: help memleak scan into replay_tx hash table to avoid false positives.
  * pytest: fix flake in test_fetchinvoice_disconnected_reply.
  * pytest: fix hsmtool which reports leak under address sanitizer.
  * pytest: fix flake in test_grpc_connect_notification
  * pytest: fix flake in test_htlc_in_timeout
  * lightningd: don't crash if replaying blocks for onchaind during shutdown.
  * pytest: fix flake in test_wss_proxy
  * pytest: don't assume gossip order in test_gossip_query_channel_range
  * pytest: reduce askrene tests again for CI.
  * pytest: disable broken test
  * build: fix race where channeld_fakenet doesn't depend on external modules.
  * pytest: fix test_onchain_unwatch under valgrind.
  * pytest: fix spurious error in test_important_plugin
  * pytest: don't try exposesecret test under valgrind.
  * Update Mac install instructions
  * closingd: Fix buffer overread build error with some cross build
  * secp256k1 pubkey constant fix
  * hsmtool: fixup show usage parens + return
  * lightning-hsmtool.8.md: Update documentation showing new method
  * hsmtool.c: extend generatehsm to allow command-line args.
  * libplugin-pay: trace payment_continue
  * trace: trim quotes from tag values
  * plugin: Add tracing support for `send_outreq`
  * lightningd: wait for onchaind to ack new spends before continuing replay.
  * onchaind: explicit ack for onchaind_spent method.
  * lightningd: allow subd_req() to take replycb_data arg.
  * gossipd: replay old spent UTXOs when restarting.
  * lightningd: only trim old UTXO entries after gossipd acks block.
  * lightningd: only store channel funding spend txs into db.
  * lightningd: use block-at-a-time replay for onchaind on restart.
  * lightningd: separate code for onchaind watches separate if we're doing replay.
  * wallet: new routine to simply get the funding spend tx, if known.
  * fuzz: fix up compilation with hsmtool change.
  * pytest: reduce time for askrene test_real_data test.
  * plugins/exposesecret: fix for API change.
  * config: add the ability for plugins to specify that config values should be concealed.
  * ccan: update to latest version
  * exposesecret: new plugin and command to get hsm_secret.
  * common/hsm_encryption: use const char * for errors.
  * lightningd: add option dev-strict-forwarding
  * doc: improve documentation of listpays
  * add listing options to listpays
  * autoclean: rest between cleanup calls.
  * autoclean: don't slam lightningd with 10,000 requests at once.
  * pyln-testing: don't fail to start node if we have no Rust.
  * bkpr: add examples for new edit description RPC calls
  * bkpr: add tests for new edit description RPC calls
  * bkpr: add new RPC bkpr-editdescriptionbyoutpoint
  * bkpr: add new json RPC "bkpr-editdescriptionbypaymentid"
  * bkpr: refactor out the add_events logic for json stuff
  * doc: add grpc-host and default grpc-port
  * tests: adjust cln-grpc tests for new default start
  * plugins/grpc: grpc-host option
  * plugins/grpc: default value for grpc port
  * splice: reestablish should only assume stfu in one case
  * splice: Add more verbose reestablish debug logging
  * splice: Abort on insufficent funds
  * splice: Add test of “splice” script command
  * splice: Update splice fee maximums
  * peer_control: Don’t report removed inflights
  * splice: Documentation for the “splice” command
  * splice: Add plugin for magic “splice all” command
  * addpsbtoutput: Add serial_id flag
  * addpsbtinput: New RPC command to add funds to a psbt
  * splice: Bulk channel `stfu` and `abort` RPC
  * splice: Extract remote sig from psbt if needed
  * splice: Allow splice_update to return signatures
  * psbt: comment typo fix
  * splice: Modify splice_signed to work with multiple channels
  * psbt: Add ability to set channel_ids in psbt globals
  * psbt: Add ability to set global PSBT values
  * psbt: Add ability to extract signature
  * splice: A splice-script test that tests complex corner cases
  * splice: Script for complex splices
  * mac: build warning about unused result
  * askrene: commit to API.
  * askrene: persistent layer support.
  * askrene: add askrene-bias-channel.
  * doc: add lightning-askrene-age to Makefile.
  * askrene: fix false positive memleak since we didn't scan local_updates.
  * build: add all-fuzz-programs target
  * lightningd: avoid false memleak positive with rpc_command_hook.
  * libplugin: call get_beglist async, in case they subscribe to the rpc_command hook.
  * libplugin: add method string to jsonrpc callbacks, implement generic helpers.
  * libplugin: use NULL to imply "take prefix from cmd".
  * askrene: make sure we depend on libplugin.h
  * libplugin: clean up API.
  * libplugin: check that command has/hasn't terminated when we get pending/complete.
  * libplugin: insist on always having a non-NULL command context.
  * libplugin-pay: fix command logging
  * libplugin-pay: always use a non-NULL `struct command`.
  * libplugin: reindent.
  * funder: use auxilliary command instead of NULL command.
  * commando: always use proper responses for commands.
  * libplugin: make timers have a "command" context.
  * libplugin: enumerate the specific "struct command" types.
  * libplugin: always set the "id" field of a command.
  * libplugin: add aux_command.
  * libplugin: tell compiler that plugin_err is like printf.
  * devtools/gossmap-compress: make fake nodeids same for 32/64 bits.
  * channeld_fakenet: remove HTLCs after completion.
  * channeld_fakenet: add capacity information.
  * channeld_fakenet: add deterministic delays.
  * pytest: test askrene and making payments with channeld_fakenet.
  * channeld_fakenet: fake channeld to simulate network given a gossmap_store.
  * channeld: routine to feed in a shachain.
  * hsmtool: fix NULL secp256k1_ctx when calling dumpcommitments
  * doc: don't included stray .md files in index.rst
  * renepay: add test for description interface
  * renepay: pay BOLT11 invoices with description_hash
  * Remove swagger postman screenshots including .github folder
  * ci: Fixed handling of special characters in PR descriptions while searching for change log none.
  * script: Giantnode paths fix
  * pytest: fix flake in test_sendpay_grouping
  * pytest: fix flake in test_onchain_reestablish_reply
  * tests: fix the err msg check
  * bolt12: fix typo about parameters name in err str
  * github: Check if change entry is logged in PR description
  * Github: Belated warning about 24.11 freeze.
  * connectd: increase queue length to 250,000.
  * gossipd: fix excessive msg_queue length from status_trace()
  * common/msg_queue: send backtrace on oversize queues.
  * common/msg_queue: use membuf for greater efficiency.
  * repro: focal modded fix
  * build: Repro build matrix strategy for focal, jammy and noble. ([#7117])
  * build: Nightly repro build for Ubuntu Noble.
  * make: Add a phony `version` target to output version string.
  * gossipd: drive-by correction of new channel announcement evaluation
  * doc: fix all JSON schemas to enforce no additional properties.
  * doc: fix up missing fields from schemas.
  * doc: fix schema for askrene-update-channel.
  * lightningd: new command injectpaymentonion.
  * lightningd: refactor payment failed.
  * pytest: generalize serialize_payload_tlv/serialize_payload_final_tlv
  * lightningd: generalize waitsendpay_command so we can use it for injectpaymentonion.
  * lightningd: generalize htlc_set.
  * lightningd: allow htlc_set_fail to take empty msg to send incorrect_or_unknown_payment_details
  * lightningd: make failmsg_incorrect_or_unknown take amount, not htlc_in.
  * lightningd: `listforwards` returns 0 for missing `received_time`. ([#7157])
  * docs: Fix openchannel_abort generated JSON schema.
  * docs: openchannel_abort correction
  * doc: gRPC SSL custom certificate generation instructions with SANs.
  * doc: Fix gRPC custom certificate anchor links.
  * doc: Add nix flake documentation to developers guide
  * build: Add cln-postgres package to nix flake
  * build: Update .version as part of the release
  * build: Exclude python plugins from flake build
  * build: Add nix derivation for building cargo workspace
  * build: Add simple flake
  * doc(README.md): fix typo about supported installation options
  * doc: update reference to the generator code
  * release: Update the changelog for point release v24.08.2
  * doc: Fix documentation version
  * BOLT: update to latest BOLT 3 test vectors.
  * BOLTs: more catchup ("BOLT 4: More clarifying changes.")
  * BOLT update: catch up ("BOLT 4: rename `onionmsg_hop` to `blinded_path_hop`")
  * BOLT catchup ("BOLT 4: clarify blinded path requirements.")
  * global: rename blinding to path_key everywhere.
  * lightningd: update injectonionmessage API to new terminology.
  * lightningd: update decryptencrypteddata API to new terminology.
  * global: deprecate old names in JSON fields, add new ones.
  * BOLTs: update which renames blinding terminology.
  * BOLT update: remove INVALID_REALM error.
  * BOLTs: catchup with "Drop the required `channel_update` in failure onions".
  * BOLT catchup: quiescence is included.
  * wire: add missing patch.
  * askrene: more logging in explain_failure.
  * askrene: remove flowset_probability() now refine step calculates it.
  * askrene: use refine step to calculate flowset probability.
  * askrene: fix bug with reservations used during refinement.
  * askrene: don't *completely* ignore fees to start.
  * askrene: calculate `k` value dynamically, using medians.
  * askrene: debug and check we actually reduce fees when mu increase.
  * askrene: fix base fee.
  * askrene: calculate prob_cost_factor using ratio of typical mainnet channel.
  * mcf: simplify mu -> cost translation.
  * pytest: test askrene with worse maxfee argument.
  * pytest: test askrene on real network data.
  * askrene: don't use tmpctx in minflow()
  * askrene: detect and cancel flow cycles
  * askrene: don't give up if we hit htlc_max and have no other flows.
  * askrene: constrain to exact htlc_min/htlc_max values.
  * gossmap: allow gossmap_chan_get_update_details on locally-modified channels.
  * gossmap: include cltv_expiry_delta in gossmap_chan_get_update_details for completeness.
  * askrene: make `auto.sourcefree` a real layer, too.
  * askrene: populate auto.localchans layer properly.
  * askrene: give notifications back to caller as we go.
  * pyln-testing: understand `gossip_store_file` arg in get_nodes.
  * gossipd: at startup don't send remote channel_update as init update from us.
  * connectd: fix double-free crash on connection timeout.
  * keysend: Add `maxfee` to keysend for consistency with pay. ([#7227])
  * make: Change `mv` to `mv -f` when replacing tools/headerversions file
  * pay-plugin: set gossmods directly
  * pay-plugin: direct_pay only destination channels
  * chore: bump rust bitcoin to 0.31
  * ci: Prebuild action fails if Changelog is missing from all commits of a PR
  * common/gossmap: use u64 for all offsets.
  * gossipd: use u64 for the one offset we don't.
  * libplugin-pay: use map for channel hints
  * pay: Switch to msat for total_capacity
  * route: Re-add the assertion that we're one side of a channel
  * pay: Simplify the `channel_hint` update logic
  * pytest: Fix up the `test_sendpay_grouping` test
  * test: Fix up the `test_pay_routeboost` test
  * pytest: Fix up the `test_mutual_connect_race`
  * pay: Remove use of temporary local `channel_hint`
  * pay: Inject `channel_hint`s we receive via plugin notifications
  * pay: Log when and why we exclude a channel from the route
  * pay: Add `channel_hint_set_count` primitive
  * pay: Add a hysteresis for channel_hint relaxation
  * pay: Use the global `channel_hint_set` and remember across payments
  * pytest: Test that we remember learnt channel hints across payments
  * route: Change the type of the funding capacity to `amount_sat`
  * route: Use safe `amount_sat_to_msat` conversion
  * pay: Subscribe to the `channel_hint_update` notifications
  * route: Simplify direction
  * pay: Rename overall_capacity to just capacity
  * plugin: Split out the `struct channel_hint` handling
  * make: Weaken over aggressive check-amount-access test
  * pay: Make the `channel_hint`s global
  * pay: Use the total_mast amount as the upper limit for channel_hints
  * route: Add the total capacity to route_hops
  * pay: Add a function to update `channel_hint`s based on their age
  * topology: call listpeerchannels_done directly
  * docs: Updating release checklist with Hotfix release instructions
  * doc: Include documentation for test targeting via `PYTEST_TESTS`.
  * pytest: Support targeting specific tests using `make pytest`.
  * pyln-testing: Fix file descriptor leak in bitcoind fixture. ([#7130])
  * tests: Add test_getemergencyrecoverdata to test the RPC getemergencyrecoverdata.
  * doc: Add documentation for the RPC getemergencyrecoverdata.
  * plugins/chanbackup: Add RPC to fetch data from emergency.recover file.
  * askrene: more code tweaks on feedback from Lagrang3.
  * askrene: trivial changes to avoid -O3 compiler warnings.
  * askrene: give better feedback when we can't find a suitable route.
  * askrene: don't replace constraints, simply accumulate.
  * askrene: split askrene-create-channel into create-channel and update-channel.
  * gossmap: keep capacity for locally-generated channels as well.
  * common/gossmods_listpeerchannels: include channel capacity in callback.
  * gossmap: implement partial updates.
  * askrene: ignore disabled channels for min-cost-flow.
  * pytest: enhance test_getroutes_auto_sourcefree with same case *without* auto.sourcefree.
  * gossmods_from_listpeerchannels: use correct type for cltv_delta.
  * askrene: remove unused parameter in layer_add_localmods.
  * askrene: rework constraints to exist in pairs.
  * askrene: change inform interface, take into account reserve.
  * askrene: implement listreservations
  * askrene: remember individual reservations, for better debugging.
  * askrene: clean up reserve array handling.
  * askrene: make `route_query` contain pointer to the command.
  * askrene: askrene-create-layer and askrene-remove-layer.
  * askrene: use short_channel_id_dir in API.
  * add askrene-disable-channel
  * common: round out the short_channel_id_dir JSON routines.
  * askrene: add support for disabled channels in layers.
  * gossmap: don't crash on localmods on non-existant channels.
  * askrene: optimize, by calling tal_count less.
  * askrene: use a simple array as our queue.
  * tests/data: add compressd canned gossip from mainnet.
  * gossmap-compress: warn about updates which we don't include in map.
  * gossmap: print out nodeids and aliases, so you can map them back after compression.
  * devtools/gossmap-compress: fix channels.
  * gossmap-compress: sort nodes into most to least as intended.
  * Update pyln-client for clnrest
  * hsmtool: provide nodeid from hsm secret.
  * gpg: New public key
  * cln-rpc/src/model.rs: fix difference between master and my machine.
  * anchors: dont include utxos which are csv locked
  * rust-libs: Bump versions
  * rust-libs: Upgrade tonic to v0.12
  * cln-grpc: add anchors/even to primitives
  * lightningd: rename state_change_entry to channel_state_change, and use pointers.
  * lightningd: move the state changes into `struct channel`.
  * db: clean up channel_stats handling.
  * listpeerchannels: use struct channel stats, don't fetch from db.
  * lightningd: move stats into struct channel.
  * askrene: remove unused function
  * askrene: re-check min_htlc violations after correcting for MCF rounding.
  * askrene: move flow refining code to its own file.
  * askrene: take into account the reduction in "spendable" with additional HTLCs.
  * pytest: test askrene treats htlc_maximum_msat and htlc_minimum_msat restrictions properly.
  * askrene: don't have get_flow_paths() handle htlc_max, htlc_min and extra millisats.
  * askrene: add a "refining" step to add fees and handle corner cases.
  * askrene: rename `struct flow` `amount` to `delivers`.
  * askrene: remove `struct flow` `probability` member.
  * askrene: remove unused flow routines.
  * patch libplugin-batch.patch
  * common/bolt12: do more required checks in invoice_decode.
  * askrene: apply "auto.sourcefree" to channels created in layers, too.
  * pytest: separate out routine which checks only some fields of getroutes.
  * pyln-testing: add gossip_store_file arg to get_node()
  * pytest: duplicate test_live_spendable as a canned gossmap test.
  * pytest: ensure there are no duplicate paths in test_live_spendable, and check total.
  * common/amount: rename amount_sat_zero/amount_msat_zerp -> amount_sat_is_zero/amount_msat_is_zero.
  * common/amount: add amount_msat_accumulate()
  * patch general-node-id-assign.patch
  * common/amount: add routine to calculate fees backwards.
  * lightningd: remove incorrect old-payment-htlc-delete logic.
  * Makefile: Next version updated to 24.11
  * doc: Release checklist update
  * doc: Pull request template update
  * test: CI error fixes
  * pytests: extend the offline mode testcase
  * meta: Add changelog for hotfix release v24.08.1
  * lightningd: don't crash if plugin dies during initial plugins_init.
  * pytest: thoroughly test plugin death during startup.
  * plugins/Makefile: fail if jq command fails.
  * configure: ensure that we have jq.
  * cln-plugin: Change default log level filter back to INFO
  * topology: fix overzealous deprecation check in listpeerchannels.
  * pytest: add test for bogus deprecation BROKEN log.
  * schemas: "description" field in "wait(any)invoice" is optional since BOLT12
  * subds: fix case where we keep retrying on EOF.
  * lightningd: make sure channels always have a local alias.
  * lightningd: log if builtin plugin fails to start
  * channeld: fix crash with pre-TLV peers.
  * docs: clarify writing-json-schemas.md and autogenerate-rpc-examples.py
  * doc: After release instructions update
  * cln-tracer: readme usage clarifications
  * github: Read tag on HEAD in Github Actions
  * docker: git reset to avoid modded suffix
  * github: Actions trigger of tag push
  * test: testplugpass requirements.txt updated to install local pyln-client
  * pyln-client: try to bump version
  * pyln-client: don't refer to now-non-existent `long_desc` member.

-------------------------------------------------------------------
Sat Oct 19 12:11:55 UTC 2024 - marec@detebe.org

- Update to version 24.8.2:
  * release: Update the changelog for point release v24.08.2
  * common/gossmap: use u64 for all offsets.
  * gossipd: use u64 for the one offset we don't.
  * libplugin-pay: use map for channel hints
  * pay: Switch to msat for total_capacity
  * route: Re-add the assertion that we're one side of a channel
  * pay: Simplify the `channel_hint` update logic
  * pytest: Fix up the `test_sendpay_grouping` test
  * test: Fix up the `test_pay_routeboost` test
  * pytest: Fix up the `test_mutual_connect_race`
  * pay: Remove use of temporary local `channel_hint`
  * pay: Inject `channel_hint`s we receive via plugin notifications
  * pay: Log when and why we exclude a channel from the route
  * pay: Add `channel_hint_set_count` primitive
  * pay: Add a hysteresis for channel_hint relaxation
  * pay: Use the global `channel_hint_set` and remember across payments
  * pytest: Test that we remember learnt channel hints across payments
  * route: Change the type of the funding capacity to `amount_sat`
  * route: Use safe `amount_sat_to_msat` conversion
  * pay: Subscribe to the `channel_hint_update` notifications
  * route: Simplify direction
  * pay: Rename overall_capacity to just capacity
  * plugin: Split out the `struct channel_hint` handling
  * make: Weaken over aggressive check-amount-access test
  * pay: Make the `channel_hint`s global
  * pay: Use the total_mast amount as the upper limit for channel_hints
  * route: Add the total capacity to route_hops
  * pay: Add a function to update `channel_hint`s based on their age
  * gossipd: at startup don't send remote channel_update as init update from us.
  * connectd: fix double-free crash on connection timeout.
  * doc: Fix documentation version
  * gossmap: don't crash on localmods on non-existant channels.
  * lightningd: remove incorrect old-payment-htlc-delete logic.
  * cln-rpc/src/model.rs: fix difference between master and my machine.
  * anchors: dont include utxos which are csv locked
  * cln-grpc: add anchors/even to primitives
  * lightningd: rename state_change_entry to channel_state_change, and use pointers.
  * lightningd: move the state changes into `struct channel`.
  * db: clean up channel_stats handling.
  * listpeerchannels: use struct channel stats, don't fetch from db.
  * lightningd: move stats into struct channel.
  * github: Read tag on HEAD in Github Actions
  * docker: git reset to avoid modded suffix
  * github: Actions trigger of tag push

-------------------------------------------------------------------
Wed Sep 18 13:04:59 UTC 2024 - marec@detebe.org

- Update to version 24.8.1:
  * meta: update python versions
  * meta: Add changelog for hotfix release v24.08.1
  * topology: fix overzealous deprecation check in listpeerchannels.
  * pytest: add test for bogus deprecation BROKEN log.
  * schemas: "description" field in "wait(any)invoice" is optional since BOLT12
  * subds: fix case where we keep retrying on EOF.
  * cln-plugin: Change default log level filter back to INFO
  * plugins/Makefile: fail if jq command fails.
  * configure: ensure that we have jq.
  * channeld: fix crash with pre-TLV peers.
  * lightningd: make sure channels always have a local alias.
  * lightningd: don't crash if plugin dies during initial plugins_init.
  * pytest: thoroughly test plugin death during startup.

-------------------------------------------------------------------
Thu Aug 29 16:09:40 UTC 2024 - marec@detebe.org

- Update to version 24.8.0:
  * meta: update changelog for v24.08
  * docker: Cleaned up Dockerfile's Core Lightning installation
  * lightningd: fix up installs in subdirectories.
  * script: Updating SHASUMS for updated zlib1g-dev in Ubuntu Noble
  * meta: Update changelog for 24.08rc3
  * pytest: suppress failing renepay test for Liquid.
  * askrene: hack in some padding so we don't overflow capacities.
  * askrene: fix up our handling of htlc_max.
  * askrene: round capacity *down* when converting to fp16.
  * pytest: make spendable test for askrene work properly, give a better name.
  * docs: Added info for NFS version
  * github: Update FreeBSD Test
  * github: Update Github actions for Pypi publishing
  * docker: Fix for cryptography v42 upgrade
  * docker: GitHub actions testing for docker release
  * lightningd: fix another trivial memleak when running installed version.
  * git: Update PR template
  * pytest: add spendable tests for askrene.
  * askrene: change finalcltv to final_cltv, and return it in response.
  * doc: note that getroutes return is different than getroute.
  * renepay: add daywalker90's test case
  * renepay: bugfix: apply channel filter globally
  * renepay: take it easy with local channels
  * renepay: bugfix refreshgossmap
  * renepay: bugfix reserved htlc in MCF
  * renepay: add precondition check + error msg
  * renepay: patch to assertion htlc_total<=known_max
  * Adding PR Template
  * meta: Update changelog for 24.08rc2
  * doc: properly document sub-subobject fields.
  * plugins/sql: fix crash when subobject is missing which has subobject inside it.
  * bookkeeper: fix up out-of-order migrations in rc1
  * docker: Docker file fixes for reproducible builds
  * renepay: add const probability cost
  * pyln-testing: fix catching of memleak/broken errors at exit.
  * pytest: handle more expected broken messages.
  * lightningd: fix trivial memleak.
  * meta: Update changelog for 24.08rc1
  * devtools: Fixed changlog.py default commit range
  * gitignore: Add missing gitignore plugins an devtools
  * lightningd: handle duplicate watches on the same thing correctly.
  * renepay: add cli option exclude
  * renepay: add a channel filtering paymod
  * renepay: disabled channels in a map
  * cln-plugin: add multi options for String and i64
  * reckless-rpc: catch failed reckless subprocess
  * reckless-rpc: catch failed json parsing of reckless output
  * reckless-rpc: add documentation
  * reckless-rpc: catch old installed version
  * reckless-rpc: accept and pass generic subcommands
  * reckless-rpc: auto-accept reckless config creation dialog
  * reckless-rpc: read lightningdir and network from listconfigs
  * reckless-rpc: initial boilerplate
  * askrene: memleak: scan reserved htable
  * askrene: change reserve_hash for reserve_htable
  * openingd: don't ask for scid_alias in channel type if remote doesn't tell us they support it.
  * askrene: inform-channel fixes argument order
  * renepay: fix strange gossmap_refresh log
  * renepay: fix double free of tal object
  * renepay: remove __PRETTY_FUNCTION__
  * renepay: bugfix finalized routes
  * renepay: remove unnecessary payment list
  * renepay: rm HTLCs from uncertainty on route free
  * renepay: review routetracking
  * renepay: minor fix
  * renepay: rethink the computed routes storage
  * renepay: remove unnecessary rpc calls
  * renepay: listsendpay before computing routes
  * renepay: global record of computed routes
  * renepay: simpler routetracker
  * renepay: small tweak to decay time
  * askrene: reserve: fix assertion
  * bkpr: add payment_id parameter to listaccountevents to filter events.
  * bkpr: minor clarification in comment.
  * plugin/pay: fix crash if failcodename isn't set.
  * lightningd: always broadcast our own gossip when it changes.
  * lightningd: track whether we're supposed to be throttling gossip.
  * pytest: test that we inform all peers about gossip changes.
  * pytest: enhance test_gossip_pruning
  * lightningd: create new return code for enableoffer.
  * offer: allow re-enabling a previously disabled offer
  * doc: Instructions to use the script for generating examples
  * doc: Updated json examples in schema files
  * script: Auto generate rpc examples for documentation
  * pyln-testing: Increasing bitcoin rpc threads from default 4 to 20
  * doc: Fixing schema definition
  * tests: Removed non-essential hsm copy step
  * lightningd: configvar style fixes
  * lightningd: trim whitespaces from end of config parameters
  * plugins: fix more uninitialized vars in bookkeeper.
  * bookkeeper: fix uninitialized variable.
  * renepay: remove unused declaration
  * renepay: bugfix reading pending sendpays
  * libplugin: Add parser for `channel_hint` from JSON
  * libplugin: Add primitive to serialize `channel_hint` to JSON
  * common: Add some more JSON primitives
  * libplugin: `pay` now emits `channel_hint` as we learn about the net
  * bkpr: add two custom notifications that we listen for
  * bugfix: node refuses to re-start after emergency recover
  * onchaind: Adjust the sweep target deadline for fee estimation
  * bkpr: properly account for fees and channel closures if splice
  * coin-moves: when a splice confirms, send a channel_closed event
  * pay: Use `paymod_log` when filtering routehints for changes
  * pay: Log the invoice we are about to pay
  * pay: Add a pre-flight check for the spendable balance
  * pay: Add an error code to the payments
  * reckless: correct logging levels
  * reckless: escape strings in log
  * reckless: handle failure to find entrypoint cleanly
  * reckless: handle other --json cases without crashing
  * reckless: handle unresolvable situations in a --json friendly way
  * reckless: accept json array arguments as input
  * reckless: don't polute stdout with python install
  * reckless: all command functions return objects to enable json out
  * reckless: add json output option
  * reckless: add logger class
  * reckless: make options flags position independent
  * reckless: add version information to reckless
  * reckless: add installer for rust plugins
  * reckless: place source code in source/plugin_name/
  * reckless: add type hints for InstInfo
  * reckless: remove mimetype
  * Makefile: clean up install path handling.
  * askrene: add "auto.localchans" layer.
  * askrene: split json_getroutes into two parts.
  * devtools/gossmap-compress: allow setting the nodeid explicitly for generated nodes.
  * plugin/askrene: add "auto.sourcefree" layer.
  * pytest: simple getroutes tests.
  * plugins/askrene: attach getroutes call to MCF code.
  * plugins/askrene: remove local contexts.
  * askrene: include the mcf and flow routines.
  * askrene: make the flow.[ch] files compile.
  * askrene: simply fail if a flow amount exceeds 64 bits.
  * askrene: remove code which tries to handle tal failures.
  * askrene/flow: don't omit initial hop in flow_spend.
  * askrene: copy flow and dijkstra from renepay.
  * askrene: simplify minflow()
  * askrene: copy mcf.[ch] from renepay with minimal modifications.
  * pytest: test file for askrene.
  * askrene: fast lookup for capacities.
  * askrene: always set a dummy constraint when we add a local channel.
  * askrene: flesh out getroutes() a little.
  * askrene: reservation implementation.
  * askrene: add layers infrastructure.
  * askrene: skeleton which does JSON API.
  * common: promote useful routines from renepay.
  * bitcoin: add short_channel_id_dir_eq.
  * common: new parameter parsing routines.
  * libplugin: add data pointer for plugin convenience.
  * gossmap: don't process channel_announcement until amount is present.
  * doc: document askrene.
  * offers: fix crash when receiving response to offer without `offer_issuer_id`
  * pytest: make GenChannel arguments explicit.
  * devtools/gossmap-compress: print out node ids.
  * pytest: add routine to generate gossmap by topology.
  * devtools/gossmap-compress: use transparent zlib compression if available.
  * devtools/gossmap-compress: decompress code.
  * devtools: add gossmap-compress to give minimal representation of gossmap topology.
  * macos: fix ci and autoclean
  * pyln-client: Deprecate category, description and long description from method
  * gossipd: always ask first peer for all the gossip.
  * CI: don't fall over if cannot connect to upload server.
  * offers: fix flake in fetchinvoice.
  * lightningd: fix false positive in leak detection.
  * lightningd: don't create a second peer on stub recover if one already exists.
  * global: update BOLT12 quotes.
  * plugins/offers: handle invreq_paths in invoice_requests, set them if necessary.
  * lightningd: make the caller set invreq_metadata and invreq_payer_id for createinvoicerequest.
  * lightningd: use tweak on node_id of different key, for `createinvoicerequest`.
  * lightningd: make plugins set metadata for invoice requests.
  * lightningd: make invreq metdata deterministic, not random for recurring invoices.
  * common: fix up some minor typos in BOLT quotes.
  * hsmd: create an hsm variant to sign a bolt12 invoice using a tweak on our key.
  * common/bolt12_id: generate alias tweak.
  * common/bolt12_id: new common routine for creating path secrets.
  * common: update test to encode new test vectors now we handle them correctly.
  * common/bolt12: allow missing offer_issuer_id.
  * BOLT12: reject zero-length blinded paths.
  * wire: add new field `invreq_paths` from spec.
  * doc: mark schema offer_node_id and warning_missing_offer_node_id deprecated.
  * wire: rename "offer_node_id" to "offer_issuer_id" to match latest BOLT.
  * wire: renumber experimental recurring offer fields.
  * offers: fix invoice return comparison.
  * pyln-proto: update cryptography to v42
  * grpc-plugin: Run cargo fmt for minor style fixes
  * Revert "ci: Pin `rustc` to version 1.78 due to a type inference regression"
  * grpc-plugin: Update rcgen
  * plugin: Removing `category`, `description` and `long_description` from plugin_command struct
  * rpc: Removing `description` from json_command struct
  * rpc: Removing `category` and `verbose` from json_command struct
  * docs: Adding `readonly` category for all get & list commands except listdatastore
  * onchaind: Remove key derivation involving the signer
  * tests: Adjust tests for the lack of unilateral attempt now
  * close: Do not publish unilateral when witnessing a close onchain
  * ci: Pin `rustc` to version 1.78 due to a type inference regression
  * common: fix endless loop in gossmap iteration.
  * common/bolt12, offers plugin: handle experimental ranges in bolt12 correctly.
  * devtools/bolt12-cli: fix decoding of unknown fields.
  * common/wire: update, don't replace fields array in TLV structures.
  * plugins/offers: fix JSON output of decode when there are unknown fields.
  * common: maintain unknown fields when unmarshalling/marshalling TLVs
  * doc: allow "offer_description" to be missing in decode.
  * msggen: fix up previous generated "deprecated": false.
  * msggen: fix deprecated from "False" to "None".
  * wire: remove unused obsolete file.
  * lightningd: store our id as a struct pubkey as well as struct node_id.
  * common/utils: macros to help get copy/compare across different types right.
  * wally: update libwally to 1.3.0
  * plugins/sql: allow datetime functions Changelog-Changed: Plugins:  now allows date and time sqlite functions.
  * doc: Tiny corrections in documentation
  * lightningd: remove expermential "sendonionmessage" function.
  * pay: handle case where we are head of blinded path, and next hop is scid.
  * plugins/pay: pay to invoices where first hop is a short_channel_id_dir.
  * common: hoist scidd->pubkey conversion function into gossmap.
  * offers: add self-fetchinvoices for offers, and self-pay for the resulting invoice.
  * plugins/offers: create blinded path if necessary.
  * offers: generalize "best peer" logic into core.
  * plugin/pay: Handle paying to blinded path starting with us.
  * lightningd: new internal JSONRPC "decryptencrypteddata"
  * plugins/offers: allow reversal of a single-element path for reply.
  * plugins/pay: separate route destination and pay destination.
  * pytest: fix flake in test_fetchinvoice
  * unittests: use current version of BOLTS when reading specs.
  * pytest: add simple test for offers with paths.
  * plugins/offers: improve reply path logic.
  * establish_onion_path: allow establishment via any connected peer.
  * offers: check they use the blinded path if one is specified.
  * plugins/offers: add dev-paths option for specifying offers blinded paths.
  * fetchinvoice: don't call establish_onion_path ourselves, now send_message does it.
  * fetchinvoice: handle blinded paths in offers.
  * fetchinvoice: don't stash path in sent object, hand directly.
  * fetchinvoice: use common/onion_message routines.
  * plugins/offers: don't establish_onion_path at start of processing invoice_request
  * plugins/offers: make send_onion_reply() handle making transient connections.
  * plugins/offers: use common/onion_message routines in invoice_request handling.
  * plugin/offers: add inject_onionmessage helper.
  * common/onion_message: new unified, documented routines for making onion messages.
  * plugins/offers: neaten fetchinvoice integration.
  * plugins: move fetchinvoice functionality into offers plugin.
  * ci: Adding new step to run basic tests on minimum supported BTC version
  * doc: Update README for BTC min version
  * splice: Add funding outnum
  * git: Ignore .doc_version
  * Makefile: check formatting of notification schemas too.
  * doc: fix up added versions for notification schemas.
  * bolt12: partial support for minimal offer
  * config: onion messages are now always enabled.
  * connectd: ratelimit onion messages
  * connectd: forward onion messages by scid as well as node_id.
  * lightningd: tell connectd about all scids.
  * connectd: include map of scid->peer node id.
  * lightningd: add routine to directly inject an onion message.
  * common/onion_message_parse: return string, not bool.
  * chore: add ShortChannelId::to_u64
  * Makefile: only run cppcheck on non-generated files.
  * connectd: tie gossip query responses into ratelimiting code.
  * connectd: do response to gossip queries, don't hand them to gossipd.
  * gossipd: drop zlib support.
  * connectd: use gossmap streaming interface.
  * gossmap: add linear streaming interface.
  * gossipd: delete empty gossipd_peerd_wire.csv
  * connectd: throttle streaming gossip for peers.
  * doc: fix schema for listconfigs.
  * config: actually deprecate --experimental-anchors.
  * plugins/offers: establish_onion_path can have a simple boolean arg for connect_disable.
  * bitcoin: hoist scid hash into common code.
  * common: make struct sphinx_hop more generic.
  * connectd: log incoming onion message IO properly.
  * lightningd: clarify bolt12 "payment secret" logic.
  * common: don't pass (unused) has_realm parameter to process_onionpacket.
  * plugins/pay: fix crash if we try to self-pay a bolt12 invoice.
  * plugins/pay: don't crash if getroute is empty.
  * global: we always offer OPT_ROUTE_BLINDING, don't need to test.
  * connectd: fix missing peer close.
  * ccan: update to get fdpass fix.
  * common/msg_queue: make sure to close any pending fds on destruction.
  * connectd: don't report socket fds twice.
  * msggen: add `missing-grpc` command
  * plugins: Remove requirements.txt for python plugins
  * fundchannel: remove crash on race condition
  * wire: optimize sending packets now we can return EAGAIN.
  * ccan: update for more efficient ccan/io.
  * Makefile: don't make every file depend on version headers.
  * doc: don't include exact version in manpages.
  * doc: speed "noop" compilation times by not force-building markdown and man pages every time.
  * Fix: Add `notifications.rs` to $(CHECK_GEN_ALL) target
  * ci: Unify bitcoin versions for whole project
  * doc: Updated warning box for wss-proxy
  * clnrest: Fixes `ssl_version` deprecated warning
  * clnrest: Updated requirements.txt (without coincurve)
  * pyln-proto: update coincurve to v20
  * docs: Fixes typo in library name `flask-restx`
  * docs: Moved python plugins after CLN instructions
  * fix(deps): add pytest dependency for make check
  * docs: chore: bump lightning tag in installation.md
  * fix(deps): add python3-pip to clnrest dependencies
  * fix(deps): add libsecp256k1-dev to clnrest plugin instructions
  * fix(deps): add libffi-dev build dependency
  * docs: notifications schema update
  * script: Adding Delete action for readme docs
  * CI: set elements and bitcoind versions in one place.
  * lightningd: check command should return as much detail as possible.
  * common: move now-enlarged command_fail_badparam into its own source file.
  * common: don't mention the contents of invalid parameters when in non-dev mode.
  * common: new function command_log to log something about a specific command.
  * lightningd: rename command_log() to command_logger()
  * pytest: fix flake in test_emergencyrecover
  * pytest: fix test_feerate_stress race
  * pytest: fix flake in test_feerate_stress.
  * reckless: don't use time-based directories.
  * pytest: fix flake in test_closing.py::test_penalty_htlc_tx_timeout
  * lightningd: fix race in initialization.
  * chaintopology: free outstanding requests so we don't get responses while shutting down.
  * lightningd: pass explicit context for bitcoind request functions.
  * lightningd: move checkchain_timer out of bitcoind, remove stopped flag.
  * lightningd: move all chainheight logic into setup_topology.
  * lightningd: remove unused "min_blockheight" from chain_topology struct.
  * lightningd: wait for bitcoind at startup if it's fallen behind.
  * lightningd: remove `first_call` param for getchaininfo.
  * lightningd: split chaintopology init from normal loops.
  * lightningd: add arg to bitcoind_estimate_fees callback.
  * lightningd: pass height back from getrawblockbyheight.
  * docs: Removed example usage
  * docs: Example notifications heading
  * docs: Changes examples format
  * wallet: Log to chan->log rather than wallet->log
  * feat(main): Print channel status when loading it from DB
  * pytest: fix default/description order in zeroconf test plugin.
  * pyln: Turn the plugin options into a real Type (uppercase T)
  * pyln-client: allow dynamic option setter to throw exceptions
  * pyln: Drive-by type fixed
  * pyln: Add and test a callback based setconfig listener
  * pyln-client: allow dynamic=True add_option to actually allow updates.
  * autoclean: call list in easy stages.
  * autoclean: use filter to reduce processing.
  * libplugin: add plugin_option_dev_dynamic (our first dynamic dev option coming).
  * libplugin: support filtering of outgoing commands.
  * autoclean: rework logic to clarify subsystems.
  * autoclean: use a pointer for our global clean_info.
  * autoclean: remove autocleaninvoice command.
  * lightningd: don't load all forwardings into memory at once.
  * CI: upgrade CI actions to latest releases
  * ci: use Bitcoin Core 27.1
  * fuzz: Add input for from_bech32_charset off-by-one bug
  * lightningd: don't try to "save" incoming channel by closing early if incoming already onchain.
  * lightningd: log BROKEN if we lost funds, only unusual if we closed abandoned HTLC.
  * msggen: don't spam every time we rebuild.
  * pyproject.toml: Update ancient flake8
  * doc: Added Miscellaneous section for Docker users
  * doc: fixed broken link to `setting-up-multiarchqemu-user-static`
  * docker: Update github actions for Docker releases
  * docs: Updated scripts for rpc examples
  * docs: Removed null values from example request params
  * docs: Updated req params type from string to object
  * onchaind: remove support for rescuing non-static channels when we've lost data.
  * Gossip: BOLT catch, remove initial_routing_sync.
  * Doc: update bolts to assume gossip_queries under the new meaning.
  * Doc: update to BOLT which assumes option_var_onion_optin.
  * common: BOLT update: option_anchors_zero_fee_htlc_tx is now simply "option_anchors".
  * channeld: BOLT update, no longer allow creation of old (experimental-only!) non-zero-fee anchor channels.
  * common: No longer support new channels without option_static_remotekey.
  * common: update BOLTs to bring LaTeX formatting into onion spec.
  * common/onion_decode: update to latest BOLT spec, reject encrypted_recipient_data with both scid and node.
  * tools/check-bolt: rewrite to give more accurate diagnostics when we're out of sync.
  * devtools/gossipwith: use timestamp filter message not obsolete INIT_ROUTING_SYNC.
  * poetry: Use non-package mode
  * script: Adjusting the script with ubuntu:noble updates
  * script: Adding cl-repro script for easier builder image building
  * doc: fix markdown in configuration node options
  * commando: update removal version for rpcs
  * doc: Fixed decode `first_scid` and `first_scid_dir` descriptions
  * configure: don't sanitize function call types.
  * offers: remove deprecated @ prefix.
  * bcli: remove deprecated `estimatefees` responses.
  * Makefile: next version is 24.08.
  * offer: make the blockheight nullable
  * docker: poetry install before make
  * script: Added caching option for docker publish and shellcheck fixes

-------------------------------------------------------------------
Wed Jun 05 05:49:17 UTC 2024 - marec@detebe.org

- Update to version 24.5.0:
  * CHANGELOG.md: make more consistent.
  * meta: update changelog for v24.05
  * meta: bump rust versions for 24.05 release
  * gossipd: fix crash when processing pending node_announcements.
  * script: Add reproducible build script for Ubuntu v24.04
  * docs: Update chat links
  * meta: update changelog for 24.05rc2
  * common: translate legacy onion payloads.
  * pytest: test for forwarding legacy onion.
  * lightningd: `pay` dev_legacy_hop arg to make second-last onion a v0.
  * common: re-add legacy v0 hop generation to Sphinx for testing.
  * lightningd: send CHANNEL_REESTABLISH ourselves on closed channels.
  * pytest: test that we get REESTABLISH msg reply on closed channels.
  * chanbackup: typo fix.
  * docs: Type change for request amount too
  * schemas: use sat and sat_or_all again where appropiate
  * pytest: remove xfail in test (accidental commit?)
  * docker: Add missing git dependency for Fedora Dockerfile
  * docker: Adding Docker release action
  * meta: update python versions to 24.05
  * Meta: update the changelog for 24.05rc1
  * doc: Including docs references for addpsbtoutput where it seems to be missing
  * msggen: Include AddPsbtOutput to RPC list and meta field map; regenerate libraries
  * renepay: relax knowledge mod
  * renepay: put global variables into renepayconfig.h
  * common: make gossmap ignore redundant channel_announcements.
  * gossipd: make extra-sure we don't put in redundant channel_announcement messages.
  * Update Dockerfile and build-release.sh to PR7214
  * Use cross compile in dockerfile, fix arm32 support
  * lightningd: don't ignore fee limits on mutual close.
  * pytest: test that ignore-fee-limits doesn't apply for mutual close.
  * offer: fix type to the getchaininfo rpc
  * bcli: make last height optional
  * doc: Updating python grpcio-tool dependency
  * wallet: recoverchannel RPC only stubs a channel if the id is vacant in the DB as well. Closed channels are not loaded inside the peer struct, hence find_channel_by_id fails when the id is occupied by a closed channel. So we need to create a function to directly check if the ID is occupied or not.
  * doc: Adding manual trigger event
  * doc: listpeerchannel typo and description fix
  * renepay: clean unit tests
  * renepay: fix memleak in CI
  * renepay: test channel capacity unavailable
  * unit-test: update mocks
  * common: Fix off-by-one in `from_bech32_charset`
  * renepay: fix 32-bit compilation.
  * bcli: fix compilation on 32-bit platforms.
  * doc: update rpc docs before pushing to readme
  * pytest: use reserve_unused_port even more
  * docs: adds documentation about the log notification
  * core: notify plugins when a log line is emitted.
  * msggen: add checkrune method
  * msggen: add blacklistrune method
  * msggen: add createrune method
  * msggen: add showrunes method
  * msggen: add multiwithdraw method
  * msggen: add makesecret method
  * fixup! msggen: add listconfigs method
  * msggen: add listconfigs method
  * msggen: fix edge cases in rust composite field names
  * tools: allow spelling of HtlcTlv
  * msggen: allow backfilling of already deprecated fields
  * msggen: add listinvoicerequests, disableinvoicerequest, invoicerequest methods
  * msggen: add routes to decode and decodepay
  * msggen: fix invoice request missing exposeprivatechannels
  * msggen: add help method
  * msggen: add funderupdate method
  * msggen: add emergencyrecover, recover, recoverchannel methods
  * msggen: add dev-forget-channel method
  * pytests: use reserve_unused_port() everywhere
  * Updated poetry.lock file
  * Makefile: Include pyln-grpc proto in PYTHONPATH
  * gci: Try to fix the pyln-grpc installation in CI
  * Fix test for notification of custommsg
  * Include `grpc-msg-buffer-size` in docs
  * msggen: Allow non_camel_case for notification
  * Test for notifications over grpc
  * cln_rpc: Test deserialize_connect_notification
  * msggen: Schema for ConnectNotification + collisions
  * grpc-plugin: Implement notifications
  * msggen: Implement notification-server
  * msggen: Add notifications to proto-file
  * msggen: Add conversions for notification pb to json
  * msggen : Add notification-messages to proto-file
  * msggen: RequestStructs for notification-streams
  * cln-rpc: Test for serialization of block_added
  * msggen: Add test for serialization of notifications
  * msggen: Choose better when a subfield is optional
  * msggen: Provide parent in `visit`-method of patch
  * msggen: Add notification-structs to `cln_rpc`
  * msggen: Move rpc-model generator
  * msggen: Cut gprc into pieces!!!
  * msggen: Add notifications to the `Model`
  * Add schema's notifications
  * libplugin: allow display of default values.
  * libplugin: add test for dynamic setting values.
  * plugins: two minor things I noticed.
  * msggen: add upgradewallet method
  * msggen: add setpsbtversion method
  * msggen: add setconfig method
  * msggen: add sendonionmessage method
  * pay: fix bolt12 blinded path cltv logic.
  * offers: add final node's CLTV delta in when creating blinded path payinfo.
  * offers: use node_id not scid inside blinded path.
  * offers: put correct CLTV limit inside blinded paths.
  * pytest: add test for paying an invoice with a one-hop blinded path.
  * cln-plugin: fix over-escaping rpc errors
  * cln-plugin: Add dynamic configs and a callback for changes
  * msggen: add splice_update method
  * msggen: add splice_signed method
  * msggen: add unreserveinputs method
  * msggen: add reserveinputs method
  * pytest: test that we kick out pending transient connections too.
  * connectd: --dev-handshake-no-reply so we can test pending connections.
  * pytest: test dropping transient connections.
  * connectd: implement "transient" connections.
  * pytest: test fetchinvoice reply path which is not a direct peer.
  * plugin/offers: connect if necessary for replying to invoice_request.
  * plugins/fetchinvoice: use new generic connect-if-needed infrastructure.
  * plugins: generalize "connect if we can't route" logic, link into offers plugin.
  * connectd: fix exhaustion code where we pick random peer.
  * doc: Updating installation instructions for python plugins
  * hsmd: support HSM_VERSION 6
  * hsmd: HSM_VERSION 6: get_per_commitment_point never returns secret
  * hsmd: make the negotiated hsmd version available to libhsmd
  * channeld: split get_per_commitment_point uses into separate functions
  * channeld: factor out unneeded make_revocation_msg_from_secret
  * hsmd: prune unreachable pre HSM_VERSION 5 code
  * bcli: Add rpcclienttimeout parameter and use max value of it and retry_timeout
  * common: add unit test for marginal feerate function.
  * channeld: Adjust the feerate security margin profile
  * msggen: add sendinvoice method
  * msggen: add renepaystatus method
  * msggen: add renepay method
  * msggen: add plugin method
  * devtools: make bolt12-cli print blinded paths properly.
  * offers: handle scid in blinded reply path `first_node_id` field.
  * bolt12: allow first_node_id in blinded path to be a scid.
  * common: move json_to_blinded_path into its own file.
  * plugins/fetchinvoice: remove "blindedpath" command altogether, since we're the only user.
  * lightningd: move undocumented "blindedpath" command into fetchinvoice plugin.
  * common: add sciddir_or_pubkey type.
  * docs: fixing the json response in documentation
  * pytest: fix flake in test_splice_disconnect_sig
  * pytest: fix flake in test_rbf_non_last_mined
  * pytest: update bookkeeper chan lease fee
  * pytest: update dual-fund tests
  * dualopend: remove min_witness_weight requirement
  * global: remove tags from BOLT quotes now dual-funding is in master
  * multifundchannel: where does this minimum weight appear in the BOLTs?
  * openingd: be more flexible in allowing unknown segwit inputs.
  * lightningd, dualopend: update minimum RBF increment from 1/64 to 1/24.
  * dualopend: make is_dust test match the spec.
  * common: don't set DF feature in invoices.
  * BOLT: catch up now Dual-funding is included.
  * BOLT: update to include 2016 for max_htlc_cltv.
  * BOLTs: catch up with minor clarifications.
  * global: fix up quotes which are now in the master branch.
  * pytest: relax test_low_fd_limit for Github CI.
  * lightningd: hell, let's start with 64k fds.
  * lightningd: increase fd limit if we can, to double number of starting channels.
  * channeld: close an unimportant connection when fds get low.
  * connectd: use hash table, not linked list, for connecting structs.
  * lightningd: log when we fail to get an fd from hsmd.
  * connectd: log when we fail to receive an fd from lightningd.
  * connectd: log if we fail an accept() call.
  * ccan: update to get extended ccan/io error callbacks.
  * Typo fixes from Alex's review
  * pay: Enable chainlag offset in direct override paymod
  * pytest: Remove outdated tests
  * pay: Implement offset and chainlag computation when paying
  * pay: Add the `chainlag` to the payment
  * pay: Remove the `waitheight` paymod
  * pytest: Add a test for the height mismatch logic
  * renepay: fix some memory leaks
  * renepay: fix sources
  * renepay: wake-up result collector every 50msec
  * renepay: a bit more verbose information in logs
  * renepay: update test files
  * renepay: bug fix, local channel information
  * renepay: bug fix on the routebuilder
  * renepay: remove payment from route
  * renepay: add disabledmap abstraction
  * renepay: refactor routefail
  * renepay: disable channels not in chan_extra_map
  * renepay: add a test for routehints
  * renepay: uncertainty network update revisited
  * renepay: pay selfpayments on spot
  * renepay: minor fixes
  * renepay: update unit tests
  * renepay: add a test for concurrent payments
  * renepay: update the Makefile
  * renepay: add a helper module json.c
  * renepay: add error codes
  * renepay: add routefail.c
  * renepay: add routetracker.c
  * renepay: add routebuilder.c
  * renepay: payment state machine (mods)
  * renepay: the plugin executable is main.c
  * renepay: THE plugin global structure
  * renepay: refactor uncertainty API
  * renepay: rename uncertainty_network for uncertanty
  * renepay: abandon pay_flow for route
  * renepay: concurrent pay calls
  * renepay: separate flow and chan_extra
  * plugin: notify only the plugins with init state
  * pytest: clean up tests/test_db.py::test_last_tx_psbt_upgrade
  * pytest: catch more broken messages in test_important_plugins.
  * Add missing docs and Changelog-Added line.
  * drive-by: fix valgrind complaint about uninitialized memory
  * logging: move noisy gossip recv message to TRACE
  * logging: move two noisy plugin_hook logging entries to TRACE
  * logging: add TRACE between DEBUG and IO
  * lightningd: avoid crash from hsmd not signing anchor spend
  * pytest: attempt to reproduce hsm signing failure.
  * docker: Fix jq installation error for focal
  * pytest: test that the preapprove hooks get called by check.
  * pay: move preapproveinvoice command out so it can be called bu `check`.
  * keysend: move preapprovekeysend outside pay loop, so it can be called by `check`.
  * pytest: test various preapprove scenarios.
  * lightningd: extend preapproveinvoice and preapprovekeysend to check with HSM.
  * hsmd: add variant of preapprove commands to have it check only, not do anything.
  * hsmd: add preinit message to set HSM dev flags.
  * setconfig: more thorough check for internal config options.
  * libplugin: allow check setconfig on all dynamic options.
  * pytest: test the check command in libplugin.
  * libplugin: handle check for our commands.
  * lightningd: allow plugins to specify `cancheck` for us to pass check commands through.
  * lightningd: add optional ->check callback to struct json_command.
  * param: generalize check handling a little.
  * renepay: fix gcc -O3 overzealous warning.
  * ccan: update tal so we can annote allcators as never returning NULL.
  * pyln-client: pass through level parameter on command notifications.
  * cln_plugin: Support wildcard subscriptions
  * Repro: cln-plugin cannot subscribe to wildcard "*"
  * cln_plugin: Example package subscribing to "*"
  * pay: ignore uncommited channels in listpeerchannels output
  * pytest: test pay during channel open
  * msggen: add disableoffer method
  * msggen: add missing bkpr-* methods
  * msggen: add getlog method
  * plugin/clnrest: Adding new config param as `clnrest-swagger-root`
  * plugin/clnrest: Adding new config param as `clnrest-swagger-root`
  * msggen: add delforward method
  * poetry: add pyln-grpc-proto dependency
  * bcli: change iteration order on peerlist
  * ci: Update elementsd version used for tests
  * tests: add tests for getblockfrompeer
  * bcli: add version check
  * bcli: try to fetch block from peer if unknown
  * bcli: add peers array to the stash
  * bcli: move getblock call to a separate function
  * bcli: allow non 0 exit status for getblock call
  * msggen: add low level fundchannel methods
  * msggen: add methods autoclean-once and autoclean-status, fix bkpr-listincome
  * msggen: rust fix for methods containing '-'
  * msggen: add delpay method
  * plugin/wss-proxy: Documentation
  * plugin/wss-proxy: Testing WSS connection
  * plugins/wss-proxy: Plugin included in core lightning
  * plugins/wss-proxy: Adding WSS Proxy plugin
  * msggen: add low level openchannel methods
  * msggen: fix for methods that contain '_' in their name
  * spelling: its `listinvoices` and `listinvoicerequests`
  * lightningd: use return value of peer_start_channeld()
  * lightningd: trivial cleanup: use tmpctx.
  * pyln-testing: require explicit pattern for BROKEN messages.
  * msggen: fix walk through nested json schemas
  * newaddr: various fixes for msggen and docs
  * msggen: use field numbers from .msggen.json for rust model if available
  * schema: add multifundchannel generation
  * mssgen: preserve existing camel cases an edge case like MultifundchannelChannel_idsChannel_type was previously converted to MultifundchannelChannelIdschannelType instead of the correct MultifundchannelChannelIdsChannelType
  * plugins/clnrest: simple wrapper to handle missing python3.
  * libplugin: cleanly separate apply and unapplying payment route.
  * doc: Updated dev command warning
  * doc: updated schemas for json_examples
  * ci: use Bitcoin Core 26.1
  * tests: add test_pay_avoid_low_fee_chan
  * pay: fix removal of channel hint estimated capacity
  * remove is_local variable from listpeerchannels cb
  * renepay: limit arc capacities by htlc_max
  * add more fields to gossmods_listpeerchannels
  * lightningd: fix memleak where we didn't free plugin_hook_request when it was finished.
  * lightningd: don't allow mindepth != 0 if they specify channel_type zeroconf.
  * fundchannel_start: delay, don't refuse, if node not synced.
  * pytest: rename lightning nodes to reduce confusion.
  * openchannel_bump: delay, don't refuse, if node not synced.
  * openchannel: delay, don't refuse, if node not synced.
  * lightningd: debug log when we send a notification to a command.
  * lightningd: allow *outgoing* HTLCs before full bitcoind sync.
  * lightningd: use get_network_blockheight() not get_block_height() for pay.
  * fix some typos
  * gossipd: be stricter with non-gossip_query nodes.
  * lightningd: revert f450dfeb5591d69f78c66a1e1e6fbbd455be6902 to allow non-gossip_query nodes.
  * Remove spurious import
  * gitignore: Ignore clangd related things
  * pytest: test parsing of bolt12 invoice strings in runes.
  * runes: bolt12 parsing.
  * runes: handle `lightning:` prefix in invoice arguments
  * pytest: add test for rune pinv bolt11 parsing.
  * runes: add support for pinv bolt11 parsing.
  * doc: document the rune conditions for parsing invoice strings.
  * plugins: remove allowance for missing JSON `id` in commando.
  * lightningd: remove createrune restrictions as strings.
  * lightningd: remove `channels` from `listpeers`.
  * lightningd: remove handling of invalid `sendpay` route first `channel`
  * lightningd/connectd: remove --experimental-websocket-port
  * lightningd: remove `funding_locked` from channel_opened notification.
  * lightningd: remove obsolete feerate output fields.
  * autoclean: remove deprecated configs.
  * doc: correctly remove generated schemas on `make clean`.
  * lightningd: remove delexpiredinvoice
  * lightnind: remove deprecated feerate names.
  * lightningd: remove failure_code from invoice hook and htlc_accepted hook.
  * Makefile: update CLN_NEXT_VERSION so deprecations tick over.
  * lightningd: fix name for deprecated APIs, and fix crash with listconfigs when --i-promise-to-fix-broken-api-user is used.
  * doc: add dev-forget-channel to Makefile
  * doc: Add json schema for dev-forget-channel
  * plugins/spender: fix multifundchannel all on more than 1 channel.
  * multifundchannel: fix `amount` argument in schema & docs (it can be "all").
  * tests: multifundchannel and "all" amount
  * Update hsmtool.c
  * bitcoin/short_channel_id: pass by copy everywhere.
  * wallet: fix wallet_forwarded_payment_add to use scid_out arg.
  * wallet: fix parameter order to hand `const tal_t *ctx` first.
  * common: remove type_to_string files altogther.
  * global: change all type_to_string to fmt_X.
  * global: expose all fmt_X functions for direct use, make uniform.
  * lightningd: fix type_to_string on `struct channel`.
  * Makefiles: remove leftover references to $(EXP)
  * Makefiles: remove dependency on wire/onion_wiregen.o where unnecessary.
  * lightningd: check rune parameter names with and without punctuation.
  * lightningd: name error messages a bit more readable.
  * ccan: update to get rune error message fix.
  * pytest: make runes amount test more specific.
  * pyln-testing: use DEBUG_LIGHTNINGD to start gdb on lightningd during test.
  * pay: add `partial_msat` option to make partial payment.
  * libplugin: conceptually separate "total due" from "amount we're paying".
  * doc: Delete markdowns as they will be generated by scripts now
  * docs: Updates script and fixed test to generate lightning-sql
  * doc: Schema generation instructions update
  * doc: Remove unused request.json and schema.json files
  * doc: updated markdown files
  * script: Update scripts
  * script: Updated sql-schema_gen and documented it's jq dependency.
  * doc: Merge request and schema jsons in a single file
  * doc: Markdown cleanup
  * doc: Updated schemas *.schema.json
  * doc: Updated parameter descriptions for *.request.json
  * doc: Adding missing `*.schema.json`
  * doc: Adding missing `*.request.json`
  * Add type `currency` for offers amount field. Eg.`1.50USD`.
  * Add type `sat`.
  * JSON: don't return a raw result string for "stop" and "recover".
  * configure: disable ASAN for buggy clang.
  * tx: remove allocating script fetchers
  * wallet: perform wallet_can_spend exit logic only once
  * wallet: avoid computing the key fingerprint while looking for matches
  * wallet: remove output_is_p2sh from wallet_can_spend
  * addr: avoid a redundant allocation for unknown script types
  * wallet: avoid database lookups for non-interesting script types
  * script: consistently take the script length in identification functions
  * script: remove repeated tal_count calls from scripteq
  * Revert "core: Add a function check if a script is P2WSH without allocating"
  * Revert "core: Defer extracting the script until we're sure we'll use it"

-------------------------------------------------------------------
Sat Apr 06 12:01:42 UTC 2024 - marec@detebe.org

- Update to version 24.2.2:
  * meta: Update the CHANGELOG.md for the point release
  * gossipd: be stricter with non-gossip_query nodes.
  * lightningd: revert f450dfeb5591d69f78c66a1e1e6fbbd455be6902 to allow non-gossip_query nodes.

-------------------------------------------------------------------
Sat Mar 09 10:16:58 UTC 2024 - marec@detebe.org

- Update to version 24.2.1:
  * release: Update the changelog to include v24.02.1
  * gci: Add manual dispatch trigger to the crate publication
  * crates workflow: add protoc to workflow environment
  * bump setup-python version for pypi workflow
  * fix: pypi github workflow does not allow double quotes
  * rs: bump crate versions for v24.02.1
  * crate-io workflow: replace unmaintained actions-rs
  * renepay: bugfix situation with htlcmax=htlcmin
  * renepay: refuse to pay BOLT12 invoice
  * common, pay: actually test Dijkstra and route finding.
  * pay: ignore fees on our own channels when determining routing.
  * common: fix dijkstra scoring.
  * plugins/pay: fix route scoring calculation.
  * plugins/pay: fix capacity bias.
  * common: add routing test using real data which crashes.
  * common: fix uninitialized member in gossmap.
  * plugin: Make the recover plugin less noisy
  * pay: Prevent repeating the preapproveinvoice check
  * release: Unbreak the Fedora build
  * release: Bump pyln package versions
  * release: Update the CHANGELOG.md

-------------------------------------------------------------------
Tue Feb 27 21:14:52 UTC 2024 - marec@detebe.org

- Update to version 24.2.0:
  * release: Unbreak the Fedora build
  * release: Bump pyln package versions
  * release: Update the CHANGELOG.md
  * gossmap: fix OpenBSD crash.
  * ci: Remove the alping compilation test
  * hsmd: remove deprecated init v2
  * hsmd: increase the min version
  * cln_plugin: switch lifetimes of ConfigOption from static to non-static
  * reckless: populate local submodules for searching
  * reckless: prefer to search a local copy of a remote source
  * reckless: Clone github sources when API access fails
  * reckless: set relative path of local git repo directories
  * reckless: initialize repos with submodules and other cleanup
  * reckless: reduce github API calls
  * tx_parts: use wally to clone tx inputs
  * gh: Recude parallelism of Pre-flight checks'
  * make: The protobuf files are a grouped target
  * core: Defer extracting the script until we're sure we'll use it
  * core: Add a function check if a script is P2WSH without allocating
  * pytest: Stabilize the `test_recover_plugin` test
  * libwally: upgrade to latest master, fixes testnet block with huge tx.
  * channeld: Splice resume check should log to DEBUG
  * tests/test_misc.py: Add test_recover_plugin to check if the funds are being recovered when we lose some state and enter recover mode.
  * plugins/recover: Load gossmap, connect to old peers and fetch peer_storage and then call restorefrompeer repeatedly.
  * plugins/recover: entering_recovering_mode should connect to most connected nodes on the network and call emergency_recover immediately.
  * plugins/recover: Initialise process to detect lost state through listpeerchannels.
  * Plugins: Add recover plugin which'd identify if we've lost some state and try to recover the node by entering  mode.
  * peer_control: Add lost_state param inside listpeerchannels rpc, which'd help us identify if we've fall behind or lost some state.
  * Docfix: connec-notification
  * gossipd: handle case where block closes multiple channels requiring node_announcement moves more than once.
  * gossipd: don't try to delete node_announcement twice if it's the same node.
  * Fix incorrect hex value for Signet port
  * lightningd: add --dev-allow-shutdown-destination-change to unstick existing nodes.
  * lightningd: clean up close logic, fix bug where we can't override destination.
  * common: add tal_arr_eq helper.
  * lightningd: reindent closing_control.c
  * pytest: add test for issue #7014
  * renepay: update the gossmap after addgossip
  * autoformat test_renepay.py
  * renepay bug fix: list previous sendpays
  * lightnignd: Fix another assert crash.
  * connectd: fix bad assert.
  * lightningd: don't force state if gossipd gives us an unexpected channel_update.
  * Add no-reconnect-private option to disable automatic reconnect-attempts to peers connected to our node with private channels only
  * pyetst: Fix up a test checking fees after fee calc change
  * channeld: fix update_fee cap.
  * gossipd: don't assert on redundant flag write, just log message.
  * connectd: don't suppress channel_announcement without channel_update yet.
  * gossipd: make sure to mark node_announcement dying if we fast-path remove last channel.
  * gossipd: don't consider dying channels when seeking preceeding channel_announcements.
  * gossipd: set dying flag on node_announcements when initially created.
  * gossipd: preserve the dying flag when moving node_announcement.
  * gossipd: when applying a new channel_update, preserve the dying flag.
  * gossipd: make sure to unmark dying node_announcement if we see a new channel!
  * gossipd: set dying flag on node_announcement when all channels are dying.
  * gossipd: clean up flags accessors.
  * common: add gossmap_chan_is_dying() helper to check flags.
  * devtools: remove warning message from dump-gossipstore.
  * pyln-testing: dump gossip store when we complain about bad gossip.
  * doc: fix typos
  * fixup! dual-fund: add `require_confirmed_inputs` to RBF flows
  * dual-fund: add `require_confirmed_inputs` to RBF flows
  * fixup! lightningd: Add tx_abort routine to lightningd
  * fixup! inflight: Add ability to delete an inflight
  * fixup! splice: Add support for tx_abort to channeld
  * splice: Add support for out-of-bound tx_sig
  * splice: Add support for tx_abort to channeld
  * lightningd: Add tx_abort routine to lightningd
  * interactive_tx: Add tx_abort support
  * inflight: Add ability to delete an inflight
  * dualopen: update test to handle ABORT
  * msggen: Regenerate with correct protobuf version
  * msggen: Regenerate to include `offer` and `listoffers`
  * make: Add missing dependency between schemas and schema bundle
  * `cln_plugin` : Test default values for ConfigOptions
  * cln_plugin: Add documentation
  * cln_plugin: Request value as rust primitive
  * Allow `ConfigOption` to be specified as const
  * cln_rpc: Refactor `ConfigOption` and `Value`
  * cln_rpc: Store ConfigOptions in HashMap
  * ci: Install python build dependencies in alpine image
  * make: always generate proto files sans rust
  * msggen: Start making the `msggen` library a standalone tool
  * wallet: ensure all established channels have aliases.
  * Fixed indentation errors.
  * Fixed raising TypeError instead of ValueError when there is an invalid type.
  * pytest: fix flake in test_htlc_in_timeout with anchors.
  * pytest: fix bad gossip flake in test_closing_specified_destination.
  * options: make anchors enabled by default, ignore experimental-anchors.
  * pytest: changed tests if we're using experimental-anchors.
  * lightningd: allow dev-force-features to unset even if not set.
  * funder: don't try to spend emergency_reserve
  * wallet: be a little more flexible with change for emergency reserve.
  * lightningd: correctly handle case where we have no fee estimates opening anchor channel.
  * msggen: Fix the `offer` schemas
  * doc: Fix schema for `offer.amount`, it can be a non-BTC unit too
  * feat: added listoffers grpc command
  * doc: adding schema to create offer requests
  * feat: adding offer command to pyln-testing and msggen
  * feat: grpc - adding support for `Offer` command
  * fix: fixing start_any_period type for offer recurrence
  * doc: update reckless documentation
  * pytest: add tests for pip and poetry installed virtual envs
  * reckless: update timeouts
  * reckless: create virtual environments for python plugins
  * reckless: add option to check out a specific commit ... using the syntax reckless install <plugin_name>@<commit hash>
  * reckless: add installation metadata
  * reckless: add staging directory and symlink
  * reckless: properly remove entry from reckless sources
  * Add a method to the pyln-client for using the sendcustommsg api
  * lightningd: deprecate @-prefix hack for offer recurrence_base.
  * common: don't insist on unique param() arguments.
  * cln-grpc: Patches rpc-file path
  * Removed duplicate keys in some dictionaries.
  * fuzz: use explicit fetching for digest algorithms
  * Revert "ci: Split out the fuzz testing"
  * regtest: fix check for bitcoin-cli
  * pytest: another bad gossip flake
  * pytest: fix YA gossip flake.
  * gossipd: simplify gossip store API.
  * gossipd: clean up gossip_store offsets.
  * gossipd: clean up gossip_store routines.
  * gossipd: remove routing.c and other unused functions.
  * gossipd: switch over to using gossmap_manage, not routing.c.
  * gossipd: make the query response code use gossmap_manage.
  * gossipd: make the seeker code use gossmap_manage.
  * gossipd: re-implement flood protection.
  * gossipd: don't validate UTXOs on our own channels.
  * gossipd: interface to have gossmap_manage send updates on init.
  * gossipd: implement pruning timer inside gossmap_manage.
  * gossipd: gossmap_manage helper to get a node's address, if any.
  * gossmap_manage: new file for managing the gossip store.
  * gossip_store: remove infratructure and bits for marking ratelimited entries.
  * gossipd: remove spam handling.
  * gossipd: remove zombie handling.
  * gossipd: move gossip_store pointer from struct routing_state to daemon.
  * gossipd: simplify seeker startup.
  * gossipd: move timestamp_reasonable out of routing.c
  * gossipd: move dev flags from routing struct to daemon struct.
  * gossipd: have seeker quert interfaces take an id, not a struct peer.
  * gossipd: pass node_id to queue_peer_msg, not peer.
  * gossipd: make gossip_store hold daemon ptr, not rstate.
  * gossipd: remove online gossip_store compaction.
  * gossipd: move tell_lightningd_peer_update from routing.c into gossipd.c
  * gossipd: take signature checks out of routing.c
  * gossipd: take txout failure cache out of routing.c
  * common: optional gossmap callbacks for better failure handling.
  * common: gossmap method to load fd directly, not filename.
  * gossipd: new routines to support gossmap compatibility.
  * common/gossmap: remove now-unused private flag.
  * Convert fee result into msats
  * Remove update_count from find_account_onchain_fees
  * Remove grouping by update_count in finding onchain fees
  * Add xfail tests for onchain fees lookup query
  * regtest: error message if bitcoin-cli is not found
  * pytest: fix another gossip flake.
  * pytest: fix gossip_store load test for EXPERIMENTAL_SPLICING=1
  * lightningd: fix reference to uninitialized channel_type during opening.
  * fixed source (using raw millisatohis)
  * renepay: flow routes limited by htlc_max/min
  * rpc: Regenerate derived files after adding bkpr-listincome
  * msggen: Add classes for MethodName and TypeName
  * fix : implements the `bkpr-listincome` plugin for grpc interface.
  * ci: Split out the fuzz testing
  * pyln: Include py.typed file
  * configure: abort on UBSan failure
  * channeld: use explicit revoke on retry when HSM_VERSION >= 5
  * Rename `FeatureBitsPlace` to `FeatureBitsKind`
  * cln-plugin: Allow user to set featurebits
  * cln-grpc: Derive serde Serialize/Deserialize for types
  * tests: augment test_onchain_their_unilateral_out to check to_remote witness generation
  * Update LICENSE
  * cln_plugin: custommessages in `get_manifest`
  * update the documentation
  * add --show-secrets option for hsmtool dumponchain
  * hsmtool: add feature to dump private keys
  * ci: fix the CI configuration for rust release
  * lightningd: don't generate node_announcements with identical timestamps.
  * pytest: don't trigger bad gossip message in test_routing_gossip_reconnect.
  * pytest: fix flake in test_wumbo_channels
  * lightingd: corrections from Alex Myers's review.
  * gossipd: make seeker uintmap visible to memleak code.
  * lightningd: expose last_stable_connection in RPC.
  * lightningd: set last_stable_connection 1 minute after channel reestablished.
  * lightningd: add last_stable_connection field to db, channel.
  * lightningd: expose `reestablished` field.
  * channeld: notify lightningd once we've exchanged reestablish messages.
  * gossipd: remove node_announcement generation.
  * lightningd: turn on node_announcement generation.
  * lightningd: move node_announcement unit test from gossipd/
  * connectd: channel_gossip when we've tried to connect to all peers.
  * lightningd: refine heuristics for remote address selection.
  * lightningd: don't create node_announcement until gossipd is finished.
  * gossipd: tell lightningd its node_announcement on startup, if any.
  * lightningd: add routines to generate node_announcement.
  * lightningd: check channel_announcement signatures we get from peer.
  * gossipd: remove channel update/annoounce creation and local update handling.
  * common: remote private_channel_announcement.[ch].
  * gossipd: don't put private channel info into store at all.
  * gossipd: no longer take private channel updates from lightningd
  * dualopend: remove channel_update message creation.
  * channeld: remove channel_update message creation.
  * lightningd: ignore gossip messages from channeld, switch to our own.
  * lightningd/channel_gossip: new file for handing and generating gossip for our channels.
  * lightningd: add gossip_generation.c
  * lightningd: tweak db remote channel_announcement sigs API.
  * channeld: tell lightningd scid from `announcement_signatures` message.
  * connectd: separate routine to inject message without closing connection.
  * lightningd: set channel's local alias at init.
  * dualopend: tell lightningd what remote alias the peer sent.
  * gossipd: get told about new block before splicing code tries to feed us channel_announcement.
  * gossipd: strip private updates from gossip_store on startup.
  * hsmd: add command to allow lightningd to sign channel announcement.
  * lightningd: use explicit accessor to get channel_update for errors.
  * lnprototest: remove.
  * pytest: fix flake in test_upgrade_statickey_onchaind
  * topology: don't call gossmap for locall added channels.
  * pytest: test_gossip_pruning should not assume redundant node_announcement.
  * pytest: prepare sql test for faster gossip generation.
  * pytest: fix up test_zeroconf_multichan_forward once routehints fixed.
  * pytest: fix splicing tests to be more explicit, and not rely in private gossip messages.
  * pytest: check for short_channel_id, not status.
  * pytest: Remove check for to-be-removed message about msg from channeld.
  * pytest: make sure listincoming sees remote update in test_zeroconf_forward.
  * pytest: make sure gossipd sees channel before we close it.
  * pytest: ignore private updates in test_addgossip.
  * pytest: fix psbt db test.
  * Schema: Add schema's for detailed fundchannel methods
  * Doc: Undocumented parameters in fundchannel_start
  * pyln: Consolidate on pyln.testing.db
  * wipe_db() implementation
  * pytest: fix flake in test_peer_anchor_push
  * pytest: fix flake in test_custommsg_triggers_notification
  * openingd: make channel-type rejection message clearer.
  * pytest: check that listpeerchannels gives the same channel type as returned from fund/openchannel
  * fundchannel_start & multifundchannel: add channel_type.
  * dualopend: fix channel_type if we don't negotiate the default.
  * common: move json_add_channel_type from lightningd/
  * lightningd: make option_static_remotekey compulsory.
  * lightningd: add dev-any-channel-type to allow obsolete channel types.
  * spenderp: add channel_type parameter to fundchannel / multifundchannel.
  * fundchannel_start / openchannel_init: add a channel_type parameter to force channel type.
  * common: channel_type_accept doesn't use `their_features`; remove parameter.
  * common: add param_channel_type helper.
  * openingd: correctly mark channel type zeroconf if negotiated and they offered minimum_depth=0.
  * lightningd: make option_gossip_queries compulsory.
  * lightningd: make option_data_loss_protect compulsory.
  * lightningd: fix fd leak with check command on openchannel_init.
  * msggen: Make `ChannelTypeName` a native enum
  * docs: Fix missing escapes for underscores in multifundchannel docs
  * lnprototest: update to origin/no-empty-channeltype for now.
  * channeld: use revoke_commitment_tx if hsmd supports
  * hsmd: separate  revoke_commitment_tx
  * channeld: defer construction of revocation message until master sync
  * channeld: add hsm_capabilities and add hsm_is_capable to common
  * renepay: accomodate fees in the payment flow
  * bkpr: now that we're not doing empty acct logging, we dont need this bool
  * bkpr: use currency in balance snapshot
  * bkpr: dont log unknown accounts with zero balances
  * libplugin: remove global deprecated_apis flag.
  * commando: use deprecation API for missing ids.
  * plugins/bcli: use per-command deprecation flags.
  * libplugin: handle `deprecated_oneshot` notification.
  * plugins: allow plugins to get per-connection deprecated state.
  * libplugin: get `i-promise-to-fix-broken-api-user` list from lightningd.
  * lightningd: mark all internal deprecations by version.
  * pyln.plugin: Allow deprecated to be a string.
  * libplugin: support version strings for deprecations.
  * plugins: allow plugin options `deprecated` to be an array of strings.
  * plugins: allow `deprecated` for registered commands to be an array of versions.
  * common: allow JSON-RPC parameters to specify deprecation versions.
  * jsonrpc: add deprecations command to locally set deprecated apis on/off.
  * plugins/sql: use per-command deprecations.
  * common: add command_deprecated_param_ok() and command_deprecated_out_ok()
  * pytest: note where we use very deprecated features, so tests don't rbeak.
  * doc: start a list of current deprecations.
  * lightningd: i-promise-to-fix-broken-api-user option.
  * plugins/sql: do deprecations at request time, not schema loading.
  * plugins/sql: make columns an array of pointers.
  * schemas: deprecated is now a range.
  * msggen: generalize version handling.
  * Makefile: add CLN_NEXT_VERSION, functions encoding deprecation schedule.
  * lightningd: reuse code for "dynamic" getmanifest response parsing.
  * config: remove disable-ip-discovery
  * funder: remove lease-fee-base-msat
  * wallet: remove P2SH support.
  * pyln-client: remove long-obsolete support for msatoshi arg.
  * common: remove parameter aliases.
  * common: remove no-longer-required p_req_dup_ok hack.
  * lightningd: remove msatoshi alias for amount_msat.
  * lightningd: clean up notification infrastructure.
  * renepay: add self-pay feature
  * Update configuration.md
  * fuzz: initial fuzz-bolt12-invoice-decode corpus
  * fuzz: initial fuzz-bolt12-invrequest-decode corpus
  * fuzz: initial fuzz-bolt12-offer-decode corpus
  * fuzz: initial fuzz-bolt12-bech32-decode corpus
  * fuzz: test bolt12 decoding
  * fuzz: test bolt12 bech32 decoding
  * fix CI test: uninitialized variable
  * fix CIL maybe-uninitialized variable
  * error handling in mcf.c
  * move function linear_fee_cost to mcf
  * remove unnecessary arguments
  * remove declaration of derive_mu
  * renepay: low level update knowledge failure
  * uniform error handling pattern for flow.c
  * renepay: remove unused derive_mu function
  * remove amount_accumulate and amount_reduce
  * remove flow dependency on payment
  * rs: Temporarily remove a test that is failing due to log changes
  * hsmd: Implement hsmd_forget_channel for Channel Deletion in HSMD
  * py: Publish pyln-grpc-proto following new methods
  * doc: add a nice explainer about how to update PR branches
  * Update installation.md
  * cln-plugin: Switch from `env_logger` to `tracing-subscriber`
  * cln-plugin: Allow setting `usage` of RPC-method
  * chaintopology: fetch item counts just once when iterating
  * chaintopology: do less work when iterating blocks
  * bitcoin_block_from_hex: avoid creating PSBT wrappers for finalized block txs
  * fromwire_bitcoin_tx: avoid creating a PSBT wrapper just to throw it away again
  * dualfund: avoid creating PSBT wrappers for input UTXOs
  * interactive-tx: avoid creating PSBT wrappers for input UTXOs
  * tx: add pull_bitcoin_tx_only to pull without creating a psbt wrapper
  * tx_parts: use wally to clone tx outputs
  * base58: use _n api variant to avoid duplicating our input string
  * psbt: use wally_map_get instead of wally_map_find
  * psbt: use wally_map_replace instead of coding our own
  * wally: build debug or release according to the top-level configuration
  * wally: remove now-redundant BUILD_ELEMENTS define
  * wally: update libwally to 1.0.0
  * wally: rename functions that clash with wally v1.0.0
  * devtools: Deduplicate links from linkify
  * `cln_plugin` : Add basic test to `cln_plugin`
  * Rust cln-rpc crate: Fix `call_enum` and `call`
  * Some basic documentation for `cln_rpc`
  * cln_rpc : use `call_typed` with external structs
  * cln_rpc: Split low- from high-level API calls.
  * configure: Use the system `PKG_CONFIG_PATH`
  * doc:correct listrunes's link
  * gci: Add build step to PyPI publication
  * meta: Fix the `tools/build-release.sh` script to match repro instructions
  * docker: Use `git clone` as the build basis for reprobuilds
  * misc: Improve generated traces from common/trace.c
  * fix: load script
  * invoice: force inclusion of min_final_cltv_expiry for compatibility
  * rust: use "map_or" instead of "if let"
  * pyln-client: don't automatically turn JSON into Millisatoshi class.
  * pytest: don't assume that msat fields get turned into Millisatoshi.
  * Update pyln-testing cheroot dependency
  * Update and rename backup-and-recovery.md to backup.md
  * Update recovery.md
  * doc: Recovery using database
  * Docs: Add `custommsg` notification
  * Implement tests for notifications on `custommsg`
  * Create notification on `customssg`
  * Publish code-generation.md (#6948)
  * tracing: Add an example exporter to zipkin and document it
  * test: Add a `run-trace` test and document tracing overhead
  * common: Add trace_cleanup() function for unit tests
  * psbt-fix: set to NULL, which will cleanup dangling pointer
  * doc: documentation update for hooks and testing
  * Docs: Consistent whitespace in developers guide
  * Sync bind-addr docs
  * rs: Bump versions of `cln-plugin` and `cln-rpc`
  * grpc: Add metadata to Cargo.toml
  * pyln: Also generate type stubs in pyln-grpc-proto
  * gci: Upload to test.pypi.org only from `master`
  * build: 32-bit status_debug fix
  * fix typo
  * fix typos and add suggested edits from community
  * splice: Agressive restart testing during splices
  * Doc fix: dynamic options
  * Allow dynamic option in python plugin
  * gha: Add `--skip-existing` option to publish to testpypi
  * plugins: re-enable listchannels local info in deprecated mode.
  * topology: deprecate overriding `active` in `listchannels` with `listpeerchannels` info.
  * common: gossmap now always ignores private gossip_store messages.
  * topology: don't show private nodes in listchannels.
  * pytest: skip test_hook_crash on liquid CI
  * pytest: fix tests in assumption that listchannels will no longer show private gossip.
  * topology: don't show private nodes in listnodes.
  * pytest: remove test waits for routehints.
  * lightningd: make listincoming use gossmods_from_listpeerchannels().
  * lightningd: permit wrong-alias lookups for private channel_update.
  * pytest: fix test_zeroconf_open()
  * plugins/renepay: use gossmods_from_listpeerchannels instead of private gossip_store records.
  * plugins/renepay: add localmods later.
  * common: add tests that json_scan can omit an entire object member.
  * plugins/pay: use gossmods_from_listpeerchannels instead of private gossip_store records.
  * libplugin-pay: make sure get_gossmap calls are balanced by put_gossmap.
  * plugins/fetchinvoice: use gossmods_from_listpeerchannels instead of private gossip_store records.
  * plugins/topology: temporary hack to allow per-access private gossmap suppression.
  * common: generic routine to turn listpeerchannels into gossmap local updates.
  * gossmap: insert temporary per-caller flag to turn off private gossip.
  * pyln-testing: when waiting for active channel, make sure remote has sent fee info.
  * listpeerchannels: show gossip updates.
  * gossipd: always send information about our channels' gossip updates.
  * gossipd: pass remote private channel update to ld and stash in the database.
  * db: add private channel inbound fields
  * gossipd: correctly attribute our own channel update to ourselves
  * pytest: use wait_local_channel_active
  * common: prepare unit tests for lack of private channels.
  * compiler: fix for -O3 errors.
  * Implement `is_some` for `cln_rpc::options::Value`
  * Doc: Formatting
  * Fix docs for invoice_payment hook and notification
  * doc: Documentation update
  * docker: Creating docker `latest` image
  * subd: Do not send feerate updates to non-channeld subds
  * misc: Add Alex's gpg key
  * misc: Add Shahana's gpg key
  * startup_regtest: test for clnrest dependencies before writing config
  * startup_regtest: configure clnrest and generate rune
  * coin_mvt: use the `lightning_hrp` for *all* coin movement currency
  * startup-regtest: fund_nodes make balanced, funded channels
  * startup-regtest: flag every use as developer
  * startup-regtest: add ability to set bitcoin-bin + lightning-dir
  * ci: Force flaky of tests
  * chore(CI): Add manually triggerable PyPI publication
  * chore(CI): Increase the timeout to publish to test.pypi.org
  * misc: Add peter's gpg key
  * CHANGELOG.md: Update for 23.11 final

-------------------------------------------------------------------
Fri Dec 22 17:16:30 UTC 2023 - marec@detebe.org

- Update to version 23.11.2:
  * meta: update CHANGELOG.md for v23.11.2
  * invoice: force inclusion of min_final_cltv_expiry for compatibility

-------------------------------------------------------------------
Sat Dec 16 13:17:39 UTC 2023 - marec@detebe.org

- Update to version 23.11.1:
  * meta: Update CHANGELOG.md for v23.11.1 hotfix
  * subd: Do not send feerate updates to non-channeld subds
  * build: 32-bit status_debug fix
  * CHANGELOG.md: Update for 23.11 final

-------------------------------------------------------------------
Tue Nov 28 19:23:30 UTC 2023 - marec@detebe.org

- Update to version 23.11.0:
  * CHANGELOG.md: Update for 23.11 final
  * doc: Update example to be valid codex32 string
  * doc: Add `getemergencyrecover` to the hsmtool doc
  * hsmtool: Fix argc check on getcodexsecret
  * CHANGELOG.md: Update for 23.11rc3
  * clnrest: Import sys in except clause explicitly
  * lightningd: don't print out notification msat fields as strings.
  * tests/clnrest: Test to confirm that `msat` suffix has been removed from notifications
  * tests/clnrest: Added rpc method name and params to use the same `notifications_received_via_websocket` function for other rpc requests too
  * CHANGELOG.md: Update for 23.11rc2
  * splice: Reestablish when commit or sig sends fail
  * lightningd: fix up deprecated `rest-port`, `rest-protocol`, `rest-host` and `rest-certs` option if we would otherwise fail.
  * meta: Update release checklist
  * clnrest: prefixing all rest config options with `cln`
  * doc: update decode instruction for emergency.recover
  * clnrest: add gevent ssl monkey patch to remove warning log
  * clnrest: don't convert *_msat fields to strings.
  * clnrest: don't try to handle plugin.rpc.call results.
  * pytest: adds test suite for clnrest plugin
  * poetry: add `requests` dependency for clnrest tests in contrib/pyln-testing
  * msggen: Add `Wait` method to managed API
  * msggen: Add `FetchInvoice` method to Rust and grpc bindings
  * splice: fix WIRE_HSMD_SIGN_SPLICE_TX capability check
  * doc: fix cln-grpc example.
  * CHANGELOG.md: Update for 23.11rc1
  * reprobuild: Upgrade rust version
  * docker: Add fix for broken setuptools installation
  * Possible fix for CI_SERVER issue in VLS CI
  * dualfund: error on out of order sigs
  * dualfund: add test to make sure that tx-sigs sent before commitment
  * dualfund, test: add test for dropping to chain during RBF
  * dualfund, bump: when bumping a channel make sure it's in ok state
  * dualfund, memleak: don't leak the msg on error
  * dualfund, tests: break out "peer forgets" test
  * dual-fund: have accepter send their commitment sigs asap
  * dual-fund: don't re-notify plugin on arrival of sigs (2nd time)
  * tests: update opening tests for new reconnect behavior
  * mfc, nit: print out the error reason when an open fails
  * dualfund, reconnects: update dual-fund to use next-funding-id
  * dualfund, tx-abort: only check for abort state if we're sending
  * dualfund: update handling of tx-sigs
  * dualfund: handle commitment signed
  * dualfund, nit: make method for "their_role"
  * dualfund, cleanup: reuse code for verifying peer's commitment sigs
  * dualfund, cleanup: move common remote commit tx code into single place
  * dualfund, cleanup: make method for reporting channel state to HSMD
  * listpeerchannels: only add the scratch_txid if it exists
  * dualfund: when dropping to chain, only drop if we have a commitment tx
  * dualfund: report on whether or not we've gotten commitments
  * dualfund: on error, handle different states differently
  * dualfund: if we get an abort, clean up dangling inflights
  * openchannel_update: check if we've got an inflight record
  * dualfund: remove reliance on open_attempt on commit_received
  * dualfund: if we don't have commitments, error openchannel_signed
  * dualfund: wait til after we've sigs on disk before network check
  * dualfund: when updating an inflight, check for existing data
  * nit: spelling error (int -> in)
  * db, inflights: add method to remove any 'dangling' inflights
  * init channel: only fill in wscript if requested
  * dualfund: split 'commit-received' into two parts
  * dualfund: add switch for if the incoming channel is "too early"
  * wallet: allow inflights to have empty last_tx
  * inflights: split up adding sigs from making a new inflight
  * wallet: allow the channel to not have a last_tx
  * dual-fund: add new open-commit-ready state
  * lightningd: wumbo is now the default, setting has no effect.
  * ld: add commit-fee-offset option, update config schema
  * lightningd: add a feerate offset when updating feerates as opener
  * splice, vls: Fix missing check_mutual_channel_ready check.
  * splice, vls: fix missing rename in logging
  * add data field to RpcError
  * lightningd: rewrite anchor spend to use multiple UTXOs if needed.
  * pytest: detect RBF more reliably
  * lightningd: use wallet_utxo_boost for zero-fee htlc_tx.
  * wallet: routine to gather UTXOs to meet a certain feerate.
  * common: add amount_feerate helper.
  * wallet: specialize get_utxos interfaces.
  * pytest: force anchor tests to use more than one UTXO.
  * addpsbtoutput: allow command to specify output address.
  * doc: update clnrest documentation.
  * clnrest: code refactoring for:
  * Remove error from startup_regtest when loading wallet
  * gossipd: never regard our own updates as spam.
  * gossipd: don't blanket disable channels on startup.
  * cln-plugin: don't require redundant method reference
  * cln-rpc: Update the Makefile to always rebuild each example when the example files themselves are changed
  * cln-plugin: Add test for cln-plugin send_custom_notification
  * cln-plugin: implement registering and sending custom notifications to lightningd
  * splice: unwrap the old_secret during tx candidates
  * poetry: Add requests dependency
  * doc: document wait for new subsystems, add request & response schemas.
  * wait forwards: add in_htlc_id
  * pytest: add test for wait forwards.
  * lightningd: add ordering and pagination to listforwards.
  * listforwards: add created_index and updated_index fields.
  * forwards: hook into the wait subsystem.
  * lightningd: hook forwards into the wait system.
  * lightningd: split up peer_htlcs a little, create forwards.c
  * lightningd: add ordering and pagination to listsendpays.
  * listsendpays: add created_index and updated_index fields.
  * lightningd: don't log that we're trying to pay if we're not.
  * wallet: use standard-style iterators for payments.
  * lightningd: rename struct sendpay_command to waitsendpay_command.
  * wallet: don't expose wallet_payment constructor, use wallet_add_payment.
  * wallet: remove premature optimization when making payment.
  * sendpays: hook into the wait subsystem.
  * db: initialize variable to hold max payments id.
  * sendpays: add to wait subsystem.
  * tests/test_misc.py: Add test_decode to test the decryption of bech32 encoding of emergency.recover
  * tools/hsmtool.c: Add to hsmtools to get content of emergency.recover in bech32 format.
  * doc/lightning-decode.7: Update the doc
  * plugins/offers: Extend the capability of decode to decrypt the contents of emergency.recover file.
  * splice: Update test for new logs
  * channeld: use anchors on peer's commitment(s) if we can't broadcast our own.
  * lightningd: save peer's commitment anchor info into db.
  * lightningd: routines to deal with peer commitment anchor info in db.
  * channeld: tell lightningd about local anchor for each commitment tx.
  * channeld: have commit_tx tell is what output was the other's anchor.
  * channeld: rename channel_splice_txs to channel_txs.
  * channeld: get rid of unused commit_sig and htlc_sigs in channeld_sending_commitsig
  * pytest: test (fails!) that we push anchor on peer's commitment tx.
  * gci: Handle skipped tests correctly
  * pyln: Add missing upgrade-version target to pyln-grpc
  * pytest: Mark `test_plugin_startdir_lol` as `@unittest.skip()`
  * pytest: Mark test_exclude_adjacent_routehint as skip
  * pytest: Mark `test_splice` as falky
  * rs: Fix the manifests for publication
  * gci: Fix up the crates.io publishing job
  * pytest: Fix a falke in test_gossip_pruning
  * pytest: Skip `test_commit_crash_splice` as it is too flaky
  * cln-plugin: Make logging optional
  * add test, update schemas, fix warning_custom_fallbacks
  * display paid_outpoint on invoices when present
  * mark invoice as paid when we detect an on-chain payment to a fallback
  * lightningd: adapt invoice_try_pay declaration for onchain payment.
  * add autogenerated fallbacks (not custom fallbacks) to invoice_fallbacks table
  * track fallbacks for invoices, pt 1
  * wallet: add invoice_fallbacks table and paid_outpoint to invoices
  * add invoices-onchain-fallback config option and warnings
  * bitcoin: expose fmt_bitcoin_txid
  * wallet: add newaddr_inner() helper
  * fallback: json add fallback cleanup
  * hsmd: implement the hsmd outpoint check
  * splice: Add hsmd_check_outpoint and hsmd_lock_outpoint
  * Splice: Better balance checking
  * doc: recover.
  * lightningd: implement `recover` command.
  * lightningd: allow --recover to take a 64-char hex string.
  * lightningd: use param_check on all commands which do extra checks.
  * lightningd: preapproveinvoice doesn't need to string lightning: prefix.
  * lightningd, pyln-testing: do extra checks to make sure check *cannot* write to db.
  * common: add new param_check() which doesn't abort if we're simply checking.
  * connectd: fix fd leak for --offline.
  * lightningd: add direct close outputs to listfunds (mutual close).
  * pytest: test that we can CPFP a mutual close.
  * test: Add test for datastoreusage
  * pyln: Add datastoreusage command
  * grpc: Add datastoreusage command
  * rpc: Add datastoreusage command
  * msggen: Add datastoreusage command
  * datastore: Add datastoreusage command
  * splice[FLAKE]: stale channel announcement fix
  * lightningd: fix crash when blocks come it fast.
  * pytest: fix flake in test_remote_addr_port
  * Restore any missing psbt metadata that resource constrained signers strip
  * lightningd: don't re-enter transaction if we have to call plugin_exclusive_loop.
  * lightningd: really fill in our own details when channeld says to make channel_update.
  * channeld/gossipd/lightningd: reverse polarity of channel_update 'disable_flag'
  * lightningd: make sure that channeld_local_channel_update fields are redundant.
  * channeld: don't attach channel_update to errors, let lightningd do it.
  * pyln-testing: fix LihgtningNode.openchannel()
  * switch from ToString to Display for ShortChannelId
  * pytest: fix flake in test_excluded_adjacent_routehint
  * pytest: fix flake in test_listforwards_and_listhtlcs
  * pytest: fix flake in test_even_sendcustommsg
  * lightningd: call finished callback *every* time we re-xmit a transaction.
  * lightningd: have broadcast_tx take a ctx.
  * lightningd: add context arg to bitcoind_sendrawtx()
  * lightningd: don't process request twice if plugin dies.
  * lightningd: handle properly if our own request to plugin is freed.
  * lightningd: simplify plugin hook handling.
  * lightningd: generically fail requests when plugin dies.
  * lightingnd: wrap all JSON reply callbacks in db transactions.
  * lightningd: make pending_request map inside plugin struct.
  * lightningd: fix --dev-debugger use with listconfigs
  * psbt: fix PSBT mutation in the changeset
  * fuzz: new bolt11 seeds
  * fuzz: add bolt11 cross-over mutator
  * fuzz: add custom cross-over functions
  * fuzz: set minimum bolt11 size to 9
  * pytest: test for accepting even unknown messages.
  * lightningd: allow sending of even messages.
  * lightningd: tell connectd about the custom messages.
  * plugins: allow plugins to specify even messages they accept.
  * proto: update the bitstring dep
  * grpc: Regenerate proto stubs
  * grpc: Add missing feature attribute
  * doc: Remove redundant schema check
  * grpc: Add WaitBlockHeight method to grpc interface
  * rs: Implement a best-effort msat to sat conversion
  * rs: Fix up grpc conversions
  * rs: Bump crates cln-rpc and cln-grpc to 0.1.5 and cln-plugin to 0.1.6
  * ci: use Bitcoin Core 25.1
  * connectd: fix forwarding after tx_abort.
  * pytest: fix flake in test_excluded_adjacent_routehint
  * channeld: fix up compilation after conflicting changes.
  * libhsmd: removing assertion on push_value
  * splice: signer must be informed of splice params
  * hsmd: name the hsmd_ready_channel to hsmd_setup_channel
  * wallet: `db_get_runes` will only get rune from DB select
  * runes: bug fix for db failure to upgrade due to runes table alteration #6770
  * connectd: use shutdown() not close() on TCP sockets for dev-disconnect.
  * lightningd: let channeld/dual_openingd send error to peer.
  * pytest: be sure that we receive error on datalose failure.
  * channeld: don't hang up immediately after sending bad reestablish warning.
  * lightningd: close channel ourselves, if we receive an error.
  * pyln-testing: make disconnects continue after restart.
  * common: move is_peer_error/is_peer_warning from read_peer_msg.c to wire_error.c
  * pytest: revert warning delivery failure workaround
  * lightningd: pass disconnect flag to subd's errcb.
  * common: add peer_failed_warn_nodisconnect routine for non-disconnecting warnings
  * connectd: don't disconnect automatically on sending warning or error.
  * connectd: give subds a chance to drain when lightningd says to disconnect.
  * lightningd: stop all subds when we want to disconnect.
  * tools: make sure we don't use optimization when building mocks.
  * Makefile: fix update-mocks dependencies.
  * connectd: Ignore sodium fd for Mac tests
  * bolt11: don't abort on invalid pubkey
  * bolt11: validate recovery ID
  * fuzz: check invoice signatures
  * bolt11: return error on unexpected lightning prefix
  * github: re-enable ASan and UBSan for check-fuzz
  * bolt11: avoid reading uninitialized memory
  * bolt11: check return value of pull_all
  * lightningd: simplify lease update blockheight code.
  * lightningd: fix crash caused by sending channeld message to closingd
  * Revert "runes: fix `checkrune` when `method` parameter is the empty string."
  * clnrest: correctly omit `method` to checkrune call if none is supplied.
  * pytest: correctly test missing method for runes.
  * pytests: make pay helper able to route (optionaly)
  * channeld: comment typo fix
  * build: fix compilation issue on OpenBSD
  * doc: fix display of lists and code blocks in manpages.
  * lightningd: print the version of cln early
  * cln-grpc: do not generate cerficates when no autostart.
  * pytest: test that cln-grpc certificates are not generated when cln-grpc is not started.
  * runes: fix `checkrune` when `method` parameter is the empty string.
  * pytest: test `checkrune` when `method` parameter is the empty string.
  * fuzz: bolt11 inputs
  * fuzz: test bolt11 decoding
  * contrib: add `developer` option to config file in startup_regtest.sh.
  * pytest: wean many tests off the assumption that listchannels shows private channels.
  * pytest: remove old test_tlv_or_legacy
  * renepay: work around change in fundchannel in tests.
  * plugins/topology: convert listpeerchannels into local overlay.
  * plugins/topology: split getroute logic.
  * plugins/topology: remove unused fuzz factor.
  * channeld: fix memleak where tx gets leaked.
  * channeld: fix memleak when inflights is NULL.
  * splice: minor code cleanups
  * addpsbtoutput: New onchain command for PSBT output
  * common/memleak: show tal_steal operations on memleak.
  * common/memleak: implement callback arg for dump_memleak.
  * lightningd: fix assertion when funding depth changes fast.
  * db: removed deprecated `runes_uniqueid` from `vars` table
  * runes: Runes will use unique id returned from `runes` table not `runes_uniqueid` from `vars`
  * runes: Get next unique id from runes table
  * runes: Reimplement `rate` in terms of `per`
  * pytest: trim mostly-reundant commando-rune test.
  * tools: Fixed release verify typo
  * lightningd: simplify funding_depth_cb now it only handles main funding tx.
  * lightningd: fix dual-funding case where we coop close and an RBF confirms.
  * lightningd: ensure we *always* watch channel spend.
  * lightningd: fix bug where we didn't correctly change outpoint of splice scid.
  * lightningd: don't share funding_depth_cb for non-funding txs.
  * lightningd: fix watch on existing tx.
  * lightningd: make watch_txid more generic.
  * lightningd: remove watch_tx() in favor of watch_txid().
  * lightningd: make channel-query functions all take state.
  * lightningd: split DUALOPEND_OPEN_INIT into DUALOPEND_OPEN_INIT and DUALOPEND_OPEN_COMMITTED.
  * doc: introduce new state DUALOPEND_OPEN_COMMITTED.
  * common/json_stream, lightningd/notification: clean up function APIs
  * lightningd/channel.h: rename channel_unsaved to the more explicit channel_state_uncommitted.
  * wallet: add standard sanity-check function for channel_state.
  * lightningd: remove peer_any_unsaved_channel and use peer_any_channel.
  * lightningd/channel.h: clean up channel states.
  * lightningd: generalize peer_any_active_channel to peer_any_channel.
  * lightningd: fold funding tx depth into a single function.
  * lightningd: make dualopen_tell_depth match channeld_tell_depth.
  * lightningd: don't report original depth once splice started.
  * lightningd: clean up channel_tell_depth.
  * lightningd: disconnect on *any* transient error, except abort
  * pytest: make test_splice_gossip more precise.
  * doc: fix listpeerchannels schema to allow CHANNELD_AWAITING_SPLICE in state.
  * patch remove-developer-test-annotations.patch
  * pytest: fix flake in upfront warning.
  * contrib/pyln-grpc-proto/ regenerate.
  * poetry: run poetry update.
  * plugin/clnrest: Adjusting flask-cors install after rebase
  * lnproto: Remove unused report upload on GH Actions
  * lnproto: Fix up the lnprototest docker image
  * py: Add the grpc extra to pyln-testing dependency
  * gen: Update generated files
  * plugins/clnrest: Updated clnrest's requirements.txt
  * plugins/clnrest: Updated clnrest install command in Docker images and CI
  * plugins/clnrest: Adding pyproject.toml for Poetry install
  * lnprototest: bump to the new version
  * ci: autopublish rust crates on tag event
  * rust: fixes the dependencies build with the rustc 1.73.0
  * Makefile: use `xargs -0` consistently
  * pytest: Fix elementsd tests
  * gci: Update apt before installing
  * gci: Print envvars and configuration when testing
  * gci: Only install one of elementsd or bitcoind
  * ci: Unbreak the liquid-regtest run on Github Actions
  * Only 3 question marks for 4 variables
  * renepay: remove custom debug, in favor of normal operations.
  * lightningd/test: use tmpdir_mkstemp() to create log file
  * configure: recognize --disable-ub-sanitizer option
  * lnprototest: included the last lnprototest fixes
  * pyln-grpc-proto: regenerate after last patch.
  * add CHANNELD_AWAITING_SPLICE state to cln-rpc
  * Makefile: don't fail find -delete if we run in parallel.
  * build: remove all trace of DEVELOPER.
  * pytest: use --developer instead of environment variable.
  * tools: remove DEVELOPER.
  * plugins/renepay: remove DEVELOPER build-time, in favor of runtime.
  * lightningd: remove #if DEVELOPER.
  * plugins: remove #if DEVELOPER.
  * common: add option for dev-only parameters.
  * lightningd: mark explicitly what commands are dev-only.
  * db: remove #if DEVELOPER in favor of runtime flag inside db struct.
  * closingd: remove #if DEVELOPER in favor of runtime flag.
  * hsmd: remove #if DEVELOPER in favor of runtime flag.
  * gossipd: remove #if DEVELOPER in favor of runtime flag.
  * channeld: remove #if DEVELOPER in favor of runtime flag.
  * openingd: remove #if DEVELOPER in favor of runtime flag.
  * onchaind: remove #if DEVELOPER.
  * connectd: remove #if DEVELOPER
  * bitcoin: remove DEVELOPER options.
  * common: remove #if DEVELOPER.
  * common/bolt11: remove #if DEVELOPER.
  * common/daemon.c: remove #ifdef DEVELOPER in favor of runtime flag.
  * lightningd: pass --developer down to plugins, subdaemons when it set.
  * lightningd: add --developer runtime option.
  * lightningd: fix bogus unused var warning.
  * lnprototest: update to branch which supports --developer
  * wallet/test: regenerate mocks to fix build.
  * splice: Fixes from splice-out test
  * tests/runes: per restriction test cases
  * lightningd/runes: Added last_time_check for validating rune for `per` restriction
  * common: make json_add_timeabs full precision & renamed json_add_time
  * lightning/runes: added last_used in showrunes
  * lightningd/runes: update last_used timestamp when a rune successfully used
  * wallet: add last_used_nsec in runes table
  * common: add test to check bolt12/offers-test.json test vectors.
  * common/bolt12: roll all necessary checks into offer_decode.
  * common: helper to generate bolt12 test vector bolt12/offers-test.json.
  * bolt12-cli: add encode routine to make bolt12 vectors.
  * wallet: re-run update-mocks.
  * docker: Deleting redundant arm64v8 and arm32v7 Dockerfiles
  * script: Updated build-release script
  * script: Fixed bitcoin and litecoin archs used with buildx
  * doc: update to BOLT 6e85df448bfee7d10f26aabb06b8eba3d7505888 "BOLT2: change "reject" to "fail" in channel opening requirements (#1104)"
  * bolt11: update to BOLT 7dda8f84edb8655766d83619cb41110c1bf43f85 "Bolt11: min_final_cltv_expiry_delta is optional, not required (#1100)"
  * wire: update to BOLT 17ceba42dc6607b637a713a9bc051f63c1357edd "BOLT 4: onion message support."
  * doc: update to BOLT cded2df1fd0095c947af02a52e28b16c66bdfc5c "Fix undeclared reference in onion-routing"
  * lightningd: update to BOLT 7d3ef5a6b20eb84982ea2bfc029497082adf20d8 "Allow unset `onion_hash` in `invalid_onion_blinding` (#1093)"
  * doc: update to BOLT 7f53a3e46ed59f19463447d5fa63b3e484c708a5 "BOLT 8: make it clear that there are *two* chaining keys."
  * wire: update to BOLT aad959a297ff66946effb165518143be15777dd6 "tools: remove option handling now last optional field was removed."
  * doc: update to BOLT 3747ba83022cd385093df2696ed342f1e41e31b3 "Remove requirements to disconnect on warnings"
  * connectd: also don't disconnect on "all-channel" warnings.
  * common: don't hang up when we receive a warning.
  * common: don't send channel_id on peer error.
  * common: remove channel_id check.
  * doc: update to BOLT 50b2df24a27879e8329712c275db78876fd022fe "Update onion errors since we allow overpaying or under-CLTVing"
  * doc: update to BOLT 29c14c6e12cbdf33f6b724094c81658a614d2e02 "fix typos"
  * common: rename tlv_payload's "blinding_point" to "current_blinding_point" as per spec.
  * wire: fix up messy patches (make extract-onion-csv)
  * wire: fix up messy patches (make extract-peer-csv)
  * docker: make available bitcoind binary
  * docs: Update documents with `rest-csp` option
  * plugins/clnrest: Update content security policy for server
  * plugins/clnrest: Add `rest-csp` option for config
  * plugins/clnrest: Update Websocket server to dynamically add CORS settings
  * docs: Update documents with `rest-cors-origins` option
  * plugins/clnrest: Update App server to dynamically add CORS settings
  * plugins/clnrest: Add `rest-cors-origins` option for config
  * plugins/clnrest: Add CORS library
  * plugins/clnrest: Updated websocket client examples
  * plugins/clnrest: Rune authentication for websocket server
  * plugins/clnrest: Generate all three certs if missing
  * Remove GMP from arm64v8 build
  * Remove deprecated GMP dependency
  * update the app dev interface img
  * fix the rest api reference link
  * fix paths for doc files and make them public
  * pytest: fix renepay test_shadow flake.
  * fuzz: initial wire message seeds
  * fuzz: target for your_peer_storage
  * fuzz: target for update_blockheight
  * fuzz: target for tx_signatures
  * fuzz: target for tx_remove_output
  * fuzz: target for tx_remove_input
  * fuzz: target for tx_init_rbf
  * fuzz: target for tx_complete
  * fuzz: target for tx_add_output
  * fuzz: target for tx_add_input
  * fuzz: target for tx_ack_rbf
  * fuzz: target for tx_abort
  * fuzz: target for stfu
  * fuzz: target for splice_locked
  * fuzz: target for splice_ack
  * fuzz: target for splice
  * fuzz: target for peer_storage
  * fuzz: target for open_channel2
  * fuzz: target for onion_message
  * fuzz: target for accept_channel2
  * fuzz: target for warning
  * fuzz: target for update_fulfill_htlc
  * fuzz: target for update_fee
  * fuzz: target for update_fail_malformed_htlc
  * fuzz: target for update_fail_htlc
  * fuzz: target for update_add_htlc
  * fuzz: target for shutdown
  * fuzz: target for revoke_and_ack
  * fuzz: target for reply_short_channel_ids_end
  * fuzz: target for reply_channel_range
  * fuzz: target for query_short_channel_ids
  * fuzz: target for query_channel_range
  * fuzz: target for pong
  * fuzz: target for ping
  * fuzz: target for open_channel
  * fuzz: target for node_announcement
  * fuzz: target for init
  * fuzz: target for gossip_timestamp_filter
  * fuzz: target for funding_signed
  * fuzz: target for funding_created
  * fuzz: target for error
  * fuzz: target for commitment_signed
  * fuzz: target for closing_signed
  * fuzz: target for channel_update
  * fuzz: target for channel_reestablish
  * fuzz: target for channel_ready
  * fuzz: target for channel_announcement
  * common: disable node ID check when fuzzing
  * configure: define macro for fuzzing builds
  * fuzz: target for announcement_signatures
  * fuzz: target for accept_channel
  * wire: correct argument order
  * Makefile: don't delete python-generated files in distclean.
  * gci: Update apt cache before installing
  * configure: typo fix
  * gci: Fix wrong guard on rebase step
  * ci: Add a server to track flakyness in pytest tests

-------------------------------------------------------------------
Wed Sep 13 20:06:49 UTC 2023 - marec@detebe.org

- Update to version 23.8.1:
  * CHANGELOG.md: update for v23.08.1 release
  * Makefile: regnerate config.vars if configure changes (recently PYTHON var).
  * wallet: slightly neaten fundpsbt code.
  * wallet: Exclude uneconomical UTXOs from fundchannel
  * tests: test for fundchannel fail with tiny utxo
  * tools: Make shellcheck happy
  * tools: Fix accidental override on checksum copy
  * tools: Add sha256sum check for detailed hint
  * tools: Add check if the checksum file exists
  * plugin/clnrest: Deleting redundant README.md
  * doc/rest: add documentation for REST interface
  * runes: fix weird unnecessary zero-test.
  * runes: ensure that uniqueid is a valid number.
  * clnrest: don't require nodeid (FIXME: needs screenshot updates!)
  * lightningd: refuse to create rune with empty fields.
  * checkrune: make nodeid and method optional.
  * doc: point checkrune at createrune for rune field details.
  * doc: clean up checkrune man page.
  * doc: fix checkrune request schema.
  * doc: update to reflect new bitcoind requirement
  * doc: Updated instructions for signing, co-signing and Docker publishing
  * script: docker build
  * docker: Install tini in final stage
  * add Eq, PartialOrd, Ord, Hash to ShortChannelId
  * Dockerfiles must not invalidate the docker cache
  * doc: Updated old links and deleted old file
  * doc: Updated Backup and Recovery
  * schema: Fix wrong type of CLTV in route
  * doc: add tip on extracting binary release
  * plugin/clnrest: do not read json payload if data length is zero
  * renepay: fix case where shadow increases amount past payment amount.
  * renepay: fix shadow route extension logic.
  * pytest: test for shadow route additions.
  * renepay: calculate fee and delay accumulation correctly.
  * pytest: write test to ensure renepay the correct channel's fee/cltv info.
  * renepay: don't crash if we get failure from sendpay.
  * db: migrate old runes table to fix up id fields.
  * runes: insert rune with correct id field.
  * pytest: test to show that we got db ids incorrect.
  * configure: don't assume python3, create $PYTHON var.
  * rs: Bump crate versions before publishing
  * Use python3 instead of python in Makefile
  * gci: Do not try to rebase if we're on master already
  * clnrest: Change process method to fork

-------------------------------------------------------------------
Wed Aug 23 08:27:04 UTC 2023 - marec@detebe.org

- Update to version 23.8.0:
  * CHANGELOG.md: update for 23.08 release final.
  * renepay: hack in workaround spendable reduction for release.
  * plugins/renepay: don't drop min to 0 if it's shown wrong, but drop 50%.
  * renepay: remove remaining calls to debug_paynote in favor of payflow_note().
  * plugins/renepay: convenience routing to log when we disable a chan.
  * plugins/renepay: neaten the command notifications.
  * renepay: clarify chan_extra_can_send.
  * plugins/renepay: use struct short_channel_id_dir.
  * plugins/renepay: clean up unused fmt_payflows.
  * pay_flow: downgrade messages about shadow route delays.
  * plugins/renepay: Add infra for per-flow notes.
  * announce-addr not announce only
  * docs: update the details of emergency.recover and --recovery for users.
  * docker: bookworm image for arm32v7
  * pytest: fix plugin_connected_hook_chaining flake.
  * lightningd: don't restart subds unnecessarily on reconnect.
  * pytest: fix autoclean test flake
  * plugins/renepay: don't free waiting-for-addgossip flow!
  * meta: ignore renepay binary
  * CHANGELOG.md: Update for -rc3
  * openingd: Clean up channel_type_accept
  * openingd: Reject zeroconf if the peer is not allowed
  * openingd: Tentatively accept zeroconf when proposed
  * renepay: reduce minimum "known" if it proves incorrect.
  * CI: add clnrest requirements so --help lists rest params.
  * lightningd: documentation updates.
  * plugins/sql: make testing-only sqlfilename option `dev-sqlfilename`.
  * lightningd: don't print plugin deprecated options in --help.
  * doc: document lightning-cli options.
  * tools/check-manpage.sh: update undoc to a simple list.
  * build: have check-manpage.sh ignore options documented as deprecated.
  * build: fix check-manpage.sh
  * listchannels: also list splicing channels as active: true.
  * pay: don't filter out local channels which are splicing.
  * renepay: splicing channels are also usable for payments.
  * gossmap: fix false valgrind uninitialized error on arm64, ppc.
  * pay: don't discard high-htlc_min channels when searching for routehint starts.
  * pytest: test that we can pay via routehints even if a 1000-min-htlc channel is in path.
  * lightningd: clean up properly if we fail to exec plugin.
  * pytest: test that failing to start a plugin due to failure to exec does not put it in plugins list.
  * pytest: test (failing) for not crashing if plugin fails to exec via `plugin startdir`
  * Don't restart my machine if I add code to kill a failed plugin.
  * splice: prevent splice going to onchaind & race prevention
  * nixos install: tweaks to get CLN building from fresh start
  * doc: Drive-by fixes of JSON examples in hooks.md
  * pytest: add no argument cli test
  * cli: don't crash when there's no argument
  * splice: quieter in more cases
  * pay: still use channels for routehints even if peer says it's disabled.
  * common/test: fix gcc-12.3.0 -O3 warning.
  * common: fix gcc-12.3.0 -O3 warning.
  * plugins/renepay: fix gcc-12.3.0 -O3 warning.
  * plugins: fix compile warning with some gcc versions and -Og
  * channeld: fix gcc-12.3.0 -O3 warning.
  * CI: add -O3 to one of the builds, to test for errors.
  * plugins/renepay/test: fix access-after-free.
  * renepay: don't free adg twice after adding gossip.
  * plugins/renepay: don't require raw_message in error reply.
  * splice: STFU -> disable announce and commit timers
  * Release candidate rc2.
  * closingd: fix case where we we can pass under min-relay-fee for mutual close.
  * lightingd: fix minfee when we're ignoring limits.
  * pytest: test for mutual close fail under very low feerates.
  * Pypi: publish to real repository.
  * renepay: add command notifications
  * renepay: trivial cleanup to rename `flow` to `pf` everywhere.
  * renepay: do less work in destroy_pay_flow, and reorder pay_flow.c
  * renepay: add dummy pf_resuly type to ensure we deal with the flow.
  * renepay: drive *all* progress from termination of struct pay_flow.
  * renepay: grab update from WIRE_TEMPORARY_CHANNEL_FAILURE if present.
  * renepay: make pay_plugin a tal object.
  * renepay: fix up handling of errors from final node.
  * renepay: remove always-true "first_time" and "unlikely_ok" flags.
  * renepay: remove unused result member.
  * renepay: put the entire hash in the key struct.
  * renepay: don't re-parse bolt11 to get routehints.
  * renepay: simplify JSON handling in notification_sendpay_success.
  * renepay: simplify JSON handling.
  * renepay: get max group_id in single iteration.
  * renepay: merge `struct renepay` and `struct payment` into one.
  * renepay: make memleak simpler.
  * renepay: move list_node to first member of struct payment.
  * renepay: use more formal allocator pattern.
  * renepay: fix localmods.
  * renepay: remove attempt limit.
  * renepay: remove unused all_flows field.
  * gossipd: load pending spam node announcements without forgetting previous node announcements
  * pytest: test gossip_store loading of spam node announcement before channel update
  * gossipd: reduce gossip self-advertizement if we have many peers/channels.
  * common: add tal_arr_randomize() to shuffle an array.
  * gossipd: ignore redundant node_announcement in gossip_store.
  * common: restore OPT_SPLICE definition for the day it's ratified.
  * splice: Move splice to experimental feature bit
  * plugins: fix error report from bitcoin-cli exec failure.
  * renepay: add help for renepay & renepaystatus
  * pytest: run splicing test on every run.
  * hsmd: fix capability check for signing splices.
  * hsmd: rename "capabilities" flags for hsm fds to "permissions"
  * Fix: Remove Sync requirements on Futures returned in the Rust plugin library.
  * doc: Fix typo in the description of fields `private`
  * lightningd: use fsync not fdatasync.
  * fix flake8 errors in the script file (#6528)
  * lightningd: fix bolt11 parsing in preapproveinvocie, sendonion, listsendpays and renepay
  * pytest: test for listsendpays and lightning: prefix crash.
  * lightningd: close connection when HTLC addition times out.
  * pytest: test that we close connection if adding an HTLC times out.
  * renepay: allow it to die gracefully without crashing lightningd.
  * plugins/bcli: update minimum required bitcoind version.
  * docker: bitcoin and elements version update
  * channeld: don't send splice TLV fields unless negotiated.
  * meta: Add the VLS team as codeowners of hsmd/hsmd_wire.csv
  * meta: Remove ZmnSCPxj from codeowners
  * splicing: Update documentation
  * docs: try to fix up readthedocs.io, so it has the latest man pages, but points to docs.corelighting.org for the rest
  * random doc changes to test.
  * add workflow to sync rpc commands
  * add script to sync rpc commands
  * build: more 32-bit printf fixes.
  * lightningd: don't return to a default filter level if there are no per-file filters.
  * pytest: test for filtering bug.
  * doc: make staticbackup output autogenerated in man page.
  * msggen: Add `staticbackup` call to list of managed methods
  * doc: The SCB fields are hex-encoded binary TLVs, not strings
  * docker: Install clnrest dependencies from rquirements.txt
  * plugin/clnrest: Downgrading pyln-proto versino from 23.08 to 23.5.2
  * splicing: Remove dependency on experimental_dual_fund
  * makefile: py plugins installed twice with `make install`
  * renepay: Use macros instead of manual format types
  * wallet: don't BROKEN log id payments.total_msat is null.
  * doc: give an example for multifundchannel
  * channeld: replace `struct splice` with `struct splicing` for OpenBSD.
  * CHANGELOG: Update.
  * pyln-client, pyln-proto, pyln-testing: update to new versions.
  * codex32: use "cl" instead of "ms" as our HRP.
  * renepay: clean up ARC_ADDITIONAL_BITS.
  * renepay: switch from arc_t to struct arc.
  * renepay: implement an alternative to a union with bitsets.
  * CCAN: update for base64 compile fix on ARM.
  * docs: document hsmtool getcodexsecret, refer to it for recover.
  * hsmtool: remove threshold arg.
  * hsmtool: tighten checks for validity on getcodexsecret
  * lightningd: pass signed tx through to close callback.
  * lightningd: clean up signing of last_tx.
  * pytest: test for bad 'tx' result from close.
  * Fixing env reference for API key and path to doc (#6478)
  * fix readme workflow (yet again) and test a dummy change (#6477)
  * fix workflow file and test changes (#6476)
  * docker: Dockerfile aarch images with pyln and clnrest
  * docker: Dockerfile amd64 with pyln and clnrest
  * docker: fedora builder update
  * tools: build release docker script update
  * plugin/clnrest: Updated pyln version to 23.08 in requirements.txt
  * CI: Try not running group 2/10 UBSAN in parallel.
  * signed types: integer fix
  * inflights: use ctx for making new ones
  * contrib/startup: ignore db-updates
  * channeld: Code to implement splicing
  * interactive-tx: Renaming for clarity and cleaning up
  * splicing: add DB details for splice HTLCs
  * psbt: Fix psbt linseraize_input bug
  * splicing: Add channel state AWAITING_SPLICE
  * psbt: routine for lining up sigantures in a witness stack
  * hsmd: Add sign splice command
  * Mac: Change format type to use PRIu64 instead of %ld
  * Mac: Update Makefile to work on Mac zsh
  * tests/test_misc.py: Add a subprocess to make sure getcodexsecret fetches out the hsm_secret in bip93 format.
  * tools/hsmtool: Add getcodexsecret to get the hsm_secret in bip93
  * common/codex32: Add codex32_secret_encode to encode seeds in bip93 format.
  * channeld: don't backtrace if master closes during sync read.
  * wallet: don't load indexes inside outpointfilters_init trace span.
  * lightningd: fix crash on startup expirations.
  * pytest: add test for expiration-on-startup crash.
  * pytest: correctly annotate invoice tests needing sqlite3.
  * devtools/credit: ! not ^ to invert the match set in sh.
  * use of PATH_TO_BITCOIN in regtest
  * pytest: fix the invoice typo migration if you ran and created both.
  * pytest: test for grubles' screwed node.
  * renepay: add test
  * renepay: more cleanups - adopt "const <type> *"convention - remove use_shadow option for some pyln tests - show prob. information of flows into paynotes - show prob. of success of entire payment flow in paynotes - minflow: We were not releasing the memory of flow arrays when replacing   them with a new canditate. - use memleak_scan_obj in memleak_check - replace u64 with size_t
  * plugins/renepay/dijkstra: improve API to remove global.
  * renepay: fixups after comments
  * renepay: add information decay linear in time
  * renepay: an experimental payment plugin
  * Import lqueue from CCAN
  * codex32: rework.
  * codex32: document the complete representations from BIP, adjust numbers.
  * codex32: minor cleanups.
  * doc: Add documentation for --recover flag.
  * lightningd: Added plugin hook  to notify whenever started in rocover mode.
  * lightningd/options: Always start in offline mode when run using --recover flag.
  * tests: Added test_recover to test --recover flag.
  * lightningd/common: Added --recover flag to populate HSM_secret with appropriate secret through a valid codex32 secret.
  * common/test: Added run-codex32 to test codex32.c decoding function.
  * common/codex32: Added checksum verification for codex32 encoding.
  * common/codex32: Added codex32_decode() without checksum verification.
  * plugin/clnrest: Improved readme and comments
  * plugin/clnrest: Updating package
  * dual-fund: keep track of aborted requests, seamlessly restart daemon
  * dual-fund tests: add tests for reported incompat with Eclair
  * funder: don't re-reserve utxos on retries
  * gossipd: set timer for node_announcement regen
  * gossipd: actually update own node announcement if needed
  * added frontmatter and fix github workflow
  * gossipd: tell lightningd about all our previous channel_updates at startup.
  * lightningd: don't crash if peer manages to spend onchain HTLC after we've abandoned upstream.
  * pay: Fix a null-dereference introduced in #6428
  * pytest: follow RBF txids properly, but ignoring identical "RBF" txs.
  * pytest: fix flake in penalty tests
  * build: avoid printing PLUGIN_BASES on every build.
  * pytest: fix flake in test_gossip_store_compact_on_load.
  * update dead links
  * doc: Add documentation for the tracing subsystem
  * trace: Use User Statically-Defined Tracepoints to emit tracing spans
  * trace: Instrument topology functions
  * trace: Instrument the wallet startup functions
  * trace: Instrument lightningd startup sequence
  * trace: First draft of API
  * config: Detect presence of USDT header in configure
  * SECURITY.md: fix email address
  * wallet: fix migration of existing invoices's id variable.
  * pytest: add test for db crash on conflicting invoice.id
  * msggen: Add two missing fields to the `listpays` schema
  * pytest: add reckless local install test
  * reckless: add installation capability for additional sources
  * reckless: style cleanups, type hints, simplify create_dir
  * gossipd: handle upgrade from version 11 gossip_store
  * pay: Fix a non-rebased PR merge error
  * lightningd: fail incoming HTLCs if peer would close channel.
  * onchaind: keep trying to collect HTLC even if we're past timeout.
  * pytest: test that we proactively close incoming HTLCs to avoid them closing on us.
  * plugins/bcli: plug temporary leak on retry.
  * plugins/bcli: fix leak report when bitcoind goes away.
  * ci: Update lnprototest
  * channeld: Verify the signature sent by the counterparty
  * libplugin/pay: allow shortcut for self-pay.
  * lightningd: sendpay implement zero-length path == self-pay.
  * pay: generalize payment_succeeded().
  * invoice: return error string from invoice_check_payment.
  * wallet: implement and use wallet_payment_new.
  * lightningd: extract check_progress() from send_payment_core().
  * db/bindings: allow db_col_short_channel_id_arr and db_col_node_id_arr on null columns
  * common/utils: add tal_strdup_or_null helper.
  * db: add optional column string helper, and make db_col amounts return sat/msat.
  * pytest: test self-payments using sendpay.
  * bolt11: Don't push the size of the witness program for v1+ scripts
  * plugins/clnrest: Websocket Server
  * plugins/clnrest: Update clnrest dependencies in scripts and Dockerfiles
  * plugins/clnrest: removing notifications queue in favor of websocket server
  * plugins/clnrest: disable ourselves unless rest-port is set.
  * plugin: On-boarding default python plugins
  * lightningd: if a plugin disables at getmanfest time, use INFO log level.
  * plugins/clnrest: fail gracefully if dependencies not installed.
  * doc: update installation to not refer to PPA, and indicate how to get clnrest support.
  * plugin: clnrest
  * docs: Incorrect params sequence for checkrune command
  * lightningd: clean up commando rune_counter from datastore on migration.
  * lightningd: migrate (and delete) old commando blacklists.
  * lightningd: migrate (and delete) old commando runes.
  * lightningd: simplify datastore internal db API.
  * wallet: internal exposure to db accessors.
  * lightningd: initialize runes way earlier, and add rune_is_ours helper.
  * commando: pass through commands to lightningd.
  * commando: remove now-unused internal checking routines.
  * commando: use CLN's checkrune() instead of our own for for rune validation.
  * plugins/commando: make struct cond_info self-contained, split try_command()
  * plugins/commando: try_command can reuse incoming `struct commando`.
  * plugins/commando: create new_commando() allocator, use it.
  * commando: always active.
  * common: fix wrong comment on json_scan() return.
  * pytest: use native l1 commando secret.
  * common/json_param: use assert() for param correctness checks.
  * runes: fix `stored` field.
  * runes: Renamed `listrunes` to `showrunes`
  * runes: create and blacklist commands aliases
  * makefile: use recursive delete to target extraneous .baks
  * fix: dont send blockheight updates if we're still syncing
  * gossipd: don't "unmark" dying channels' updates if we receive them.
  * lightningd: fix false memleak report (test flake)!
  * devtools/print_wire: long long instead of longing
  * channeld: don't close connection on invalid badonion code (LND bug?)
  * ci: Update the upload-artifact step to v3
  * added listhtlcs model
  * pay: Consider amounts when selecting a channel to send over
  * pay: Annotate both local alias and real scid with channel hints
  * lightningd: expose created_index and updated_index fields.
  * listinvoices: add limit param.
  * listinvoices: add index and start params.
  * invoice: include invoice label to wait subsystem when it's paid.
  * lightningd: trigger changed wait when delinvoice desconly used.
  * invoices: pass through info to delete function, call invoice_index_deleted.
  * wallet: hoist gathering of expired_ids.
  * wallet: hook up updated_index for invoices.
  * wallet: hook up created_index for invoices.
  * invoices: routines to maintain invoice indices.
  * db: infrastructure to initialize indexes.
  * wait: new command to wait on indexes.
  * Swap out doc links with link to new doc website
  * parital eq for channel state enum
  * pytest: test for setchannel's new ignorefeelimits.
  * wallet: persist the ignore_fee_limits bit for channels.4
  * lightningd: `setchannel` can set `ignorefeelimits`.
  * lightningd: remove now-unused flag in set_channel_config.
  * lightningd: expose ignore_fee_limits field in listpeerchannels.
  * lightningd: don't override fee limits in feerate_min/max, do so in callers.
  * lightningd: put ignore_fee_limits bool into channel struct.
  * build(deps): bump cryptography from 41.0.1 to 41.0.2
  * pytest: make tor-requiring tests clearly distinguishable
  * Makefile: check-source-no-cppcheck.
  * pytest: fix timeout in test_sql
  * pytest: fix flake handling intest_restorefrompeer.
  * connectd: fix memleak report.
  * pytest: fix timeout in test_channel_lease_unilat_closes
  * pytest: fix test_anchor_min_emergency "bad gossip" messages.
  * connectd: fix transient memleak report.
  * pytest: fix race in test_gossip_not_dying
  * lightningd: avoid notleak markers: move global into struct runes.
  * docs: document all the rune commands which look like the now-deprecated commando ones.
  * lightningd: implement `blacklistrune` command.
  * lightningd: implement `checkrune` command.
  * pytest: test for runes, based on commando tests.
  * lightningd: implement `createrune` command.
  * lightningd: implement listrunes command.
  * lightningd: new runes infrastructure.
  * db: add runes tables and accessors.
  * pyln: Make the grpcio dependencies optional
  * libplugin: Remove presplitter from the API
  * pay: Remove the presplitter modifier
  * pytest: Remove tests that rely on presplit behavior
  * gossipd: aggressively advertize *both* sides of channel_update.
  * gossipd: when we dump our own gossip, include our node_announcement.
  * pytest: test for force-broadcasting our own gossip.
  * gossipd: clean up dump_our_gossip.
  * connectd: don't gossip dying channels.
  * pytest: test for whether we gossip spent channels.
  * gossipd: add dying marker to channel_announcement/channel_update.
  * gossip_store: add "dying" flag to indicate not to gossip dying channels.
  * lightningd: updating python v3.7 to v3.8
  * lightningd: removing bionic and python 3.7 support
  * lightningd: fix up log filtering for generic daemons (e.g. connectd).
  * lightningd: extend log-level to support filter per-file.
  * lightningd: add support for per-logfile filters.
  * lightningd: clean up logging initializations.
  * lightningd: keep linked list of all loggers.
  * lightningd: have opt_log_level take the log_book.
  * lightningd: add "has_io_logging" helper.
  * lightningd/log: clean up nomenclature.
  * wallet: Fixes the compilation error due the db_binindings change
  * commando: added check for empty params
  * commando: changed listrunes schema for `restrictions` `english` key
  * db/bindings: now bindings are always in order, remove index.
  * bkpr: use BIND_NEXT.
  * wallet/invoices.c: use BIND_NEXT
  * wallet: convert to BIND_NEXT.
  * db: implement BIND_NEXT for autocounting.
  * db: enforce that bindings be done in order.
  * wallet: use standard-style iterators for invoices.
  * wallet/invoice: remove indirection.
  * wallet: rename enum wallet_payment_status to payment_status.
  * invoice: expose invoice_status_str function.
  * invoices: keep wallet pointer.
  * docs: fix up internal references now files have moved.
  * update workflow to sync readme files
  * move old misc file to another folder
  * remove mkdocs and sphinx files
  * move old misc files to another folder
  * remove legacy docs
  * update new documentation and move to doc/
  * pytest: fix flake in test_feerates
  * pytest: fix flake in tests/test_closing.py::test_penalty_rbf_normal[True]
  * pytest: test for bad estimatefees results.
  * lightningd: don't crash when we get a bogus estimatefees subfield.
  * fix(db): normalize all the invoice string stored in the database
  * fix(jsonrpc): trim the lightning: prefix from invoice
  * dual-fund: send the next_funding_txid to peer
  * spec: update to latest dual-funding wire changes
  * varint: make helper public
  * signed types: add handlers for signed types
  * plugins: fix shutdown notification to contain object.
  * libplugin: support wildcard subscriptions.
  * pyln: add ability to subscribe to all notifications.
  * plugins: add support for wildcard subscription.
  * mac-fix: `sed` doesn't work the same on macos
  * ci: Fix flakiness of lnprototest on CI
  * feat: increase the lnprototest version
  * hsmtool: Add support for Signet network
  * build: Regenerate the generated file as the default target
  * Support p2tr deposit addresses
  * cleanup comments, variables with respect to bech32(m)
  * txfilter_add_derkey: track p2tr scripts
  * is_segwit_output: properly detect all known segwit script types
  * encode_scriptpubkey_to_addr: support p2tr
  * p2tr script utilities
  * psbt_input_add_pubkey: support taproot
  * lightnind: cleanup not necessary logs
  * pyln-proto: make point release.
  * pyln-client: make point release to prepare for next release.
  * CHANGELOG.md: import changes from 23.05.2 branch.
  * cln-plugin: Remove unused `nonnumericids` field in `Builder`
  * cln-rpc: Allow access to deprecated fields in conversions
  * cln-rpc: Generate ToString for Enums
  * msggen: Derive `Eq` on generated Enums as well
  * rs: derive PartialEq for simple rust enums
  * pytest: fix flake in test_closing_anchorspend_htlc_tx_rbf
  * pytest: fix flake in test_routing_gossip.
  * bcli: don't feed CLN massive feerates.
  * Makefile: rebuild ccan when ccan_compat.h changes.
  * lightningd: fix rebase clash.
  * log: increase the log for ignore fee to unsual
  * This commit fixes a bug introduced in 64b1ddd761de30152154714433974b72bfb7f278 that does not ignore the min fee as specified by the user setting.
  * fuzz: initial sha256 seeds
  * fuzz: initial ripemd160 seeds
  * fuzz: add sha256 target
  * fuzz: add ripemd160 target
  * ccan: rename ripemd160 functions
  * lightningd: actually deprecate old notification fields now tests and plugins are all updated.
  * plugins: update for new deprecation API where all fields are nicely wrapped.
  * tests: notification response fixes
  * doc: Typo in balance_snapshot notification object
  * notification: block_added json key updated from block to block_added
  * notification: disconnect with json key disconnect
  * notification: connect with json key connect
  * docs: remove the ppa reference from the docs
  * fix(docs): Fix instructions for installing cln on FreeBSD
  * cln-rpc: Remove wildcard import from model
  * ci: Add pyln-grpc-proto to auto-publication workflow
  * pyln: Create a dedicated pyln-grpc-proto package
  * doc: Updated instructions
  * build: updated build-release script
  * build: passing release version for make
  * docker: cl-repro Dockerfile update
  * docker: Core lightning Dockerfile updates
  * gitignore: Ignore SHA256SUMS from release verify
  * pytest: fix flake in test_onchain_middleman_simple with anchors.
  * Makefile: add dependencies to fix parallel build.
  * CI: use prebuild for (almost all) ci steps.
  * CI: clean up workflow files.
  * configure: --enable-debugbuild flag for debug builds.
  * lightningd: remove deprecated_apis global, put into lightningd.
  * common/utils: remove now-unused softref facility.
  * gossipd: don't use softref in the seeker.
  * gossipd: don't use peer softrefs for gossip credit.
  * gossipd: put ->daemon pointer into routing_state.
  * gossipd: use htable, not linked list for peers.
  * connectd: don't try to keep going if gossipd dies.
  * db: add generic warn/error function.
  * libplugin: expose plugin_logv.
  * Remove --daemon from lightningd.service
  * contrib: fix id parsing in IO loop of cowsay.sh plugin
  * pytest: test for emergency minimum fund violations.
  * plugins: don't let multifundchannel open a new anchor channel without reserves.
  * lightningd: add option `opening_anchor_channel` to fundpsbt, utxopsbt.
  * lightningd: don't let them fundpsbt below emergency reserve.
  * config: add min-emergency-msat option.
  * multifundchannel: use `excess_as_change` flag to simplify logic.
  * txprepare: use `excess_as_change` flag to simplify withdraw/txprepare logic.
  * fundpsbt/utxopsbt: handle `excess_as_change` and `all` correctly.
  * plugin: make sure multifundchannel / fundchannel unreserve correctly on failure.
  * pytest: adapt all the anchor-iff-EXPERIMENTAL tests to --experimental-anchors.
  * pytest: make dual-funding tests using option_anchors_zero_fee_htlc_tx.
  * pytest: test CPFP using anchors.
  * lightningd: turn on experimental support for zero-fee htlc anchors.
  * global: thread zero fee option everywhere.
  * common/channel_type: add zero-fee-anchor type.
  * onchaind: don't grind for htlc fees if option_anchors_zero_fee_htlc_tx set.
  * onchaind: use our own inputs to add to HTLC txs (iff using anchors).
  * hsmd: routine to sign HTLC tx merged with our own tx.
  * channeld: for anchors, use minrelayfee as minimum commit tx fee to allow.
  * dualopend: use a lower feerate for first commitment tx for anchors.
  * openingd: use a lower feerate for first commitment tx for anchors.
  * lightningd: use lowball feerate for commit_tx on anchor channels.
  * dual-funding: don't override default if multifundchannel doesn't set feerate.
  * lightningd: code to spend anchor outputs if we want to boost commitment tx.
  * common: simple helpers to test for either anchor feature.
  * lightningd/chaintopology: change form of finished callback.
  * bitcoin/psbt: handle anchor spends.
  * hsmd: command to sign anchor spends.
  * pytest: test for commitment feerate.
  * lightningd: don't make htlc_timeout_satoshis/htlc_success_satoshis zero if we support anchors.
  * lightningd: don't spam with RBF messages if fee hasn't changed.
  * bitcoin: set PSBT amount inside tx for bitcoin_tx_output_set_amount.
  * wallet: fix psbt_using_utxos when used with base PSBT.
  * msggen: add new version string.
  * lightningd: ignore any new options we add in deprecated output.
  * lightningd: initialize channel_type field on dualopend channel creation.
  * wallet: don't try to set a timer past 2038 on 32-bit platforms.
  *  add m1 native lib paths to Makefile
  * Correct INSTALL.md requirements for OpenBSD
  * cln-grpc: Add some missing states to HtlcState
  * pytest: fix another flake in test_restorefrompeer.
  * pytest: fix reconnect flake in test_plugin_connected_hook_chaining
  * lightningd: fix crash on shutdown while if channel being cancelled at same time.
  * poetry, CI: insist in protobuf v21.12 in both Python and CI.
  * Makefile: correctly erase generated contrib/pyln-testing/pyln/testing/ in distclean, and rebuild by default.
  * Makefile: use grouped targets for recipes with multiple fixed outputs
  * pyln-proto: expose the tlv types
  * fuzz: initial fuzz-cryptomsg seeds
  * fuzz: test message encryption and decryption
  * common: make hdr parameter const
  * fuzz: initial handshake target seeds
  * fuzz: add handshake act 3 target
  * fuzz: add handshake act 2 target
  * fuzz: add handshake act 1 target
  * fuzz: add connectd_handshake.h
  * CI: run 2, not 3 UBSAN/ASAN pytests at once.
  * pay: don't require description for hashdesc invoices (i.e. undeprecate).
  * pay, decodepay: handle descriptions with " inside them where we use hashed descriptions.
  * Added sample config file
  * pytest: test_pay flake fix.
  * pytest: fix unexpected reconnection check in test_setconfig()
  * autoclean: allow dynamic changes to autoclean-cycle.
  * autoclean: various configuration options now dynamic.
  * plugins: libplugin support for dynamic config options.
  * libplugin: make set callback for options take plugin ptr, check correct type.
  * lightningd: call setconfig on plugins' dynamic options.
  * plugin: allow plugins to set `dynamic` on options.
  * setconfig: hook into plugin infrastructure for setconfig.
  * setconfig: comment out now-overridden lines.
  * lightningd: setconfig command.
  * lightningd, libplugins: allocate opt strings from tmpctx, not NULL.
  * common: allow configvars to be marked dynamic.
  * lightningd: move listconfigs into configs.c
  * pytest: handle v fast disconnect during test_funding_external_wallet_corners()
  * ccan: update to fix hang in ./configure with clang.
  * Revert "CI: allow postgres and ASAN longer to run."
  * pytest: fix race in test_penalty_rbf_normal
  * tools/gossipwith: shutdown, don't close, TCP socket.
  * lightningd: tell connectd to disconnect even if it's connecting now.
  * CI: allow postgres and ASAN longer to run.
  * CI: suppress Postgres vacuuming during tests.
  * CI: Remove unused CI build script.
  * CHANGELOG.md: updates from 23.05.1 branch.
  * Persist feature bits across restarts
  * py: Update dependencies and relax constraints
  * common: add test to generate BOLT formatting vectors.
  * doc: add section about Clang code coverage
  * contrib: script to generate Clang coverage report
  * make: allow Clang coverage instrumentation
  * fix: build on alpine linux
  * fix(pyln): regenerate the autogenerated files
  * Revert "ci: re-enable the compilation workflow"
  * Revert "ci: add the pre-build check as dependencies on lnprototetest"
  * ci: add the pre-build check as dependencies on lnprototetest
  * ci: re-enable the compilation workflow
  * feat(bitcoind): pass the current known block height
  * msggen: Extend support range to v0.10.1 and mark address, added in v23.02
  * openingd: work harder to intuit OPT_SCID_ALIAS.
  * fix: increase version cryptography python dep
  * ci: run integration tests with sanitizers
  * ci: run unit tests with sanitizers
  * tools: fix memory leaks in hsmtool
  * lightningd: allow `false` as a default for flags.
  * pytest: mark test_commando_stress as slow.
  * commando: integer command parameters can be compared with < and >.
  * pytest: test for amount comparison.
  * doc: document that we strip punctuation from parameter names.
  * doc: Add guides and GitHub workflow for doc sync
  * fix: prefixing external build dir
  * lightningd: close plugin dir on return
  * devtools: call common_setup in main
  * plugins: initialize destination_reachable
  * db: avoid calling memcpy on NULL
  * common: remove json_stream_log_suppress
  * bitcoin: avoid adding to NULL
  * doc: making release document update
  * doc/Makefile: restore CI check for schema changes.
  * CI: use rebasing instead of merge.
  * listconfigs: add `plugin` field if config is for a plugin.
  * lightningd: deprecate listconfigs direct fields.
  * reckless: use modern listconfigs.
  * pytest: use modern listconfigs.
  * listconfigs: show plugin options in 'configs' with normal options.
  * config: replace accept-htlc-tlv-types with accept-htlc-tlv-type
  * lightningd: don't simply ignore defaults on flags, deprecate.
  * lightningd: listconfigs update, using configvars code.
  * lightningd: fix `listconfigs` `rpc-file-mode`
  * lightningd: annotate configuration settings which contain JSON literals.
  * lightningd: use OPT_EXITS for options which exit.
  * lightningd: make `--clear-plugins` override prior plugin configvars.
  * lightningd: allow --regtest.
  * lightningd: switch parsing to common/configvar
  * lightningd: explicitly mark developer-only options with OPT_DEV.
  * dev-allowdustreserve: make this a DEVELOPER option.
  * lightningd: explicitly note what parameters can be specified multiple times.
  * common/configvar: routines to manage config settings.
  * lightningd: implement more show commands to reduce listconfigs special casing.
  * lightningd: simplify listconfigs loop.
  * ccan: update to latest ccan/opt
  * bcli: fix type of rpcport.
  * pyln-client: don't try to convert objects to Millisatoshi.
  * lightningd: remove deprecated `null` for missing plugin options.
  * common: allow optional fields in json_scan().
  * rs: Bump version of cln-plugin
  * gossipd: don't fail on gossip deletion
  * grpc: The plugin needs to use the `server` feature on `cln-grpc`
  * rs: Guard the cln-rpc dependency behind "server" feature in cln-grpc
  * doc/Makefile: suppress stupid check.
  * lightningd: deprecated experimental-websocket-port now we can use bind=ws:
  * lightningd: allow --bind=ws:
  * common: add new internal type for websockets.
  * lightningd: deprecate weird listening options.
  * lightningd: deprecated --announce-addr-dns.
  * wireaddr: clean up option parsing, support `dns:` prefix directly.
  * common: remove websocket type from wireaddr.
  * connectd: don't advertise websocket addresses.
  * common/wireaddr.h: simplify parse_wireaddr API.
  * connectd: clean up add_gossip loops.
  * staticbackup: don't use wireaddr_internal.
  * poetry: update grpcio to 1.54.0
  * pyln-testing: allow protobuf v4
  * Gitlab: updating outdated references
  * psbt: remove redundant re-setting of tx modification flags.
  * psbt: replace init/create_psbt with just create_psbt, and simplify it.
  * psbt: implement psbt_append_output using psbt_insert_output.
  * rust: Bump the versions of cln-rpc, cln-grpc, cln-plugin and grpc-plugin
  * ci: use Bitcoin Core 25.0
  * Revert "Put bitcoind logging in stdout for pytest"
  * wallet: fix crash on listtransactions.
  * db_col_tx: report txn hex if transaction pulled is invalid
  * msggen: Add preapproveinvoice and preapprovekeysend to msggen
  * lightningd: fix incorrect reuse of dualopend, leading to dev_queryfeerates race
  * dualopend: fix minor memleak report.
  * pytest: slow down for bitcoind.
  * CI: restore dual-funding tests.
  * pytest: fix up DF tests after onchaind broadcast rework.
  * pytest: update test_v2_fail_second for listpeers changes.
  * lightningd: fix DF crash from libwally update.
  * fuzz: new fuzz-bech32 seeds
  * fuzz: simplify fuzz-bech32.c
  * fuzz: check decoded values
  * fuzz: allow bech32_encode to succeed
  * common: rename bech32_encode parameter
  * db_col_psbt: convert to PSBTv2 on load from db
  * Put bitcoind logging in stdout for pytest
  * Add segwit_addr_decode unit tests for invalid bech32(m)
  * test_withdraw_bech32m: test that expected outputs exist for bech32(m) withdrawals
  * make: clean up lowdown install
  * build: remove gmp
  * signpsbt_done: don't try to access global tx in exception
  * Update libwally to 0.9.0
  * build: remove --enable-experimental-features / EXPERIMENTAL_FEATURES
  * pytest: remove EXPERIMENTAL_FEATURES as a consideration.
  * listtransactions: remove annotations, which were only in EXPERIMENTAL_FEATURES.
  * build: don't generate experimental variants of wire files.
  * plugins/fetchinvoice: remove obsolete check for feature 102.
  * channeld: use explicit --experimental-upgrade flag, not #ifdef EXPERIMENTAL_FEATURES
  * channeld: allow stfu based on peer features, not EXPERIMENTAL_FEATURES.
  * wire: remove our own blinded payments patch since it's in spec.
  * tools/generate-wire.py: intuit tlvs field if a tlv type is mentioned.
  * tools: remove optional csv field handling.
  * lnprototest: update to avoid compulsory option_anchors init.
  * fuzz: new fuzz-bip32 seeds
  * fuzz: correct buffer length for bip32_key_version
  * fuzz: check key validity before serializing
  * make: build dependencies with fuzzing flags
  * ci: use Bitcoin Core 24.1
  * doc: remove duplicate wumbo key from listconfigs
  * fix commas to semicolons
  * add missing htlc states from incoming htlcs
  * CI: re-add python timeout.
  * pytest: fix tests/test_cln_rs.py to avoid race.

-------------------------------------------------------------------
Fri Jun 30 11:11:30 UTC 2023 - marec@detebe.org

- Update to version 23.5.2:
  * CHANGELOG.md: update for release.
  * cln-grpc: Add some missing states to HtlcState
  * doc/Makefile: restore CI check for schema changes.
  * CI: use rebasing instead of merge.
  * CI: don't merge into master
  * pay: don't require description for hashdesc invoices (i.e. undeprecate).
  * pay, decodepay: handle descriptions with " inside them where we use hashed descriptions.
  * pyln-proto: make point release.
  * pyln-proto: expose the tlv types
  * pyln-client: make point release to prepare for next release.
  * pyln-client: don't try to convert objects to Millisatoshi.
  * listtransactions: remove annotations

-------------------------------------------------------------------
Thu Jun 08 09:26:08 UTC 2023 - marec@detebe.org

- Update to version 23.5.1:
  * CHANGELOG.md: update for release.
  * openingd: work harder to intuit OPT_SCID_ALIAS.
  * gossipd: don't fail on gossip deletion
  * lightningd: fix DF crash from libwally update.
  * wallet: fix crash on listtransactions.

-------------------------------------------------------------------
Wed May 10 18:36:26 UTC 2023 - marec@detebe.org

- Update to version 23.5.0:
  * meta: update changelog and pyln version for 23.05 release
  * meta: Add changelog for 23.05rc4
  * jsonrpc: Remove the old "_msat" prefix in the listpeerchannels command
  * pyln: remove unused variable
  * meta: Add changelog for 23.05rc3
  * pytest: Add helper to get a grpc stub and test decode
  * msggen: Switch signatures to string instead of bytes
  * pyln: Set the correct envvar for logging for rust plugins
  * msggen: Add DecodePay to the mappings
  * msggen: Map arrays of hashes and add HtlcState enum
  * msggen: Move overrides into the model itself
  * jsonrpc: Add request schemas for decode and decodepay
  * pytest: Extend ListPeerChannels test to include ListClosedChannels
  * cln-grpc: Rename the ChannelSide variants
  * msggen: Add ListClosedChannels and overrides
  * pytest: Add a test for the grpc conversion of listpeerchannels
  * msggen: Disable grpc response -> json response temporarily
  * msggen: Normalize enum and field names if they contain a '/'
  * msggen: Add ListPeerChannels to generated interfaces
  * jsonrpc: Add versioning annotation to listpeerchannels
  * meta: Add changelog for 23.05rc2
  * fix: build with gcc 13 with enum and int mismatch
  * connectd: pass correct buflen to memmem
  * pytest: ignore pip warning
  * reckless: simplify installer registration
  * meta: Add changelog for 23.05rc1
  * reckless: provide response when failing to add source
  * reckless: enable case-insensitive searching
  * reckless: add missing type hints
  * reckless: match name using installer entry formats
  * reckless: install command now uses `Installer` class methods
  * reckless: add installer methods
  * reckless: add Installer class to support additional languages
  * reckless: fix crash on non-verbose output
  * reckless: remove extraneous web request
  * reckless: avoid superfluous config rewrites
  * reckless: fix CLI redirect, minor cleanup
  * Update libwally to 0.8.9
  * pyln: Exclude all `cln-` plugins from valgrind
  * make: Use the CLN_PLUGIN_EXAMPLES variable for testbin
  * rs: Run hooks, methods and notification handlers in tokio tasks
  * pytest: Highlight the re-entrancy issue for cln-plugin events
  * gossip_store: remove now-redundant push bit
  * connectd: remove handling of push only gossip
  * connectd: implement timestamp-as-trinary.
  * connectd: no longer stream our own generated gossip, let gossipd do it.
  * gossipd: make sure we also spam private channels with the peer involved.
  * gossipd: send our own gossip aggressively when a new peer connects.
  * pytest: fix up test_gossip_ratelimit.
  * pytest: fix test_penalty_htlc_tx_timeout accounting flake.
  * pytest: make sure we wait for all feerates to be gathered.
  * lightningd: fix 100% CPU hang on shutdown.
  * Makefile: remove plugins/sql-schema_gen.h and plugins on `make clean`
  * plugins/Makefile: don't use echo -n.
  * ci: run fuzz regression tests
  * doc: document that urgent doesn't use the 2-block estimate, but the 6-block.
  * doc: give helpful examples for feerate values.
  * hsmtool: makerune command.
  * hsmtool: move sodium_init() to top level.
  * hsmtool: rework common hsm_secret fetch/decode.
  * Fix Typo in startup_regtest.sh
  * have towire_wally_psbt and fromwire_wally_psbt set safe psbt version
  * ld: Add a couple of logging statements when forwarding
  * cln: Fix routehints conversion from cln-rpc and cln-grpc
  * pytest: Reproduce #6143
  * lightningd: use channel_type as we're supposed to for forward descisions.
  * wallet: add channel_type field to db.
  * zeroconf: don't accept channel_type with option_zeroconf unless we're really zeroconf.
  * common/channel_type: routines to set known variants, set scid_alias.
  * wallet: allow psbt_using_utxos to take a starter psbt.
  * bitcoin: bitcoin_tx_remove_output()
  * lightningd: fix parent reporting for memleaks.
  * pyln-testing: add support to tell bitcoind not to include txs if fee is too low.
  * bitcoin: rename confusing functions.
  * lightningd: expose default_locktime for wider usage.
  * db: print nice message and not just backtrace on bad column name.
  * lightningd: create small hsm_sync_req() helper for hsm queries.
  * connectd: dev-report-fds to do file descriptor audit.
  * common: lookup function for symnames.
  * connectd: don't leak fds if we have both IPv4 and IPv6.
  * connectd: log broken if TCP_CORK fails.
  * connectd: don't try to set TCP_CORK on websocket pipe.
  * lightningd: do RBF again for all the txs.
  * lightningd: rebroadcast all pending txs each 30-60 seconds.
  * lightningd: remember if they set "allowhighfees" when we rebroadcast.
  * lightningd: split the simple onchain tx signing code.
  * lightningd: base feerate for onchain txs on deadlines, not fixed fees.
  * feerates: add `floor` field for the current minimum feerate bitcoind will accept
  * plugins/bcli: use the new feerate levels, and the floor.
  * lightningd: handle bcli plugins returning fee_floor and feerates parameters.
  * lightningd: allow "NNblocks" and "minimum" as feerates.
  * lightningd: clean up feerate handling, deprecate old terms.
  * lightningd: handle fees as blockcount + range.
  * lightningd: clarify uses of dynamic (mempool) feerate floor, and static.
  * pytest: test parsefeerate explicitly.
  * common: add tal_arr_insert helper to utils.h
  * plugins/bcli: move commit-fee (dev-max-fee-multiplier) and into core.
  * msggen: fix incorrect assertion.
  * doc: add section about improving fuzzing corpora
  * doc: document "make check-fuzz"
  * make: add check-fuzz target
  * fuzz: add check-fuzz.sh
  * fuzz: improve corpus merging
  * fuzz: add initial seed corpora
  * pytest: add blackbox tests for reckless
  * reckless: use environment variable redirects
  * reckless: add support for additional networks
  * reckless: don't crash on subprocess calls
  * tests: split fetchinvoice recurrence tests into separate test.
  * Makefile: update to latest BOLT text.
  * Makefile: update to BOLT 20066dc2aba906f37f3be5a810ae67040f265377
  * Makefile: update bolts a0bbe47b0278b4f152dbaa4f5fab2562413a217c
  * Makefile: bolt version b38156b9510c0562cf50f8758a64602cc0315c19
  * Makefile: update bolts fc40879995ebc61cc50dfd729512f17afb15b355.
  * Makefile: update bolts to 60cfb5972ad4bec4c49ee0f9e729fb3352fcdc6a.
  * wire: fix extracted patch.
  * lightningd: update comments now channel-type is merged.
  * test: add the timeout to the waitpay command
  * Update INSTALL.md
  * onchaind: no longer need information about current feerates.
  * onchaind: remove now-unused direct tx creation.
  * onchaind: propose_ignore specifically to ignore if output reaches depth.
  * pytest: clean up wait_for_onchaind_tx interface, remove wait_for_onchaind_broadcast
  * onchaind: use lightningd to sign and broadcast htlc expired txs.
  * onchaind: use lightningd to sign and broadcast htlc_timeout transactions.
  * onchaind: use lightningd to sign and broadcast htlc spending txs.
  * onchaind: use lightningd to sign and broadcast htlc_success transactions.
  * common: expose low-level htlc_tx function.
  * onchaind: have lightningd create our penalty txs.
  * onchaind, pytest: disable RBF logic.
  * lightningd: remember depth of closing transaction.
  * onchaind: use lightningd for spending our unilateral "to us" output.
  * onchaind: use lightningd to send "delayed_output_to_us" from HTLC txs.
  * pyln-testing: adapt wait_for_onchaind_broadcast function for when onchaind uses lightningd for broadcast.
  * onchaind: infrastructure to offload tx creation to lightningd.
  * lightningd: handle first case of onchaind handing a tx to us to create.
  * hsmd: add support for lightningd signing onchain txs.
  * lightningd: add initializing state.
  * tests: test for stopping node while it's starting.
  * common: fix build of run-channel_type.c
  * msggen: Add VersioningCheck
  * msggen: Use the inferred optional field
  * msggen: Add an optional patch
  * msggen: Add patching system, add `added` and `deprecated` to Field
  * db: db_set_intvar/db_get_var should take a const char *.
  * db: make db_exec_prepared_v2 return void.
  * db: catch SQL errors unless we're expecting them.
  * postgres: add missing 'update_count' to stmt
  * pyln.testing: remove Throttler.
  * Makefile: fix check-gen-update to diff *all* files.
  * plugins/bcli: use getmempoolinfo to determine minimum possible fee.
  * onchaind: two minor tidyups.
  * onchaind: helper to read and queue unwanted messages.
  * bitcoind: fix clone_bitcoin_tx() when tx is take().
  * onchaind: simplify lightningd message handling into a switch statement.
  * lightningd: use tx_feerate() for calculating fallback feerate for onchaind.
  * bitcoin: add tx_feerate() to reverse-calculate feerate a tx paid.
  * chaintopology: allow minblock for broadcast_tx.
  * lightningd: don't use notleak in chaintopology.c
  * lightningd: provide callback in broadcast_tx() for refreshing tx.
  * lightningd: rebroadcast code save actual tx, not just hex encoding.
  * bitcoin: helpers to clone a bitcoin_tx, and format one.
  * chaintopology: rename broadcast_tx callback name.
  * channel: don't log scary disconnect message on unowned channels.
  * pytest: add connection test for gratuitous transient failure message.
  * doc: fix commando-listrunes SHA256SUM line.
  * fix helloworld.py example in README for pyln-client
  * delpay: delete the payment by status from the db
  * pygossmap: rename GossipStoreHeader to GossipStoreMsgHeader
  * pygossmap: adds statistic and filter module
  * pygossmap: store features for nodes and channels
  * pygossmap: read .disabled from channel_flags
  * pygossmap: parse node addresses and other data
  * pygossmap: adds get_neighbors and get_neighbors_hc flodding method
  * pygossmap: adds get_halfchannel
  * pygossmap: adds a more complete mesh testcase
  * pygossmap: adds missing __str__, __eq__ and __hash__
  * pygossmap: adds GossmapHalfchannel to module exports
  * pygossmap: cleanups and optimizations
  * pytest: adds skipped test_create_gossip_mesh
  * pyln-testing: fundbalancedchannel default total_capacity to FUNDAMOUNT
  * pyln-testing: remove deprecated fund_channel
  * pyln-proto: shorten ShortChannelId.from_str()
  * fuzz: fix check-src/includes when fuzzing enabled.
  * channeld: don't asort(NULL).
  * plugins/pay: fix capacity bias.
  * bitcoin/script: don't memcmp NULL.
  * common/gossmap: don't memcpy NULL, 0, and don't add 0 to NULL pointer.
  * configure: support sanitizers properly.
  * ccan: update to include versions which pass -fsanitize=address and -fsanitize=undefined
  * fuzz: fix invalid pubkey error
  * tests: commando-blacklist
  * tests: commando-listrunes
  * doc: commando-listrunes & commando-blacklist
  * doc: schemas for commando-listrunes & commando-blacklist
  * commando: add restrictions information in listrune command
  * commando: Save blacklist runes to datastore
  * commando: make blacklist effective.
  * commando: blacklist support
  * commando: listrunes command
  * commando: save runes as we generate them
  * gitignore: Somebody uses vscode: make their life easier!
  * wallet: don't silently load invalid last_tx psbts.
  * wallet: fix up PSBTs as a migration.
  * wallet/test/run-psbt_fixup.c: test for psbt fixups.
  * wallet/psbt_fixup: routine to fix invalid PBSTs which modern libwally won't load.
  * docs: update autogenerate file
  * docs: Add docs on code generation
  * docs: Use admonition markup for warnings and notes
  * docs: Use blockreplace.py to include all manpages
  * docs: Remove redundant ToC in FAQs
  * tools: Add yml mode to `blockreplace.py`
  * docs: Add LICENSE to the About section
  * docs: Fix a number of broken links in the generated docs
  * docs: Structure the files in mkdocs
  * docs: Switch to mkdocs for documentation
  * plugins/sql: add listclosedchannels
  * lightningd: add listclosedchannels command.
  * listpeerchannels: add channel_type, both in hex and as array of names.
  * plugins/sql: recurse correctly into complex objects during processing.
  * plugins/sql: handle case of subobject with sub-arrays.
  * common: expose routine to map channel_type to feature names.
  * wallet: add accessor for closed channels.
  * wallet: make it clear that `enum state_change` is in db.
  * wallet: use db_col_optional.
  * db_col_optional: wrapper for case where a field is allowed to be NULL.
  * db_bind_scid: rename to db_bind_short_channel_id
  * wallet: don't clear reference from channel to peers table when we close channel.
  * wallet: only delete peer from db if it's unused.
  * wallet: add comment on db noting that `ON DELETE CASCADE` is never used.
  * msggen: Allow using deprecated fields in the rpc -> grpc conversion
  * grpc: make the mTLS private keys user-readable only
  * plugin: autoclean: cleanup the forwards with localfailed
  * Docker: run directory for post-start if present.
  * Report failure to sign psbt inputs by hsmd
  * test_closing_different_fees: b vs balance in loop
  * Make startup_regtest.sh more robust to bitcoind wallet state
  * Add PSBT version setting RPC to aid with debugging and compatibility
  * Re-enable PSBT tests for Liquid except test_sign_and_send_psbt
  * Update libwally to 0.8.8, support PSBTv2
  * test: add PSBT field that doesn't collide with PSBTv2 fields
  * fuzz: fix UBSan nullability error
  * fuzz: avoid buffer overflow in bech32 target
  * wallet/db: don't use migration_context.
  * lightningd: move bip32_pubkey here from common/, add hsm check.
  * lightningd: move bip32_base pointer into struct lightningd.
  * hsmd: capability addition: ability to check pubkeys.
  * hsmd: new version, which tells us the HSM version, and capabilities.
  * common: update HSM_MIN_VERSION to reflect reality.
  * build(deps): bump werkzeug from 2.2.2 to 2.2.3
  * channeld: don't spin trying to send commitment while waiting.
  * pytest: add timeout to test_feerate_stress.
  * connectd: log status_failed on TOR problems
  * Output channel_id in listfunds
  * plugin: fetchinvoice: set the quantity in invreq
  * test_backfill_scriptpubkeys: stop first cln node before second sub-test
  * ci: add timeout field to 2h for each task
  * cln_plugin: add `shutdown()` method to `Plugin`
  * pytest: don't run test_backfill_scriptpubkeys under valgrind in CI.
  * lightningd: require "jsonrpc": "2.0" as per JSONRPC spec.
  * cleanup: rename json_add_amount_msat_only to json_add_amount_msat
  * global: remove deprecated "msat" suffix on msat fields.
  * global: remove deprecated non-msat-named msat fields.
  * lightningd: remove deprecated local_msat, remote_msat from listpeers.
  * lightningd: remove deprecated behavior where checkmessage would fail quietly.
  * hsmd: deprecate reply_v1.
  * common/hsm_version: list sha256 for every known version.
  * fix: partial fix lnprototest runner
  * doc: update release procedure

-------------------------------------------------------------------
Tue Mar 14 18:18:42 UTC 2023 - marec@detebe.org

- Update to version 23.2.2:
  * CHANGELOG.md: v23.03.2
  * plugins/pay: revert removal of paying invoice without description.

-------------------------------------------------------------------
Sat Mar 11 18:20:57 UTC 2023 - marec@detebe.org

- Update to version 23.2.1:
  * meta: update changelog for v23.02.1
  * offers: enable label for invoicerequest
  * doc: update documentation for fetchinvoice(7) and offer(7).
  * doc: fix modern usage of sendinvoice (changed in v22.11)
  * doc: add documentation for invoicerequest commands.
  * chanbackup: even if they enable experimental-peer-storage, check peers
  * wallet: really allow broken migrations.
  * connectd: fix crash on freed context for new connections.
  * gossipd: don't make new zombies, just prune channels as we did before.
  * gossipd: ignore zombie flag when loading gossip_store.
  * pytest: remove zombie test.
  * sql: fix nodes table update.
  * sql: fix bug where nodes table would get duplicate entries.
  * gossipd: remove zombie spam cupdate when resurrecting
  * meta: update changelog and pyln version for 23.02 release
  * reprobuild: use pyenv for python installation
  * repro: Add `protoc` dependency to repro-build
  * gossipd: load and store node_announcements correctly
  * gossipd: flag zombie channels when loading from gossip_store
  * gossipd: correct node_announcement order when zombifying channels
  * keysend: Do not strip even TLV types that were allowlisted
  * keysend: Extract `accept-extra-tlv-types` from `listconfigs`
  * libplugin: Expose the `jsonrpc_request_sync` method
  * json: Add method to parse a u64 array
  * pytest: remove openchannel('v2') marker from test_sql
  * sql: fix crash on fresh node_announcment.
  * sql: fix schema tests since num_channels added to listpeers.
  * fix: do not send send peerstorage msg when disabled
  * pay: fix delpay to actually delete.
  * autoclean: fix timer crash when we're cleaning two things at once.
  * db-fix: update NULL lease_satoshi fields to zero
  * meta: Update changelog for 23.02rc3
  * gossipd: remember to squelch node announcements when shuffling
  * gossipd: remove redundant is_node_zombie() in routing_add_node_announcement.
  * gossipd: remove any zombified node_announcements on load.
  * gossipd: don't zombify node_announcements, just forget them.
  * gossipd: don't complain about unknown node_announcements if it's a zombie.
  * gossipd: don't broadcast node_announcement if we have no public channels.
  * gossipd: neaten node_has_broadcastable_channels logic.
  * devtools: fix ZOMBIE detection in devtools/dump-gossipstore.
  * Change year to 2023 in LICENSE
  * fix: fixes `FATAL SIGNAL 11` on gossmap node
  * pytest: allow ipv6 in test_announce_dns_suppressed
  * peer storage: advertise features as optional
  * meta: Add changelog for 23.02rc2
  * pytest: adds xfail test that shows datastore issues
  * lightningd: unescape JSON strings for db.
  * commando: don't try putting an integer as the 'string' parameter to "datastore".
  * libplugin: don't spew datastore errors to LOG_DEBUG.
  * fix: compilation error on armv7l 32 bit
  * gossipd: don't resurrect deleted half_chans
  * add a log message when it is not possible upgrade the db
  * meta: Add changelog for 23.02rc1
  * msggen: Regenerate for addition of SendCustomMsg
  * msggen: Enable SendCustomMsg
  * lightningd: don't put old deprecated `local_msat` and `remote_msat` in listpeerchannels.
  * ci: include rust tests inside the pre build checks
  * fix(grpc): add the num_channels field inside the tests
  * ignore sql binary plugin
  * cln-grpc: add roundtrip tests for test_getinfo and test_listppers
  * cln-rpc: explicitly enumerate ChannelState enum
  * Implement GRPC -> JSON conversions also for response types
  * Implement conversion JSON->GRPC also for requests type
  * options: create enable/disable option for peer storage.
  * plugins/chanbackup: make get_file_data take ctx.
  * plugins/chanbackup: neaten a little.
  * features: make name of peer storage features match spec.
  * plugins/chanbackup: switch to normal indentation.
  * tests/test_misc.py: Add test_restorefrompeer.
  * Plugins/chanbackup: Add RPC for recovering from the latestscb received from peers.
  * Plugins/chanbackup: Add hook for exchanging msgs on connect with a peer
  * Plugins/chanbackup: Add hook for receiving custommsg
  * Plugins/chanbackup: Add SCB on CHANNELD_AWAITING_LOCKING stage
  * plugins/chanbackup: use grab_file.
  * plugins/chanbackup: Define FILENAME globally (Good Manners)
  * Plugins/chanbackup: Add featurebit Peerstrg and YourPeerStrg.
  * plugins/chanbackup: PLUGIN_RESTARTABLE to PLUGIN_STATIC...
  * connectd: make exception for peer storage msgs.
  * peer_wire_is_internal helper.
  * feature(PEER_STORAGE and YOUR_PEER_STORAGE) added in feature.c and internal message.
  * wire: Add patch file for peer storage bkp
  * lightningd: allow sendcustommsg even if plugins are still processing peer_connected.
  * lightningd: don't access peer after free if it disconnects during peer_connected hook.
  * lightningd: fix leak report from peer_connected.
  * df: remove static remote key dependency
  * df: remove minimum witness weight for input calculations
  * df: fetch both the first+second commitment point
  * rfc-dual-fund: update to latest spec for dual-funding
  * test (df): check 'require-confirmed-inputs' for v2 opens
  * df: persist our setting to disk, read back to dualopend at reinit
  * dualopend: if required, validate inputs rcvd from peer
  * df: add new config option for v2 opens `--require_confirmed_inputs`
  * df: reuse psbt validation for the psbts incoming from dualopend
  * df: for dryruns, inform on requires-confirmation value
  * df: push back psbt to validate iff peer requests confirmed inputs
  * df: wire up peer's "require-confirmed-inputs"
  * df: persist channel open preference to database
  * tx_roles: allow to be serialized btw processes
  * v2 open: if flagged, check that all our inputs are confirmed
  * Update Bitcoin Core to 24.0.1 in other git ci locations
  * Fix 'extreme cases' logging of many commit timer failures
  * mssgen: adds num_channels
  * pytest: listpeers new attribute num_channels
  * doc: listpeers new attribute num_channels
  * rpc: adds num_channels to listpeers
  * grpc: Allow conversion code to use deprecated fields
  * grpc: Silence a warning about `nonnumericids` being unused
  * More accurate elements commitment tx size estimation
  * msggen: Regenerate for addition of SignInvoice
  * msggen: Enable SignInvoice
  * lightningd: Add `signinvoice` to sign a BOLT11 invoice.
  * doc: Correct `createinvoice`'s `invstring` description
  * cli: accepts long paths as options
  * make: Add doc/index.rst to generated files
  * lightningd: don't print zero blockheight while we're syncing.
  * SECURITY.md: Tell them to spam me, and include our GPG fingerprints.
  * pytest: fix flake in test_closing_disconnected_notify
  * Makefile: don't try to build sql plugin if there's no sqlite3 support.
  * lightningd: tell connectd we're shutting down.
  * connectd: add new start_shutdown message.
  * connectd: keep array of our listening sockets.
  * pytest: fix flake in test_bolt11_null_after_pay
  * tests: de-flake test that was failing on cltv expiry
  * df: echo back "tx-abort" when we receive 'tx-abort'
  * dual-open: use tx-abort instead of warning/errors
  * lightningd: remove duplicate routine `fail_transient_delayreconnect`
  * v2 open tests: don't drop connection when an openchannel fails
  * lightningd: don't send channeld message to onchaind.
  * relax log check for test_closing_higherfee
  * gci: Re-Add `TEST_NETWORK=liquid-regtest` to CI run
  * Need `sudo` for `make install`
  * Add protobuf as a Dependency
  * Must Specify pip3 on macOS
  * Use Python 3.7.8 Instead of 3.7.4 for macOS Install
  * Update CI to Bitcoin Core 24.0.1
  * build(deps): bump tokio from 1.23.1 to 1.24.2
  * v2 opens: don't use p2sh inputs for v2 opens
  * upgradewallet: JSONRPC call to update p2sh outputs to a native segwit
  * fundpsbt: add option to filter out wrapped p2sh inputs
  * dual-open-rbf: remember the requested lease amount btw restarts
  * test: restart node during rbf
  * dual-fund: patch in channel_type logic
  * tests: check that non-anchor opens can't use liquidity ads
  * tests: anchors is only EXPERIMENTAL_FEATURES
  * connectd: patch valgrind error w/ buffers for error msgs
  * dual-fund: only allow for liquidity ads if both nodes support anchors
  * dual-fund: remove anchor assumption for all dual-funded channels
  * dual-fund: check features to print (anchors not assumed)
  * opening: helper for anchor flagged, use in dualopend also
  * dual-fund: validate upfront shutdown using taproot + anchors
  * openingd: pull out validation for shutdown script
  * df tests: use the amount from the logs to check for!
  * dual-fund: on re-init, re-populate opener_funding/accepter_funding
  * dual-fund: update to latest, add in updates to rbf amounts
  * dual-fund: update extracted CSVs to latest bolt draft
  * offers: fix pay where we are using deprecated apis.
  * pytest: add test for using offers with allow-deprecated-apis=True
  * pyln-client: adds utils cln_parse_rpcversion
  * valgrind-fix: patch valgrind error on log statement in pay plugin
  * lightningd: don't run more than one reconnect timer at once.
  * pytest: neaten test_cln_sendpay_weirdness, rename.
  * pay: specify the channel to send the first hop.
  * libplugin-pay: fix (transitory) memleak which memleak detection complains about.
  * pytest: limit test_cln_sendpay_weirdness to only failures.
  * tests: add Carl Dong's example exhaustive zeroconf channel pay test.
  * pytest: fix flake in test_closing_simple when we mine too fast.
  * plugins/sql: fix foreign keys.
  * pyln-testing: fix wait_for_htlcs helper
  * lightningd: flag false-positive memleak in lightningd
  * plugins/pay: fix htlc_budget calc when we get temporary_channel_failure
  * libwally: update to cln_0.8.5_patch
  * doc-schema: make address field in getinfo response required
  * make: fix make doc error
  * db: catch postgres error on uninitialized database
  * datastore: Add check for empty key array
  * doc: remove sections on litestream, .dump and vacuum into
  * typo fixes found by @niftynei
  * doc: add examples for sql plugin.
  * plugins/sql: listsqlschemas command to retrieve schemas.
  * plugins/sql: add bkpr-listaccountevents and bkpr-listincome support.
  * plugins/sql: allow some simple functions.
  * doc: document the sql command.
  * plugins/sql: print out part of man page referring to schemas.
  * plugins/sql: pay attention to `deprecated` in schema.
  * doc/schemas: fix old deprecations.
  * plugins/sql: refresh listnodes and listchannels by monitoring the gossip_store.
  * plugins/sql: include the obvious indexes.
  * pytest: perform more thorough testing.
  * plugins/sql: add listpeerchannels support.
  * plugins/sql: make tables for non-object arrays.
  * plugins/sql: rework to parse schemas.
  * plugins/sql: create `struct column` to encode column details.
  * plugins/sql: initial commit of new plugin.
  * doc: use specific types in schema rather than "hex".
  * doc/schemas: remove unnecessary length restrictions.
  * common: add routine to get double from JSON.
  * tools/fromschema.py: don't try to handle more complex cases.
  * common/gossip_store: move subdaemon-only routines to connectd.
  * common/gossip_store: expose routine to read one header.
  * common/gossip_store: clean up header.
  * doc: fix listsendpays man page.
  * lightningd: fix type of listhtlcs payment_hash.
  * plugins/topology: add direction field to listchannels.
  * listtransactions: get rid of per-tx type annotations.
  * wallet: remove unused TX_ANNOTATION type in transaction_annotations table.
  * doc: remove unused offerout schema.
  * pytest: test_channel_resurrection now succeeds
  * gossipd: zombify inactive channels instead of pruning
  * gossip_store: add a flag for zombie entries
  * gossipd: avoid gossipd crash due to double freeing timer
  * pytest: gossipd: test resumption of pruned channels
  * common/bolt11: fix 32-bit compilation.
  * decode: fix handling of blinded_payinfo.
  * plugins: update to match latest offers text.
  * common: update to latest onion-message spec.
  * common/test: fix up name of test file to match latest version.
  * common: update to latest route-blinding spec.
  * common/onion_decode: put final flag in onion_payload.
  * tools/check-bolt.c: don't leak open directory.
  * wire: use correct number of update_add_tlvs blinding field.
  * common/test: remove unused padding in bolt04/blinded-onion-message-onion-test.json
  * gossipd: Do not send warning when node_announcement parsing fails
  * hsmd: increase HSM_MAX_VERSION to 3
  * hsmd: add hsmd_preapprove_keysend and check_preapprovekeysend pay modifier
  * hsmd: add hsmd_preapprove_invoice and check_preapproveinvoice pay modifier
  * docker: Install protobuf-compiler for builder
  * cln-rpc: use serde rename instead of alias
  * common/bolt11: convert to table-driven.
  * common/bolt11: add pull_all helper for common case of entire field.
  * common/bolt11: const cleanup, fix parsing errors.
  * pytest: test ip discovery for custom port
  * doc: usage of --announce-addr-discovered-port option
  * opts: adds --announce-addr-discovered-port config option
  * cli: getinfo output to regard --ip-discovery
  * opts: deprecate --disable-ip-discovery switch
  * pytest: fix and adapt test_remote_addr_disabled
  * doc: announce-addr-discovered config switch
  * opts: announce-addr-discovered on/off/auto switch
  * opts: adds the autobool on/off/auto feature
  * ci: adds git fetch before doing schema checks
  * lightningd: use a hash table for peer->dbid.
  * lightningd: use hash map for peers instead of linked list.
  * pytest: fix output order assumption in test_setchannel_all
  * common: expose node_id_hash functions.
  * wallet: add dependency on lightningd/ headers.
  * channeld: remove dead HTLCs from htable and free them (eventually)
  * add PartialEq to ShortChannelId
  * comm: make sure that our version check is reliable
  * lightningd: fix valgrind reported leak when we exit early.
  * ccan: update to fix recent gcc "comparison will always evaluate as 'false'" warning
  * gha: Temporarily disable `test_notify`
  * ci: Downgrade the upload-artifact action to v2.2.4
  * gci: Add a test for the postgres backend
  * gci: Add an explicit name to the matrix for display
  * gci: Split out installation of elements and bitcoin into a script
  * make: Clean up duplicate cargo examples build rules
  * ci: Use bzip2 and release to reduce artifact size
  * ci: Add gather step
  * ci: Build and test in ubuntu:22.04 and install lowdown
  * tests: Fix a small memory leak in the onion test vector tester
  * ci: Add bitcoind to integration test job
  * ci: Automatically cancel CI runs if we push a new version to the PR
  * ci: Split out the unit tests
  * ci: Split the pre-flight checks into separate steps
  * ci: Add a testpack.tar target to tranfer artifacts between CI jobs
  * gci: Re-add tests of pre-compiled binaries
  * gci: Clone BOLTs repository in pre-build checks
  * py: Ignore missing whitespace after keyword for now
  * gci: Split out the stages better
  * gci: Update Github Actions steps to their latest versions
  * gci: Stop uploading unit test results
  * gci: Split out the lnprototest from the larger CI run
  * pytest: fix flake in tests/test_closing.py::test_closing_specified_destination
  * lightningd: deprecate p2sh-segwit addresses for `newaddr` `addresstype`
  * pytest: use bech32 addresses everywhere.
  * pyln-testing: don't default openchannel and fundwallet to p2sh-segwit, use bech32.
  * gossip: Do not send warnings if we fail to parse a `channel_update`
  * CI: fix schema diff check.
  * cln-grpc: update listpeers json fixing tests
  * doc: remove manual field descriptions from listpeerchannels(7).
  * lightningd: deprecate listpeers.channels
  * pytest: fix race in test_bookkeeping_closing_subsat_htlcs
  * tests: use listpeerchannels.
  * tests/utils.py: use listpeerchannels.
  * contrib/pyln-testing: use listpeerchannels.
  * plugins/topology: use listpeerchannels.
  * plugins: use listpeerchannels instead of listpeers.
  * pay: use json_to_listpeers_channels() for local_channel_hints.
  * libplugin: don't return unopened channels from json_to_listpeers_channels().
  * plugins/libplugin: flatten return from json_to_listpeers_result.
  * plugins: make bookkeeper use the new listpeerchannels command.
  * lightningd: add listpeerchannels command
  * lightningd: prepare internal json routines for listpeerchannels.
  * proposal_meets_depth tracked output always has a proposal
  * lightningd: don't call memcpy with NULL.
  * all: no longer need to call htable_clear to free htable contents.
  * setup: make all htables use tal.
  * plugins/command: ensure htables are always tal objects.
  * plugins/pay: ensure htables are always tal objects.
  * gossipd: use pointer to hash table for channels in node.
  * gossipd: ensure htables are always tal objects.
  * memleak: prepare for htable to be a tal object.
  * connectd: ensure htables are always tal objects.
  * gossmap: ensure htables are always tal objects.
  * lightningd: ensure htlc htables are always tal objects.
  * lightningd/chaintopology: ensure htables are always tal objects.
  * tests: add account_id's and match by acct id, not test ordering
  * tests: mark test as dev (times out otherwise)
  * CI: rough check that schema changes seem to mention added, don't delete non-deprcated.
  * doc: add recent additions, fix annotation on listpeers to actually deprecate.
  * docs: handle "added": "version" and "deprecated": "version" from schemas.
  * doc: document that we should annotate added and deprecated schemas.
  * cli: add -c/--commando support.
  * commando: add filtering support.
  * commando: correctly replace the `id` field in responses.
  * commando: track incoming and outgoing JSON IDs.  Get upset if they don't match!
  * commando: build ID of command based on the id they give us.
  * commando: send `id` inside JSON request.
  * commando: require that we have an `id` field in JSON request.
  * lightning-cli: fix error code on invalid options, document them.
  * lightningd: treat JSON ids as direct tokens.
  * libplugin: don't turn non-string JSON ids into strings.
  * pytest: add tests for devtools/mkfunding
  * doc: channel_state_changed has a timestamp field
  * Ping request types are changed from number to u16
  * build(deps): bump tokio from 1.23.0 to 1.23.1
  * doc: fix accept-htlc-tlv-types description
  * common/test: fix typo in bolt12 test vector generation.
  * doc: "--enable-experimental-features" hard-codes experimental-offers + experimental-onion-messages
  * unify the zlib version
  * change zlib download path
  * common: update comments documenting the use of param()
  * cli: fix buffer overflow in (currently unused!) code for progress bars.
  * Replace head -n with sort -R for better random peer selection
  * remove unnecessary CPU_TO_LE32
  * git: Mark node_pb2.py as text so we can see changes
  * generate composite fields in grpc
  * lightningd: Look for channels by alias when finding channels
  * topology: fix memleak in listchannels
  * connectd: don't ask DNS seeds for addresses on every reconnect.
  * rs: Add cln-plugin metadata
  * rs: Add cln-grpc metadata
  * rs: Add cln-rpc metadata
  * db: Fix the ordering of `channel_htlcs` in postgres
  * pytest: adds test for msat to int comparison
  * Update release tag
  * pyln-client: make Millisatoshi comparable to int
  * Fix link to github.com/lightningd/plugins not clickable in README
  * rs: Update cargo dependencies
  * cln-plugin: Re-export anyhow::anyhow macro
  * cln-plugin: make available the configuration in plugin
  * doc: note that grpc needs the protobuf-compiler
  * ci: Add `protoc` compiler to setup
  * ci: Unconditionally install `protoc`
  * rs: Bump crate versions for publication
  * rs: Remove unused dependency from cln-plugin -> cln-rpc
  * rs: Update outdated dependencies
  * Turn on logging for key topics in bitcoind for black box tests
  * tests: make test_libplugin use the datastore.
  * libplugin: more datastore helpers.
  * pyln: add datastore routines.
  * Adds helper functions to cast Value variants
  * doc: sphinx-build fix external links (urls), language warning and broken footnote
  * dox: fix "sphinx-build -b html" warning: reference target not found
  * Properly raise ValueError message in wait_for
  * lightningd: remove `setchannelfee`.
  * sendpay: remove style `legacy` setting.
  * lightningd: only allow closing to native segwit
  * wallet: fundpsbt, utxopsbt reserve cannot be bool.
  * invoice: expiry must be in seconds.
  * pay: remove description_hash without description.
  * doc: replace deprecated parameter keyword "msatoshi" with "amount_msat"
  * add reserve to the fundchannel docs
  * docs: fix typo
  * docs: remove the table inside the reoribuild docs
  * doc: drive-by spelling corrections
  * fromschema.py: escape underscores in descriptions
  * doc: escape more naughty underscores
  * doc: check-manpages: add check for unescaped underscores

-------------------------------------------------------------------
Sat Dec 17 13:57:47 UTC 2022 - marec@detebe.org

- Update to version 22.11.1:
  * meta: Add changelog for hotfix release v22.11.1
  * build(deps): bump secp256k1 from 0.22.1 to 0.22.2
  * lightningd: don't announce names as DNS by default.
  * wireaddr: allow for UpperCase DNS names
  * doc: document the usage of DNS hostnames
  * misc: Update cdecker's gpg key
  * wireaddr: adds test for punycode
  * wireaddr: is_dnsaddr allow underscore in hostname
  * Update the contrib arm32v7 and arm64v8 dockerfiles
  * wallet: only log broken if we have duplicate scids in channels.
  * common: fix arm32 compile breakage.
  * Revert "lightningd: always require "jsonrpc": "2.0"  in request."
  * reckless: further verbosity/squelch of pip output
  * reckless: avoid redundant include statement in config
  * reckless: fix verbose option
  * jsonrpc: fix error when we abort batching due to timeout.
  * autoclean: fix uncleaned stats when we don't clean due to being too new.
  * doc: document autoclean-once command.
  * tools: Add multi-language support to blockreplace.py
  * doc: Create a blockreplace tool to update generated blocks in docs
  * pyln: Fix an issue with the LightningConnection short-reading
  * meta: Update changelog for v22.11 final
  * lightningd: don't cap spendable_msat/receivable_msat for wumbo channels.
  * pytest: test for wumbo direct payments.
  * connectd: don't spam logs when we're under load.
  * lightningd: do not abort while parsing hsm pwd.
  * docs: Add the `reckless` manpage to the readthedocs generation
  * lightningd: correctly exit when an important-plugin fails to start.
  * submod: Switch lnprototest to clone from github.com/rustyrussell/lnprototest
  * ci: Temporarily disable lnprototest tests
  * db: Backfill missing HTLC IDs in the forwards table
  * meta: Adjust changelog for v22.11rc3
  * lightningd: don't timeout plugins if init is slow!
  * cln-plugin: Adjust visibility of some internals
  * cln-plugin: Make the configuration in `init` public
  * CHANGELOG.md: include the v0.12.1 CHANGELOG entries!
  * CHANGELOG.md: order into a more user-first ordering.
  * doc: Add a readme to the `cln-grpc` proxy
  * autoclean: Fix a null-pointer derefence when checking HTLC age
  * pyln-client, libplugin, rust cln-plugin: explicitly flag that we allow non-numeric JSON ids.
  * lightningd: only use non-numeric JSON ids if plugin says we can.
  * plugins: set non_numeric_ids flag based on getmanifest `nonnumericids` field.
  * doc: document how to construct JSON ids in modern plugins and utilities.
  * meta: Update CHANGELOG for release candidate v22.11rc2
  * rs: Bump cln crate versions to 0.1.1
  * docker: Fix the dockerfile
  * msggen: Be less magic in detecting the repo root
  * grpc: Add the experimental optional flag to protoc
  * make: Fix external/lowdown clean targets
  * make: Make the Makefile make 4.4 compatible
  * ld: Replace list of outgoing_txs with a hash table
  * ld: Add an outgoing_txs_map htable to avoid costly lookups
  * ld: Do not blindly add rebroadcasts to outgoing_tx set
  * onchaind: cap RBF penalty fee for testnet/regtest
  * wallet: fix typo in debug message.
  * wallet/wallet.c: don't declare unused variable.
  * tools/generate_wire.py: don't declare unused for variable.
  * add some stuff to gitignores
  * pyln: Bump versions
  * meta: Add version v22.11rc1 changelog
  * lightningd.service: note that the hardening setting seems to break node.js plugins
  * onchaind: Adjust witness weight estimate to be more conservative
  * onchain: Document how the expected witness weight for the close tx
  * reckless: Replace custom logging with the logging crate
  * reckless: Replace urllib3 with urllib
  * reckless: neaten path conversions
  * reckless: avoid changing directory during install
  * reckless: Use urllib3 instead of requests
  * check: fix warnings from shellcheck 0.8.0
  * bolt12: update comments to match latest spec.
  * lightningd: re-add 'offerout' functionality, as 'invoicerequest'.
  * lightningd: add "savetodb" argument to createinvoicerequest, add listinvoicerequests/disableinvoicerequest
  * db: add invoicerequests table.
  * bolt12: routines to hash the invreq parts.
  * lightningd/invoice.c, plugins/fetchinvoice.c: use tlv_make_fields() instead of towire/fromwire hack.
  * offers: use existing copied fields.
  * decode: print unknown fields in bolt12 strings.
  * bolt12: use spec field names, update decode API.
  * devtools/bolt12-cli: fix decode to understand modern fields.
  * bolt12: update to modern signature scheme.
  * bolt12: import the latest spec, update to fit.
  * offers: remove 'send-invoice' offers support.
  * offers: make them always unsigned.
  * common/features: add explicit bolt12 feature sets.
  * common/bolt12: code to initialize invreqs from offers, invs from invreqs.
  * common/bolt12: add code to generate offer_id, extract parts of streams.
  * offers: create a real blinded path, if necessary.
  * offers: monitor blockheight.
  * listincoming: add htlc_min_msat, public and peer_features fields.
  * common/onion_decode: put the path_id into onion_payload->payment_secret.
  * createinvoice: make a minimal blinded "path" in bolt12 invoice if none presented.
  * lightningd: temporarily ignore missing payment_secret for bolt12.
  * invoice: invert check to reduce indentation.
  * onion_message: don't use general secret, use per-message secret.
  * common/blindedpath: expose API at a lower level.
  * plugins/libplugin-pay: hack in blinded path support.
  * common/onion: split into decode and encode routines.
  * common/onion: handle payment by node_id.
  * lightningd: don't return normal errors on blinded path entry, either.
  * common: catch up on latest routeblinding spec.
  * wallet: Add utxo_is_immature helper
  * wallet: Use boolean to determine whether an output is coinbase
  *  wallet: mark coinbase outputs as 'immature' until spendable
  * tests: test for coinbase wallet spend.
  * lightning-cli: support --filter parameter.
  * doc: add lightingd-rpc documentation.
  * libplugin: support filters.
  * pyln: add context manager to simpify filter use.
  * pytest: add filter tests.
  * lightningd: set filter when we see 'filter' object.
  * common/test: add unit tests for JSON filtering.
  * common/json_stream: support filtering don't print fields not allowed.
  * tests/fuzz: don't pull in JSON common at all.
  * common/json_filter: routine to turn "filter" JSON into a filter.
  * common/json_filter: routines for json filtering.
  * gci: Force MacOS CI Job to use python 3.10
  * common/sphinx: don't use fixed lengths anywhere.
  * pytest: add test for generating non-standard length onion errors.
  * lightningd: --dev-onion-reply-length option.
  * reckless: fix git clone issue with removed dir
  * Reckless: add man page
  * reckless: analyze repositories with urlparse
  * reckless: improve config file handling
  * reckless: add function for lightning-cli calls
  * reckless: multiline string style cleanup
  * reckless: replace os.path with pathlib operations
  * reckless: refactor argument list handling.
  * reckless: add type hints
  * reckless: raise exception or early termination instead of returning None
  * reckless: update help alias
  * reckless: use argparse subparsers
  * reckless: use config that was explicitly passed to lightningd
  * reckless: detect pip3 or pip
  * reckless: use the lightning path when invoking lightning-cli
  * reckless: it turns out the warning is a bit much.
  * reckless: new tool to manage lightningd plugins
  * gossipd: Cleanup channel update replacement logic
  * pytest: test for gossip store corruption by private channel updates
  * gossipd: ensure old private channel updates are properly deleted
  * pytest: Add test for optional options in cln-plugin
  * Plugin config options with no defaults
  * Collaborative transaction building
  * doc: Move M1 instructions install to its own section
  * doc: add `make install` line for macOS instructions
  * mkfunding: no scriptPubKey on utxo causing crash, so we add one
  * mkfunding: add missing common_setup
  * msggen: Map the `extratlvs` field of `keysend`
  * rs: Fix two small regressions
  * keysend: Allow quoted numbers in `extratlvs`
  * json: Add helper for quoted numbers
  * wire/Makefile: fix missing wire/bolt12_exp_wiregen.c in ALL_C_SOURCES.
  * common/blindedpath: create onion mesage test vectors.
  * common/onion_message_parse: generic routine for parsing onion messages.
  * common: update to latest onion message spec.
  * common/test: check we meet bolt04/onion-route-blinding-test.json
  * channeld, lightningd: allow blinded payments with !EXPERIMENTAL_FEATURES.
  * lightningd: return invalid_onon_blinding for any blinded payment error.
  * common/blindedpay: routines to construct a blinded payment.
  * common/onion: cleanup by removing unnecessary local temporary.
  * common/onion: enforce payment constraints.
  * common/onion: blinded payment support.
  * common/features: understand the route_blinding feature (feature 24)
  * common/blindedpath: generalize construction routines.
  * common/blindedpath: generalize routines.
  * channeld: don't calculate blinding shared secret, let lightningd do it.
  * common: remove old route-blinding-override test, update route-blinding test for new vectors.
  * wire: add latest Route Blinding htlc fields from https://github.com/lightning/bolts/pull/765
  * Remove point32.
  * offers: print out more details, fix up schema for decode of blinded paths.
  * BOLTs: update to more recent bolt12 spec.
  * Makefile: separate bolt12 wireobjects
  * gossmap: move gossmap_guess_node_id to pay plugin.
  * bolt12: change our payer_key calculation.
  * hsmd: don't use point32 for bolt12, but use pubkeys (though still always 02)
  * lightningd: use 33 byte pubkeys internally.
  * Makefile: check that hsm_version.h changes if wire/hsmd_wire.csv contents does
  * hsmd: introduce a simple API versioning scheme.
  * funder: cleanup datastore on state-change/channel failure
  * funder: filter prev-outs such that we only use still unspent ones
  * funder: use utxopsbt to build psbt for RBFs
  * funder: use previous outputs in count towards available funding
  * funder: pull out previous input list from datastore on RBF
  * funder: save utxos of signed txs to datastore
  * funder: rm quote that makes nifty cringe every time she sees it
  * df: pass lease data back to funder for rbfs
  * openchannel2: may re-use rates
  * df: for rbfs, since we know what they asked for, we can abort
  * df: put requested_lease onto state, so it persists
  * funder: we always pass in channel_max, no need to special case it
  * chainparams/dual-open: set max_supply; use for max on wumbo channels
  * zlib 1.2.12 yanked, update to 1.2.13 in Dockerfile
  * pytest: fix flake in test_emergencyrecover
  * psbt: wipe global tx scriptSig/witness data after saved to PSBT
  * bitcoin: add test for to/from wiring a bitcoin tx w/ scriptsig data
  * docker: Add bitcoin-cli to the alpine dockerfile
  * docker: Separate builder from runner stage in alpine docker image
  * docker: Build the alpine docker image from a clone
  * docker: Clean up dependencies for alpine build
  * Clean up Dockerfile.alpine
  * move alpine build dependencies to virtual package
  * update package dependencies for Alpine Linux
  * py: Update protobuf dependency to silence dependabot
  * keysend: just strip even unknown fields.
  * tests/test_misc.py: Check if funds are getting recovered on reconnecting... Changelog-None: Increasing test scope
  * cln-rpc: implement from Secret to slice conversion
  * devtools: Make fund_nodes compatible w/zsh
  * msggen: generate deprecated fields in rust.py
  * channeld: remove onion objects.
  * common/onion: remove old blinded payment handling.
  * bitcoin: add routine to check a Schnorr sig given a 33-byte pubkey.
  * pytest: test that we don't change our payer_key calculation.
  * devtools: enhance bolt12-cli to convert to/from hex
  * plugins/fetchinvoice: remove obsolete string-based API.
  * onionmessages: remove obsolete onion message parsing.
  * doc: update references to old BOLTs repo.
  * lightningd: have `makesecret` take `hex` or `string` (just like `datastore`)
  * pytest: Bypass schema verification for some RPC calls
  * schema: Add `enforcedelay` to `setchannel`
  * Setchannel request is provided
  * channeld: do not enforce max_accepted_htlcs on LOCAL in channel reinit
  * sphinx: rename confusing functions, ensure valid payloads.
  * common/onion: expunge all trace of different onion styles.
  * common/onion: remove all trace of legacy parsing.
  * tests: add onion-test-vector from "BOLT 4: Remove legacy format, make var_onion_optin compulsory."
  * use msat_or_all for fundpsbt request amount
  * pytest: fix flake in test_gossip_persistence.
  * pytest: fix flake in test_zeroconf_forward
  * delforward: allow deletion of "unknown in_htlc_id" and fix autoclean to use it.
  * delforward: tally up deleted forwards so that getinfo's `fees_collected_msat` doesn't change.
  * db: correctly migrate forwards for closed incoming channels.
  * pytest: add test for migrations upgrade which breaks 'fees_collected_msat'.
  * pyln: Bump versions to v0.12.1
  * Add basic arithmetic to `Amount` type
  * Make eligible types `Copy`
  * Use `secp256k1` for public key type
  * Use `bitcoin_hashes` for `Sha256`
  * Implement a typed version of `call` to avoid useless matching
  * Impl `std::error::Error` for `RpcError` to make it anyhow compatible
  * Add ConfigurationDirectory
  * The project is called Core Lightning
  * lightningd: figure out optimal channel *before* forward_htlc hook.
  * channeld: send error, not warning, if peer has old commitment number.
  * pytest: Configure the plugin logging to debug
  * msggen: Use owned versions to convert from cln-rpc to cln-grpc
  * cln-plugin: Prep the logging payload in a let
  * cln-plugin: Add log filtering support
  * cln-plugin: Defer binding the plugin state until after configuring
  * doc/GOSSIP_STORE.md: document the gossip_store file format.
  * BOLT: update to clarify HTLC tx amount calculation.
  * gossipd: don't close non-local channels immediately, add 12 block delay.
  * lnprototest: update gossip test including 12 blocks delay
  * gossipd: batch outpoints spent, add block height.
  * gossipd: set no_forward bit on channel_update for private channels.
  * common: assume htlc_maximum_msat, don't check bit any more.
  * BOLT: update to version which requires option_channel_htlc_max.
  * gossipd: bump gossip_store to indicate all channel_update have htlc_max.
  * gossmap: make API more robust against future changes.
  * gossipd: actually validate gossip_store checksums at startup.
  * gossipd: don't try to upgrade ancient gossip_store.
  * BOLT: update to fix gossip pruning quote.
  * pytest: fix flake in test_pay_disconnect
  * pytest: fix flake in test_onchain_different_fees
  * onchaind/onchaind_wire.c duplicated in ONCHAIND_SRC
  * pyln-spec: update to latest spec.
  * pyln-spec: update Makefile to use poetry for release, generate versions
  * pytest: slow down test_autoclean.
  * db: set now-unused channels.short_channel_id text column to NULL after migration
  * db/postgres: avoid memleak.
  * lightningd: allow delpay to delete a specific payment.
  * lightningd: listsendpays always has groupid.
  * lightningd: allow a connection to specify db batching.
  * lightningd: don't always wrap each command in a db transaction.
  * libplugin: avoid memmove if we have many outputs to lightningd.
  * libplugin: optimize parsing lightningd rpc responses.
  * autoclean: remove per-delete debugging messages.
  * autoclean: add autoclean-once command.
  * doc: manpages and schemas for autoclean-status.
  * autoclean: use config variables, not commands.
  * autoclean: clean up listforwards as well.
  * lightningd: add `delforward` command.
  * lightningd: add `listhtlcs` to list all the HTLCs we know about.
  * lightningd: add in_htlc_id / out_htlc_id to listforwards.
  * wallet: use scid not string for failchannel (now failscid) in payments table.
  * db: add `scid` field to channels table.
  * wallet: use db_col_scid / db_bind_scid where possible.
  * db/bindings: rename db_bind_short_channel_id to db_bind_short_channel_id_str, add db_bind_scid.
  * wallet: replace forwarded_payments table with forwards table.
  * wallet: simplify payments lookup so sqlite3 uses index.
  * lightningd: index to speed up sendpay / listsendpays
  * autoclean: handle cleaning of old payments (not just invoices).
  * autoclean: allow cleaning of paid invoices too.
  * autoclean: save stats on how much we cleaned.
  * lightningd: deprecated "delexpiredinvoice", put functionality in autoclean plugin.
  * autoclean: new interface
  * libplugin: handle JSON reply after command freed.
  * ci: Use the new make upgrade-version target to manage versions
  * pyln: Bump pyln-client dependency in pyln-testing
  * pyln: Adjust the auto-publish task to trigger on tags
  * pyln: results of make update-pyln-versions NEW_VERSION=0.12.0
  * Makefile: add targets to upgrade pyln versions, push releases.
  * pyln: use poetry version, add target to check version, use poetry publish.
  * build-release: configure before submodcheck
  * msggen: Add conversion from cln-rpc to cln-grpc for Option<Outpoint>
  * doc: Fix wrong_funding description in manpage and type in schema
  * lightningd: allow extra tlv types in non-experimental mode.
  * keysend: allow extratlvs parameter, even in non-experimental mode.
  * keysend: try to find description in TLV.
  * Fix a small typo
  * gh: Mark some derived files as such
  * pytest: fix flake in test_sendcustommsg
  * pyln-client: use f strings to concatenate JSON ids, handle older integer ids.
  * openingd: Fail if dust and max_htlcs result in 0output commitment tx
  * common: Add multiplication primitives for amount_msat and amount_sat
  * pytest: Exercise all dust zeroreserve case
  * pay: If the channel_hint matches our allocation allow it
  * pytest: Add test for mixed zeroreserve funding
  * opening: Add `dev-allowdustreserve` option to opt into dust reserves
  * openingd: Remove dust check for reserve imposed on us
  * opening: Add `dev-allowdustreserve` option to opt into dust reserves
  * pytest: Add a zeroreserve test
  * openingd: Add zeroconf-no-really-zero mode
  * pay: Allow using a channel on equality of estimated capacity
  * openingd: Pass `reserve` down to openingd when funding
  * openingd: Wire `reserve` value through to `openingd`
  * plugin: Add `reserve` to `openchannel` hook result
  * openingd: Add `reserve` to `fundchannel` and `multifundchannel`
  * openingd: Add method to set absolute reserve
  * gha: Make the setup and build scripts exit if anything fails
  * pyln: Reduce dependency strictness for pyln-testing
  * Don't report redundant feerates to subdaemons
  * libplugin: mark the cmd notleak() whenever command_still_pending() called.
  * memleak: remove exclusions from memleak_start()
  * memleak: simplify API.
  * gossmap: optimize asserts().
  * gossmap: make local_addchan create private channel_announcement in correct order.
  * gossmap: add functions to map index back to node/chan.
  * gossmap: fail to get capacity of locally-added chans (don't crash!).
  * jsonrpc: make error codes an enum.
  * build: allow DEVELOPER builds with -Og and gcc 9.4.0
  * contrib/giantnode.py: populate three regtest nodes with many invoices/forwards/payments.
  * contrib/startup_regtest.sh: misc fixes and add destroy_ln, print usage.
  * Update doc/INSTALL.md
  * docs: Correct a command typo for Ubuntuu
  * connectd+: Flake/race fix for new channels
  * doc/install: get rid of out of date mrkd / mistune install instructions
  * docker: use pip install + poetry export instead of poetry update
  * pyln: Add grpcio and protobuf dependencies to pyln-testing
  * gci: Use stable rust instead of nightly
  * lightningd: use jcon logging for commands where possible.
  * lightningd: don't log JSON ids as debug, use log io.
  * libplugin: forget pending requests if associated command freed.
  * libplugin: use proper JSON id for rpc_scan().
  * contrib/pyln-testing: pass through id correctly.
  * contrib/pyln-client: construct JSON ID correctly.
  * libplugin: use string ids correctly.
  * plugin: wire JSON id for commands which caused hooks to fire.
  * lightningd: wire plugin command JSON id through to plugin commands.
  * lightningd: trace JSON id prefixes through sendrawtx.
  * lightningd: derive JSONRPC ids from incoming id (append /cln:<method>#NNN).
  * lightningd: explicitly remember if JSON id was a string.
  * lightningd: use string as json req ids when we create them.
  * lightningd: add jsonrpc_request_start_raw instead of NULL method.
  * cln-rpc: allow id to be any token.
  * contrib/pyln-client: allow lightningd to give us non-numeric ids.
  * libplugin: allow lightningd to give us non-numeric ids.
  * lightning-cli: use cli:<method>-<pid> for all requests.
  * lightningd: log JSON request ids.
  * lightning-cli: don't consume 100% CPU if lightningd crashes.
  * common: helper to get id field as a string.
  * plugins/Makefile: regenerate plugins list when config changes.
  * gossipd: rename remote_addr to discovered_ip within gossipd
  * peer_control: getinfo show correct port on discovered IPs
  * lightningd: refuse to upgrade db on non-released versions by default.
  * plugins/bcli: load RPC password from stdin instead of an argument
  * rename `block_processed` to `block_added`
  * Add plugin notification topic "block_processed".
  * gossmap: don't crash if we see a duplicate channel_announce.
  * lightningd: fix spurious leak report.
  * commando: make rune alternatives a JSON array.
  * commando: unmangle JSON.
  * CCAN: update to get latest rune decode fix.
  * pytest: test for escapes in commando values.
  * Makefile: fix msggen regeneration when schemas change.
  * gossip_store: fix offset error
  * pay: Aggregate `completed_at` in `listpays` and `pay`
  * wallet: Set the `completed_at` timestamp when updating the status
  * doc: Update generated artifacts to match master
  * wallet: Load and value `completed_at` timestamp from DB
  * db: Add completed_at field to payments
  * bkpr-test: maybe fix race in test_bookkeeping_closing_trimmed_htlcs
  * bkpr: confirm that replaying the open+lock-in txs at start is ok
  * bkpr: migration to delete any duplicate lease_fee entries
  * notif: dont send balance snapshot for not yet opened channel
  * bkpr: failing test for bookkeeper crash
  * connectd: DNS Bolt7 #911 no longer EXPERIMENTAL
  * lightningd: more graceful shutdown.
  * db: fix sqlite3 code which manipulates columns.
  * db: fix migrations which write to db.
  * doc: disallow additional properties in sendcustommsg.
  * libplugin: allow NULL calllbacks for jsonrpc_set_datastore.
  * doc: escape output types (esp `short_channel_id`).
  * db: fix renaming/deleting cols of DBs when there are UNIQUE(x, b, c) constraints.
  * tools/test: fix very confused code.
  * lightningd: fix crash with -O3 -flto.
  * doc: include recent BOLT recommendation on grace period.
  * doc: upgrade to BOLTs 341ec844f13c0c0abc4fe849059fbb98173f9766
  * doc: upgrade to BOLTs 2ecc091f3484f7a3450e7f5543ae851edd1e0761
  * channeld/dualopend/lightningd: use channel_ready everywhere.
  * doc: update BOLTs to bc86304b4b0af5fd5ce9d24f74e2ebbceb7e2730
  * doc: increase BOLT level to 03468e17563650fb9bfe58b2da4d1e5d28e92009
  * devtools/bolt-catchup.sh: a tool to update the specs, one commit at a time.
  * hsmtool: remove hsm_secret passwords on cmdline support in `dumponchaindescriptors`.
  * offers: remove backwards-compatiblity invoice_request signatures.
  * offers: update to remove "vendor" and "timestamp" fields.
  * listchannels: don't show "htlc_maximum_msat" if channel_update didn't set it.
  * lightningd: remove `use_proxy_always` parameter to plugin init.
  * plugins: require usage for plugin APIs.
  * lightningd: do inline parsing for listforwards status parameter
  * lightningd: don't allow old listforwards arg order.
  * lightningd: always require "jsonrpc": "2.0"  in request.
  * lightningd: remove double-wrapped rpc_command hook.
  * common: remove unused parameter "allow_deprecated" from parse_wireaddr_internal.
  * wire/test: neaten and complete tlv checks.
  * test: fix tlvs test in funding_locked tlv.
  * cleanup: fix mixed indentation of json_getinfo
  * peer_control: fix getinfo showing unannounced addr
  * builds: cleanup duplicate and unused code, fix spelling
  * build: use ubuntu 22.04 LTS
  * docs: Clear up Ubutu documentation
  * doc: document that we can build lowdown, remove from Alpine.
  * external: build lowdown if not already found.
  * external/lowdown: local import of lowdown source.
  * doc: always escape underscores in property names
  * Makefile: Revert ba7d4a8f6bab5a3d5e5832d1f9e36749e695320a (make-schema: don't include tools/fromschema.py in SHASUMS)
  * doc: generate correct markdown from schemas.
  * doc: format markdown correctly.
  * doc: remove mrkd requirement, add lowdown requirement.
  * Makefile: replace mrkd with lowdown(1).
  * tools: add md2man.sh tool, using lowdown.
  * connectd: better diagnostics on invalid gossip_store entries.
  * pyln-client: allow 'msat' fields to be 'null'
  * build, shadows: fix broken build (no shadows)
  * pytest: fix test_channel_state_change_history
  * configure: add -Wshadow=local flag.
  * Remove names of parameters of callbacks which confuse gcc.
  * Remove general shadowed variables.
  * ccan: update to get -Wshadow=local clean build.
  * Simplify poetry interactions
  * Use unordered list
  * Add Arch Linux build instructions
  * Add Arch Linux build instructions
  * pytest: Add debugging to test_gossip_store_compact_on_load

-------------------------------------------------------------------
Fri Sep 23 07:28:47 UTC 2022 - marec@detebe.org

- Update to version 0.12.1:
  * Changelog for v0.12.1
  * pyln: update to v0.12.1
  * remove all mrkd references from project
  * libplugin: handle JSON reply after command freed.
  * libplugin: forget pending requests if associated command freed.
  * contrib/pyln-client: allow lightningd to give us non-numeric ids.
  * build-release: configure before submodcheck
  * peer_control: getinfo show correct port on discovered IPs
  * cleanup: fix mixed indentation of json_getinfo
  * peer_control: fix getinfo showing unannounced addr
  * connectd+: Flake/race fix for new channels
  * gossmap: don't crash if we see a duplicate channel_announce.
  * gossip_store: fix offset error
  * bkpr-test: maybe fix race in test_bookkeeping_closing_trimmed_htlcs
  * bkpr: confirm that replaying the open+lock-in txs at start is ok
  * bkpr: migration to delete any duplicate lease_fee entries
  * notif: dont send balance snapshot for not yet opened channel
  * bkpr: failing test for bookkeeper crash
  * builds: cleanup duplicate and unused code, fix spelling
  * build: use ubuntu 22.04 LTS
  * connectd: better diagnostics on invalid gossip_store entries.
  * doc: document that we can build lowdown, remove from Alpine.
  * external: build lowdown if not already found.
  * external/lowdown: local import of lowdown source.
  * doc: always escape underscores in property names
  * Makefile: Revert ba7d4a8f6bab5a3d5e5832d1f9e36749e695320a (make-schema: don't include tools/fromschema.py in SHASUMS)
  * doc: generate correct markdown from schemas.
  * doc: format markdown correctly.
  * Makefile: replace mrkd with lowdown(1).
  * tools: add md2man.sh tool, using lowdown.
  * pytest: Add debugging to test_gossip_store_compact_on_load

-------------------------------------------------------------------
Wed Aug 24 08:09:33 UTC 2022 - marec@detebe.org

- Update to version 0.12.0:
  * v0.12.0 release changelog
  * use 'postgres' driver (not postgresql). Include plain url to guide, as link is broken on RTD.
  * Changelog-None
  * fix MD link where text and url are swapped
  * v0.12.0rc3 - Release Candidate numero tres
  * channeld: correct reversed shutdown message in billboard.
  * ci: Fix the Mac OS build test
  * tests/test_misc.py: check logs for already existing channel.
  * doc: Typo
  * lightningd/opening_control.c: Skip over channels which are already stored, and don't create new peer if it already exits. Changelog-None
  * doc: update usage of lightning-invoice.
  * Renumber hsmd_derive_secret for consistency with other hsmd messages
  * ld: Fix a log message assuming that the `channel->scid` was set
  * pytest: Reproduce a crash when we have multiple channels and 0conf
  * bkpr-recorder: fatal if there's an error with a database statement
  * sqlite3: no NULLS FIRST
  * signpsbt: don't crash if HSM doesn't like your psbt, just return err
  * signpsbt: add utxo info to inputs
  * psbt: dont crash when printing psbt to log
  * CHANGELOG: v0.12.0rc2
  * Fix derived_secret, use correct size of secretstuff.derived secret
  * wallet: fix incorrect column-width access.
  * pytest: test loading lease_chan_max_msat from channel_funding_inflights
  * bkpr: let channel reconnect, flake?
  * bkpr: dont flake, wait til pay done before mining blocks
  * bkpr: remove duplicate log stmt
  * bkpr: create accounts for zero sat channels
  * doc: note that setchannel maxhtlc/minhtlc only apply to *forwards*.
  * doc: document that sendonion doesn't have to specify (but can!) the first_hop channel.
  * lightningd: obey first hop channel id.
  * pytest: don't use bogus scids for first hop of route.
  * lightningd: don't route private channels via real scid.
  * lightnind: use aliases in routehints for private channels.
  * pytest: test that we implement option_scid_alias privacy.
  * doc: fix decode schema for bolt11 routehints.
  * build: ignore docker/image build directories
  * bkpr: track channel rebalances, display in listincome
  * pay: Use safe list traversal when completing suspended payments
  * pay: Remove use-after-free bug
  * pay: Do not replay results against payments that were not suspended
  * pay: Annotate suspended payments with the groupid they mirror
  * lightningd: set the channel_type feature.
  * common/features: add channel_type definition, neaten header.
  * am_opener unused
  * docs: clarify the different way to build cln
  * pytest: make sure we never break channels in multhtlc test.
  * pytest: change multihtlc topology for simpler testing.
  * pytest: simplify test_onchain_multihtlc_our_unilateral/their_unilateral
  * pytest: clarify test_onchain_multihtlc_our_unilateral / test_onchain_multihtlc_their_unilateral
  * pay: Fix a memory leak when retrying getroute
  * lightningd: fix funding_locked in channel_opened notification.
  * Correct basics of backup plugin usage
  * CHANGELOG.md: note the Great Msat Migration!
  * CHANGELOG.md: neaten entries.
  * CHANGELOG.md: add in CHANGELOG from 0.11.2 branch.
  * pyln: update versions to v0.12.0
  * changelog: v0.12.0rc1 release notes
  * devtools: if there's a message in the API call, print and exit
  * bkpr: make unit tests not fail if !HAVE_SQLITE3
  * bkpr: insert obscure 60s pop references.
  * bkpr: use long-uint not size_t for time_t
  * bkpr/listpeeers: add lease_fees back to funds; separate out in listpeers
  * balance_snapshot: emit balances for channels that are awaiting_lockin
  * commando-rune: show warning when creating runes with no restrictions
  * fix doc: deschashonly
  * pytest: fix flake in test_gossip_timestamp_filter
  * connectd: control connect backoff from lightningd.
  * lightningd: don't consider AWAITING_UNILATERAL to be "active".
  * pytest: test that we don't try to reconnect in AWAITING_UNILATERAL.
  * bkpr: cleanup csv_safe_str
  * memleak: throw away things when we're done with them
  * nit: send_outreq returns &pending, no need to call sep command
  * bkpr-zeroconf: Zeroconfs will emit 'channel_proposed' event
  * bkpr: for zerconfs, we still wanna know you're opening a channel
  * doc: remove two more generated manpages.
  * doc: note that bookkeeper-dir and bookkeeper-db are in bookkeeper plugin.
  * plugins/Makefile: put bitcoin/chainparams.o in PLUGIN_COMMON_OBJS since everyone needs it.
  * bkpr: Add an option to set the database to something else (postgres)
  * test-db-provider: if postgres in tests, startup a bookkeeper db
  * bkpr incomestmt: properly escape things for the CSVs
  * bkpr csvs: koinly + cointracker only accept fees on the same line
  * bkpr: save invoice description data to the database and display it
  * test-utils: add the bolt11 invoice
  * bkpr: add test for bookkeeper being added after channel has closed
  * bkpr: fetch originating account, if exists, and make sure is populated
  * bkpr: correctly pass in command for `jsonrpc_request_start`
  * bkpr: prevent crash when updating same account all at once
  * bkpr: more logging
  * bkpr: new method, "is_external_account"
  * bkpr: duplicate the name, dont steal it
  * coin_mvt/bkpr: add "stealable" tag to stealable outputs
  * bkpr: make sure there's always at least on difference in blockheights
  * bkpr: add more data to listaccountevents printout
  * bkpr: check for channel resolution for any "originated" event
  * bkpr: print more info in bkpr-listbalances
  * bkpr: account name is required for bkpr-inspect
  * bkpr: add docs, change names to 'bkpr-*'
  * json-schema: allow 'required' to not be present in if switches
  * bkpr: add 'msat' suffix to all msat denominated fields
  * bkpr, elements: elements tx have one extra output for fees
  * bkpr: don't use a minus in a sql stmt
  * bkpr: pass the node_id over for channel_opens, add to account
  * bkpr: exclude non-wallet events in the balance snapshot
  * bkpr: get rid of crash in `listincome`
  * nit,bkpr: add a note about what the tag was to this printout
  * tests,bkpr: liquid fails all these for different reasons
  * bkpr: separate the invoice_fees from the invoice paid
  * wallet: resolve crash when blockheight is null
  * test nit: wait_for_mempool cleanup
  * coin_mvt: log channel_open for channels that close before they're locked
  * bkpr: actually fill in the current blockheight for `channelsapy`
  * bkpr: command to calculate some APYs/stats on channel routing fees
  * bkpr: add option --bookkeeper-dir
  * bkpr: add 'start_time' and 'end_time' to `listincome`
  * bkpr: add `dumpincomecsv` command
  * bkpr: add a 'consolidate-fees' flag to the income stmt
  * bkpr: 'to_miner' spends are considered terminal
  * bkpr: mark external deposits (withdraws) via blockheight when confirmed
  * tests: move 'bookkeeper' centric tests to their own file
  * bkpr: add a 'listincome' event
  * bkpr: add timestamp filters to event lists
  * bkpr: move json_to functions to respective type files
  * bkpr: properly account for onchain fees for channel closes
  * bkpr: use chain_closed count to do mark account closed
  * bkpr: save closed_count for account, when known
  * bkpr: annotate an account with the block at which it's been resolved
  * bkpr: add an 'inspect' command to the bookkeeper
  * bkpr: once we get channel_opens, we might need to update the fee records
  * bkpr: account for pushed amounts and record the output_value
  * bkpr: listbalances, rename 'account_id' => 'account'
  * bkpr: listbalances, skip the external account
  * bkpr: cleanup wallet fee entries if decide they belong to a channel
  * bkpr: don't try to add fees if this tx didn't touch any accts
  * bkpr: dont count fees for channel closes if we're not the opener
  * bkpr: update tests for wallet/external onchain fees
  * bkpr: parse the 'originating_account' field, save to event
  * bkpr: invert channel + chain event printouts
  * bkpr: use tags not str for tag originations
  * bkpr: add a new command `listaccountevents`
  * bkpr: if we're missing info about an account, add in journal entry
  * bkpr: put the account name on the event
  * bkpr: use pointer for payment_id for channel events
  * bkpr: turns out these fields are optional
  * bkpr: have onchain_fee records be write-only, don't update in place
  * bkpr: add journal entry for offset account balances; report listbalances
  * bkpr: wire up our chain fee accting to chain event reception
  * patch db-fatal-plugin_err.patch
  * bkpr: add bookkeeper to PLUGINS list
  * bkpr: create onchain fee records for events
  * bkpr: tests for db crud
  * bookkeeper: initial crud (no tests)
  * bkpr-tests: first test of plugin bkpr database
  * bkpr: first attempt at database code for accounting
  * bookkeep: first commit, stub of new plugin
  * sql: use last " as " to find name token for column
  * doc: fix bolt 12 link (it's not in master), update bolt 11 to new "bolts" repo.
  * pytest: fix flake in test_wumbo_channels
  * v2open: dont rely on ordering of interprocess messages
  * flake: permit test_v2_open_sigs_restart_while_dead to succeed/fail
  * valgrind: rm ref to cmd when cmd is free'd
  * tests: valgrind barfing on uninitialized value
  * tests: local flake fix; l1 was waiting too long to reconnect
  * msggen: Use tempfile + rename to make changes to .msggen.json atomic
  * pytest: fix test_commando_rune flake.
  * pytest: fix flake in test_feerates
  * pytest: fix test_commando_stress
  * commando: free incmd as soon as we use it.
  * pytest: fix flake in test_channel_persistence w/ TEST_CHECK_DBSTMTS
  * lightningd: ignore default if it's a literal 'null' JSON token.
  * pytest: set dblog-file when adding the dblog plugin (TEST_CHECK_DBSTMTS=1)
  * connectd: two logging cleanups.
  * decode: fix crash when decoding invalid rune.
  * lightningd: fix fatal() log message in log.
  * CI: fix CI scripts to fail if a command fails.
  * fuzz: fix fuzzing compilation.
  * tests: flake fix; l1 was waiting too long to reconnect
  * nit: speedup retry timeout test
  * tests:redirect output, so test log passes
  * test-flake: dont let `l1` send their unilateral tx
  * msat: cleanup msat outputs for apis
  * contrib startup-regtest: turn off deprecated apis, update deprecated
  * pytest: fix flake in test_zeroconf_forward
  * hsmtool: implement checkhsm.
  * commando: add stress test, fix memleak report.
  * commando: limit to 16 partially-received incoming commands at a time.
  * pytest: don't redirect stderr by default.
  * commando: fix crash when rune is completely bogus.
  * libplugin: don't call callbacks if cmd completed before response.
  * doc: Spell out the reprobuild instructions for each distro
  * rs: Add Cargo.lock for reproducible builds
  * rs: Strip binaries when compiling them for release
  * py: Update poetry.lock using poetry update
  * repro: Update ubuntu jammy reprobuild
  * reprobuild: Add Rust compiler to repro build docker images
  * dualopend: plug memleak.
  * pytest: disable autoreconnect in test_rbf_reconnect_tx_construct
  * pyln-testing: Add listinvoices to grpc shim
  * schema: Add missing `mindepth` argument to `fundchannel`
  * pyln: Ignore generated files when linting
  * cln-plugin: Fix plugin dependencies
  * cln-plugin: Add metadata required by crates.io
  * pyln-testing: Add `invoice` RPC method
  * msggen: Ignore `state_changes` in grpc2py
  * cln-rpc: Add mindepth after rebase on `master`
  * pyln-testing: Add a couple of methods used in tests
  * schema: `minconf` should be an integer (u32) not a float (number)
  * msggen: Add `stop` method to generators
  * cln-plugin: Notify waiting tasks if the lightningd connection closes
  * cln-grpc: Skip serializing fields when Option<Vec<T>> is empty too
  * msggen: Add fundchannel request
  * pytest: Add a new RPC interface to talk to grpc
  * msggen: Add a new generator for grpc -> python converter
  * pytest: Move generated grpc bindings to pyln-testing
  * msggen: Do not override method names when loading Schema
  * lightningd: expand exit codes for various failures.
  * lightningd: test that hsm_secret is as expected, at startup.
  * rust: upgrade model with new checkmessage requirements
  * test: disable schema check of `checkmessage` with deprecated API
  * rpc: improve error format
  * rpc: checkmessage return an error if pubkey is not found
  * Add rune and commando to gitignore. Changelog-None: Small fix
  * channeld: exit after we send an error at lightningd's request.
  * pytest: fix flake in test_channel_lease_post_expiry
  * pytest: work around dualopend issue.
  * lightningd: reintroduce "slow connect" logic.
  * lightningd: drive all reconnections out of disconnections.
  * lightningd: don't explicitly tell connectd to disconnect, have it do it on sending error/warning.
  * pytest: don't assume disconnect finished atomically, and suppress interfering redirects.
  * multifundchannel: fix race where we restart fundchannel.
  * lightningd: don't forget peer if it's still connected.
  * lightningd: provide peer address for reconnect if connect fails.
  * gossipd: downgrade broken message that can actually happen.
  * connectd: spelling and typo fixes.
  * connectd: give connections a chance to drain when lightningd says to disconnect, or peer disconnects.
  * common/gossip_store: fix leak on partial read.
  * lightningd: don't kill subds immediately on disconnect.
  * connectd: don't move parent while we're being freed.
  * pytest: enable race test.
  * connectd: add counters to each peer connection.
  * lightningd: hand fds to connectd, not receive them from connectd.
  * common/daemon_conn: add function to read an fd.
  * lightningd: make "is peer connected" a tristate.
  * lightningd: remove delay on succeeding connect.
  * dualopend: fix memleak report.
  * connectd: don't io_halfclose()
  * pytest: add another connection stress test, using multiple channels (bug #5254)
  * pytest: test to reproduce "channeld: sent ERROR bad reestablish revocation_number: 0 vs 3"
  * connectd: remove the redundant "already connected" logic.
  * connectd: remove reconnection logic.
  * connectd: don't let peer close take forever.
  * connectd: release peer soon as lightingd tells us.
  * connectd: send cleanup messages however peer is freed.
  * lightningd: don't tell connectd to disconnect peer if it told us.
  * lightningd: clean up channels when connectd says peer is gone.
  * connectd: put peer into "draining" mode when we want to close it.
  * connectd: fix subd tal parents.
  * lightningd: remove 'connected' flag from channel structure.
  * lightningd: fix dev-memleak crash on unown unconfirmed channels.
  * lightningd: set cid correctly in peer->uncommitted_channel.
  * startup_regtest: add connect helper
  * startup_regtest: add experimental-offers
  * lightningd: reduce log level for remote address reporting.
  * options: set DNS port to network default if not specified
  * pytest: add xfail test to show DNS w/o port issue
  * docs: fix contrib/ docs
  * Add instructions for checking out a release tag
  * fix typo in commando documentation
  * decode: support decoding runes.
  * commando: add rate for maximum successful rune use per minute.
  * commando: add support for parameters by array, parameter count.
  * doc: document commando and commando-rune.
  * commando: require runes for operation.
  * commando: don't look at messages *at all* unless they've created a rune.
  * commando: add commando-rune command.
  * devtools/rune: simple decode tool.
  * commando: runes infrastructure.
  * commando: correctly reflect error data field.
  * commando: support commands larger than 64k.
  * plugins/commando: basic commando plugin (no runes yet).
  * libplugin: datastore helpers.
  * libplugin: jsonrpc_request_whole_object_start() for more custom request handling.
  * common/json_stream: make json_add_jsonstr take a length.
  * ccan: upgrade to get ccan/runes.
  * Makefile: use a library archive for CCAN
  * plugin: autoclean fix double free when re-enable, remove xfail mark from test_
  * pyln-testing: print content of errlog file when _some_ node failed unexpected
  * test: test_invoices add a stress test
  * common/json_stream.c: provide explicit json_add_primitive_fmt and json_add_str_fmt routines.
  * lightningd/json.h: remove.
  * common: clean up json routine locations.
  * common: remove json_tok.
  * plugins/spender/multifundchannel: remove json_tok.
  * lightningd: remove gratuitous param_tok from help and config.
  * lightningd/connect_control: remove param_tok from connect.
  * lightningd/closing_control: remove param_tok().
  * common/json_stream: remove useless attempt at oom handling.
  * lightningd: remove getsharedsecret.
  * makesecret: change info_hex arg to simply "hex" to match datastore command.
  * tests: massively speed up our wait for enormous feerates
  * coin-moves: only log htlc_timeout pair for penalty txs
  * connectd: optimize requests for "recent" gossip.
  * common: add ability for gossip_store to track by timestamp.
  * devtools: add --print-timestamps to dump-gossipstore.
  * connectd: optimize case where peer doesn't want gossip.
  * msggen: Update generated files to add Listpeers.peers[].remote_addr
  * contrib: Remove obsolete libhsmd_python class
  * make: Add msggen generated files to check-gen-updated target
  * Use correct naming
  * plugin: add check on the type json object during the IO message handling
  * notify: `channel_state_changed` now receives notice when channel opens
  * lightningd: re-transmit all closing transactions on startup.
  * pytest: test (failing) that we rexmit closing transactions on startup.
  * tests: Add tests for the RPCs Changelog-Added: Static channel backup, to enable smooth fund recovery in case of complete data loss
  * doc: Add documentation for new RPCs and a FIXME: in fromschema.py
  * Plugin: Add new plugin for SCB, Updated makefile and gitignore as well
  * lightningd: Add RPC for populating DB with stub channels and set an error on reconnecting
  * tools/gen: Always return bool!
  * lightningd/peer_control: Add RPC for fetching scb for all the in-memory channels.
  * channel: Add struct scb_chan in channel and making last tx optional.
  * common: Add scb_wire for serializing the static_chan_backup
  * hsmd: Create derive_secret and makesecret RPC for deriving pseudorandom keys from HSM
  * make-schema: don't include tools/fromschema.py in SHASUMS
  * gossipd: fix of gossip v10 channel removal handling
  * dual-fund: Fail if you try to buy a liquidity ad w/o dualfunding on
  * test: run-gossmap update test store instructions
  * doc: mention ip discovery only active when no addresses are announced
  * gossipd: only use IP discovery if no addresses are announced
  * gossipd: nit: update a misleading comment
  * sendpay: allow route to contain both amount_msat and (deprecated) msatoshi.
  * pytest: test that we allow both msatoshi and amount_msat is route for sendpay.
  * Revert "pytest: fix test_gossip_no_backtalk flake."
  * pytest: fix test_gossip_no_empty_announcements flake.
  * gossipd: fix crash from gossip_store v10 changes
  * lightningd: save outgoing information for more forwards.
  * wallet: allow saving forwarding scid even if we don't have amount.
  * lightningd: allow outgoing_scid without outgoing amount.
  * pytest: test that listforwards gives as much outgoing information as possible.
  * docs: Add reference to issue 5366 for stuck channel in awaiting
  * doc: Add two entries to the FaQ about channel management
  * tests: Fix the canned gossmap
  * git: Ignore arm64-darwin external build directory
  * mac: Ensure that we compile the configurator with the M1 libs
  * make: Add macos M1 support
  * cln_plugin: Configure "dynamic" field in "getmanifest" message
  * json: add "dynamic" field to plugin list
  * doc: improve/update lightning-plugin, PLUGINS.md and lightning-listconfigs
  * lightningd: Make sure plugins don't register the same option "name"
  * pytest: test plugin does not register same option "name"
  * lightningd: don't increment plugin state to NEEDS_INIT when error in getmanifest
  * lightningd: convert plugin->cmd to absolute path, fail plugin early when non-existent
  * ccan: update to latest htable fixes, and update gossmap to meet new assertions.
  * add generated man page
  * Update lightning-newaddr.7.md
  * lightningd: fire watches on blocks before telling lightningd.
  * lightningd: fix close of ancient all-dust channel.
  * invoice: turn assert failure into more informative log_broken message.
  * pytest: fix flake in test_node_reannounce
  * connectd: don't insist on ping replies when other traffic is flowing.
  * channeld: fix uninitializes scid alias for dual-funding.
  * pytest: fix test_gossip_no_backtalk flake.
  * lightningd: mark subd->conn notleak() properly in transition.
  * lightningd: make log-prefix actually prepend all log messages as expected.
  * options: print empty options properly.
  * pytest: restore prefix to logging.
  * pytest: fix flake in test_option_upfront_shutdown_script
  * options: let log-level subsystem filter also cover nodeid.
  * update-mocks: handle missing deprecated_apis.
  * df tests: node still correctly picks up new tx if broadcast fails
  * lnprototest: updating and patch lnprototest
  * df: check mempool/block for funding output on broadcast fail
  * peer_control: Fix check_funding_details assert
  * Inline URL
  * Fix broken link
  * doc: Fix generated `listfonfigs` man-page
  * gossipd: store and index most recent and last non-rate-limited gossip
  * pytest: test_gossip_ratelimit checks routing graph and squelch
  * gossipd: make use of new ratelimit bit in gossip_store length mask
  * gossip_store: add flag for spam gossip, update to v10
  * ld: Use the local alias in the `htlc_accepted` hook
  * zeroconf: Add channel_type variant support
  * features: Add function to unset a featurebit
  * pyln-testing: Add `gossip_store` parser to testing framework
  * zeroconf: Announce the channel with the real scid as well as aliases
  * channeld: Track the funding depth while awaiting lockin
  * ld: Use the local alias when reporting failures with zeroconf
  * channeld: Explicitly use the first commitment point on reconnect
  * pytest: Add test for zeroconf channels transitioning to be public
  * pytest: Add test for forwarding over zeroconf channels
  * pytest: Add a test for direct payment over zeroconf channels
  * db: Store the local alias for forwarded incoming payments
  * ld: Add function to retrieve either the scid or the local alias
  * pay: Populate the channel hints with either the scid or the alias
  * jsonrpc: Include the direction also if we have an alias
  * zeroconf: Trigger coin_movement on first real confirmation
  * db: Store the alias if that's all we got in a forward
  * ld: Consider local aliases when forwarding
  * invoice: Consider aliases too when selecting routehints
  * ld: Allow lockin despite not having a scid yet
  * jsonrpc: Add aliases to `listpeers` result
  * gossip: Add both channel directions with their respective alias
  * gossipd: Use the remote alias if no real scid is known
  * channeld: On funding_locked, remember either alias or real scid
  * channeld: Remember remote alias for channel announcements and update
  * channeld: Send a depth=0 notification when channeld starts up
  * zeroconf: Wire the aliases through `channeld`
  * zeroconf: Add alias_remote and alias_local to channel and DB
  * wire: Add funding_locked tlv patch from PR lightning/bolts#910
  * jsonrpc: Add option_zeroconf handling to `listpeers`
  * pytest: Test the `mindepth` customizations of `fundchannel` and hook
  * plugin: Allow plugins to customize the mindepth in accept_channel
  * openingd: If we have negotiated zeroconf we use our mindepth
  * bolt: Reflect the zeroconf featurebits in code
  * jsonrpc: Add `mindepth` argument to fundchannel and multifundchannel
  * json: Add parser for u32 params
  * valgrind: ingore plugin build with rust
  * CI: re-enable checks, by changing errant tab back to spaces.
  * Update README.md
  * Add README.md
  * No funding_wscript arg in initial_commit_tx
  * CI: make sure *someone* runs check-units under valgrind!
  * connected/test: fix memleak in test.
  * connectd: don't keep around more than one old connection.
  * lightningd: fix crash on rapid reconnect.
  * connectd: avoid use-after-free upon multiple reconnections by a peer
  * connectd: don't start connecting in parallel in peer_conn_closed.
  * doc: document the [] IPv6 address hack.
  * devtools: revert changes and make sure chainparams always set.
  * test: introduce the default port function and remove hard coded port
  * lightnind: remove`DEFAULT_PORT` global definition
  * docs: update the docs in according with the new code
  * lightningd: change the regtest default port according with the tests
  * lightningd: use the standard port derivation in connect command
  * pytest: fix test_multifunding_feerates
  * pytest: fix flake in test_node_reannounce
  * pytest: fix flake in test_query_short_channel_id
  * pytest: fix gossipwith flake harder.
  * lightningd: add more information should subd send wrong message.
  * lightningd: track weird CI crash in test_important_plugin
  * pytest: don't assume that join_nodes needs only check ends.
  * pytest: fix test_channel_lease_post_expiry flake.
  * lightningd: fix transient leak report when openingd shutting down.
  * pytest: allow more time for test_waitblockheight !DEVELOPER.
  * lightningd: don't run off end of buffer if db_hook returns nonsense.
  * pytest: fix timeout in test_option_types
  * pyln-testing: increase default daemon.wait() timeout.
  * pyln-testing: restore proper streaming behaviour for lightningd.
  * pyln-testing: use files for stdout and stderr, not threads.
  * pytest: fix test_ping_timeout flake.
  * lightningd: don't print nasty message when onchaind fails partially-failed HTLC
  * pytest: test to demonstrate BROKEN message on onchaind htlc close.
  * gossipd: fix gossmap race.
  * gossmap: handle case where private channel turns into public.
  * pytest: wait for stderr, rather than asserting.
  * pytest: fix flake in test_wallet.py::test_hsm_secret_encryption
  * pytest: fix race in test_multichan
  * pytest: try to fix bitcoind socket timeout in test_channel_lease_unilat_closes
  * pytest: fix port allocation race when nodes restart.
  * connectd: fix debug message on bind fail.
  * pyln-testing: try harder if cleaning directory fails.
  * pytest: fix flake in test_htlc_too_dusty_outgoing
  * pytest: fix flakes in test_gossip_query_channel_range
  * pytest: fix flake in test_gossip_timestamp_filter
  * pytest: Remove all trace of python's "flaky" module.
  * lightningd: multiple log-file options allow more than one log output.
  * pyln: Fix relative path dependencies when publishing to PyPI
  * common: downgrade LND 'internal error' properly.
  * common: downgrade "internal error" errors from lnd.
  * git: Ignore some more generated files and the cln-grpc plugin
  * signmessage: improve the UX of the rpc command when zbase is not a valid one
  * Update hsm error formatting.
  * common/gossip_store: optimize case where entries are filtered out.
  * pytest: add (failing) test for db with old Tor v2 address.
  * lightningd: remove overzealous assertion.
  * Remove native-tls dependency from cln-rpc
  * doc: Tor needs CookieAuthFile set
  * cln-plugin: Make the proxy-related configuration Option<>
  * cln-plugin: Configuration struct
  * cln-plugin: Add unittest for parsing "init" message
  * cln-plugin: Save "configuration" from "init" method
  * clnrs: Implement backwards compatible mode for Amount as bare u64
  * doc/PLUGINS: update to remove deprecated fields, formats.
  * JSON: deprecate printing msat fields as strings.
  * lease_rates: prepare for msats fields as raw numbers.
  * plugins/funder: fix parameter parsing.
  * funder: prepare for msats fields as raw numbers.
  * libplugin: don't be so strict on msat fields.
  * fundchannel, txprepare, multiwithdraw: don't assume "excess_msat" will have "msat" appended.
  * lightningd: deprecate `msatoshi` in `sendpay` `route`.
  * JSON: don't print deprecated amount fields any more
  * pytest: don't use deprecated amount fields
  * pyln-client: convert every _msat field to Millisatoshi
  * common: enforce that msat fields are called "xxx_msat".
  * fetchinvoice: amount_msat not msat.
  * pay: use amount_msat for amount report inside attempts.
  * lightningd: use amount_msat not amount in htlc_accepted_hook.
  * lightningd: change `msatoshi` args to `amount_msat`.
  * coinmvt: don't use msats in fields not called "_msat".
  * lightningd: don't add null for unset plugin options.
  * common: add msat to sat convert helper.
  * json: fix up msat amounts in non-_msat fields.
  * common/param: support renaming options using "|<deprecatedname>".
  * lightningd: fix outgoing IO logging for JSONRPC.
  * contrib/pylightning: remove lightning-pay helper.
  * tests: Update expected log prefix length to match truncated log
  * log: Add termination to log level
  * log: Add termination to prefix log
  * Warning added to PLUGIN documentation re: `stdin`
  * expose short_channel_id and htlc id to htlc_accepted.
  * docs: Fix  manpage title
  * Fix typo and convert paragraph to a list
  * bitcoin: add to check-source-bolt, and (minor) quotes fixup.
  * bitcoin: fix header order for make check-source.
  * Mistaken default directory in plugin docs
  * jsonrpc: adds optional `remote_addr` to listpeers
  * connectd: use dev_allow_localhost for remote_addr testing
  * jsonrpc: adds dynamicaly detected IP addresses to `getinfo`
  * wireaddr: moves wireaddr_arr_contains to wireaddr.h
  * connect: adds nodeid to remote_addr log message
  * connectd: prefer IPv6 when available
  * devtools: Add fund_ln command to startup_regtest.sh
  * lightning-cli plugin start - Assume default relative path
  * connectd: shrink max filter size.
  * connectd: optimize gossip_rcvd_filter.
  * connectd: use is_msg_gossip_broadcast into gossip_rcvd_filter.c
  * channeld: take over gossip_rcvd_filter.c and is_msg_gossip_broadcast.
  * connectd: restore gossip filter aging.
  * psbt: use DER encoded + sighash byte for PSBT_IN_PARTIAL_SIG items
  * route: Do not require both directions to be active
  * topo: Fix issue considering the wrong direction for capacity limits
  * Fixes #5276 by using as docker base image  debian bullseye instead of buster
  * cln-grpc: API updates after 8dd51d127fff01b9302009906dcbdc83ea3b6548
  * Makefile: update to include fix for remote_addr generation.
  * Makefile: update bolts to include remote_pubkey change.
  * Makefile: update to BOLTs without zlib.
  * gossipd: neaten code now we don't have to prepend prefix after.
  * gossipd: don't ever use zlib compression on gossip.
  * docker: Add rust build support to Dockerfile
  * Change lightning-rfc to bolts post repo move
  * More explanation of bolt csv regeneration
  * pyln-spec: upgrade to the last bolt version
  * lightningd: remove various deprecated JSON fields.
  * connectd: remove enable-autotor-v2-mode option
  * Restore description of "reserved" field for listfunds
  * README: add links to discord + telegram so people can easily find us!
  * CHANGELOG.md: release notes for 0.11.1.
  * connectd: remove assert which can trigger.
  * connectd: fix accidental handling of old reconnections.
  * docker: Update name from c-lightning to Core-Lightning
  * docs: Update references from c-lightning to Core-Lightning
  * doc: Update lightning.readthedocs.org project name after rebrand
  * ignore generic binary
  * gh: Add @cdecker as codeowner for the Rust artifacts
  * gh: Remove @wythe from the codeowners
  * msggen: adding example and fixes typo
  * msggen: introduce chain of responsibility pattern to make msggen extensible
  * pytest: websocket test can tolerate ipv6 address
  * external/Makefile: fix `submodcheck` for sudo make install and modern git.
  * "removed asterisks, in case that's what made build fail"
  * Slight problem with `./configure help`
  * pyln: Update the makefile to use poetry for publishing
  * Makefile: stumble along if git does not work.
  * repro: Update repro dockerfiles and instructions
  * repro: Add reprobuild support for ubuntu:22.04

-------------------------------------------------------------------
Mon Jun 27 07:27:21 UTC 2022 - marec@detebe.org

- Update to version 0.11.2:
  * connectd: don't start connecting in parallel in peer_conn_closed.
  * common: downgrade LND 'internal error' properly.
  * lightningd: remove overzealous assertion.
  * lightningd: handle old Tor version 2 addresses in db without crashing.
  * CHANGELOG.md: release notes for 0.11.2.
  * common: downgrade "internal error" errors from lnd.
  * common/gossip_store: optimize case where entries are filtered out.
  * connectd: avoid use-after-free upon multiple reconnections by a peer
  * lightningd: fix crash on rapid reconnect.
  * connectd: don't keep around more than one old connection.
  * topo: Fix issue considering the wrong direction for capacity limits
  * route: Do not require both directions to be active
  * connectd: restore gossip filter aging.

-------------------------------------------------------------------
Mon May 16 15:29:18 UTC 2022 - marec@detebe.org

- Update to version 0.11.1:
  * CHANGELOG.md: release notes for 0.11.1.
  * connectd: remove assert which can trigger.
  * connectd: fix accidental handling of old reconnections.

-------------------------------------------------------------------
Tue Apr 26 08:37:30 UTC 2022 - marec@detebe.org

- Update to version 0.11.0.1:
  * doc: fix getinfo non-ASCII chars for older mrkd.
  * v0.11.0.1: final fixes for release build

-------------------------------------------------------------------
Tue Apr 26 08:11:12 UTC 2022 - marec@detebe.org

- Update to version 0.11.0:
  * CHANGELOG.md: Looks like rc5 was the ticket!
  * CHANGELOG: rc5
  * lightningd: don't crash listpeers if we're opening DF channel.
  * pytest: add test for crashing listpeers.
  * Fix miner bug in rust client generator.
  * v0.11.0rc4
  * connectd: disable advertizement of WEBSOCKET addresses.
  * connectd: remove a noisy debug msg, fix name typo.
  * pytest: test that node_announcement regeneration works as expected.
  * gossipd: fix daily node_announcement regeneration.
  * connectd: send our own gossip, even if peer hasn't sent timestamp_filter.
  * common/gossip_store: add flag to *only* fetch "push"-marked messages.
  * gossipd: revert useless bf8cb640b71e15f935ced19934150c921c025981.
  * corrected typo in description
  * lightningd: fix overzealous check in htlc_out_check:
  * CI: fix bsd workflow.
  * connectd: avoid use-after-free on reconnect with remote_addr.
  * lightningd: remove over-zealous assert.
  * CHANGELOG.md: rc3
  * dualopend: handle dev_memleak during RBF.
  * pytest: don't add extra cln-grpc instance now plugin is builtin
  * Make sure DEFAULT_TARGETS includes rust testing examples.
  * configure: require rustfmt as well, for rust support.
  * doc/Makefile: make check-manpages require the cln-grpc plugin.
  * Makefile: make sure ALL_PROGRAMS doesn't include cln-grpc plugin.
  * doc: document the grpc-port option, now cln-grpc is a built-in.
  * plugins: fix cln-grpc to work as a builtin when we're run in-tree.
  * plugins: add grpc-plugin to PLUGINS, so it gets started and installed.
  * libwally: update to v0.8.5
  * Changed external/libwally-core to test_build_fix
  * cln-plugin: Handle --help invocations better
  * use full path to reference `lightningd.c`
  * cln-grpc: Add midstate between configuration and replying to init
  * cln-grpc: Do not exit if grpc-port is not set
  * msggen: Add pay descriptions and maxfee
  * cln-grpc: Do not log an error when called with `--help`
  * release: v0.11.0rc2
  * docs: use poetry in the osx installation process
  * Travis is no longer used
  * there are four tests
  * doc: update c-lightning to Core Lightning almost everywhere.
  * CHANGELOG.md: fix typos
  * lightning-cli: document the real argument handling (for special effects).
  * doc: note how to do Rust builds on Ubuntu, at least.
  * Update INSTALL.md
  * build: bump zlib dependency
  * wallet: don't get so upset on orphaned HTLC.
  * CHANGELOG.md: update for final PR merge.
  * changelog: remove duplicate pr links
  * changelog: sort pr links
  * v0.11.0rc1
  * pytest: test custom config options for fees and htlc limits
  * pytest: option disable-ip-discovery
  * doc: htlc_minimum_msat htlc_maximum_msat announce_discovered_ip
  * config: adds htlc_minimum_msat htlc_maximum_msat announce_discovered_ip
  * pytest: test that deduplication for `bolt11` works as expected.
  * plugins/pay: always include `bolt11` (and `description`) in listpays.
  * pay/sendpay: also store description in case bolt11 uses description_hash.
  * pay: require description if bolt11 only has hash.
  * pay: add absolute "maxfee" parameter.
  * doc: document `pay` localofferid field.
  * plugins/pay: remove legacypay.
  * pytest: fix invalid invoice() call.
  * cln-grpc: Final generation of derived files
  * msggen: Don't assume we have properties in the schema
  * pytest: fix RUST=0 pytest.
  * cln-rpc: Yet more RPC methods being mapped
  * cln-grpc: Add conversion test for listpeers
  * cln-rpc: Test that we forward errors correctly
  * doc: Annotate secrets and hashes in the JSON Schemas
  * cln-rpc: Add Sha256 and Secret types
  * cln-rpc: Log requests and responses
  * cln-rpc: Skip the HTLC state for now
  * cln-rpc: The JSON `number` type is a float not an int
  * cln-rpc: Move tests into separate file
  * cln-rpc: Make Pubkey and ShortChannelId proper types
  * msggen: Add RoutehintList as a primitive
  * msggen: Add model-side overrides
  * msggen: Add parser for "oneOf"
  * pyln-testing: check the request schemas.
  * doc/schemas: fixes for request schemas.
  * pyln-testing: add new schema types.
  * pytest: don't hand a string for an integer value.
  * pyln-testing: add dev-invoice.
  * pyln-testing: add dev-pay.
  * doc: set additionalProperties to false in all request schemas.
  * lightningd: deprecate invoice expiry suffixes.
  * fundpsbt: deprecate reserve=true/false usage.
  * pytest: fix if no rust installed.
  * cln-grpc: Map AmountOrAll and AmountOrAny
  * cln-rpc: Map PSBT and TX methods
  * cln-rpc: Add `OutputDesc` for `{addr: amt}` style arguments
  * cln-rpc: Map feerates and backfill methods using it
  * grpc: Map `sendonion` and `createonion`
  * msggen: Add custom mappings for JSON -> grpc conversions
  * cln-rpc: Add invoice RPC methods
  * cln-grpc: Add the `connect` method
  * msggen: Wrap field numberings in the message type
  * pytest: fix flake in test_multichan.
  * bolt11: reorder invoice production to match test vectors.
  * doc: update BOLTs to latest master.
  * plugins/pay: send payment_metadata if provided in invoice.
  * sendpay: add payment_metadata argument.
  * lightningd: metadata received support (log and decline).
  * bolt11: support payment_metadata.
  * doc: big BOLT update to incorporate warnings language.
  * shutdown: don't allow shutdown to p2pkh or p2sh addresses for anchor outputs.
  * doc: update BOLT references part1, including bolt11 test vectors with payment_secret.
  * specs: update CSV files.
  * wire/tlvstream: const.
  * connectd: take dev-suppress-gossip from gossipd.
  * lightningd: add "style" to listforwards.
  * lightningd: Restore forwarding of legacy onions.
  * pytest: test legacy onion acceptance.
  * doc: add partid to sendonion schema.
  * onchaind: fix htlc_stub organization.
  * channeld: log more information about restoring HTLCs.
  * lightningd: extra sanity checks and rescue attempts for missing HTLCs.
  * lightningd: add extra debugging for weird onchain htlc interactions.
  * pytest: make test_onchain_close_upstream more accurately reflect report.
  * pytest: simple "does onchaind on missing HTLC cause upstream failure" test.
  * lightningd: add --dev-no-ping-timer to avoid ping response timeouts.
  * docker-ci: fixed script path inside the entry point
  * ci: adding pytest parameter to tracing lnprotetest
  * docker-ci: upgrade pip version in the bash script
  * ci: migrate the protocol test on docker image
  * plugins/pay: don't crash on malformed time.
  * unit tests: don't crash if !HAVE_SQLITE3.
  * tests: add test that pay gets update correct.
  * cln-grpc: Set cln-grpc version to 0.0.1 until it's complete
  * pytest: fix flake due to cln-grpc starting before "public key" message.
  * cln-grpc: Do not start unless a `grpc-port` is specified
  * cln-grpc: Rename the grpc plugin and binary
  * py: Add grpcio-tools for the cln-grpc-plugin
  * grpc-plugin: Make the grpc port to listen on configurable
  * cln: Add grpc port as configurable option
  * cln-grpc: Add the `connect` method
  * pytest: Add a test for incorrect credentials
  * grpc-plugin: Generate mTLS certificates and use them in grpc
  * pytest: Add a test for the grpc plugin
  * cln-grpc-plugin: Add basic grpc-plugin
  * make: Generate grpc bindings if we want to test with rust enabled
  * make: Add a hook for us to depend on generated files for tests
  * cln-grpc-plugin: Add scaffolding for the cln-grpc-plugin
  * subd: make channel/peer own the subd.
  * py: Update the PyPI job to use poetry and correct versions
  * connectd: restore obs2 onion support.
  * plugins/topology: don't get upset if we hit deleted channel.
  * rust: fixed compiler warning in the example
  * delinvoice: allow desconly arg to only remove the description.
  * invoice: add deschashonly parameter.
  * doc/schemas: handle delinvoice of paid invoice.
  * pay: fix crash on invalid onion in reply in some cases.
  * devtools/decodemsg: add --list-tlvs
  * devtools/decodemsg: don't require --onion for onion tlvs, fail if unknown tlvname.
  * common: add const to accepted_extra_tlvs arg.
  * common/tlvstream: allow fromwire_tlv to accept *any* unknown type.
  * common/tlvstream: put TLV checking back in the generic function.
  * tools/generate_wire.py: make functions allocate the TLV.
  * wire: generate printwire_ routines for bolt12 CSV.
  * plugins/fetchinvoice: remove obsolete string-based API.
  * tools/generate-wire.py: make (and expose) individual TLV print functions.
  * decodemsg: if decode fails, status 1.
  * tools/generate-wire.py: have printwire routines do demarshal.
  * tools/generate-wire.py: simplify printwire routines, fix ... handling.
  * tools/generate_wire.py: allow generated C files to have includes added.
  * tools/generate_wire.py: tlvs should start with tlv_
  * offers: neater response on malformed invoice.
  * onion_messages: remove obs2 support.
  * devtools: remove blindedpath tool.
  * pytest: test for compat code.
  * offers: import latest variant from draft, part 2.
  * offers: import latest variant from draft.
  * devtools/decodemsg: fix printing of wireaddr.
  * common/onion: always fill in failtlvtype and failtlvpos parameters.
  * test: avoid testing for secret_eq under CI.
  * Add more warnings to fundchannel_start
  * plugins/bcli: fix false memleak detection.
  * lightningd: allow 'style' 'legacy' for clboss compat (with deprecated_apis).
  * pytest: fix flake in test_pay.py::test_setchannel_state
  * cli: make the command line more user friendly.
  * cli: check if the pass and the confirmation pass match
  * pytest: fix bad gossip flake in test_multifunding_v1_v2_mixed
  * lightningd: free peer->uc when openingd fails.
  * pytest: fix flake in test_connection.py::test_opener_feerate_reconnect
  * pytest: fix test_connection.py::test_funding_close_upfront fake
  * gossipd: don't use connectd daemon_conn after it shuts down.
  * memleak: fix double-free if we timeout.
  * pytest: fix flake in test_funding_fail
  * pytest: add reconnect and restart to test_multichan.
  * connect: delay return until all subds ready.
  * lightningd: clean up peer connection handling a little.
  * pytest: test closing one multichannel works as expected.
  * lightningd: don't tell connectd to discard peer unless no subds left.
  * lightningd: use a better channel if available to next hop.
  * lightningd: remove checks which prevent us from opening multiple channels.
  * lightningd: remove (most) functions to search channels by status.
  * lightningd: don't assume a single channel per peer.
  * lightningd: add find_channel_by_scid
  * lightningd: make setchannelfee handle multiple channels per peer.
  * lightningd: associate connect commands with peer, not channel.
  * lightningd: rename activate_peers() to setup_peers().
  * lightningd: remove some "single active channel" assumptions.
  * lightningd: use channel_id when a peer is activated.
  * connectd: key multiple subds by channel_id, use for lookup.
  * connectd: track the channel_id of each stream to/from peer.
  * connectd: tell lightningd the channel_id when we give it the active peer.
  * lightningd: always tell connectd the channel id.
  * lightningd: handle reestablish directly from connectd.
  * connectd: hold peer until we're interested.
  * lightningd: move notification of disconnect into when we hear from connectd.
  * connectd: tell lightningd when disconnect is complete.
  * connectd: handle connect vs closing race better.
  * openingd: disconnect from peer when an error occurs.
  * connectd: fix confusing names.
  * pytest: add test to check we notice remote disconnects.
  * lightningd: clean up connect code.
  * connectd: prepare for multiple subd connections.
  * connectd: clean up decrypted packet memory handling.
  * connectd: make sure we do IO logging on final_msg output.
  * lightningd: add explicit "connected" flag.
  * spender: free up vars to avoid transient false leak reports.
  * pyln: Remove two more occurences of non-None default args
  * py: Make the pyln dependencies editable
  * py: Disentangle pyln dependencies
  * pay: fix leak detect on shadow route.
  * setchannel: don't let them advertize htlc_maximum_msat larger than capacity.
  * setchannel: add minhtlc
  * lightningd: check htlc_maximum_msat of channels for routehints.
  * pytest: add checks that pay and getroute respect htlc_maximum_msat.
  * devtools/fp16: conversion tool for fp16 format.
  * lightningd: deprecate setchannelfee, use setchannel in tests.
  * lightningd: new setchannel command.
  * channeld: generalize specific_feerates mesage into config_channel.
  * listpeers: show maximum_htlc_out_msat.
  * lightningd: enforce htlc_maximum_msat.
  * channeld: get htlc_maximum_msat from lightningd.
  * lightningd: store htlc_maximum_msat for channel in the db.
  * connectd: use closefrom for faster forking, and ignore children
  * psbt: fix dual-funding memleak.
  * memleak: handle libwally allocations better.
  * hsmd: Add validate_commitment_tx
  * lnprototest: upgrade the lnprototest version
  * memleak: make sure we catch children which are also "notleak".
  * fix: Remove \ from help documentation
  * doc: update ubuntu install instructions
  * lightningd: remove support for legacy onion format.
  * pytest: convert test_sendonion_rpc to modern TLV onion.
  * pytest: Remove onion test vectors containing legacy onions.
  * lightningd: opt_var_onion is now a compulsory feature.
  * hsmd: Add fields to hsmd_sign_{,remote_}commitment_tx for validating signers
  * docker: Build the docker image with psql support
  * doc: fix sendonionmessage documentation.
  * cln-rpc: Fixed two minor compiler warnings
  * msggen: Add meta file to keep the field numbers stable
  * pyln: Change the default argument to `exclude` in `pay`
  * websocketd: fix random failures by blocking stdin reads
  * Goofy af tor.md systemd syntax update (#5059)
  * doc: update faq and docs for IP discovery
  * db: small code cleanup
  * lightningd: do not use remote_addr for always_use_proxy
  * chore: remove EXPERIMENTAL for rfc #917 remote_addr
  * test: connectd netaddress
  * pytest: IP address discovery updates node_announcement
  * gossipd: send updated node_annoucement remote_addr
  * lightningd: store recently reported remote_addr
  * wireaddr: adds wireaddr_eq_without_port and wireaddr_cmp_type
  * connectd: ignore private remote_addr on non-DEVELOPER builds
  * pyln-proto: fix port typo in example script
  * chore: fix typo announcable -> announceable
  * doc: remove ambiguity for functionality enabled after a release version
  * Update LICENSE
  * hsmd: Add wallet index metadata to existing messages
  * hsmd: Augment call to hsmd_sign_withdrawal_tx with wallet index metadata
  * hsmd: Add PSBT keypath utility functions
  * hsmd: Add redeemscripts to anchor outputs
  * cln-plugin: Ensure we cleanly shut down when we lose the master conn
  * cln-plugin: Make notification handlers asynchronous
  * cln-plugin: Make hooks asynchronous
  * cln-plugin: Make rpcmethod handlers async
  * cln-plugin: Add notification subscriptions and hooks to the plugins
  * cln-plugin: Add support for synchronous RPC methods
  * cln-plugin: Rework the plugin library using a Builder
  * pytest: Use valgrind target suppressions instead of skipping tests
  * pytest: Mark Rust-dependent tests as skipped with VALGRIND
  * cln-plugin: Populate the options when we get an `init` call
  * cln-plugin: Add options to the `getmanifest` call
  * pytest: Add a test for the cln-plugin logging integration
  * cln-plugin: Implement logging facade adapter for cln plugins
  * cln-plugin: Get started with the plugin interface
  * ci: introduce in ci the compilation testing on different os
  * dualopend: restore memleak calls.
  * dualopend: fix memleak reports.
  * lightningd: simplify memleak code.
  * docker: Clean up the dockerfile to use poetry
  * py: Update mrkd
  * pyln: Switch to binary psycopg2
  * pyln: MIgrate the BOLT packages to poetry / PEP 517
  * gci: Only test pushes if it's `master`
  * gci: Fix up the MacOS test with poetry
  * python: Exclude newly detected f-string flake
  * misc: Make the spell checker just a tiny bit less trigger happy
  * gci: Switch to python 3.7
  * gci: Switch docs and CI builder to use `poetry`
  * gci: Do not generate JSON reports for test runs
  * pyln: Use poetry and PEP 517 locks for the root project
  * pyln: Migrate pyln-testing to PEP 517 (poetry)
  * pyln: Migrate pyln-client to PEP 517 (poetry)
  * pyln: Migrate pyln-bolt7 to PEP517 (poetry)
  * pyln: Fix the pyln-proto version and migrate to PEP 517 (poetry)
  * gossipd: allow faster updating, 2 per day, before ratelimiting.
  * gossipd: force a fresh node_announcement every 24 hours.
  * gossipd: always re-sent our own node_announcement on startup.
  * gossipd: make sure we set the `urgent` bit if we move our own node_announcement.
  * connectd: also fail without a scary backtrace when listen fails.
  * connectd: make sure we announce websocket addr which succeeded.
  * connectd: use listen_fd array directly, rather than returning binding arr.
  * connectd: hoist find_local_address so we can give more graceful Tor erros.
  * connectd: add is_websocket and wireaddr to struct listen_fd.
  * connectd: be more graceful when we an address is in use.
  * balance_snapshot: don't count unconfirmed utxos
  * coin_mvt: only chain moves have a blockheight
  * json: reverse parse a coin_mvt tag back into an enum
  * listpeers: include the `pushed_msat` amount
  * coin_mvt: report mutual close outputs also
  * tx_parts: as a convenience, copy over the value as the 'satoshi'
  * coin_mvt: mark coins destined for wallet w/ originating acct
  * coin_mvt: report the number of outputs on a channel close tx
  * coin_mvt: mark every event that already has a destination
  * coin_mvt: rm unncessary if statement
  * db: collapse the db_queries files into the generated ones
  * db: mark that column is unused/ignored
  * database: pull out database code into a new module
  * db: decouple `fatal` reliance, have as impl defined function
  * lightningd/Make: cleanup lightningd+wallet headers
  * plugins/bcli: neaten to fix spurious leak report.
  * bitcoin: Comment typo fix
  * test_close: sync l1 to the blockchain, so that the events are there
  * rust: Use $CARGO_OPTS when building the example plugin
  * cln-grpc: Add `listpeers` RPC method
  * cln-grpc: Allow fields to be mapped to None to ignore them
  * cln-grpc: Add conversion from pb Amount to json Amount
  * cln-grpc: Add conversion from pb Amount to json Amount
  * msggen: Support renaming methods in GRPC
  * msggen: Support enums in requests too
  * msggen: Handle some more types in request conversions
  * cln-grpc: Add glue to get all pieces to work together
  * cln-grpc: Generate server dispatcher
  * cln-grpc: Add generation of request conversion
  * cln-grpc: Add result conversion generator to `msggen`
  * cln-grpc: Generate grpc bindings from proto
  * cln-grpc: Add generation of grpc protobuf file from schema
  * rust: Actually check if we have cargo
  * testing: fix flake in test_ping_timeout
  * pyln-client: Plugin, improve background comment
  * pyln-testing: improve description of wait_for_logs
  * pyln-testing: in LightningNode.openchannel, make wait_for_announce more reliable
  * pyln-testing: in utils,  update method fundbalancedchannel, now it also works with dualfund
  * plugin-funder: fix typos in option lease-fee-base-msat and funder-fuzz-percent
  * doc: add details about: log-level, experimental options and `features` field returned by listnodes,
  * lightningd: fix parsing of option dev-force-features
  * JSON-RPC: getinfo, add field `our_features`
  * testing: cleanup in test_plugin_shutdown
  * devtools: in decodemsg, add newline and fix decoding a node_announcement with tlvs
  * configure: restore -Og default on non-developer builds.
  * memleak: fix handling of excluded pointers.
  * memleak: fix handling of notleak pointers.
  * memleak: restore functionality accidentally removed.
  * plugins/funder: actually free the pending_opens.
  * libplugin: make memleak see current requests.
  * common/param: don't keep around the temporary array off cmd.
  * common/param: fix leak with opt_param_def.
  * onchaind: fix minor leaks.
  * plugins/pay: make memleak happy.
  * libplugin-pay: fix spurious leak reports.
  * common/bolt11: make decoded routes hang off routes arr, not b11.
  * plugins/keysend: prevent leak detecting getting upset.
  * hsmd: remove unnecessary memleak_remove_region.
  * lightningd: don't leak address for printing.
  * gossipd: move deferred_update list ptr to head to ease memleak checks.
  * plugins/pay: fix unnecessary code.
  * libbacktrace: update to latest.
  * pytest: Remove 3 stress-tests
  * hsmd: don't leak message buffers
  * gossipd: don't send updates in error messages for unannounced channels.
  * channeld: Comment update for channeld
  * pytest: remove test_htlc_rexmit_while_closing as too flaky.
  * Clean up outdated comments about gossipd
  * bolt11: mark when expiry is decoded
  * bolt11: mark when we decode min_final_cltv_expiry
  * json_add_invoice: fix crash if missing invstring
  * Add LIGHTNINGD_NETWORK env variable to Dockerfile for ARM
  * doc: reintroduce the fmt command to fmt the schema
  * misc: Add build targets for the tarball and debian packages
  * chore: use EXPERIMENTAL for BOLT1 remote_addr #917
  * pytest: check for remote_addr
  * peer_exchange: set, read and log remote_addr
  * peer_wire: add remote_addr to init_tlv
  * wiregen: adds note about what <count> can be
  * bitcoind: importmulti fails (bitcoin master), use importdescriptors
  * pytest: fix test_statictor_onions
  * pytest: YA bitcoind API break.
  * bitcoin/tx: remove unused SEGREGATED_WITNESS_FLAG
  * cln-rpc: Add type for AmountOrAll and AmountOrAny
  * gci: Limit the RUST=1 config to test rust-related functionality
  * gci: Add rust configuration to Github actions
  * pytest: Test the rust bindings from cln-rpc
  * cln-rpc: Scaffolding for the cln-rpc crate
  * rust: Add rust detection to configure and a target to add binaries
  * json-rpc: Add request stubs for a couple of calls
  * msggen: Generate the cln-rpc Rust structs
  * msggen: Parse JSON-RPC schemas and build the in-memory model
  * pyln: Delete psql DBs after testing
  * Remove useless \
  * Remove some formatting inconsistencies
  * doc/schemas: disallow unknown fields in listchannels.
  * Add short_channel_id to listchannels.schema.json
  * misc: clarifications from cdecker review.
  * pytest: note unfixable test_htlc_rexmit_while_closing test.
  * pytest: make test_mpp_adaptive more reliable
  * dual_funding: don't steal inflight field in update_channel_from_inflight.
  * lightningd: clean up subds before freeing HTLCs.
  * gossipd: fix longstanding logic error in gossip_generation.
  * pytest: protect against bad gossip messages from mining confirms too fast.
  * pytest: make test_gossip_no_empty_announcements more robust.
  * pytest: remove flake in test_upgrade_statickey_onchaind
  * gossip_store: handle compacted gossip_store correctly.
  * connectd: don't received useless peer fd if we're told to send final msg.
  * connectd: remove second gossip fd.
  * gossipd: don't hand out fds.
  * subdaemons: remove gossipd fd from per-peer daemons.
  * channeld: simply exit if hsmd vanishes.
  * connectd: handle custom messages.
  * common: make sure we hand through peer for io logging.
  * connectd: do io logging properly for msgs we make.
  * connectd: handle onion messages.
  * connectd: handle pings and pongs.
  * pytest: ignore pings when doing query_gossip.
  * gossipd: send all gossip msgs directly to connectd, not peer.
  * connectd: divert gossip messages directly to gossipd.
  * gossipd: add routines to send gossip messages to and from connectd.
  * connectd: temporarily have two fds to gossipd.
  * dualopend: tell lightningd about new channel as soon as it's locked in.
  * channeld: pause before sending initial channel_update.
  * channeld: send channel updates and announcements via lightningd.
  * channeld: keep local copy of latest channel_update for errors.
  * lightningd: use our cached channel_update for errors instead of asking gossipd.
  * lightningd: tell gossipd when we use the channel_update.
  * gossipd: feed lightningd the channel_updates as soon as we make them.
  * gossipd: infrastructure to tell lightningd about local channel updates.
  * lightningd: start gossipd after channels are loaded.
  * fix UnicodeDecodeError in doc/schemas/listfunds.schema.json
  * fix UnicodeDecodeError in doc/lightning-listfunds.7.md
  * db: enable SQLite extended result codes
  * lightningd/Make: fixup reference to wallet headers
  * doc: turns out these fields are optional
  * coin_mvt: tiny, dont import lightningd header
  * coin_moves: an htlc_fulfill claimed by them is a credit to "external"
  * listchannels: add funding_outnum to listchannels
  * wallet: was erroring out, saving to null field
  * coin_moves: remove unused method
  * pytest: update elements for new, more accurate feerate calc.
  * elements: fix gross weight differential.
  * closingd, lightningd: use bitcoin_tx_2of2_input_witness_weight
  * elements: unify overhead calculation.
  * bitcoin: implement bitcoin_tx_2of2_input_witness_weight
  * pytest: test that our closingd tx weight estimate is correct.
  * bitcoin: fix tx weight calculation when there are no witnesses, but will be.
  * coin moves: notify when we make deposits to external accounts
  * coin moves: external deposits should be *deposits*
  * doc nit: wrap rest of tags in backticks
  * coin_moves: add an 'originating_account' field
  * make: add ctags target
  * pytest: fix flake in test_upgrade_statickey_fail
  * gossipd: use tal_dup_talarr helper.
  * gossipd: fix unknown channel_update recovery logic.
  * subd: fix waitpid properly.
  * lightningd: fix backwards test in sigchld.
  * CI: actually check db statements.
  * common: remove stderr debug in is_valid_witnessprog.
  * common/socket_close: remove now only connectd talks to peer.
  * pytest: clean up test_channel_state_changed_unilateral
  * subds: remove "ignore error" from old LND nodes.
  * pytest: fix race when we mine blocks after pay().
  * pytest: disable test_closing_different_fees for elements temporarily.
  * connectd: don't ignore requests to connect if we're shutting down.
  * connectd: make sure we io_log msgs doing to gossipd.
  * pytest: disable automatic reconnection.
  * pytest: disable tests/test_closing.py::test_onchain_all_dust
  * peer subds: ignore failed writes.
  * pytest: fix flake in test_reconnect_sender_add1
  * patch dual-open-control-double-notify-fix.patch
  * connectd: flush queues before hanging up.
  * connectd: also do the shutdown()-close for final_msg sends.
  * connectd: don't just close to peer, but use shutdown().
  * ccan: update to get io_sock_shutdown
  * msg_queue: don't allow magic MSG_PASS_FD message for peers.
  * connectd: implement @ correctly.
  * connectd: drop support (unused) for @ during handshake.
  * various: minor cleanups from Christian's review.
  * connectd: get addresses from lightningd, not gossipd.
  * connectd: put more stuff into struct gossip_state.
  * connectd: remove per_peer_state in favor of keeping gossip_fd directly.
  * patch lightningd-peer-fds.patch
  * subdaemons: don't stream gossip_store at all.
  * connectd: serve gossip_store file for the peer.
  * common: add routine for absolute timeouts (vs. relative).
  * connectd: do nagle by packet type.
  * connectd: do dev_disconnect logic.
  * per_peer_state: remove struct crypto_state
  * peer_io: replace crypto_sync in daemons, use normal wire messages.
  * connectd: do decryption for peers.
  * lightningd: make sure gossipd knows before we update blockheight.
  * gossipwith: create our own internal sync_crypto functions.
  * connectd: maintain connection with peer, shuffle data.
  * pytest: make test_channel_state_changed_unilateral more robust.
  * connectd: keep timeout timer around so we can disable it.
  * update mocks
  * cli: change the redefine logic to read from the stdin
  * fix dockerfile
  * Update lightning.py
  * LightningRpc should accept pathlib Path
  * options: only allow one DNS announcement
  * pytest: further deflake test_funding_push.
  * common/coin_mvt: make it clear we're using Lightning HRP not BIP 173.
  * common/coin_mvt: clean up API a little.
  * global: use tal_dup_or_null().
  * ccan: update to get new helpers in ccan/tal
  * common/socket_close.c: remove obsolete comment.
  * connectd: rename struct peer in peer_exchange_initmsg to early_peer.
  * gossipd: make request handlers return void.
  * gossipd: rewrite update generation, remove local_chan.
  * gossipd: local_direction helper to generalize is_local_channel.
  * channeld: add dev-disable-commit-after instead of dev-disconnect -nocommit
  * dev_disconnect: remove @ marker.
  * pytest: disable dev-disconnect blackhole tests.
  * common/socket_close: don't wait forever.
  * common: generalize extract_channel_id().
  * connectd: clean up lightningd connection handling.
  * common: is_msg_gossip_broadcast() for putting things in filter.
  * lightningd: handle channel cleanups more explicitly.
  * lightningd: close one more fd for subdaemons.
  * external: update lnprototest dependeces
  * balance-snaps: add a `balance_snapshot` event; fires after first catchup
  * test plugins/coin_moves: clean up/tidy coin moves plugin logic
  * balance snap: first pass
  * coin_moves: cleanup tags list, update docs, remove unused method
  * coin_mvt: log events for pushes/lease_fees for leased channels
  * coin_mvt: record fees for an outbound htlc
  * coin_mvt: record new 'fees' field on htlc channel moves
  * coin moves: turn 'tag' into 'tags' array, add OPENER tag
  * coin_moves: update some info about 'blockheight'
  * coin_moves: remove 'index' for moves; bump version
  * onchaind: remove 'is_replay' logic
  * coin_moves: de-dupe moves as they come in
  * coin_mvts: rewrite how onchain events are recorded, update tests
  * onchaind:move some stuff around so we can call it
  * coin_mvts: don't overwrite account names we add in onchaind
  * coin_mvt: add "output value" to coin movement
  * coin_moves: fix account name serialization
  * amount: helper for msat == 0
  * coin-move: the txid is now optional but outpoints are not
  * coin-mvts: on close, record an 'end' of our channel balance
  * coin-mvt: remove all the chain fees tracking
  * coin-mvt: remove all the spend-tracking
  * coin-moves: remove penalty + chain fee types
  * Add pip requirements install to Mac instructions
  * Fix comment to reflect the code
  * doc: document the errors code
  * lightningd: support hsm error code
  * wire: add missing spec patch.
  * ccan: update, add graphql module.
  * pay: Disable channels that are not in normal state
  * pytest: restore gossip advertizement tests for default port.
  * doc: force mistune==0.8.4 during pip package resolution.
  * Removed FIXME to match bolts PR 918
  * hsmd: Add hsmd_ready_channel
  * hsmd: Add hsmd_new_channel
  * wallet: make wallet_can_spend non-static because needed
  * bitcoin/chainparams.h: Split BIP173 name into onchain and Lightning HRPs.
  * Revert "bitcoin/chainparams.c: Change `signet` BIP173 name to `tbs`."
  * fix 'listincoming' field incoming_capacity_msat.
  * hsmd: Add hsmd_validate_revocation.
  * doc/Makefile: speed up schema check, only do on check-doc.
  * lightningd: cleanup obsolete plugins->shutdown flag
  * testing: remove test_htlc_accepted_hook_shutdown, move relevant parts into test_plugin_shutdown
  * testing: fix flake in test_fetchinvoice_3hop
  * common: cleanup unsused parameter in timer_expired()
  * plugins: simplify shutdown loop, simply close the db
  * Update .gitignore for tmp files
  * connectd: fix empty error message
  * Fix dockerfile for arm32/64
  * pytest: fix test_pluginconnected_hook_chaining
  * Upgrade bitcoin-cli to 22.0
  * doc: lightningd-config.5.md - default ports
  * Set default port according to network
  * make: remove generated files when running clean
  * gossipd: remove gossip_msg.[ch]
  * daemons: remove unused functions or make static.
  * common: remove unused functions or make static.
  * bitcoin: remove unused functions, or make static.
  * devtools: simple script to look for functions which don't seem to be used.
  * tools/check-includes.sh: make shellcheck happy.
  * common: remove unused io_lock.c
  * check: make sure all files outside contrib/ include "config.h" first.
  * pytest: fix occasional flake in test_announce_address
  * common/utils: introduce tmpdir_mkstemp; use it
  * connectd: don't advertize websocket support if we have no other (non-Tor) addrs.
  * options: fix handling of wildcard (allproto) address.
  * connectd: fix websocket binding when we're doing both IPv4 and IPv6 on same port.
  * pytest: test to show conflict between websocket and wildcard addresses.
  * status: do not log ping and pong packets
  * .github: Fix FreeBSD workflow
  * doc: add exclude arg doc for pay rpc
  * tests: add pay test for exclude arg
  * Add route exclusion payment modifier and pay rpc exclude arg
  * refactor: move exclude parsing to json_tok
  * doc/lightning-datastore.7.md: Fix typos.
  * wallet/db.c, wallet/wallet.c: Add a partial index to speed up startup.
  * pytest: fix flake in testing.
  * lightningd: fix leak report for self_id
  * blinding: check against two of the test vectors in the PR.
  * bolt12: remove deprecated `chains` fields
  * doc: clean up offers bolt quotes
  * features: don't announce onion_messages in bolt11 invoices.
  * test: make an onionmessage test vector.
  * common/test/run-blindedpath_enctlv: use modern functions to create test vector.
  * test: hack in test for (now-obsolete!) test vector Thomas emailed me.
  * pytest: re-enable modern/obsolete fetchonion tests.
  * gossipd: handle receipt of modern onion message.
  * lightningd: Send updated onion spec messages.
  * lightningd: return both obsolete and modern blindedpaths from "blindedpath" RPC.
  * spec: import latest onionmessage spec, based on routeblinding.
  * common: rename current onion message structures to obs2_.
  * common: remove support for pre v0.10.2 onionmessages.
  * plugins/Makefile: improve header dependencies.
  * doc: update shutdown notification, changelog
  * hsmtool: use flag TCSANOW when disabling tty ECHO, fixes rare hang in test_hsm*
  * lightingd: removal of sigchild_handler in shutdown now also closes its pipe
  * libplugin-pay: fix valgrind error
  * testing: fix test_upgrade_statickey_onchaind
  * testing: fix test_closing_higherfee
  * testing: test that RPC calls made in shutdown fail and receive error code -5
  * JSON RPC: Calls made in shutdown loop receive error code -5: LIGHTNINGD_SHUTDOWN
  * JSON RPC: In the shutdown loop, ignore plugin responses to JSON RPC requests
  * testing: remove test_stop_pending_fundchannel
  * lightningd: cleanup, freeing jsonrpc in shutdown cannot trigger db write's anymore
  * lightningd: shutdown plugins after subdaemons and assert no write access to db
  * testing: test hook semantics is preserved in shutdown
  * chore: use EXPERIMENTAL for BOLT7 DNS #911
  * pytest: test connecting to a DNS only announced node
  * connectd: resolve ADDR_TYPE_DNS
  * bolt7: allow announcement of ADDR_TYPE_DNS
  * wireaddr: adds helper is_ipaddr, is_toraddr and is_dnsaddr
  * options: fix respect --disable-dns when parsing wireaddress
  * chore: gitignore gdb_history
  * options: make --disable-dns an early arg
  * options: fix ld proposed_wireaddr proposed_listen_announce get out of sync
  * doc: Fixed grammars and add jq as dev dependences.
  * doc: Fixed doc check with the last options
  * doc: Document max-dust-htlc-exposure-msat the command line option
  * jsonschema: Formatting json schema and regenerate docs
  * tools: add a tool to formatting schema, and fixed (hack) the Makefile code checking.
  * ci: Introduce doc sanity check in Github action.
  * bitcoin/chainparams.c: Change `signet` BIP173 name to `tbs`.
  * pytest: don't valgrind plugins under CI if many nodes.
  * pytest: Reduce memory consumption by test_plugin_disable
  * backtrace: avoid duplicate backtrace objects.
  * memleak: make notleak use the tal name instead of a boutique struct.
  * log: don't leak log prefixes.
  * lightningd: remove some unnneded notleak().
  * devtools/taldump-analyze.py: script to analyze tal_dump() output.
  * ccan: import udpated version (with better tal_dump() format).
  * doc/PLUGINS.md: Clarify that `db_write` hook only works on SQLITE3.
  * doc/BACKUP.md: Discourage litestream use.
  * wallet: fix sqlite3 column renaming since db backup merge.
  * lightningd: fix compilation error on OpenBSD
  * wallet/db_sqlite3.c: Support direct replication of SQLITE3 backends.
  * wallet: db column manipulation helpers.
  * db: turn generated queries array into a simple hash table.
  * wallet: remove db_column_ functions.
  * wallet: remove redundant field counters, ignored fields.
  * wallet: have db track what columns are accessed in DEVELOPER mode.
  * CCAN: import strset.
  * wallet: convert db internal routines to db_col_
  * wallet: convert wallet.c to db_col_ APIs
  * wallet: use db_col_ accessors in wallet/invoices.c
  * db: improve db_col_* APIs.
  * db: db_col_ variants for accessing SELECT statements by name.
  * db: create simple hashtable of fields in SELECT.
  * tests: use common_setup/common_shutdown to avoid leaks.
  * common: clean up autodata in common_shutdown().
  * pytest: allow bad gossip in pruning test.
  * contrib: fix other pyln-spec package requirements too.
  * pyln-bolt7: fix requirements.txt
  * paystatus: remove doubled amount_msat.
  * doc: update HACKING.md build dep instructions
  * doc: add missing dev deps, upgrade and don't use sudo for pip
  * gitignore: ignore eggs and pyln versions
  * pytest: don't checksum plugins on startup in VALGRIND developer mode.
  * pytest: don't create 5 nodes in test_fetchinvoice.
  * common: use ccan/base64 instead of libsodium.
  * common: test that our sodium-based base64 encoding is identitcal to ccan's.
  * wireaddr: clean up tor parsing.
  * lightningd: really do allow two Torv3 addresses.
  * doc/TOR.md: simplify, and don't cover autotor.
  * doc/TOR.md: Make it clear that Tor == Torv3.
  * torv2: remove support for advertizing and connecting.
  * custommsg hook: remove message field.
  * fundchannel_complete: remove deprecated txid/txout params.
  * pytest: remove test_shutdown_alternate_txid.
  * Makefile: Avoid overriding `PYTHONPATH`.
  * subd: clean up our fd shuffling logic.

-------------------------------------------------------------------
Wed Nov 03 18:28:22 UTC 2021 - marec@detebe.org

- Update to version 0.10.2:
  * doc: Update CHANGELOG.md for v0.10.2 release
  * doc: Update CHANGELOG.md for v0.10.2rc2
  * gci: Add `-f` flag to git fetch
  * doc: Remove non-ASCII character from docs
  * peer: Wrap the HTLC out destructor in a DB transaction
  * wallet: Re-sync the payments.id sequence with postgresql
  * db: Allow DB-specific queries in the migrations
  * Fix typo in the error message.
  * Ignore all the deamon inside the git history
  * wallet/db_postgres.c: Fix obvious typo in error message.
  * websocket: switch to address type 6, since DNS will take 5.
  * meta: Add version 0.10.2rc1 changelog
  * pytest: Create less dust in `test_delpay_payment_split`
  * tests: raise dust limit on mpp test
  * dusty htlcs: don't fail the channel, make it error a whole bunch
  * channeld: add in RFC notes for max_htlc_dust_exposure_msat
  * tests: check for incoming + outgoing dust limits
  * dusty-htlcs: enforce limit on dusty htlcs
  * htlcs: add flag to 'fail immediately'
  * tests: bump the ceiling for dust, fixes failures for liquid
  * lightningd: new option for htlc dust limit
  * doc: Add M1 mac + homebrew fix
  * pay: Use log probability based bias in channel selection
  * libplugin-pay: bias towards larger channels.
  * common/dijkstra: hand channel direction to path_score callback.
  * lightningd/lightningd.c: Only impose fd limit if absolutely needed.
  * *: Use new closefrom module from ccan.
  * ccan: update to include closefrom
  * experimental-websocket-port: option to create a WebSocket port.
  * lightning_websocketd: simple proxy for websockets.
  * connectd: listen on ports for which we should spawn a proxy.
  * patch websocket-address-support.patch
  * CCAN: add base64 module.
  * gossipd: when we refresh channel, don't override pending updates.
  * common: reltimer_arg to access a timer argument.
  * Move log level from warning to info when creating a new ln directory
  * doc/BACKUP.md: Warn about version if using Litestream, `sqlite3` `.dump` is safe(r) now.
  * wallet/db_sqlite3.c: Increase busy timeout to 60 seconds.
  * CI: suppress postgres vaccuuming.
  * wallet: only hand onchaind the HTLCs it needs to know.
  * onchaind: queue any unexpected messages while waiting for htlcs.
  * onchaind: tell lightningd our commitment number, then get htlcs.
  * common: use bitcoin_outpoint.
  * common/type_to_string: formatting for bitcoin_outpoint.
  * lightningd: use bitcoin_outpoint in watch.
  * db: vacuum after a db upgrade.
  * db: clear our unneeded htlc fields in old terminated HTLCs.
  * wallet: remove unnecessary data from channel_htlcs when htlc is dead.
  * lightningd: populate min/max commit fields in db.
  * db: add min/max commitnum fields to channel_htlcs.
  * wallet: wrap htlc_state enum in db function.
  * utils: add max_unsigned/min_unsigned helpers.
  * fuzz: make it build again.
  * tests: Change currency from `msat` to `sat` in the regex string
  * Fixes msat and sat convention in the error message
  * offers: fix overzealous BROKEN log.
  * pay: listpays groups by payment_hash and groupid
  * pay: Stash and forward results for duplicate `pay` calls
  * pay: Mark completed payments as such by nullifying `cmd`
  * pytest: Adjust `test_sendpay` to the new semantics
  * libplugin: Add callbacks for successful and failed payments
  * pytest: Fix `test_onchain_timeout` to use `groupid`
  * pytest: Add `groupid` to `test_partial_payment_{timeout,restart}`
  * pay: Fail a `sendpay` or `sendonion` that'd produce a DB collision
  * pytest: Fix up `test_partial_payment` to use a single `groupid`
  * paycore: Default `groupid` to increment from last one
  * paycore: Prevent multiple concurrent payment groups
  * pay: Do not delete old sendpay attempts if we retry
  * pay: Make `pay` idempotent
  * jsonrpc: Add `groupid` to `waitsendpay`
  * doc: Add missing `amount_sent_msat` to `listpays`
  * pay: Call `listsendpays` to find prior attempts and abort if needed
  * jsonrpc: Add missing `partid` in `listsendpays` schema
  * db: Add `groupid` to HTLCs
  * wallet: Add function to retrieve the latest groupid for a payment
  * pay: Add `groupid` to the payment struct
  * pyln: Add groupid to `sendpay` and `sendonion`
  * jsonrpc: Add groupid to `sendpay` and `sendonion`
  * db: Add groupid to the payments table
  * pytest: Reproduce #4482
  * closingd: ignore spurious pong messages.
  * pyln: Add missing requirement from pyln-client to pyln-proto
  * pytest: Use the same `TIMEOUT` in `wait_for_route`
  * db: Ensure sqlite3 library minimum version and major version match
  * doc: update ungenerated file.
  * pytest: fix flake in test_upgrade_statickey_onchaind
  * pytest: fix flake when test reconnects by itself.
  * channeld: restore ping command, but only for channeld.
  * channeld: perform regular keepalive pings.
  * channeld: fix halting gossip when a timer is active.
  * channeld: remove liveness logic pre-commitment.
  * gossipd: remove ping/pong handling
  * common/read_peer_msg: handle pings in handle_peer_gossip_or_error().
  * Fix memory leak abort in debug mode
  * On Mac OS X a different error is raised on failed connection
  * db: Don't switch between text and blob fields
  * db: Fix a syntax error with the optional parameters
  * ci: Add missing envvar forward for the DB configuration
  * channeld: handle reestablish from previous release with EXPERIMENTAL_FEATURES.
  * channeld: import updated channel_upgrade spec.
  * features: EXPERIMENTAL_FEATURES: advertize option_quiesce
  * lnprototest: update to latest master.
  * BOLT 12: switch invoice_request/invoice to singular `chain` field.
  * bolt12: update to latest spec.
  * BOLT12: use point32 instead of pubkey32.
  * bolt12: upgrade to handle latest test vectors.
  * Makefile: be sure to build generated sources before tests.
  * plugins/libplugin.c: Allow freeing notification `struct command *`.
  * Length prefix bitcoin tx, to fix layer violation
  * ci: Add BSD configuration
  * docs: Update README to link to pyln-client
  * gha: Fix the trigger in the PyPI publication action
  * correcting: 'needs' instead of 'need'
  * common/json.c: Have `json_add_literal` *use* `len` argument.
  * pylightning: Make it clear pyln-client should be used instead
  * onion_message: dev options to ignore obsolete/modern onions.
  * offers: send a modern onion reply in response to a modern request.
  * offers: save replytok properly.
  * fetchinvoice: handle modern onion_message reply.
  * fetchinvoice: send modern as well as obsolete messages.
  * gossipd: handle modern onion messages.
  * lightningd: handle modern onion termination.
  * lightningd: fix use-after-free during shutdown.
  * Correcting typo
  * gci: Checkout tags in CI to get auto-versioning working
  * gci: Remove push trigger
  * gci: Use stripped down bitcoind for Mac OS
  * gci: Pin down a couple more dependencies
  * gci: Limit PyPI publication to pull request merged and version tags
  * pyln: Derive version from git for pyln-proto
  * pyln: Derive version from git for pyln-testing
  * gci: Checkout entire history in PyPI build to ensure tags are there
  * pyln: Add production publication on tag push
  * doc: Add the in-tree-build option to install docs
  * gci: Add missing tooling
  * pyln: Derive version from git for pyln-client
  * gci: Give PyPI packages a reasonable name
  * pyln: Materialize setup.py and requirements.txt in pyln-spec
  * gci: Add workflow to deploy PyPI artifacts
  * pytest: Stabilize `test_addgossip`
  * misc: ignored last autogenerated file from the github tree.
  * misc: Add generated files to .gitignore
  * gci: Add macOS configuration
  * Add missing headers for compiling on FreeBSD 13
  * lightningd: provide 10 minutes for channel fee increases to propagate.
  * lightningd: refactor forward feecheck.
  * common/features: try to add all proposed feature names.
  * devtools/features: tool to convert feature bitmap to names.
  * pytest: fix flake in test_gossip.py::test_addgossip
  * Makefile: remove generated files.
  * Makefile: remove NO_PYTHON flag in anticipation of making it compulsory.
  * review 2/2: Use generic query to make the code more readable.
  * review 1/2: Fixed the doc missing details about formatting.
  * plugin: Adding status to the pay plugin
  * doc: Update doc with the new parameter supported
  * pyln-client: Adding parameter to the listpays rpc method.
  * wallet db: Support the query on database with status and payment hash.
  * rpc: Integrate the status flow in the listsendpays command
  * common: json_to_reply_path to helper to handle blindedpath/onion_message hook
  * lightningd: `blindedpath` helper to create a blinded path to ourselves.
  * lightningd: new sendonionmessage routine.
  * hsmd: derive an onion_reply secret.
  * common/blindedpath: enctlv unwrapping primitives.
  * common/blindedpath: enctlv creation primitives.
  * wire: import new onion message spec.
  * invoice: Fix mismatch between ">=" and "greated than" in error msg
  * bcli: Accept "already in chain" errors as success
  * doc: Add links to mandelbit's recovery walkthrough
  * jsonrpc: Simplify the state decision of `listpays`
  * pay: Fix wrong result being returned by pay
  * hsmd: Remove duplicate status message for incoming messages
  * fetchinvoice: include send in path, use pubkeys.
  * lightningd: rename sendonionmessage to sendobsonionmessage.
  * gossipd: rename onionmsg messages to lightningd to obs_onionmsg.
  * channeld: rename onion_message to obs_onion_message.
  * common/sphinx: add helper to prepend length to payload.
  * lightningd: remove sendonionmesage parity hack.
  * gossipd: fix blinded onion forwarding.
  * lightningd: fix memleak false positive.
  * type_to_string: detect type failure in DEVELOPER mode.
  * ccan: remove autodata.
  * common/autodata: use instead of ccan/autodata
  * common/autodata: autodata replacement which uses __attribute__((constructor))
  * pytest: ensure hsmtool tests do complete writes.
  * wire: Fix generated files
  * Fix for Alpine Linux ond OpenBSD
  * cleanup: remove unneeded includes in C files.
  * cleanup: remove unneeded includes in header files.
  * devtools/reduce-includes.sh: brute-force script to remove includes.
  * tools/check-includes.sh: test that c files include their .h files.
  * closingd: add notifications for feerate ranges.
  * lightningd/closing_control.c: move json_close here from peer_control.c
  * tests: test that successive closes do update parameters (particularly feerate!).
  * lightningd: fix leak report when close called multiple times.
  * Remove lnprototest
  * openingd: clean up state properly when a hook says to reject opening.
  * common/channel_type: fix up bolt quotes now channel-types is merged.
  * closingd: fix BOLT quotes to match final spec version.
  * openingd: tell them channel_type if signature is bad.
  * lightningd: print out support for channel_types in --list-features.
  * openingd: allow channel_type to *downgrade* from default.
  * openingd: channel_type TLV no longer experimental.
  * openingd: EXPERIMENTAL_FEATURES provide and use channel_types.
  * openingd: tell lightningd what channel type we negotiated.
  * lightningd: use channel_type, pass to-and-from channeld.
  * common/initial_channel: use channel_type instead of individual option bools.
  * common/channel_type: wrapper for generated 'struct channel_type'.
  * tools: handle generating print templates for CSV without tlvs, messages
  * openingd: don't hand redundant feature flags.
  * resolve() appears broken on Python 3.7+
  * plugin: register `shutdown` instead of `plugin_shutdown` in notifications list
  * close: spec is final, it's not experimental.
  * closing: add option to set closing range.
  * pytest: add test for closing feerate greater than final commit tx.
  * closingd: allow higher closing fee if anchor_outputs.
  * --experimental-quick-close to enable quick-close negotiation
  * Makefile: import latest spec, which includes quickclose.
  * Makefile: update bolt version to include option_anchors_zero_fee_htlc_tx.
  * Makefile: update spec version
  * channeld: allow large HTLCs if peer offers option_support_large_channel
  * Makefile: Update BOLT version to cover bolt11 test vectors with payment secret.
  * lightningd/chaintopology: stop callbacks rearming once topology stopped.
  * libplugin: make leaks log at LOG_BROKEN so they break CI.
  * plugins/libplugin: mark timers as not-a-leak.
  * libplugin: fix leak of struct command when we don't read it all at once.
  * plugins/topology: use memleak annotation instead of global_gossmap hammer.
  * pytest: annotate name_option against leak detection in test_libplugin
  * wire/tlvstream: don't leak in tlvstream_set_tu64/tu32/short_channel_id.
  * plugins/txprepare: annotate unreleased_txs list against false memleaks.
  * plugins/bcli: keep a list of current bitcoind requests.
  * plugins/spender: don't use global tal context, use take() instead.
  * spender/openchannel.c: don't leave psbt parts owned by NULL.
  * plugins/funder: don't use global owner parent; mark policy for memleak.
  * plugins/bcli: handle memleak.
  * libplugin: let plugins add annotations to memleak.
  * libplugin: if DEVELOPER set, do memleak detection on shutdown.
  * libplugin: allow take() for commands, notif_subs, hook_subs, notif_topics.
  * libplugin: allow stealing of feature sets, make keysend do that.
  * common/memleak: hoist strmap helper from out of lightningd/memdump.c
  * common/memleak: take over dump_memleak(), allow print pointer.
  * ccan: update to get version where tal_dump goes to stderr.
  * Critical funder flaw
  * pyln-client/gossmap: adds testcase for half channels
  * pyln-client: fix mypy warnings, fix and test deletion of a channel.
  * pyln-client/gossmap: init GossmapNode and Id also with hexstring
  * pyln-client/gossmap: make node and node_id comparable with __lt__ and __eq__
  * pyln-client/gossmap: let half channel have source and destination
  * pyln-client/gossmap: start internal function names with underscore _
  * pyln-client/gossmap: have channels link to their nodes instead of id
  * pyln-client/gossmap: make test gossip_store include channel_updates, deletions.
  * pyln-client/gossmap: more fixes, make mypy happier.
  * pyln-client/gossmap: Don't mix bytes and GossmapNodeId
  * pyln-client/gossmap: adds __repr__ functions
  * pyln-client/gossmap: extend testcase
  * pyln-client/gossmap: adds channel satoshi capacity
  * pyln-client/gossmap: adds helpers to get channels and nodes
  * pyln-client/gossmap: adds GossmapHalfchannel objects
  * pyln-client/gossmap: add NodeId class.
  * pyln-client/gossmap: use ShortChannelId class from pyln.proto, if available.
  * pyln-proto: expose ShortChannelId and PublicKey.
  * pyln-client/gossmap: add a little documentation.
  * pyln-client/gossmap: save deconstructed fields instead of raw msg bytes.
  * pyln.client: new functionality to access Gossmap.
  * pyln.client: don't try to use module inside setup.py.
  * pyln-spec: update to latest version of the spec.
  * Mac OS X generates these files automatically.
  * Removed submodule external/lnprototest
  * Shellcheck cleanup
  * doc: document shutdown plugin.
  * lightningd: call shutdown plugin when we dynamic shutdown a single one.
  * libplugin: plugin_exit helper which flushes stdout.
  * lightningd: call "shutdown" notification on plugins at shutdown.
  * lightningd: disable topology timers on shutdown.
  * lightningd: don't keep timer ptr inside struct chain_topology.
  * doc: fix GH/readthedocs rendering of manual pages.
  * psbt: set the witness script to null, also
  * dual-fund psbt: hoist up single use method so we can test it
  * db: simple index addition to speed listpeers.
  * docs/fetchinvoice: document payer_note
  * pytest: test new commitment_revocation hook values
  * doc: new values for commitment_revocation hook
  * hook: adds channel_id and commitnum to commitment_revocation
  * doc: Regenerated man-pages to fix hash mismatch.
  * doc: fix listnodes schema, doc.
  * Anchor outputs are enabled by dual-funding, so this was reported by users there (and reliably detected now).
  * configure: update from -fstack-protector to -fstack-protector-strong.
  * adding check for the deprecated api.
  * Fixed order parameter in the listforwards command
  * wire: fix patch file to match actual peer_wire.csv.
  * docs: Remove explicit markdown configuration for rtd
  * lightningd: don't reject attempts to forward 2^32 msat out of hand.
  * Don't limit channel_updates to 2^32 msat.
  * Skip following import and skip flask type to mypy code analysis.
  * Move to minimum required mypy dependeces
  * Added deprecated phase to rpc framework rules changes.
  * Required jsonrpc inside the method request.
  * pytest: don't copy db to query it.
  * wallet: set a timeout if the db is busy.
  * added Litestream Replication
  * pylightning: fix requirements to work with pyln-client
  * datastore: turn keys into arrays
  * datastore: add generation, simple atomicity.
  * datastore: allow replace/append.
  * datastore: allow strings.
  * datastore: docs, schemas, and a test.
  * JSON-RPC: add interfaces to access datastore.
  * wallet: add datastore access routines.
  * wallet: add datastore for plugins to use.
  * exact bk file has to be in path
  * missing --lightning-dir
  * gossmap: don't spew to stderr, include counter for callers.
  * pytest: remove only_one() duplicate
  * wallet-test: fix segfault due to uninitialized block
  * cleanup: rename use_proxy_always to always_use_proxy to match cfg
  * cleanup: nits
  * connectd: prefer non-TOR connections and filter wireaddr hint duplicate
  * fetchinvoice: add developer option to send raw invoice_request.
  * pytest: fix flake in test_channel_lease_unilat_closes
  * wallet-test: print better error message on failure
  * utxos: more comprehensive fix for csv check
  * lnprototest: update version to fix flake issues.
  * pytest: try to prevent spurious timeouts in test_channel_lease_unilat_closes
  * pytest: fix test_channel_lease_unilat_closes flake
  * pytest: fix bad gossip flake.
  * pyln: Fix up the mypy annotation for `init` self-disabling
  * pyln-client: document and test that init can self-disable.
  * common/setup: check libwally initialization
  * bitcoin/tx: check PSBT sanity after parsing
  * Build race fixes: create ccan/config.h atomically, make tools/test/test_gen.c depend on it
  * common/test/run-bolt12_period.c: fix warnings at -O3.
  * common/tests: these test are no longer experimental-only.
  * chaintopology: tell gossipd that channels no longer exist on reorg.
  * changelog: fix typo in release notes
  * new line for default value, makes it more visable

-------------------------------------------------------------------
Tue Aug 10 09:09:55 UTC 2021 - marec@detebe.org

- Update to version 0.10.1:
  * changelog: v0.10.1  release notes
  * wallet: correct CSV check in `deep_enough`
  * tests: check that we don't re-up the leased funds when we RBF
  * tests: promote method to utility file
  * funder: default to only funding leases
  * funder-rbf: correctly iniitalize lease params
  * df-tests: wait for disconnect before asserting unknown channel
  * df-tests: bump feerates to get over the 'insufficient fee' limit
  * pytest: update test_queryrates for API change.
  * dualopend: remove runtime memleak in favor of at-termination.
  * GitHub CI: Restore at least one DF CI flow.
  * offers: make `decode` command available even without experimental-offers.
  * CHANGELOG.md: note the broadening in fee_update accept behavior.
  * changelog: Updated the changelog for v0.10.1rc2
  * pyln: Add E741 as excluded flake warnings
  * doc/MAKING-RELEASES.md: advice on updating python package versions.
  * pyln.{proto,client,testing}: bump version numbers to match release.
  * pyln.proto.message: add new BOLT12 fundamental types.
  * pyln.proto.message: export two more symbols, remove unused __version__ from message.py
  * common/bolt12_merkle.c: fix comments.
  * common/test: test the test vector JSON from the spec (if present).
  * common/test: Fix test vector generation.
  * pyln: Fix backward compat issue in `LightningRpc.close`
  * connectd: allow out-of-bounds fees unless they're actually getting *worse*.
  * channel lease: only send update_blockheight iff has channel lease
  * Moving dependencies to the minimum required
  * changelog: add two general notes and fix the typo
  * changelog: correct link for v0.10.0 release on github
  * changelog for v0.10.1 rc1
  * diff -R to diff -r
  * common: fix up missing file which can cause parallel build issues.
  * lightningd: don't turn zero-length tlv fields into NULL.
  * lightningd: don't assume zero-length tlv fields will be NULL.
  * pytest: test for offer failing decode when empty description.
  * offerout: don't insist that invoice vendor match our vendor.
  * offer / offerout: return existing if its still active.
  * disableoffer: fix disabling of already-used offers.
  * fetchinvoice: don't consider "msat" a change if fetchinvoice specified it.
  * offers: make sure quantity limits are sane.
  * bolt12: import latest spec (timestamp -> created_at).
  * funderupdate: add documentation, update some params
  * printlogs for failing tests
  * common/lease_rates: more things const.
  * lease_rates: lease_rates_eq.
  * gossipd: de-duplicate code.
  * lease_rates, funder: use overflow helpers
  * overflows: helpers for integer assignment overflows.
  * reestablish_tlvs: don't lose them btw tmpctx cleanup
  * queryrates: make it dev-only
  * lease-channels: tests for the test gods
  * dualopend: hold onto open_tlv for longer than the tmpctx persists
  * channel-leases: add lease fee to accepter's funding earlier up
  * nit: better error messages on dualopend's check_balances failures
  * channel-lease: reject if we're not currently advertising liquidity
  * channel leases: add expected lease fee to opening PSBT
  * channel leases: pass expected lease rates around in compat form
  * lease rates: helpers for parsing, serializing + equating lease_rates
  * channel lease: update the blockheight on reconnect, also
  * close: param to force-close a leased channel
  * channel lease: fail leased channel if peer offline + blockheight behind
  * channeld: don't forget channels that we've put funds into
  * utxo: don't add outputs that aren't currently eligible to be spent
  * channel utxo: persist the 'csv' lock value to database
  * channel lease: set csv_lock for commitment transactions
  * chaintopology: new command 'parsefeerate'
  * liquidity-ad: wire in csv updates to commitment txs
  * channel: wire blockheight updates from channeld in to database
  * liquidity-ads: persist channel blockheight states to disk
  * lease_rates: persist channel's lease info
  * onchaind: add recovery scans for option-will-fund
  * lease_rates: pass in 'lease_expiry' and 'csv' to commitments/channel
  * lease_rates: add csv lock to modify anchor scripts
  * script: add csv_lock to scripts
  * lease-rates: add to accepter's side on accepter pathway
  * lease-rates: calculate the fee owed to peer for the funds lease
  * channel-lease: validate accepter's sig on lease terms
  * rpc: add queryrates
  * dualopend, openchannel_init: pull out feerate parsing logic
  * liquidity-ad: fill in acceptance response
  * liquidity-ad: pipe `request_amt` all the way out to fundchannel
  * liquidity-ad: request amount, pass through to dualopend
  * liquidity-ads: pipe through request to funder, update policy
  * hsmd: method to sign liquidity ad offer
  * amount: add 'is_zero' helper
  * tests: add test for setting/updating node announce
  * contrib: offer a liquidity-ad lease in developer mode
  * funder-liqudity-ads: support options + setliquidity ad
  * funder_policy: set default to 0
  * funder: make policy a pointer, most places
  * gossipd: turn off lease offers if the rates are empty
  * libplugin: add u16_option parsing
  * option_will_fund: print out lease rates in listnodes
  * setleaserates: new RPC to pass in lease rates
  * gossipd: signal whether node_ann is updated, are we starting up?
  * gossip/liquidity-ad: node_ann comparison, optional TLV check
  * lease_rates: parse them out of node_announcements
  * liquidity-ads: import from spec
  * dual-funding: update fee_step to be a feerate
  * change fees: more accurate rounding for change amount
  * Github actions: reduce lnprototest.
  * chore: add 3 gpg pubkeys of maintainers to the repository
  * docs: fix typo and wording
  * added minimum word list needed
  * improve hsm_secret doc
  * pytest: rescan restarts plugin on update
  * plugin: rescan restarts plugin on update
  * pytest: Add a `keysend` test that includes `routehints`
  * keysend: Add `routehints` argument to the `keysend` command
  * jsonrpc: Add parsers for routehint-arrays
  * opts: Add option to register extra TLV types to accept
  * sendcustommsg: promote to non-dev
  * route: assume modern TLV support if we don't see a node_announcement.
  * lightningd: insist on payment_secret if bit compulsory on invoices.
  * lightningd: make invoices insist on payment_secret.
  * pytest: make test_sendonion_rpc use a TLV onion for final hop.
  * plugins/keysend: add the payment_secret to the payload.
  * pytest: always provide payment_secret when making payments.
  * invoice: output payment_secret in JSON.
  * pytest: listchannels filter by destination
  * doc: listchannels filter by destination
  * pyln: rpc support for listchannels by destination
  * topology: listchannels by destination
  * plugins/offers: fix crash when we report unpaid prev invoice.
  * doc: fix up bolt12 quotes.
  * bolt12_merkle: change offer merkle to latest spec.
  * DEVELOPER: allow fetchinvoice to force they payer_secret.
  * offers: don't crash in decode if there's no signature on the offer.
  * patch remove-payer-backcompat.patch
  * tests: update coin movements for dual-funded mutual closes
  * tests: update deprecated 'funding_msat' for new output format
  * schema: fixup for dual-funding things
  * schema: add 'funding_outnum' to openchannel_update schema
  * lightningd: don't complain about unable to estimate fees if not mainnet.
  * lightningd: add force-feerates option.
  * channeld: don't ever use 0 as a feerate.
  * listinvoices: support listing by local offer_id.
  * invoices: display the payer note if it's for local offer, allow in fetchinvoice.
  * offers: include the payer_note field in the invoice if it's in the request.
  * BOLT 12: update to include replace_invoice options.
  * offers: signatures are now optional.
  * features: renumber from 102/103 to 38/39.
  * libplugin: create debug message for notifications
  * pytest: test for autoconnect in different circumstances.
  * pytest: test that we try direct connection even for public nodes.
  * fetchinvoice: try to connect to note if we can't find a path for messages.
  * listinvoice: populate local_offer_id when iterating whole db.
  * listinvoice: don't crash if listinvoice given a non-bolt11 string.
  * fix: remove spammy debug statements from getroute
  * lightningd: print out what errno we got if unexpected in sigchild.
  * closingd: use a more accurate fee for closing fee negotiation.
  * common: log at debug level when we update billboard.
  * lightningd: fix typo in debug statements.
  * pytest: fix weird case in test_closing_different_fees
  * doc: fix
  * sort alphabetically
  * add binaries to gitignore
  * pytest: Add test for keysend extra-tlvs
  * pyln: Add wrapper for the keysend command
  * keysend: Accept a payment with unknown even TLV types
  * keysend: Add `extra-tlvs` option to keysend
  * tlv: Add sorting of the tlvstream
  * jsonrpc: Add parsing for parameter of extra parameters
  * plugin: Add extra TLVs to the invoice_payment hook
  * htlc: Keep the parsed TLV payload around with the htlc_in
  * htlc: Wire extra TLV types into the HTLC onion decoding
  * tlv: Allow passing some extra types to accept when parsing the stream
  * opts: Add option to register extra TLV types to accept
  * pytest: Add test that we can redo closing negotiation even after onchain.
  * channeld: send shutdown_complete even if reestablish_only.
  * openingd: tell lightningd if we get a reestablish.
  * channeld: add a message to read if we only want to reestablish.
  * lightningd: add channel_closed helper, expose find_channel_by_id().
  * common/read_peer_msg: don't try to handle reestablish/reopen.
  * pytest: add test (failing) which allows talking about closed channels.
  * lightningd: always pass closing connections through channeld.
  * pytest: test for closing needing retranmission bug.
  * dev_disconnect: new option to stop using connection, but don't close.
  * tools/check-spelling: Fix grep error on macOS
  * tools/mockup: Fix macOS bash 3 syntax error
  * Update at latest version of lnprototest with the support of channel_type
  * Update lnprototest submodule
  * doc: schema for listconfigs, compare with documentation.
  * lightningd: clean up listconfigs output.
  * doc: schemas for everything else.
  * doc: listpeers schema.
  * tools/fromschema.py: handle deprecated null field, don't create empty lists.
  * doc/schemas: listfunds, listinvoices, listnodes, listoffers
  * doc/schemas: listfunds
  * doc/schemas: getsharedsecret, help, invoice, listchannels, listforwards
  * doc: document how to try to write JSON schemas.
  * doc/schemas: tighten requirements.
  * plugins: add `command` field to subcommand output.
  * listtransactions: don't create a msat field called "satoshis".
  * listpeers: clean up JSON output.
  * pyln.proto: fix receiving unknown fields in TLVs.
  * pyln.proto: fix handling of subtypes in TLVs.
  * EXPERIMENTAL_FEATURES: don't offer to downgrade anchor outputs!
  * cleanup: remove unused pyln-spec symlinks.
  * replace freenode with libera
  * pay: Fix another instance of a crash when we can't find ourselves
  * invoice: allow creation of giant invoices.
  * pyln-testing: check if process died after having read all logs
  * hsm_encryption: merge getline() logic between stdin and non-stdin
  * qa: test hsm encryption password provided from stdin
  * hsmtool: this is 'success', not 'succes'
  * pyln: adds a help text to start plugins manually
  * plugins/bcli: fix uninitialized variable.
  * connectd: fix advertizing for Tor ports.
  * common/test: test wireaddr parsing.
  * lightningd: wait for gossipd to finish initalizing before starting plugins.
  * gossipd: remove routing, listchannels and listnodes infrastructure.
  * gossipd/test: remove routing tests.
  * pyln-client: revert old/new comparisons for getroute, listchannels, listnodes.
  * signmessage: use listnodes instead of gossipd_getnodes_request.
  * invoice: overhaul routehints to use topology.listincoming, cleanup.
  * plugins/topology: listincoming function to help invoices.
  * pyln-client: hack in test that listnodes returns the same old/new.
  * plugins/topology: add listnodes command.
  * common/wireaddr: fromwire_wireaddr_array helper.
  * pyln-client: hack in test that listchannels returns the same old/new.
  * plugins/topology: make listchannels mark disconnected local channels active=false.
  * plugins/topology: listchannels command.
  * pyln-client: hack in test that getroute returns the same old/new.
  * topology: plugin to implement getroute command.
  * common: note that command_fail doesn't return NULL.
  * ccan: update to get RETURNS_NONNULL macro.
  * pytest: fix flake in test_misc.py::test_funding_reorg_* xxremote_lags
  * wire/Makefile: always generate non-exp files.
  * Makefile: `pytest` target should depend on ALL_TEST_PROGRAMS.
  * close: check that destination is going to be accepted.
  * tests: test future segwit versions for withdraw / close.
  * common/json_tok: allow non-v0 segwit addresses.
  * devtools/encodeaddr: tool to create regtest bech32m vectors.
  * common/bech32: update to bech32m reference.
  * lightning/pay: don't crash when trying to send payment down unconfirmed channel.
  * chore: fix compile issue discovered by gcc
  * keysend plugin: make cltv_expiry for keysends slightly more conservative
  * plugin: Add debug log entries when calling and returning from hooks
  * plugin: Add a status field to htlcs in listpeers
  * lightning: Add status field to htlc_in
  * plugin: Add the plugin we're serializing for in the serializer
  * pay: Do not attempt to filter routehints if we can't find outselves
  * pytest: speed up test_opening.py::test_funder_contribution_limits when !DEVELOPER
  * pytest: test that both sides refuse upgrade if not quiescent.
  * pytest: test onchaind handles unilateral and penalty txs on either side of upgrade.
  * channeld: set desired_type to upgrade `option_static_remotekey` if not already.
  * channeld: handle upgrade match.
  * onchaind: handle static_remotekey thresholds.
  * wallet: save thresholds for option_static_remotekey.
  * channeld: send upgradable types, add logging (EXPERIMENTAL_FEATURES)
  * channeld: send current features (EXPERIMENTAL_FEATURES)
  * channeld: send next_to_send if EXPERIMENTAL_FEATURES
  * channel: import upgrade spec.
  * common/features: helper to pretty-print feature bits.
  * channeld: tweak function to allow testing for pending *uncommitted* changes.
  * onchaind: limp along if we cheat.
  * onchaind: don't hand redundant commit_num to handle_unknown_commitment.
  * onchaind: don't rely on knowing option_static_remotekey for unknown commitments.
  * gen/impl_template: fix generation of singleton varsize elements.
  * stop requiring channel and direction on `sendonion` since they're not used.
  * hsm_encryption.c: fix source include order
  * hsm_encryption.c: remove whitespace from line end
  * lightningd: remove duplicate temp term creation
  * hsm_encryption: read from STDIN if not in a TTY
  * pay: Skip the presplitter mod if it'd exhaust our HTLC budget
  * pay: Compute the number of HTLCs needed after presplit correctly
  * plugin/pay: prevent presplitter from dividing if max already tiny.
  * pay: Fix use-after-free issue with routehints in shortlived payments
  * pytest: show problem with pay when not enough HTLCs available.
  * openingd/dualopend: remove send_msg functionality.
  * lightningd: use connectd to send the final error message, not openingd/dualopend
  * connectd: new command to make us send message and close.
  * remove checking for unused "direction" property in sendpay.
  * openingd: return more informative error message for v2 opens
  * tests: cleanup any unfinished/hanging channel opens
  * Revert "pytest: Skip hsm encryption test if we don't have a TTY"
  * reqs: Remove wallycore, no longer needed for CI tests
  * libwally: update to release_0.8.3
  * EXPERIMENTAL: dev-quiesce to initiate (and test) quiescence.
  * EXPERIMENTAL: handle receiving quiescence request.
  * channeld: implement pending_updates()
  * EXPERIMENTAL: import spec for quiescence.
  * doc: document ordering of listpays/listsendpays.
  * pytest: test pay ordering.
  * plugins/pay: sort output payments in listpays
  * wallet: sort listsendpays by ID
  * Suggested code cleanup by TODO comment
  * libhsmd: Do not use the message as the peer ID...
  * libhsmd: Add a simple tx signature test
  * libhsmd: Always use gcc to configure and compile
  * libhsmd: Correctly wrap with `tmpctx` management in libhsmd-python
  * lightningd: check closing tx signature Changelog-None
  * plugins/test/Makefile: fix typo causing build race.
  * doc/schemas: disableoffer, disconnect, feerates, fetchinvoice, fundchannel, fundchannel_cancel, fundchannel_complete, fundchannel_start, fundpsbt, getinfo, getlog, getroute.
  * doc/schemas: delexpiredinvoice, delinvoice, delpay.
  * doc/schemas: decode, decodepay
  * doc/schemas: schema for connect.
  * doc/schemas: create close schema.
  * doc/schemas: add schema for autoclean.
  * doc/schemas: add some simple schemas and generate manpages from them
  * doc/schemas: generate manpage section from schema.
  * tools/fromschema.py: tool to replace start/end markers in markdown with schema.
  * pytest: add schema support for JSON responses.
  * decode: always return "valid" field.
  * close: add "unopened" type if we simply discard channel.
  * libplugin: remove command_success_str function.
  * autoclean: don't return a raw string as result.
  * pytest: don't use command_success_str in test_libplugin.c
  * doc: fix up mangled nroff from mkrd.
  * Makefile: allow postfixes to SHA256STAMP.
  * Makefile: fix $(FORCE) in sub-Makefiles
  * Makefile: update to latest spec.
  * channeld: update test vectors for msat differentiation test.
  * lightningd: option_shutdown_anysegwit is no longer experimental.
  * lightningd: respect anysegwit on dual-funding opens too.
  * fundchannel, multifundchannel: reserve inputs for two weeks, not 12 hours.
  * sendpsbt, fundpsbt, utxopsbt, reserveinputs, unreserveinputs: allow custom number of blocks to reserve.
  * pytest: test double-spending an opening tx input.
  * wallet: add "reserved_to_block" field to listfunds.
  * common: Check chain hash in gossip_timestamp_filter
  * pay: fix corner case where we eliminate our own hint.
  * This should hopefully alleviate the pain of figuring out how to properly quote utxos in fundchannel command :) It took me a while to figure it out and I would be lost without @cdecker s help on IRC.
  * CI: Disable dual-funded tests while they're hanging.
  * pytest: add message check to test_blockheight_disagreement
  * pay: don't wait forever if we're already past deadline.
  * pytest: fix gossip flake in  test_restart_many_payments
  * CI: give nicer names to Ci runners.
  * doc/TOR: remove references to deprecated v2 hidden services
  * options: deprecate v2 mode for autotor
  * Refuse to parse v2 onion addresses without deprecated_apis
  * wireaddr: fix indentation / line breaks for autotor parsing
  * pytest: check nonstandard onion generation.
  * devtools/onion: handle onions which are not 1300 bytes long.
  * "createonion" to accept an optional custom onion_size.
  * readme: fix ubuntu installation instructions
  * Clearer RETURN VALUE
  * added FAQ on getting a PSBT
  * dual-open: save our now updated info about broadcast state
  * rbf-test: confirm that rbf'd inflight is opened and closed as expected
  * nit: add another debug log
  * rbf: when a peer is activated, also keep track of all of its inflights
  * rbf: when a channel is open, remove all the inflights
  * rbf: update the channel's funding_txid to match what's mined
  * inflights: relax assertion channel funding_txid is last inflight txid
  * open-rbf: we broadcast all the commitments for a channel when closed
  * rbf-tests: check every inflight has signed commitment produced
  * inflights: save the whole psbt to the database
  * dev-sign-last-tx: include inflight signed txs
  * listpeers: always show all the inflights
  * listpeers: show the inflight's 'commitment tx' txid
  * rbf: on close, drop every inflight transaction's commitment
  * df-rbf: test that, with enough bumps, we can eventually add to mempool
  * listpeers: add inflights info
  * inflights: add checks that there's actually an inflight
  * df-rbf: order inflights by funding_feerate
  * df-tests: add better explainer for test logic
  * df-test: test for a failed rbf attempt, currently crashes
  * df-tests: re-write test_funding_cancel_race for v2 commands
  * df-tests: re-write the funding wallet corners test for v2
  * df-bugs: only include the `funding` if we're the opener
  * df: differentiate error message between
  * CI: Re-enable experimental build.
  * funder: print reason that we don't contribute funds
  * funder: test for adding utxos, calculating total available
  * funder: subtract the fee of the utxo from the available amount
  * fundpsbt: dont add utxos that are a net-loss
  * funder: add count of utxos we're signing to the logs
  * pytest: disable mpp test which is blocking merges.
  * dijkstra: add chan pointer argument to path scoring.
  * common/dijkstra: remove dijkstra_amount().
  * common/route: route_from_dijkstra returns route_hop array.
  * gossipd / plugin: clean up names in struct route_hop.
  * common/gossip_store: avoid fd pass for new store, use end marker.
  * common/gossmap: reload once we hit end marker.
  * gossip_store: create end marker for EOF.
  * gossmap: fix gossmap_chan_get_announce() and gossmap_node_get_announce().
  * gossmap: function to get channel features bitmap.
  * gossmap: save the offset where the channel updates are, function for details.
  * gossmap: add gossmap_chan_get_capacity() helper.
  * gossmap: remembers when a channel is private.
  * common/json_tok: hoist param_short_channel_id from inside lightningd/
  * plugins/test/run-route-overlong: modern overlong routing test.
  * plugins/libplugin: make headers update-mocks friendly.
  * plugins/libplugin-pay: extreact route function so we can write unit tests.
  * common/test/run-route and run-route-specific: modern gossmap tests
  * fetchinvoice: don't produce invalid JSON on sent_inv timeout.
  * update-mocks: prefer to find function defs from local includes.
  * Makefile: don't let update-mocks run unless DEVELOPER and EXPERIMENTAL_FEATURES.
  * update-mocks: make sure we cover all test programs.
  * update-mocks: don't try to regenerate files.
  * lightningd: attach HTLC timeout to htlc itself, fix gratuitous disconnect bug.
  * pytest: add test for HTLC timeout on failed htlcs.
  * reorganize .gitignore entries across subdirs.
  * gitignore more things.
  * pytest: fix flake in test_reconnect_no_update
  * make: Do not scan contrib for discouraged functions
  * make: Add CPPCHECK_OPTS to allow excluding files from the check
  * libhsmd: Clean up the build descriptors for libhsmd_python
  * libhsmd: Add missing implementation of status functions
  * libhsmd: First working build script for libhsmd-python
  * plugin notifications: minor cleanups.
  * df-test: make flakey test not as flakey
  * df-bugs: if we've already got the funding_locked, dont renotify
  * df-tests: test_coin_movement_notices, make work?
  * df: rework closing logic
  * tests: mark test as requiring developer
  * df-test: v2 has reconnects
  * df-callbacks: dont log as broken, just reconnect
  * df-bug: avoid referencing null channel->owner
  * df: patch for valgrind error
  * df-tests: patch for state == AWAITING_UNILATERAL problem
  * df-tests: Turn on v2 tests on CI
  * tests: explicitly mark tests to run both as v1+v2
  * tests: mark as v1 or v2 openchannel required
  * tests: add marker for v1/v2 channel opens
  * tests: not DEVELOPER -> mark.developer
  * df: anchor outputs are on if EXP_DF
  * tests: move EXP_DF into the testing utils
  * df-tests: remove df_accepter plugin
  * psbt: really hacky patch over libwally's 0-input txs parse fail
  * dual-fund: reconnections were borked, this fixes them
  * funder, startupregtest: fixup default config to be 100
  * df-bugs: rm duplicate call to channeld
  * !fixup
  * bcli: become less aggressive with onchain fee levels.
  * plugins/bcli: make feerate calls more changeable.
  * lightningd: implement --log-timestamps=false.
  * libhsmd: Prefix check_client_capabilities
  * libhsmd: Cleanup the bip32_key_version
  * libhsmd: Finalize encapsulation of hsmd data in libhsmd
  * libhsmd: Migrate bolt12 initialization into hsmd_init
  * libhsmd: Start migrating initialization to hsmd_init
  * libhsmd: Clean up includes in hsmd.c
  * libhsmd: Migrate handle_sign_delayer_payment_to_us
  * libhsmd: Migrate handle_sign_remote_htlc_to_us
  * libhsmd: handle_sign_commitment_tx
  * libhsmd: Migrate handle_sign_penalty_to_us
  * libhsmd: Migrate handle_sign_remote_commitment_tx
  * libhsmd: Migrate handle_sign_remote_htlc_tx
  * libhsmd: Migrate handle_sign_local_htlc_tx
  * libhsmd: Migrate handle_sign_mutual_tx
  * libhsmd: Migrate handle_sign_withdrawal_tx
  * libhsmd: Migrate handle_get_per_commitment_point
  * libhsmd: Migrate handle_channel_update_sig
  * libhsmd: Migrate handle_sign_node_announcement
  * libhsmd: Migrate handle_cannouncement_sig
  * libhsmd: Migrate handle_get_output_scriptpubkey
  * libhsmd: Migrate handle_check_future_secret
  * libhsmd: Migrate handle_ecdh
  * libhsmd: Migrate handle_get_channel_basepoints
  * libhsmd: Migrate handle_sign_invoice
  * libhsmd: Migrate handle_sign_bolt12
  * libhsmd: Add dispatcher function
  * libhsmd: Add status functions to report to whoever is listening
  * libhsmd: Migrate check_client_capabilities to libhsmd
  * libhsmd: Add scaffolding to start separating hsmd from io logic
  * plugins/bcli: strip trailing whitespace appropriately
  * plugins/funder: fix up compilation.
  * docs: Document the custom plugin notifications
  * pay: Add pay_failure notification
  * pay: Add notification for pay_success
  * plugin: Make unannounced notification topics no longer fatal
  * libplugin: Add functions to start and end notifications
  * libplugin: Add notification topics to the manifest response
  * libplugin: Add notification topics to plugin_main
  * cleanup: Make lnprototest run only with DEVELOPER=1
  * plugin: Restrict plugin notifications only to announced topics
  * plugin: Wrap custom notifications in a dict with additional origin
  * plugin: Remember the shortname for a plugin
  * plugin: Move list of notification topics to each plugin
  * plugin: Prevent plugins from registering native notification topics
  * plugin: Implement custom notification dispatch for plugins
  * plugin: Store the notification topics announced by the plugins
  * plugin: Move the notification subscription check into a second phase
  * plugin: Add a list of notification topics registered by plugin
  * tests: add test for funder options
  * pyln-testing: use provided outnum instead of trying to find it
  * funder: handle RBF callback
  * rbf_channel hook: add channel_max_msat parameter
  * funder: `funderupdate` command to see/set configs
  * funder: sanitize inputs
  * contrib: if you're in dev mode, use dual-funding (with matching)
  * funder-test: tests for our policy configurations
  * funder: use listfunds to fetch utxo data
  * funder: add a plugin, `funder`. policies for dual-funding
  * amount: `amount_sat_scale` method
  * openchannel: add missing string args to format string
  * dualfund: set the locktime for the user-provided PSBT
  * openchannel2/rbf hooks: reject if response malformed
  * psbt-open: method to quickly check if has our input
  * openchannel2: add channel_max_msat to openchannel2 hook payload
  * dualopend: don't use final channel_id for accepter_start2
  * plugin-tests: cleanup outdated openchannel2 hook fields
  * tests: remove EXPERIMENTAL_FEATURE flag from openchannel2 hooks
  * libplugin: add no-op command complete function
  * test/run-commit_tx: test static remotekey.
  * test/run-commit_tx: test HTLC differentiation.
  * tests: make run-commit_tx output match the BOLT test vectors more closely
  * channeld: fix test code for tx fee calculation (inside `#ifdef PRINT_ACTUAL_FEE`)
  * bitcoin: allow developer override of signature grinding.
  * pytest: Fix racy `test_unreachable_routehint`
  * docs: Add documentation of --experimental-dual-fund option
  * channeld: check if we want to change fees after sending revocation.
  * channeld: increment fee states properly.
  * channeld: don't ever send back-to-back feerate changes.
  * pytest: fix race in test_penalty_htlc_tx_timeout
  * pytest: make it work with latest bitcoind master branch.
  * lightningd: don't send other messages until we've received version.
  * gossipd: don't start listening to connectd until we get init message.
  * lightningd: don't abort on incorrect versions, but try to re-exec.
  * subd: send versions at startup.
  * status: new message for subdaemons to tell us their versions.
  * CI: make sure we do a fuzzing build.
  * tests/fuzz: update for fmt_amount changes, create pseudorand for fuzzing.
  * dual-funding: rework how funding feerates are passed around
  * dual-funding: bugfix, swapped commitment/funding feerates
  * dual-fund: on witness failure, route through dualopend
  * psbt: temporarily patch over failure to parse the empty tx
  * closingd: handle custommessages
  * dual-fund: update state before checking for 'doneness'
  * peer_control: fix leak false positive.
  * pytest: fix flake in test_v2_open_sigs_restart_while_dead
  * pytest: handle case where funding tx is not tx #1.
  * pytest: fix flake in test_pay_disconnect
  * pytest: fix spurious failure in test_local_basepoints_cache.
  * lnprototests: update to latest, which adds wait for test_query_channel_range
  * ci: turn on proto-tests for the CI builds
  * pyln: Pin mypy to version 0.790 since later has import path issues
  * gci: Remove already included requirements.txt files
  * pyln-spec: Clean up the setup.py files
  * pyln: Change the setup.py file not to import the package
  * make: Setup the PYTHONPATH to include the pyln-spec packages
  * python: Use relative URLs for pyln-{client,proto,testing}
  * make: add lnprototests to check!!
  * gossip: allow us to only look at 1 block
  * make: include lnprototest in pythonpath
  * tests: add submodule for lnprototests (points at branch right now)
  * plugins: remove now-unused single-hook infrastructure.
  * newaddr: don't include "address" field.
  * plugin: always send allow-deprecated-apis in getmanifest.
  * lightningd: remove unused `original_directory` field.
  * chaintopology: remove deprecated urgent/normal/slow feerate display.
  * devtools: add experimental section.
  * pyln: remove deprecated fundchannel/fundchannel_start variants.
  * pyln: remove deprecated pay/sendpay variants.
  * pyln: remove deprecated close variant.
  * close: activate notifications even with deprecated-apis.
  * Makefile: make it easier to check bolt text.
  * doc: remove suffix for included-in-master BOLTs.
  * Makefile: update to latest BOLT versions.
  * pay: Use gossmap for reachability check
  * wire: clean up patch revision files in clean

-------------------------------------------------------------------
Wed Mar 31 10:39:57 UTC 2021 - marec@detebe.org

- Update to version 0.10.0:
  * CHANGELOG.md: update for v0.10.0
  * gossipd: assert we're not blatting the version header.
  * gossip_store: don't make bogus assumption that writes are atomic wrt readers.
  * pyln-proto: make an error message more detailed
  * pyln-proto: write out length of arrays of subtypes to wire
  * dual-funding: introduce racy state
  * v0.10.0-rc2
  * CHANGELOG.md: update for recent changes.
  * lightningd: set "direction" correctly for connect which is already connected.
  * lightningd: get connection direction from connectd.
  * gossipd: fix rolling corruption.
  * df-tests: update to take 'no channel_id' into account; use exp-df flag
  * pytest: fix up rbf tests which use dev-disconnect.
  * features: match up feature names to feature bit
  * dual-funding: convert to runtime flag, --experimental-dual-fund
  * dual-funding: use correct feature bit number!!
  * dual-funding: implies anchor outputs.
  * connectd: clearly differentiate incoming and outgoing paths.
  * test_v2_open_sigs_restart: dont mine blocks until funding tx in mempool
  * df-tests: make bad tests a bit better, maybe
  * common: fix MacOS compile error.
  * ccan: import latest
  * doc: Remove leftover conflict marker in the docs
  * 0.10.0-rc1.
  * CI: Disable EXPERIMENTAL_FEATURES temporarily.
  * plugin: Call invoice_payment hook before the matching notification
  * keysend: Add error when trying to send to self
  * keysend: Fix a use-after-free error
  * channel: initialize inflight->tx_broadcast (EXPERIMENTAL_FEATURES)
  * mfc: turn "UNKNOWN TYPE channel_id" logs into actually the channel id
  * df: more reconnection tests
  * df: actually save the peer's sigs transmission to disk
  * dual-funding: don't not update the state! log the issue and move on with
  * df: don't ignore their sigs, even if we've already seen them
  * df: move from warning to unusual
  * df-broadcasts: use an impermanent marker to make sure we've sent things
  * channel: why were these commas in the first place
  * connect: return address we actually connected to.
  * channeld: allow remote node to exceed their own HTLC count limits.
  * remove duplicated erring_node from paystatus.
  * pytest: fix now-obsolete use of fundchannel_complete via txid.
  * lightningd: don't complain about bad funding PSBT for elements.
  * lightningd/opening_control: deprecate old fundchannel_complete args.
  * txprepare, withdraw: return the PSBT as well as raw tx.
  * python: handle psbt-version of fundchannel_complete, deprecate old.
  * lightningd/opening_control: allow single-arg fundchannel_complete with PSBT
  * lightningd/opening_control: store funding scriptpubkey.
  * lightningd/opening_control: d_o_n_t a_d_d e_x_t_r_a u_n_d_e_r_s_c_o_r_e_s
  * onchaind: see closes when wrong_funding shutdowns are used.
  * close: accept wrong_funding outpoint arg if we negotiated the feature.
  * closingd: add support for handling wrong_funding.
  * channeld: code to send wrong_funding if lightningd says to.
  * channeld: accept the 'wrong_funding' shutdown TLV.
  * bitcoin: add fromwire/towire routines for bitcoin_outpoint.
  * wallet: out "wrong_funding" information in the db for persistence.
  * protocol: add TLV for shutdown message, use 100 as "wrong_funding" outpoint.
  * Experimental option option_shutdown_wrong_funding: help me, I screwed up!
  * typo: information is an uncountable mass noun
  * added the default bitcoin path for macos to startup_regtest.sh
  * contrib: add the dev- options to the config iff DEVELOPER=1 configured
  * mfc: use consolidated error reporting, reduce reliance on json-str
  * mfc: check that we can retry when things go haywire
  * mfc: have error messages for redos be more robust (include why)
  * mfc: add convenience method for determining 'parity'
  * df: add openchannel_abort command
  * df: nit, update to use proper helper json function for channel_id
  * Fix wallet creation in contrib/startup_regtest.sh
  * df: update the openchannel2 parameter 'accepter' -> 'our'
  * df: add missing check for already set scriptpubkey
  * docs: add notes on v2 openchannel plugin hooks
  * nit: change spacing on PLUGIN doc
  * df: add doc for `channel_open_failed` notification
  * df-doc: add docs for openchannel_bump, more checks for valid psbt
  * df-doc: update error codes, make sure they're correct
  * CHANGELOG: add title and namer to last release.
  * mfc: move input validation down to input acceptance
  * mfc: final inversion!
  * mfc: move fundchannel_starts down
  * mfc: move connection beneath funding
  * mfc: invert some more
  * mfc: begin inversion, start at bottom as well as re-try
  * mfc: rm call chain inversions + declarations
  * mfc: invert call-chain, remove declarations
  * mfc: rm declarations; invert call chain
  * mfc: rm declarations, invert ordering
  * mfc: cleanup static declarations/invert call chain
  * mfc: uninvert/remove declarations for mfc cleanups
  * pay: Add functions to tell bolt12 string apart
  * pay: Do not clobber error messages if we fail decoding a bolt11
  * pay: Abort the payment if destination is unreachable
  * pay: Remove routehints with unreachable entrypoints
  * pay: Filter out routehints whose entrypoint is unknown
  * keysend: Set an error message if we abort due to missing TLV
  * libplugin: Introduce `payment_abort` to terminate a payment
  * pay: Do not mark in-flight parts as failed
  * pay: Keysend tries to send even if featurebit 55 isn't set
  * pyln: Fix listfunds call defaulting to spent=False
  * configure: Pick up the correct pytest executable
  * plugin: Add details about which plugin caused a clash in RPC methods
  * plugin: Abort early if we have a misconfiguration in the plugins
  * pyln: Plugins can be nice if invoked from CLI too
  * gci: Disable test for NO_PYTHON
  * wallet: Do not generate basepoints in the hsmd
  * wallet: Load local basepoints from the database alongside the hsmd
  * wallet: Store local channel basepoints when a new channel is created
  * db: Add migration for the local basepoints and the funding pubkey
  * db: Add the migration_context to hold info required by migrations
  * wallet: Add migration to cache local basepoints from the HSMd
  * df-spec: limit allowable inputs/outputs to 252
  * df: fail channel if peer sends witnesses that aren't paid for
  * bitcoin: method for finding weight of 'wally_tx'
  * psbt: mark psbt arg as const for `psbt_compute_fee`
  * df-spec: use an empty bit-set as the basepoint for chan-id at start
  * df-spec: consolidate dual-funding patches, update feerate protocol
  * dual-fund: remove all references to PODLEs
  * hsmd: Ensure the hsmd is initialized before anything else is called
  * plugin: Do not send the internal framed message over the wire
  * connectd: clean up the channel stuffs when we get a reconnect
  * df: add (over zealous?) note about the usage of `psbt_has_req_fields`
  * df-memleak: expose memleak error and fix
  * Revert "df: turn off integration tests that depend on v2 funding"
  * df-tests: check that rbf includes overlapping inputs
  * df-tests: check that multiple RBFs and tx-sigs errors during RBF work
  * df-rbf: test for interrupts during tx construction
  * df-rbf: reconnection tests (init_rbf + ack_rbf)
  * df-tests: happy path rbf test
  * df: cleanup error handling on lightningd side
  * df-rbf: update rejection criteria for tx_sigs
  * listpeers: include feerate info for RBF-candidate channels
  * channel: move inflight + feerate methods to channel.c
  * listpeers: include info on channels that are in-process
  * df: handle funding_locked + tx_signatures messages out of order
  * df: move methods around so we can call them elsewhere
  * rbf: clean up channel on error
  * rbf: consolidate failure paths, use "warnings"
  * df-rbf: separate first-time channel save from update (RBF)
  * df-rbf: only permit the channel initiator to init RBF
  * df: update reserve calculation
  * df-rbf: handle rbf failures in lightningd
  * df-rbf: init an rbf for real, using openchannel_bumpfee
  * listpeers: add latest feerate and actual last fee amount.
  * Makefile: fix parallel build error on clean tree.
  * wire/Makefile: make sure we regen exp files if patches change.
  * df-feerates: send back original + last known feerates
  * df: revert channel state in dualopend
  * df: allow for RBF_INIT in sigs states
  * dualopen: check that peer is connected for json calls
  * df: update channel_id when opening; closing; disconnecting
  * memleak,df: patchup memleak code for v2 channels
  * df, channel: if a channel reconnects, but it's "unsaved" still
  * df: check inflights when deciding whether or not to allow command
  * channel: skip unsaved channels
  * connectd: check for re-connected unsaved channels
  * subd: remove "swap" methods
  * subd: remove ctype (channel_type)
  * df: start of RPC for bumping the fee!
  * df: do the right thing, now that we have a cancellation routine
  * df: move to inflights for sigs/openchannel_signed parts of flow
  * df: move initialization over to unsaved channel
  * df: get rid of unnecessary struct `commit_rcvd`
  * df: helper to find the last (most recent) inflight for a channel
  * df: consolidate callbacks for opener/accepter, move to open_attempt
  * df: method for disconnecting an *unsaved* channel
  * df: add helper for creating an "unsaved" channel
  * df: migrate from "uncommitted_channel" to "open_attempt"
  * df-rbf: hook for rbf_init attempt, called "rbf_channel"
  * channel: remove 'uncommitted_channel' from channel lookup
  * channel: remove `psbt` and `remote_tx_sigs`
  * channel: only delete saved channels from database
  * dual-funding, rbf: reject RBFs that will fail the total-fee rule
  * df-rbf: validate that the candidate funding transaction is valid
  * df-rbf: break out opener commitment codepath, use for rbf
  * df-rbf: opener setup for "interactive" protocol portion
  * df: move out logic for adding funding output to PSBT
  * df-rbf: split out "commitment txs" portion of accepter
  * df-reinit: pass back channel_flags
  * df: put channel_flags onto state
  * df-rbf: start of handling an incoming RBF attempt from peer
  * df-rbf: add method to fail an RBF
  * df-rbf: update wires with ack and fail rbf
  * df-rbf: refactor state for opening attempts
  * rbf: check all inflights for matching transaction data
  * df-rbf: update channel data on depth reached
  * inflight: add a 'channel-inflight' concept, in-progress channel stuffs
  * df: turn off integration tests that depend on v2 funding
  * nit: make comments 80 chars
  * Updated listforwards doc with new parameters
  * Added listforwards test
  * Added index to forwarded_payments.state to speedup lookups using this column
  * Added in_channel,out_channel,state params to listforwards
  * json: fix oom when adding a long string
  * pytest: test rpc_command hook chain
  * doc: make rpc_command hook chainable
  * plugins: make rpc_command hook chainable
  * pytest: reduce test to edgecases for CI.
  * common: support opt_shutdown_anysegwit checks (EXPERIMENTAL_FEATURES).
  * bitcoin/script: use script opcode constants from wally_script.h
  * openingd: check upfront shutdown script.
  * common/shutdown_scriptpubkey: extract shutdown scriptpubkey test.
  * plugin: Fix the custommsg hook not to include the internal prefix
  * pytest: test fee estimates which start working after channel establishment.
  * chaintopology: fix notification first time fee estimate works.
  * plugins/bcli: fake minimum fee if we're in regtest mode.
  * test: Fix memory leak in unit test run-gossmap_local
  * doc: Fix minor markup issues in the newaddr manpage
  * plugin: log self-disable at debug level, other manifest fails at unusual.
  * plugin: add log-level to plugin_kill, make it take format string.
  * lightningd: reap zombies (particularly plugins).
  * lightningd: differentiate cases of plugin death correctly.
  * Minor wording
  * pytest: fix "bad gossip" flake in test_forward_event_notification
  * offers: handle re-fetching the same invoice twice.
  * offers: make 'used' flag more useful.
  * doc: add mpp warnings to lightning-invoice(7)
  * doc: add disableoffer and listoffers manpages.
  * doc: fix up incorrect punctuation in lightning-fundchannel page.
  * contrib: make startup_regtest.sh work for modern bitcoind.
  * gossipd: use modern 'sync_complete' field.
  * doc: update BOLT quotes (to include links for anchor outputs).
  * doc: update BOLT quotes (to include same-transmission-order rule).
  * doc: update BOLT quotes (to include preimage leakage).
  * doc: update BOLT quotes (to include LOW-S-standard rule).
  * gen: Commit derived files for PR #4378
  * db: Set the failonion to the default value on creation
  * db: Set the failonion on channel_htlcs if is is not set
  * df: more descriptive error message
  * psbt: method to calculate fee paid on PSBT
  * df-tests: send payment over opened channel
  * df: patch hole where we wouldn't notify peer of failure
  * df: use simplified version to print json
  * psbt: method to clone a PSBT onto a context
  * tests: test_no_fee_estimate robustify
  * gitignore: ignore libwally-core external directory
  * gitignore: ignore experimental unit test build files
  * Fix typo in doc/BACKUP.md
  * pytest: fix flake in test_no_fee_estimate()
  * pytest: fix pay flake.
  * readme: Replace outdated Travis-CI badge with Github Actions badge
  * make: Add target to check generated/derived files were checked in
  * Regenerate derived files
  * wallet: Fix a potential memory leak when loading state changes
  * pytest: Stabilize test_onchain_feechange
  * pytest: Stabilize test_forward_event_notification
  * pytest: Stabilize funding cancel race by killing in parallel
  * gci: Split test configurations into groups
  * gci: Move the setup and build steps into their own scripts
  * pay: Check for self-payments before attempting to pay
  * plugin: Check that we have a non-empty route in libplugin
  * pytest: Reproduce #4345
  * Regtest does not exist to the CLI
  * Added regtest, example, k and null explanation
  * doc: Update the recommonmark extension for RTD compilation
  * cleanup: Update generated files
  * df-tests: use `excess_as_change`, test two-sided channels better
  * reservations: add weight of fee-output to weight calculation
  * fund/utxopsbt: flag 'excess_as_change' to add a change output for excess
  * pytest: detect warnings, too.
  * common: disallow NULL channel_id to peer_failed_err.
  * common: remove peer_failed in favor of peer_failed_warn/peer_failed_err
  * common: infrastructure to construct warning messages.
  * common: treat all "all-channels" errors as if they were warnings.
  * lightningd: implement receiving warnings.
  * pytest: fix false bad gossip issue in test_forward
  * gossmap: change local API.
  * common: support transitory local map additions to gossmap.
  * common: fix gossmap min/max rounding.
  * common: extract fp16 routines into their own file.
  * check-includes: allow redundant "config.h"
  * pyln-testing: add `scids` param to `wait_for_htlcs`
  * pyln-testing: improve `wait_for` a bit
  * docs: document addgossip API.
  * lightningd: no longer forward failures to gossipd, let caller do it.
  * pay: inject channel updates from errors ourselves.
  * lightningd: addgossip API to inject gossip messages.
  * gossipd: add an internal flag to force a channel update
  * connectd: don't crash if connect() fails immediately.
  * lightningd: disallow --daemon without --log-file.
  * bitcoind: remove v0.9.0-compat for rejecting sendrawtransaction arg.
  * listsendpays: remove deprecated "null" amount_msat.
  * chore: cleanup some nits
  * pytest: peer_connected chainable tests
  * feat: make peer_connected hook chainable
  * doc: openchannel note close_to can only be set once
  * doc: document peer_connected hook chainable
  * chore: fix typo in openchannel hook log
  * pytest: improve test_openchannel_hook_chaining
  * pytest: custommsg chainable tests
  * doc: document custommsg hook now chainable
  * feat: make custommsg hook chainable
  * pyln: Catch OSError when cleaning up test directories
  * travis: Goodbye Travis, hello github actions
  * gci: Stabilize test_forward_event_notification
  * gci: Add the JSON report plugin to the ci configuration
  * pyln: Pretty print RPC calls in the testing framework
  * gci: Give each configuration an CFG value to identify them later
  * gci: Pin mypy to version 0.790 since 0.800 gives strange errors
  * gci: Upload the junit.xml report
  * gci: Switch to the flaky plugin
  * pytest: Stabilize test_forward_stats
  * pytest: Stabilize test_routing_gossip
  * pytest: Give each run of the hsmtool its own pty
  * pytest: Stabilize test_funding_close_upfront
  * pytest: Stabilize test_closing_negotiation_reconnect
  * pytest: Stabilize test_bad_onion
  * pytest: Stabilize test_multiple_channels
  * make: Remove hardcoded timeout to pytest
  * gci: Add pytest.ini in order to randomize the groups
  * gci: Format the build script
  * pyln: Adjust maximum load allowed by the throttler
  * pytest: Parameterize process waits for hsmtool calls
  * pyln: Use a fair FS lock to throttle node startups
  * pytest: Stabilize test_channel_{spendable,receivable}
  * pytest: Stabilize the negotiation tests
  * pytest: Stabilize test_funding_external_wallet_corners
  * pytest: Disable test_v2_open if not developer
  * pytest: Stabilize test_channel_state_changed_bilateral
  * pytest: Stabilize test_setchannelfee_state
  * pytest: Stabilize test_gossip_persistence
  * pytest: Stabilize test_onchain_timeout
  * pyln: Update dependencies for all pyln packages
  * pytest: Stabilize test_penalty_htlc_tx_timeout
  * pytest: Simplify and stabilize test_reconnect_no_update
  * pytest: Skip hsm encryption test if we don't have a TTY
  * gci: Expand matrix to include all CI configurations
  * gci: Add a tester Dockerfile
  * gci: Add basic configuration for Github Actions as CI
  * pyln: Bump pyln version to 0.9.3 before publishing on PyPI
  * pyln: Pin the mypy dependency to 0.790 since 0.800 has a regression
  * git: Ignore some more generated files and artifacts
  * doc: Make the release process a bit more readable
  * make: Explicitly set PYTHON_VERSION=3 for libwally
  * tools: Pretty print the credits
  * tools: Allow versions to either have a v prefix or not
  * doc: Update release process document
  * devtools: Make the raw changelog more readable
  * Fix dockerfiles
  * nit df: correct spelling mistake
  * wallet nit: consolidate stmt free into one line
  * wallet: cleanup fee_states alloc on error

-------------------------------------------------------------------
Fri Jan 22 16:17:31 UTC 2021 - marec@detebe.org

- Update to version 0.9.3:
  * release: Update the changelog for v0.9.3
  * hsmtool: don't streq() on NULL
  * wallet/db.c: Speed up deletion of single peers.
  * Added link to https://lightning.readthedocs.io/
  * changelog: Add v0.9.3rc1..v0.9.3rc2 changes
  * doc/PLUGINS.md: Document the onion_message and onion_message_blinded hooks.
  * lightningd: don't expose (undocumented) experimental-dual-fund.
  * doc: note where experimental-offers is required or affects commands.
  * doc: Manual page for sendonionmessage.
  * lightningd: fix double-free when forking subdaemon fails.
  * fetchinvoice: don't abort() if we try to fetch an invoice from ourselves.
  * travis: Bump number of valgrind configs to 12
  * offers: make it a runtime option.
  * common/bolt12: include correct bolt12 wiregen header.
  * tools/generate-wire.py: include digits in #ifndef idempotent header.
  * libplugin: make init return a string.
  * plugins: allow plugins to disable themselves at startup.
  * lightningd: control onion messages by `experimental-onion-messages` option.
  * wire: Apply onion mesages spec patch even when not experimental.
  * wire: add bolt12_wire.csv
  * wire/Makefile: refactor to allow non-experimental spec patches.
  * doc: Add changelog for version v0.9.3rc1
  * autodata: requests new line number, please
  * df-tests: simultaneous openchannel_init (while in progress)
  * df-tests: test_lightningd_still_loading
  * df-tests: test_disconnect_half_signed + test_reconnect_signed
  * df-tests: test_reconnect_openingd
  * df-tests: test_reconnect_sender_add1, others
  * df-tests: test_reconnect_receiver_add
  * df-tests: test_peerinfo
  * df-tests: test_channel_persistence
  * df-tests: have the df_accepter plugin keep track of attempts
  * df-tests: test_disconnect_opener
  * df-tests: test_forward_local_failed_stats
  * df-tests: if we're using fundbalancechannel, set up plugin
  * df-tests: add `setacceptmaxfunding` to df_accepter plugin
  * pyln-tests: tweak `fundbalancedchannel` to assume peer will match
  * df-tests: test_payment_success|failed_persistence
  * df-tests: make memleak happy by cleaning up `psbt`
  * df-tests: test_io_logging
  * df-tests: test_channel_state_changed_unilateral
  * df-tests: test_channel_state_changed_bilateral
  * df-tests: test_coin_movement_notices
  * df-tests: test_channel_opened_notification
  * df-tests: test_feature_set
  * df-tests: test_plugin_feature_announce
  * df-tests: test_channel_state_change_history
  * df-tests: test_openchannel_hook_error_handling
  * df-tests: test_openchannel_hook_chaining
  * df-tests: test_openchannel_hook
  * df-tests: test_funding_reorg_private
  * df-tests: test_node_reannounce correct features
  * df-tests: test_fail_unconfirmed, duplicate with correct wires
  * df-tests: test_shutdown_awaiting_lockin check correct state
  * df-tests: adjust logsearch/features for test_dataloss_protection
  * df-tests: fixup expected features for dual-funding channels
  * df-tests: test_multifunding_v2_v1_mixed update to use flag
  * df-tests: updates for plugin hook_accepter helper
  * tests: don't enforce daemon name on opening logline
  * df: add flag to signal to run v2 channel open tests
  * pyln-testing: add 'config' method to a node
  * experimental-dual-fund: add config level option for enabling dual-fund
  * df: use dev-env flagged upfront shutdown script
  * df: free psbt on negotiation failed
  * df: add a new 'channel_open_failed' notification
  * df: include channel_id in openchannel2 hook
  * df: don't update local shutdown scriptpubkey from dualopend
  * df: if 'openchannel2' is "rejected" we should send that error
  * df: move callback up
  * df-reconnects: allow tx-sigs in channeld iff we're reconnecting
  * df: state, clean more things up
  * df: actually send a temp-id to the peer in open_channel2 WIP
  * df: assume this is a 'negotiation failure'
  * df: actually run 'reconnect' code
  * df: handle locked in etc in dualopend
  * df: reinitialize dual-funding
  * df: bunch of driveby formatting fixes
  * df-feerates: mimic old behavior if there's no plugin handling
  * df: there's only one state that we should be in for a `dualopend`
  * channel: save the fact that funding_locked was rcvd to disk
  * channel_fallen_behind: break out functionality into two methods
  * db: add flag to database for recving remote's sigs
  * temp_channel_id: move to common
  * dual-fund: use correct 'last_tx'
  * df: handle shutdown (before lockedin) in dualopend
  * df: handle fails
  * subd: keep track of 'channel's type
  * setchannelfee: allow dualopend's "awaiting" state to be valid also
  * feerates: mimic behavior of original opening if feerates not specified
  * billboard: add in billboard updates from dualopend
  * billboard: break out common method for billboard updates
  * dual-open: handle sigs and channel lockin in dualopend, not channeld
  * dual_open: move two functions
  * dual-fund: don't kill dualopend after commitments exchanged
  * channel_control: when we reach depth, for v2 channels, tell dualopend
  * channel-state: add two new states, for dualopend
  * channel_control: rename record_channel_open + expose
  * channel_control: break out function for on_funding_locked
  * dual_open_control: correct name of hook
  * open_command: keep them local to channel
  * autodata: tweak where createinvoice is
  * peer_control: remove PSBT from peer_start_channeld
  * whitespace changes, 80 chars etc
  * channeld: remove peer->psbt
  * subd: swap out the channel + error callback
  * df nit: capitialize acronym
  * df: open_channel -> openchannel
  * df: make sure to end wally alloc
  * df: move tx_sigs from channeld to dualopend
  * fetchinvoice: allow amounts to be specified.
  * offers: convert currency when they request an invoice.
  * offer: allow offers in other currencies if we can convert.
  * common/amount: make fmt_amount_sat / fmt_amount_msat etc take copy.
  * onion_message: support variable-length onion messages.
  * sendinvoice: don't allow separate invoice and command timeouts.
  * doc: fix waitinvoice update.
  * doc: update and fix listinvoices output in man page.
  * sendinvoice: call waitinvoice directly to on invoice payment.
  * lightningd: fix temporary onion_message leak:
  * decode: new generic API to decode bolt11 and bolt12.
  * common/bolt11_json: extract bolt11->json code.
  * offers: split offer send_invoice generation into new JSON command
  * doc: document experimental commands.
  * fetchinvoice: try direct peers if we can't route.
  * lightning/onion_message: hack to allow x-only guesses for first hop.
  * gossipd, channeld: handle onion messages in gossipd so we don't need a channel.
  * fetchinvoice: check we're in the period before attempting to fetch.
  * fetchinvoice: implement timeout.
  * plugins/fetchinvoice: handle sendinvoice timeout, error or payment.
  * plugins/fetchinvoice: implement `sendinvoice` command.
  * lightningd: new api payersign to sign bolt12 message with a payer_key.
  * plugins/offer: handle receiving an invoice in an onion_message.
  * plugin/offers: hoist send_onion_reply into core.
  * plugins/offer: allow `offer` to create `send_invoice`, `refund` and `single_use` offers.
  * sendonion: remove underscores from JSON arg name.
  * pytest: Mark `test_lockup_drain` as disabled
  * doc: Document existence of `erring_direction` in `sendpay` result
  * configure: Prefer pytest over pytest3
  * tests: wait for drop to chain test_onchain_middleman_their_unilateral_in
  * pyln: Add ammag key to onion keyset
  * invoice: add ctlv option.
  * pay: Fix a crash when waitblockheight times out
  * pytest: Reproduce waitblockheight timeout issue #4309
  * json-rpc: Give `waitblockheight` an error code for timeouts
  * Revert "wallet: Remove in-memory utxoset filter"
  * common/json: make json_scan return an error string.
  * lightningd/bitcoind: use json_scan.
  * chaintopology: fix crash if bcli doesn't include errmsg.
  * common: remove now-unused json_delve.
  * libplugin: replace rpc_delve with rpc_scan.
  * plugins: use json_scan.
  * plugins/bcli: convert to json_scan.
  * common: enhance json_scan with simple array helpers.
  * common/json: new helper to scan JSON: json_scan.
  * common: add length-limited versions of json_streq and json_get_member.
  * json_to_psbt: fix API to match other allocating json_to functions.
  * pytest: Test LightningRpc and plugin command notification support
  * pyln: Add notifications support to LightningRpc
  * pyln: Add command notification support for plugins
  * pytest: Add a test for `listinvoices`
  * docs: Document `bolt11` and `payment_hash` arguments of listinvoices
  * jsonrpc: Allow filtering via bolt11 or payment_hash in listinvoices
  * channeld: stop taken() leak.
  * df-mfc: remove guard-rails for failures
  * mfc: avoid off-by-one rounding errors when finding change fee
  * mfc-df: if the psbt we've got has inputs from our peer, remove them
  * mfc-df: if there's an error with a openchannel_signed, fail
  * tests/fuzz: add a fuzz target for hsm_encryption
  * libfuzz: add a NULL-termination in to_string
  * hsmd: cleanup encrypted hsm_secret detection
  * hsmd: regroup hsm_secret decryption logic
  * hsmd: group hsm_secret encryption
  * lightningd: regroup hsm_secret password input logic
  * lightningd: group hsm_secret encryption key derivation
  * lightning: confirm password on hsm_secret encryption
  * hsmtool: use errx() instead of err() everywhere
  * pyln-testing: suppress mypy on FileLock
  * df-plugin: add `signonly` to signing in df_accepter
  * dual_open: neaten spacing for macro
  * df: update an error message to give more info
  * json: allow helper to take/free psbt
  * pyln-client: to_whole_satoshi returns the rounded up satoshi value
  * pyln-client: add missing `min_witness_weight` to fundpsbt/utxopsbt
  * hsmtool: only write 32 bytes to hsm_secret on generatehsm
  * pytest: reproduce issue #4302
  * hsmtool: reuse read_stdin_pass for `generatehsm` passphrase
  * hsmtool: input encryption password from stdin
  * pytest: Really only check DB statements if the env-var is "1"
  * pytest: Disable test_funding_cancel_race on slow machines
  * pyln: Do not rstrip() the return value of .append()
  * pytest: Stabilize test_routing_gossip
  * pyln: Check that the stderr line is not none in pyln-testing tail
  * pytest: Add throttler to limit load on the test system
  * pyln: Add logging to bitcoind RPC calls
  * pyln: Log mempool when we generate blocks in BitcoinD fixture
  * fix memset for route_hop json parsing when no channel_id exists.
  * bcli: print error message in debug log for broadcast failures
  * bcli: only print error if exitcode is non-zero
  * bcli: allocate temp string off of short-lived cmd
  * bcli: print sendrawtx every time (even on failures)
  * plugins/offer and plugins/fetchinvoice: send and recv errors.
  * fetchinvoice: return the next period for recurring offers.
  * invoice: hack in merkle of invoice as "payment_secret" (EXPERIMENTAL_FEATURES)
  * pytest: finally test fetchinvoice send, and offer plugin receive.
  * plugins/fetchinvoice: catch invoice_request reply.
  * plugins/fetchinvoice: plugin to send an invoice_request for a given offer
  * lightningd: low-level createinvoicerequest API (EXPERIMENTAL_FEATURES)
  * hsmd: code to sign bolt12 messages with a tweaked key.
  * plugins/offers: add code to catch invoice_request onion messages.
  * JSON: offers plugin `offer` command.
  * plugin/offers: skeleton for offers plugin (EXPERIMENTAL_FEATURES)
  * common/bolt12: add calculations for offer periods.
  * wire/Makefile: make generated wire files depend on Makefile.
  * Added listfunds test
  * Added spent option to listfunds in pyln-client
  * Added spent option to listfunds
  * setchannelfee: fix crash when channel is not in valid state.
  * add a note to "unknown parameter" error about -k autodetect failure.
  * pyln: add RpcException for finer method failure control.
  * doc/BACKUP.md: Minor typo due to rearranged text.
  * common: change default network to mainnet for all
  * doc/BACKUP.md: Document backup strategies for `lightningd`.
  * cleanups: feedback from Christian Decker review.
  * common/blindedpath: fix type of enctlv.
  * plugins/pay: allow bolt12 invoices (EXPERIMENTAL_FEATURES).
  * pay, wallet: rename internal `bolt11` vars to `invstring`.
  * invoice: handle bolt12 strings if EXPERIMENTAL_FEATURES.
  * lightningd: createinvoice low-level invoice creation command.
  * bolt11: expose routine to parse bolt11 string except signature.
  * lightningd: add low-level offer interfaces.
  * sendpay: optional argument to link local offer.
  * invoice: add an optional local_offer_id.
  * db: offer table.
  * common/iso4217: make find_iso4217 a little more usable.
  * Plugin: support extra args to "start".
  * plugins: support concatenation of multiple args.
  * plugins: remove deprecated string plugin options.
  * common/private_channel_announcement: don't include wire/peer_wiregen directly
  * pytest: check millisatoshi by float raises
  * pytest: test mul and div units for Millisatoshi
  * pyln: fix Millisatoshi div with msat itself
  * pytest: Debug test_lockup_drain
  * tests: Move ecdh stub out of autogenerated stubs
  * tests: Update mocks after breaking them via interleaved merges
  * common/sphinx: remove assertion that onions we parse must be 1366 bytes.
  * common/sphinx: make onionpacket.routinginfo a dynamic member.
  * common/sphinx: make TOTAL_PACKET_SIZE a macro.
  * common/sphinx: eliminate temporary buffer for prefill.
  * common/sphinx: don't use temporary to xor in cipher stream.
  * common/sphinx: don't make copy to compute packet hmac.
  * pytest: Add test for keysend feature support
  * keysend: Check that the destination supports keysend upon init
  * make: have `git submodule update` be recursive
  * pyln: Add TOR and SOCKS5 support in pyln.proto.wire.connect
  * wallet: remove debugging fprintf.
  * hsmd: code to sign a bolt12 merkle root.
  * common/blindedpath: EXPERIMENTAL creation of blinded paths.
  * devtools/bolt12-cli: cheap ripoff of bolt11-cli tool.
  * common/iso4217: define the currency codes.
  * common/bolt12: encode/decode for bolt12 offer, invoice_request and invoice
  * common/bech32_util: simple routines for checksumless bech32 charset usage.
  * common/bolt12_merkle.h: experimental bolt 12 implementation.
  * channeld: hand up onionmessage fields.
  * sendonionmessage: add invoice, invoice_request and invoice_error fields.
  * wire.c: import bolt 12 offers CSV.
  * utf8: handle UTF-8 arrays.
  * gossmap: helper to try to map x-only nodeid into 33-byte pubkey id.
  * bitcoin/pubkey: add pubkey32 primitive for xonly pubkey types.
  * common/json_tok: minor cleanup to bitcoin_outpoint array parsing.
  * bitcoin/tx: fix type of outpoint (n is a u32), simplify json_to_outpoint
  * cli: Add a JSON parsing sanity check before sending request
  * jsonrpc: Forward errors on malformed requests to cli
  * pytest: Add a test to reproduce #4258
  * txprepare: Verify that outputs arg is an array
  * cleanup: Remove stdio header from param.c
  * txprepare: Use param_outpoint_arr helper to validate input
  * json: Add two param functions to parse string arrs and outpoint arrs
  * pyln: Remove deprecated txprepare variant
  * plyn: use math.floor for msat mul and div
  * pyln: fix msat float multiplication
  * pyln: extend msat floating testcases
  * channeld: Fix the shutdown_sent billboard direction
  * pytest: Disable flaky test_fundchannel_start_alternate
  * connectd: add annotation and fix up formatting on connectd/netaddress.c
  * connectd: fix valgrind complaint on FreeBSD
  * doc: fees on listpeers
  * pytest: tests fee_base and fee_ppm on listpeers
  * feat: adds local halfchan fees to listpeers
  * onchaind: cap max_possible_feerate using commitment transaction.
  * onchaind: speed up HTLC matching by skipping identical CLTVs.
  * bitcoin_tx_check: don't rely on tmpctx.
  * onchaind: test stressful input.
  * common/daemon: remove notifiers on root at cleanup.
  * wire/tlvstream: add tlv_make_fields helper to populate ->fields array.
  * tools/generate-wire.py: use helpers.
  * tools/generate-wire: don't use void * pointers for tlv fromwire.
  * plugins/libplugin-pay: expose gossmap for plugin special effects.
  * lightningd: split onion_message hook.
  * channeld: hand input blinding to lightningd.
  * libplugin-pay: don't expose bolt11 details.
  * pyln: Replace undecodeable symbols when tailing logs
  * pytest: Use datetime.strptime instead of  datetime.fromisoformat
  * pyln: Set the prefix in TailableProc
  * plugins: add txprepare to .gitignore
  * peer_htlcs.c: close taken() leak.
  * pytest: recreate wallet on bitcoind restart.
  * channeld: fix gcc warning on gcc 8.3.0 (Debian 8.3.0-6)
  * invoice: fix potential race where invoice is paid/expired while we're calling hook.
  * lightningd/log.c: Fix up handling of SIGHUP.
  * tests/test_misc.py: Add a test for issue #4240.
  * df-mfc: set the minimum input weight to 110 iif v2
  * df-mfc: set protocol type when we know it
  * fundpsbt/utxopsbt: new `min_witness_weight` param
  * bitcoin: break out method to calculate input weight
  * df-tests: use multifundchannel pathways instead of custom plugin
  * df: rename the dual_open wires to match other daemon wires
  * invoice: make invoice_payment hook a multi-user hook.
  * unittest: use common_setup / common_shutdown almost everywhere.
  * common: check for outstanding taken() pointers in common_shutdown.
  * ccan: update ccan/utf-8 to reject NULs embedded in strings.
  * common/json: json_add_stringn helper.
  * libplugin: add command_hook_success helper.
  * json: add json_tok_endswith and json_tok_startswith helpers.
  * gossipd: fix memleak.
  * Makefile: separate check-python targets.
  * JSON-RPC: don't allow any strings which aren't valid UTF-8.
  * common/bolt11: reject bad UTF-8 strings.
  * common/utils: simple utf8 helpers.
  * pyln: failing test msat from float str
  * pyln: fix msat from float str
  * pytest: use default fundamount on two tests
  * pyln: def amount 10**6 for fund- and openchannel
  * external/Makefile: fix parallel build with missing secp headers.
  * lightningd/plugin_hook.c: Make `db_write` a chained hook.
  * lightningd/plugin.c: Make plugin-exclusive loop support multiple plugins.
  * wally: remove wally casts that are no longer needed
  * tx: Remove wally workaround that is no longer needed
  * libwally: update to latest which uses libsecp-zkp submodule
  * df-spec: fail the open if they send us too many tx-collab msgs
  * mfc-psbt: mark all of our inputs as "ours", then only sign those
  * df: pass back 'close_to' for completed/commitment secured channels
  * mfc-df: add 'happy path' tests for the v1+v2 things
  * df-accepter plugin: temporarily dont pass in signpsbt
  * mfc-df: after openchannel_signed is finished, we call finished
  * mfc-df: after psbt signed, send to openchannel_signed if v2s
  * mfc-df: after sigs are collected, go sign the psbt
  * mfc-df: once we've gotten the PSBT finalized, we wait for peer sigs
  * mfc-df: only add outputs for v1 outs; go to openchannel_update if v2s
  * mfc-df: rework how openchannel_update works, callbacks
  * mfc-df: merge openchannel_init/fundchannel_start results
  * mfc-df: have both paths use redo_multifundchannel
  * mfc: consolidate to a single FAILED state
  * mfc-df: track destination's openchannel version
  * mfc: add a 'fail_destination' helper
  * mfc: add happy path-way for v2 in multifundchannel
  * nit,df test plugin: change up how feerate is formatted
  * doc/TOR.md: Add missing instructions to add user to Tor group.
  * htlc.h: move NUM_SIDES to define, not enum member
  * lightningd: remove unused pid_fd member in struct lightningd
  * doc/PLUGINS.md: Fix typo.

-------------------------------------------------------------------
Sat Nov 21 10:29:52 UTC 2020 - marec@detebe.org

- Update to version 0.9.2:
  * Update to v0.9.2
  * release: bump to v0.9.2rc2
  * Revert accidental experimental libwally update from f56266c1c1e135a29124448b822b511ce7f3120b
  * plugins: undeprecate old form of hooks.
  * pay: Cleanup the route applicability checks for channel hints
  * pay: Retry the route computation if we could not apply the chanhints
  * pay: Add a pre-apply check to channel_hint updates
  * pay: Move the chanhint update up to payment_getroute
  * connectd: properly cleanup 'competing' outgoing connections
  * tests: make connection details correct
  * connectd: Update connection list with new address
  * pytest: use the 'contrib' plugin set, not the 'test' set
  * chore: reduce CI load merging a testcase
  * pytest: fix a probable flake on test_channel_opener
  * pytest: tests closer on unilateral close
  * fix: closer set to remote for onchain settlement
  * fix: hangup in plugin rescan
  * v0.9.2rc1 - Changelog
  * htlc_accepted: log BROKEN if both 'failure_msg' + 'failure_onion'
  * refactor htlc_accepted_hook_deserialize.
  * failure_onion: a test that only ensures lightningd doesn't crash.
  * optional "failure_onion" in reply to htlc_accepted hook.
  * pytest: silence pytest warnings about unregistered 'slow_test' marker
  * devtools/decodemsg: handle truncated TLVs properly.
  * gossipd: fix response for large replies.
  * doc: document output descriptors in hsmtool
  * pytest: test onchain wallet descriptor import on bitcoind
  * pytest: create a wallet for bitcoind if none is present
  * hsmtool: add a 'testnet' option to 'dumponchaindescriptors'
  * tools: add a new 'dumponchaindescriptors' command to hsmtool
  * fuzz: add a fuzz target for common/descriptor_checksum
  * fuzz: add a 'to_string' function to libfuzz
  * common: add a descriptor checksum computation module
  * pyln-testing: require bitcoin v0.20 for PSBT handling, and create wallet for v0.21
  * `hsm_secret` generation from a seed-phrase
  * gossipd: minor cleanups.
  * gossipd: simplify large reply code.
  * gossipd: new struct to hold scids and timestamps together.
  * gossipd: use straight counter instead of bitmap for query_channel_range replies.
  * pytest: make test_hook_dep tests more stable.
  * pytest: simplify test_openchannel_hook_chaining now order is deterministic.
  * plugin: sort topological candidates by specified order.
  * pytest: test that we maintain load order unless hook deps require a change.
  * plugins: check order once all plugins have returned from getmanifest.
  * pytest: test that we don't complain about missing dependencies at startup.
  * plugins: deprecate old form of hooks.
  * libplugin: add support for before and after deps on hooks.
  * pyln: add support for dependent hooks.
  * lightningd: actually order the hooks.
  * plugins: allow 'before' and 'after' arrays for hooks.
  * common: allow tal_arr_expand() to have an `n` argument.
  * lightningd/opening_control.c: Remove predeclaration.
  * openingd/: Fail `fundchannel_start` if we already are, or will become, the fundee.
  * tests/test_connection.py: Test for #4108.
  * doc: update channel_state_changed notification
  * pytest: state_change history
  * feat: adds state_changes to listpeers output
  * db: adds a state_change history to database
  * feat: adds timestamp to state_change notification
  * rpc: adds json_add_timeiso helper
  * pytest: test opener and closer of listpeers
  * rpc: adds opener and closer to listpeers channels
  * db: persist channel closer and state change cause
  * pytest: channel state change cause and message
  * feat: adds state change cause and message
  * lightningd: fix similar race in `stop`.
  * lightningd: fix crash if we abort after enabling notifications.
  * doc: move "next_onion" and "shared_secret" to inside "onion".
  * dual_open: correct silent enum conversions
  * df: move tx_role functions (used in next patch)
  * bitcoin/signature: wrap libwally call.
  * chore: fixes a cppcheck false positive
  * wire: remove declaration of towire_tlvs since its implementation is already removed
  * travis: Add a pytest run with EXPERIMENTAL_FEATURES=1
  * pyln: Bump cryptography dependency to 3.2 due to upstream bug
  * wallet: Remove orphan statements.po file
  * pyln-proto: Add compactsize alias for varint_{encode,decode}
  * nit: lightningd.c: fix "Richard Stevens' advice"
  * doc: STYLE.md fix "parameters get"
  * lightningd: note whether payment secret is used or not.
  * gossmap: fix reutrn of gossmap_xxx_has_feature, rename.
  * df: rename 'feerate_per_kw' to 'feerate_per_kw_commitment'
  * df: Pass new feerate options through to plugin, set reasonable bounds
  * df: incorporate a few spec changes -- serial_id is now 64-bits
  * nit: lightningd.c: Fix a couple of SATTS comments
  * dev-force-features: adds a second valid format for forcing features
  * features: add 'feature_bit_sub', which will subtract/unset bits
  * features: have clear_feature_bit correctly resize bitfield
  * features: reorg, going to use elsewhere soon
  * Makefile: fix bashism in NO_PYTHON
  * Makefile: fix typo and wrong path in external/Makefile to properly remove objects with "make clean"
  * Makefile: add status_levels.c to $(COMMON_SRC_NOGEN)
  * Makefile: add $(LIGHTNINGD_SRC_NOHDR) to $(ALL_C_SOURCES) for "make clean" to work properly
  * chore: optimize postgres binary lookup
  * dualopend: handle dev-memleaks; fix placement of return on DEV options
  * dualopend: re-order 'handle_dev_memleak' occurrence
  * df: finalize redeemscript at the same time as witness stack
  * script: break out redeemscript->scriptsig function
  * doc: update HACKING.md
  * doc: typo in lightning-setchannelfee.7
  * close: add notification for slow closes.
  * lightningd: infrastructure for internal notifications.
  * pytest: add notifications to tests.
  * lightning-cli: print notifications (with '# ' prefix) if received.
  * pyln: handle (ignore) notifications, and add notify_msg to send them.
  * libplugin: ignore incoming notifications.
  * libplugin: support for sending notifications.
  * lightningd: forward notifications from plugins if enabled.
  * JSON-RPC: notifications command.
  * common/json_stream: add generic double-cr helper.
  * ccan: update to latest version, get json_out_finished update.
  * common: add routines for log level names.
  * lightningd: clean up close code now force is always true.
  * pyln: Adds type annotations to zbase32 functions
  * pyln: Moves old zbase32 test from primitives
  * pyln: Adds tests to zbase32
  * pyln: Adds one-liner docs to zbase32 functions
  * pyln: Improve zbase32 encoding / decoding
  * Makefile: fix dependencies for check-pyln-%
  * Makefile: make check-includes check all the non-generated files.
  * Makefile: unify generated files definition.
  * doc: add a document about our fuzz testing integration
  * fuzz: add a runner Python script for fuzz targets
  * configure: allow to run with UB sanitizer
  * fuzz: add a fuzz target for initial_channel
  * contrib: remove ASAN suppressions
  * fuzz: add a fuzz target for the close tx
  * fuzz: add a fuzz target for channel_id derivation
  * fuzz: add a fuzz target for common/bip32
  * fuzz: add a fuzz target for common/bigsize
  * fuzz: add a target for base32/64 encoding
  * common: remove b64_decode
  * fuzz: add a target for common/bech32
  * amount: correctly parse amount strings we generate
  * fuzz: add a fuzz target for amounts parsing
  * build: introduce a fuzzing mode
  * mfc: blackbox test for commitment vs funding tx feerates
  * tx,bugfix: correct signature length estimate
  * mfc: use declared constants
  * mfc: Add a `commitment_feerate` optional parameter to multifundchannel
  * opening: use correct dust_limit for reserve floor
  * df, channeld: cleanup how psbt signalling works
  * df, bugfix: wait til after we've saved the channel to do this
  * dual-open,openchannel_update: include the index of the funding output
  * psbt: save the index of the change on the 'parent'
  * df: add notification for receiving peer's funding tx sigs
  * dual-fund: rework where we send our tx-sigs message, allow peers in
  * channel.psbt: make non-const
  * channeld-df: only send our sigs if we've got them
  * channeld-df: actually check serial_id of input when setting sigs
  * common: cleanups suggested by Christian Decker's review.
  * plugins/libplugin-pay: use gossmap.
  * libplugin-pay: incorporate gossip store.
  * plugins/pay: fix leak on failed new payments.
  * common/gossmap: digest private channel information too.
  * gossip_store: make private channels more similar to channel_announcement
  * pytest: test that route can see private channels.
  * gossmap: implement feature tests
  * common/gossmap: fix gossmap_node_get_announce() on unannounced nodes.
  * gossip_store: don't copy old delete markers on startup compact.
  * route: return NULL if destination is unreachable.
  * dijkstra: fix heap ordering.
  * df, bugfix: use tal_wally around an allocation
  * df, nit: make this error message a little bit more informative
  * df, bugfix: set the reserve correctly on the channel
  * df, bugfix: dont free the `uc` yet
  * df: Pass the serial_id of the funding output to openchannel_init caller
  * df: simplify `check_balances`, add spec quotes
  * dualopend, nit: move some lines to be within 80chars
  * dualfund: rearrange things so that the wire-dependent calls are separate
  * nit: move changeset_get_next to inside EXPERIMENTAL_FEATURES flag
  * feerate: remove duplicate method
  * psbt: hoist up `psbt_add_serials`, so we can use it elsewhere
  * psbt-finalized: hoist method to common
  * json nit: use const for json_add_psbt
  * json: add channel_id helper
  * psbt: have the unknown map 'add' be a 'set' instead
  * elementsd: disable dual-funding test; don't add non-witness utxo
  * df-open: use channel_id for openchannel_update and openchannel_signed
  * dualopen: use separate wire for passing updated PSBTs back to dualopend
  * dualopend: reverse polarity of send_next
  * dual-fund: test (turned off) and plugin for executing an openchannel
  * psbt: new methods for generating serial_ids for an input/output
  * channel: save funding_psbt to database
  * df-open: send the tx-sigs from channeld, check that we send it at the
  * df-channeld: broadcast funding tx, once we get tx_sigs from peer
  * peer_control: move open_command up to where channeld can get it,
  * dual-open: use tx_roles, not side, as switch
  * psbt: method for extracting witness stacks
  * df-open: preliminary handling for tx_sigs message
  * df-open: commands to update a PSBT or submit a signed PSBT
  * df-open: add a 'open_commands' list to stash pending opens around in
  * peer_channeld: pass over PSBT, remove second message
  * df-open: pathway for getting a commit back from peer
  * dualfund: Pass in expected remote's serial parity
  * dualfund: opener, openchannel_init command (1/3)
  * tx_roles: pull up roles, rename
  * dualopend: use status_failed, not peer_failed
  * psbt: add the full transaction for the utxo in a psbt
  * dual-fund: remove flag for option_anchor_outputs
  * dual-fund: check the max feerate also, not just min feerate
  * psbt: add helper to set the non-witness utxo for an input
  * psbt_open: method for adding a witness_stack to a psbt input
  * wires: towire/fromwire for wally_tx
  * db: add helper for db_col_psbt
  * common: pull up `param_psbt`
  * removed unwanted lines and added punctuation marks
  * chore: adds env NO_PYTHON check to Makefiles
  * Add OpenBSD instructions to INSTALL.md  (#4136)
  * test: simplify test for close_to
  * tests,fundchannel: return the result from the fundchannel rpc call
  * test, fundchannel: pass kwargs down to fundchannel command
  * fundchannel: take a 'close_to' address
  * mfc: allow a 'close_to' address to be passed in
  * openingd: patch test_opening_tiny_channel under EXP_FEAT
  * doc: reorder --mainnet before --testnet
  * doc: Add missing signet to --help and man
  * Update configure
  * channeld: order htlcs by id before retransmission.
  * pytest: add test for HTLC ordering.
  * channeld: log broken message if we receive HTLCs out of order.
  * lightningd: fix crash when we try to send fail_htlc msg to onchaind.
  * pyln: utils:BitcoinD: add -wallet="test" option
  * options: remove unused 'commit-fee-min/max' options.
  * plugins: use "slow" feerate for mutual close negotiation.
  * pyln: Plugin methods and hooks refuse to set results twice
  * pyln: Add logging handler that passes records to lightningd
  * pytest: fix overzealous removal of directories on failure.
  * travis: Specify pytest-rerunfailures==9.1 to avoid regression
  * travis: Consolidate pytest options to cli options
  * travis: Allow environment to specify $PYTEST_PAR
  * make: Include the $PYTEST_OPTS when running pytest
  * pyln: Remove any logging handlers at teardown to avoid logging error
  * pytest: Check for connection close and reset errors in timeout test
  * pytest: fix flaky test if one side hasn't processed close yet.
  * travis: Enable TEST_CHECK_DBSTMTS=1 mode for one of the configs
  * db: Fix statement expansion bugs found through dblog mode
  * pytest: Verification mode of expanded stmts for the db_write hook
  * fix: broken SQL statement in wallet db_set_utxo
  * pytest: fix flaky test.
  * pyln-client: listpayments -> listpays
  * pytest: fix experimental test.
  * pytest: Don't give up on the first psql connection error
  * pytest: Stabilize test_penalty_htlc_tx_timeout
  * pyln: Decode process output once before storing it
  * pytest: Stabilize test_setchannelfee_{restart,zero}
  * travis: Add blinker dependency
  * Fix pytest major version
  * pyln: Add pytest to type ignores
  * pytest: Make LightningNode.fund_channel more resilient
  * pytest: Cleanup test_gossip_ratelimit
  * pytest: Don't start 3 nodes in test_gossip_ratelimit
  * pyln: Add type-annotations to pyln-proto
  * make: Enable mypy checks on pyln-testing
  * pyln: Add mypy typing exceptions for external dependencies
  * make: Set $PYTHONPATH once
  * pyln: Use pyln-client Makefile for checks
  * pyln: Parametrize and unify Makefiles for pyln package
  * chore: reduce log buffer from 100MB to 10MB
  * travis: Re-enable the postgres configuration again
  * pytest: Reduce the db_provider fixture scope to function
  * pyln: Allow the base test directory to contain some files
  * pyln: Start each postgres DB in its own sub-directory
  * travis: Reduce reruns to 2 and early failure on test failure
  * pytest: Rename all fund_channel to fundchannel
  * plugins: generate list of plugins more atomically, respect V=1 and --quiet.
  * build: run update-mocks.
  * configure: allow to run clang with ASAN
  * pytest: Add test for failcode conversion
  * fix: openchannel_hook log BROKEN on dup close_to
  * pyln: Migrate from binascii.hexlify to bytes.hex
  * pyln: Add code to unwrap an encrypted onion at the intended node
  * pyln: Add a warning that pyln-proto is not safe for production use
  * pyln: Implement sphinx onion packet generation in python
  * nit: doc/lightningd-config.5: Remove redundancy
  * Update comment regarding signet using tb now
  * Updating signet chainparams for the latest PoW fix
  * bolt11: have caller supply preferred chain.
  * bitcoin/chainparams: signet uses the same P2PKH and P2SH version bytes as testnet.
  * utils: use a cleaner pattern to capture wally allocations.
  * bitcoin/: neaten use of libwally base58 and bas64 routines.
  * Makefile: work with shasum -a as well as sha256sum.
  * pytest: Add test for key-value style postgresql DSNs
  * db: Add support for key-value pair DSNs in postgresql
  * Remove varint typedef for bigsize
  * lightningd: don't hand around partially-assembled channel_info.
  * lightningd: separate fee_states out of struct channel_info.
  * dual_open: don't release uc here, it gets freed elsewhere
  * dual-fund: call daemon_shutdown only
  * dual_open: alignment nit
  * dual_open: memleak problem with fee_states
  * dual_open_control: nit, reword comment
  * dual_open: split logic for deserializing a changed vs signed PSBT
  * psbt_txid: it's possible a psbt may already have the finalized scriptsig
  * dualopend: tiny billboard capitalization change
  * dualopend: check that we're not exceeding max allowable capacity
  * dualopend: use status failed instead of peer failed
  * pyln: Rename LightningNode.fund_channel to fundchannel
  * pyln: Add type annotations to lightning.py
  * pyln: Add type-annotations to plugin.py
  * pyln: Fix two formatting string not matching parameters
  * pyln-client: Add support to monkey patch the JSONEncoder
  * pyln: Add stubs to generate documentation for pyln-client
  * Travis: disable postgres test.
  * topo: Do not keep txids in memory indefinitely
  * common/memleak: simplify and document API.
  * pytest: don't test for memleaks under valgrind.
  * common: don't suppress leak detection for libwally allocations.
  * memleak: make "_notleak" names less powerful.
  * common: enforce that we have collected all wally allocations.
  * bitcoin: use tal_gather_wally() so we don't leave unattached allocations.
  * common: add tal_gather_wally() function to reparent libwally objs.
  * bitcoin/psbt: psbt_input_add_unknown/psbt_output_add_unknown needs a tal ctx.
  * bitcoin/psbt: psbt_finalize needs a tal ctx.
  * bitcoin/psbt: wallt_tx_output needs a tal ctx.
  * bitcoin/psbt: psbt_txid needs a tal ctx.
  * bitcoin/tx: trivial cleanups.
  * bitcoin/psbt: attach destructors to wally allocations to avoid leaks.
  * bitcoin/psbt: more const pointers.
  * dual-openingd: msg_type should be dualopend_wire not u8
  * db: Fix size mismatch on postgres in a migration
  * configure: clean up tmpfile if we fail.
  * configure: refuse to create config.vars without any database.
  * lightningd: really remove relative plugins dirs.
  * lightningd: remove deprecated result for `plugin stop`.
  * lightningd: remove deprecated rpc_command hook return.
  * lightningd: remove deprecated return for `db_write` hook.
  * lightningd: remove deprecated per_hop_v0 in htlc hook.
  * lightningd: remove deprecated plugin entries.
  * update SHA256STAMPs using sorted dependencies
  * Makefile: sort input filenames to SHA256STAMP
  * listpeers: show correct amounts for starting funding allocation
  * contrib: make bitcoin polling and gossip propagation snappier
  * doc: correct weight numbers for fundpsbt
  * memleak: 'generify' the memleak calling to code for openingd/dualopend
  * repro: Add missing Dockerfiles
  * repro: Allow dashes in the version number
  * docker: Bump OS version to debian buster

-------------------------------------------------------------------
Sun Oct 11 09:32:52 UTC 2020 - marec@detebe.org

- Update to version 0.9.1:
  * Ready for release!
  * common/amount: fix OpenBSD compile warning.
  * lightningd: don't declare local vars stdin and stdout.
  * pyln: Sets remote_pubkey for LightningConnection if node is not the initiator
  * CHANGELOG.md: 0.9.1rc2
  * doc: note default proxy port.
  * pytest: test connection timeout.
  * connectd: implement connection timeout (60 seconds).
  * plugins/pay: handle case where amount_msat is 'null'.
  * Travis: spread the load a little more.

-------------------------------------------------------------------
Sun Oct 11 09:25:07 UTC 2020 - marec <marec@detebe.org>

- initial package build
openSUSE Build Service is sponsored by