mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 01:43:36 +01:00
build: remove --enable-experimental-features / EXPERIMENTAL_FEATURES
Changelog-EXPERIMENTAL: Build: all experimental features are now runtime-enabled; no more ./configure --enable-experimental-features Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
c11ae1aa34
commit
e7d4c3175a
1
.github/scripts/build.sh
vendored
1
.github/scripts/build.sh
vendored
@ -7,7 +7,6 @@ export CC=${COMPILER:-gcc}
|
||||
export COMPAT=${COMPAT:-1}
|
||||
export TEST_CHECK_DBSTMTS=${TEST_CHECK_DBSTMTS:-0}
|
||||
export DEVELOPER=${DEVELOPER:-1}
|
||||
export EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-0}
|
||||
export PATH=$CWD/dependencies/bin:"$HOME"/.local/bin:"$PATH"
|
||||
export PYTEST_OPTS="--maxfail=5 --suppress-no-test-exit-code ${PYTEST_OPTS}"
|
||||
export PYTEST_PAR=${PYTEST_PAR:-10}
|
||||
|
3
.github/workflows/bsd.yml
vendored
3
.github/workflows/bsd.yml
vendored
@ -14,7 +14,6 @@ jobs:
|
||||
env:
|
||||
DEVELOPER: 1
|
||||
VALGRIND: 0
|
||||
EXPERIMENTAL_FEATURES: 0
|
||||
COMPAT: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@ -22,7 +21,7 @@ jobs:
|
||||
id: test
|
||||
uses: vmactions/freebsd-vm@v0.1.5
|
||||
with:
|
||||
envs: 'DEVELOPER VALGRIND EXPERIMENTAL_FEATURES COMPAT'
|
||||
envs: 'DEVELOPER VALGRIND COMPAT'
|
||||
usesh: true
|
||||
prepare: |
|
||||
pkg install -y \
|
||||
|
62
.github/workflows/ci.yaml
vendored
62
.github/workflows/ci.yaml
vendored
@ -97,7 +97,6 @@ jobs:
|
||||
env:
|
||||
COMPAT: 1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
ASAN: 1
|
||||
UBSAN: 1
|
||||
VALGRIND: 0
|
||||
@ -137,26 +136,15 @@ jobs:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
include:
|
||||
- CFG: gcc-dev1-exp1
|
||||
- CFG: gcc-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPILER: gcc
|
||||
- CFG: gcc-dev1-exp0
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 0
|
||||
COMPILER: gcc
|
||||
- CFG: gcc-dev0-exp1
|
||||
- CFG: gcc-dev0
|
||||
DEVELOPER: 0
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPILER: gcc
|
||||
- CFG: gcc-dev0-exp0
|
||||
DEVELOPER: 0
|
||||
EXPERIMENTAL_FEATURES: 0
|
||||
COMPILER: gcc
|
||||
# While we're at it let's try to compile with clang
|
||||
- CFG: clang-dev1-exp1
|
||||
- CFG: clang-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPILER: clang
|
||||
steps:
|
||||
- name: Checkout
|
||||
@ -175,7 +163,6 @@ jobs:
|
||||
env:
|
||||
VALGRIND: ${{ matrix.VALGRIND }}
|
||||
DEVELOPER: ${{ matrix.DEVELOPER }}
|
||||
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
||||
COMPILER: ${{ matrix.COMPILER }}
|
||||
COMPAT: 1
|
||||
CFG: ${{ matrix.CFG }}
|
||||
@ -213,56 +200,37 @@ jobs:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
include:
|
||||
- NAME: gcc-dev1-exp1
|
||||
CFG: gcc-dev1-exp1
|
||||
- NAME: gcc-dev1
|
||||
CFG: gcc-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
COMPILER: gcc
|
||||
TEST_NETWORK: regtest
|
||||
- NAME: gcc-dev1-exp0
|
||||
CFG: gcc-dev1-exp0
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 0
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
COMPILER: gcc
|
||||
TEST_NETWORK: regtest
|
||||
- NAME: gcc-dev0-exp1
|
||||
CFG: gcc-dev0-exp1
|
||||
- NAME: gcc-dev0
|
||||
CFG: gcc-dev0
|
||||
DEVELOPER: 0
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
COMPILER: gcc
|
||||
TEST_NETWORK: regtest
|
||||
- NAME: gcc-dev0-exp0
|
||||
CFG: gcc-dev0-exp0
|
||||
DEVELOPER: 0
|
||||
EXPERIMENTAL_FEATURES: 0
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
COMPILER: gcc
|
||||
TEST_NETWORK: regtest
|
||||
# While we're at it let's try to compile with clang
|
||||
- NAME: clang-dev1-exp1
|
||||
CFG: clang-dev1-exp1
|
||||
- NAME: clang-dev1
|
||||
CFG: clang-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
COMPILER: clang
|
||||
TEST_NETWORK: regtest
|
||||
# And of course we want to test postgres too
|
||||
- NAME: postgres
|
||||
CFG: gcc-dev1-exp1
|
||||
CFG: gcc-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPILER: gcc
|
||||
TEST_DB_PROVIDER: postgres
|
||||
TEST_NETWORK: regtest
|
||||
# And don't forget about elements (like cdecker did when
|
||||
# reworking the CI...)
|
||||
- NAME: liquid
|
||||
CFG: gcc-dev1-exp1
|
||||
CFG: gcc-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPILER: gcc
|
||||
TEST_NETWORK: liquid-regtest
|
||||
TEST_DB_PROVIDER: sqlite3
|
||||
@ -292,7 +260,6 @@ jobs:
|
||||
env:
|
||||
VALGRIND: ${{ matrix.VALGRIND }}
|
||||
DEVELOPER: ${{ matrix.DEVELOPER }}
|
||||
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
||||
COMPILER: ${{ matrix.COMPILER }}
|
||||
COMPAT: 1
|
||||
CFG: ${{ matrix.CFG }}
|
||||
@ -315,9 +282,8 @@ jobs:
|
||||
ELEMENTS_VERSION: 22.0.2
|
||||
RUST_PROFILE: release # Has to match the one in the compile step
|
||||
VALGRIND: 1
|
||||
CFG: gcc-dev1-exp1
|
||||
CFG: gcc-dev1
|
||||
DEVELOPER: 1
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
PYTEST_OPTS: --test-group-random-seed=42 --timeout=1800
|
||||
needs:
|
||||
- compile
|
||||
@ -366,10 +332,10 @@ jobs:
|
||||
- name: Download build
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: cln-gcc-dev1-exp1.tar.bz2
|
||||
name: cln-gcc-dev1.tar.bz2
|
||||
|
||||
- name: Unpack build
|
||||
run: tar -xvjf cln-gcc-dev1-exp1.tar.bz2
|
||||
run: tar -xvjf cln-gcc-dev1.tar.bz2
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
|
2
.github/workflows/macos.yaml
vendored
2
.github/workflows/macos.yaml
vendored
@ -10,7 +10,6 @@ jobs:
|
||||
env:
|
||||
DEVELOPER: 1
|
||||
VALGRIND: 0
|
||||
EXPERIMENTAL_FEATURES: 1
|
||||
COMPAT: 0
|
||||
strategy:
|
||||
fail-fast: true
|
||||
@ -42,7 +41,6 @@ jobs:
|
||||
env:
|
||||
VALGRIND: ${{ matrix.VALGRIND }}
|
||||
DEVELOPER: ${{ matrix.DEVELOPER }}
|
||||
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
||||
COMPILER: ${{ matrix.COMPILER }}
|
||||
COMPAT: ${{ matrix.COMPAT }}
|
||||
PYTEST_PAR: ${{ matrix.PYTEST_PAR }}
|
||||
|
1
.github/workflows/prototest.yaml
vendored
1
.github/workflows/prototest.yaml
vendored
@ -29,7 +29,6 @@ jobs:
|
||||
-e TARGET_HOST=${{ matrix.TARGET_HOST }} \
|
||||
-e VALGRIND=${{ matrix.valgrind }} \
|
||||
-e DEVELOPER=1 \
|
||||
-e EXPERIMENTAL_FEATURES=1 \
|
||||
-e COMPAT=0 \
|
||||
-e PYTEST_PAR=2 \
|
||||
-e PYTEST_OPTS="--timeout=300" \
|
||||
|
4
Makefile
4
Makefile
@ -719,11 +719,11 @@ pyln-release-%:
|
||||
cd contrib/pyln-$* && $(MAKE) prod-release
|
||||
|
||||
# These must both be enabled for update-mocks
|
||||
ifeq ($(DEVELOPER)$(EXPERIMENTAL_FEATURES),11)
|
||||
ifeq ($(DEVELOPER),1)
|
||||
update-mocks: $(ALL_TEST_PROGRAMS:%=update-mocks/%.c)
|
||||
else
|
||||
update-mocks:
|
||||
@echo Need DEVELOPER=1 and EXPERIMENTAL_FEATURES=1 to regenerate mocks >&2; exit 1
|
||||
@echo Need DEVELOPER=1 to regenerate mocks >&2; exit 1
|
||||
endif
|
||||
|
||||
$(ALL_TEST_PROGRAMS:%=update-mocks/%.c): $(ALL_GEN_HEADERS) $(EXTERNAL_LIBS) libccan.a ccan/ccan/cdump/tools/cdump-enumstr config.vars
|
||||
|
@ -714,10 +714,8 @@ char *process_interactivetx_updates(const tal_t *ctx,
|
||||
case WIRE_PING:
|
||||
case WIRE_PONG:
|
||||
case WIRE_STFU:
|
||||
#if EXPERIMENTAL_FEATURES
|
||||
case WIRE_SPLICE:
|
||||
case WIRE_SPLICE_ACK:
|
||||
#endif
|
||||
return tal_fmt(ctx, "Unexpected wire message %s",
|
||||
tal_hex(ctx, msg));
|
||||
}
|
||||
|
@ -1,9 +1,5 @@
|
||||
COMMON_TEST_SRC := $(wildcard common/test/run-*.c)
|
||||
|
||||
ifeq ($(EXPERIMENTAL_FEATURES),1)
|
||||
COMMON_TEST_SRC += $(wildcard common/test/exp-run-*.c)
|
||||
endif
|
||||
|
||||
COMMON_TEST_OBJS := $(COMMON_TEST_SRC:.c=.o)
|
||||
COMMON_TEST_PROGRAMS := $(COMMON_TEST_OBJS:.o=)
|
||||
|
||||
|
@ -153,13 +153,6 @@ STRUCTEQ_DEF(ripemd160, 0, u);
|
||||
#define IFDEV(dev, nondev) (nondev)
|
||||
#endif
|
||||
|
||||
#if EXPERIMENTAL_FEATURES
|
||||
/* Make sure that nondev is evaluated, and valid, but is a constant */
|
||||
#define IFEXPERIMENTAL(exp, nonexp) (0 ? (nonexp) : (exp))
|
||||
#else
|
||||
#define IFEXPERIMENTAL(exp, nonexp) (nonexp)
|
||||
#endif
|
||||
|
||||
/* Context which all wally allocations use (see common/setup.c) */
|
||||
extern const tal_t *wally_tal_ctx;
|
||||
|
||||
|
6
configure
vendored
6
configure
vendored
@ -142,7 +142,6 @@ set_defaults()
|
||||
CC=${CC:-cc}
|
||||
CDEBUGFLAGS=${CDEBUGFLAGS--std=gnu11 -g -fstack-protector-strong}
|
||||
DEVELOPER=${DEVELOPER:-0}
|
||||
EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-0}
|
||||
COMPAT=${COMPAT:-1}
|
||||
STATIC=${STATIC:-0}
|
||||
ASAN=${ASAN:-0}
|
||||
@ -198,8 +197,6 @@ usage()
|
||||
echo " Prefix for make install"
|
||||
usage_with_default "--enable/disable-developer" "$DEVELOPER" "enable" "disable"
|
||||
echo " Developer mode, good for testing"
|
||||
usage_with_default "--enable/disable-experimental-features" "$EXPERIMENTAL_FEATURES" "enable" "disable"
|
||||
echo " Enable experimental features"
|
||||
usage_with_default "--enable/disable-compat" "$COMPAT" "enable" "disable"
|
||||
echo " Compatibility mode, good to disable to see if your software breaks"
|
||||
usage_with_default "--enable/disable-valgrind" "(autodetect)"
|
||||
@ -260,8 +257,6 @@ for opt in "$@"; do
|
||||
--prefix=*) PREFIX="${opt#--prefix=}";;
|
||||
--enable-developer) DEVELOPER=1;;
|
||||
--disable-developer) DEVELOPER=0;;
|
||||
--enable-experimental-features) EXPERIMENTAL_FEATURES=1;;
|
||||
--disable-experimental-features) EXPERIMENTAL_FEATURES=0;;
|
||||
--enable-compat) COMPAT=1;;
|
||||
--disable-compat) COMPAT=0;;
|
||||
--enable-valgrind) VALGRIND=1;;
|
||||
@ -482,7 +477,6 @@ add_var POSTGRES_INCLUDE "$POSTGRES_INCLUDE"
|
||||
add_var POSTGRES_LDLIBS "$POSTGRES_LDLIBS"
|
||||
add_var VALGRIND "$VALGRIND"
|
||||
add_var DEVELOPER "$DEVELOPER" $CONFIG_HEADER.$$
|
||||
add_var EXPERIMENTAL_FEATURES "$EXPERIMENTAL_FEATURES" $CONFIG_HEADER.$$
|
||||
add_var COMPAT "$COMPAT" $CONFIG_HEADER.$$
|
||||
add_var PYTEST "$PYTEST"
|
||||
add_var STATIC "$STATIC"
|
||||
|
@ -7,7 +7,6 @@ export CC=${COMPILER:-gcc}
|
||||
export COMPAT=${COMPAT:-1}
|
||||
export TEST_CHECK_DBSTMTS=${TEST_CHECK_DBSTMTS:-0}
|
||||
export DEVELOPER=${DEVELOPER:-1}
|
||||
export EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-0}
|
||||
export PATH=$CWD/dependencies/bin:"$HOME"/.local/bin:"$PATH"
|
||||
export PYTEST_OPTS="--maxfail=5 --suppress-no-test-exit-code ${PYTEST_OPTS}"
|
||||
export PYTEST_PAR=${PYTEST_PAR:-10}
|
||||
|
@ -24,7 +24,7 @@ a few sanitizers for bug detections as well as experimental features for an exte
|
||||
coverage (not required though).
|
||||
|
||||
```
|
||||
./configure --enable-developer --enable-experimental-features --enable-address-sanitizer --enable-ub-sanitizer --enable-fuzzing --disable-valgrind CC=clang && make
|
||||
./configure --enable-developer --enable-address-sanitizer --enable-ub-sanitizer --enable-fuzzing --disable-valgrind CC=clang && make
|
||||
```
|
||||
|
||||
The targets will be built in `tests/fuzz/` as `fuzz-` binaries, with their best
|
||||
|
@ -236,7 +236,7 @@ have a line with one of the following prefixes:
|
||||
not yet removed
|
||||
- `Changelog-Fixed: ` if a bug has been fixed
|
||||
- `Changelog-Removed: ` if a (previously deprecated) feature has been removed
|
||||
- `Changelog-Experimental: ` if it only affects --enable-experimental-features builds, or experimental- config options.
|
||||
- `Changelog-Experimental: ` if it only affects experimental- config options.
|
||||
|
||||
In case you think the pull request is small enough not to require a changelog
|
||||
entry please use `Changelog-None` in one of the commit messages to opt out.
|
||||
|
@ -664,28 +664,18 @@ considered important.
|
||||
|
||||
Experimental options are subject to breakage between releases: they
|
||||
are made available for advanced users who want to test proposed
|
||||
features. When the build is configured _without_ `--enable-experimental-features`,
|
||||
below options are available but disabled by default.
|
||||
Supported features can be listed with `lightningd --list-features-only`
|
||||
|
||||
A build _with_ `--enable-experimental-features` flag hard-codes some of below
|
||||
options as enabled, ignoring their command line flag. It may also add support for
|
||||
even more features. The safest way to determine the active configuration is by
|
||||
checking `listconfigs` or by looking at `our_features` (bits) in `getinfo`.
|
||||
features.
|
||||
|
||||
* **experimental-onion-messages**
|
||||
|
||||
Specifying this enables sending, forwarding and receiving onion messages,
|
||||
which are in draft status in the [bolt][bolt] specifications (PR #759).
|
||||
A build with `--enable-experimental-features` usually enables this via
|
||||
experimental-offers, see below.
|
||||
This is automatically enabled by `experimental-offers`.
|
||||
|
||||
* **experimental-offers**
|
||||
|
||||
Specifying this enables the `offers` and `fetchinvoice` plugins and
|
||||
corresponding functionality, which are in draft status ([bolt][bolt] #798) as [bolt12][bolt12].
|
||||
A build with `--enable-experimental-features` enables this permanently and usually
|
||||
enables experimental-onion-messages as well.
|
||||
corresponding functionality, which are in draft status ([bolt][bolt] #798) as [bolt12][bolt12], as well as `experimental-onion-messages`.
|
||||
|
||||
* **fetchinvoice-noconnect**
|
||||
|
||||
|
@ -862,10 +862,6 @@ static struct feature_set *default_features(const tal_t *ctx)
|
||||
OPTIONAL_FEATURE(OPT_ZEROCONF),
|
||||
OPTIONAL_FEATURE(OPT_CHANNEL_TYPE),
|
||||
OPTIONAL_FEATURE(OPT_ROUTE_BLINDING),
|
||||
#if EXPERIMENTAL_FEATURES
|
||||
OPTIONAL_FEATURE(OPT_ANCHOR_OUTPUTS),
|
||||
OPTIONAL_FEATURE(OPT_ONION_MESSAGES),
|
||||
#endif
|
||||
};
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE(features); i++) {
|
||||
|
@ -864,7 +864,7 @@ static const struct config testnet_config = {
|
||||
/* 1 minute should be enough for anyone! */
|
||||
.connection_timeout_secs = 60,
|
||||
|
||||
.exp_offers = IFEXPERIMENTAL(true, false),
|
||||
.exp_offers = false,
|
||||
|
||||
.allowdustreserve = false,
|
||||
|
||||
@ -938,7 +938,7 @@ static const struct config mainnet_config = {
|
||||
/* 1 minute should be enough for anyone! */
|
||||
.connection_timeout_secs = 60,
|
||||
|
||||
.exp_offers = IFEXPERIMENTAL(true, false),
|
||||
.exp_offers = false,
|
||||
|
||||
.allowdustreserve = false,
|
||||
|
||||
|
@ -135,7 +135,7 @@ if [ -z "${TARGETS##* tarball *}" ]; then
|
||||
# Materialize the version in the Makefile, allows us to skip
|
||||
# the git dependency
|
||||
sed -i "/^VERSION=/c\VERSION=v${BARE_VERSION}" "Makefile"
|
||||
./configure --disable-valgrind --enable-developer --enable-experimental-features
|
||||
./configure --disable-valgrind --enable-developer
|
||||
make doc-all check-gen-updated clean
|
||||
find . -name .git -type d -print0 | xargs -0 /bin/rm -rf
|
||||
)
|
||||
|
3
wire/.gitignore
vendored
3
wire/.gitignore
vendored
@ -1,3 +0,0 @@
|
||||
|
||||
# Ignore experimental wiregen
|
||||
*_exp_*
|
Loading…
Reference in New Issue
Block a user