Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.murdock: drop Kconfig compile check #20211

Merged
merged 1 commit into from
Jan 3, 2024

Conversation

benpicco
Copy link
Contributor

@benpicco benpicco commented Dec 22, 2023

Contribution description

We want to remove Kconfig, so don't fail CI when the Kconfig build no longer aligns with the classic make based build.

Testing procedure

CI should continue functioning for non-Kconfig builds.

Issues/PRs references

https://forum.riot-os.org/t/last-chance-for-kconfig-dependency-modelling/4068

@benpicco benpicco requested a review from kaspar030 as a code owner December 22, 2023 16:47
@github-actions github-actions bot added the Area: CI Area: Continuous Integration of RIOT components label Dec 22, 2023
@benpicco benpicco added Area: Kconfig Area: Kconfig integration CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Dec 22, 2023
@benpicco benpicco changed the title .murdock: drop KConfig compile check .murdock: drop Kconfig compile check Dec 22, 2023
@benpicco benpicco force-pushed the murdock-drop_kconfig branch from 4dec247 to 8cdb367 Compare December 22, 2023 16:48
@github-actions github-actions bot removed the Area: Kconfig Area: Kconfig integration label Dec 22, 2023
@riot-ci
Copy link

riot-ci commented Dec 22, 2023

Murdock results

✔️ PASSED

ad70211 .murdock: drop Kconfig compile check

Success Failures Total Runtime
8101 0 8101 17m:43s

Artifacts

@MrKevinWeiss
Copy link
Contributor

MrKevinWeiss commented Dec 22, 2023

I think there are a bunch more things that can be removed here but lets wait until the specified date (2024) though from the complete silence of the thread I would not expect much.

@benpicco
Copy link
Contributor Author

benpicco commented Dec 22, 2023

I was just wondering whether we should still put work into resolving Kconfig issues in open PRs (#19540, #19786) or if those should just wait until the new year.

@benpicco benpicco added CI: full build disable CI build filter CI: no fast fail don't abort PR build after first error CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: no fast fail don't abort PR build after first error CI: full build disable CI build filter CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Dec 22, 2023
@benpicco benpicco added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Jan 2, 2024
@benpicco
Copy link
Contributor Author

benpicco commented Jan 2, 2024

@MrKevinWeiss it's 2024

@MrKevinWeiss
Copy link
Contributor

@MrKevinWeiss it's 2024

Wow, you really don't waste time. OK I will have a look :)

Copy link
Contributor

@MrKevinWeiss MrKevinWeiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably we should get rid of everything?

If you want I can directly push?

diff --git a/.murdock b/.murdock
index e0edec251a..5a5f8d8ee1 100755
--- a/.murdock
+++ b/.murdock
@@ -40,125 +40,6 @@ esac
 # is in
 : ${TEST_BOARDS_LLVM_COMPILE:="iotlab-m3 native nrf52dk mulle nucleo-f401re samr21-xpro slstk3402a"}
 
-: ${TEST_KCONFIG_BOARDS_AVAILABLE:="
-adafruit-itsybitsy-m4
-arduino-due
-arduino-leonardo
-arduino-mkrzero
-arduino-mega2560
-arduino-nano
-atxmega-a1-xplained
-atxmega-a3bu-xplained
-avr-rss2
-avsextrem
-bastwan
-bluepill
-b-l475e-iot01a
-cc1352-launchpad
-cc2650-launchpad
-derfmega128
-dwm1001
-esp32-ci
-esp32-heltec-lora32-v2
-esp32-olimex-evb
-esp32c3-ci
-esp32c3-devkit
-esp32s3-ci
-esp32s3-devkit
-esp32s2-ci
-esp32s2-devkit
-esp8266-ci
-esp8266-esp-12x
-hamilton
-hifive1
-mbed_lpc1768
-mega-xplained
-microbit
-mulle
-native
-nrf52840dk
-nrf9160dk
-nucleo-f072rb
-nucleo-f103rb
-nucleo-f207zg
-nucleo-f334r8
-nucleo-f429zi
-nucleo-f767zi
-nucleo-g071rb
-nucleo-g474re
-nucleo-l011k4
-nucleo-l073rz
-nucleo-l152re
-nucleo-l433rc
-nucleo-l552ze-q
-pba-d-01-kw2x
-p-nucleo-wb55
-qn9080dk
-remote-revb
-rpi-pico
-same54-xpro
-samr21-xpro
-seeedstudio-gd32
-slstk3400a
-sltb001a
-slwstk6220a
-stm32f723e-disco
-stm32mp157c-dk2
-waspmote-pro
-waveshare-nrf52840-eval-kit
-weact-f401ce
-z1
-"}
-
-: ${TEST_KCONFIG_ENFORCE_APP_GROUPS:="
-examples/hello-world
-tests/build_system/external_board_dirs
-tests/drivers/b*
-tests/drivers/f*
-tests/drivers/g*
-tests/drivers/h*
-tests/drivers/i*
-tests/drivers/j*
-tests/drivers/l*
-tests/drivers/o*
-tests/drivers/p*
-tests/drivers/q*
-tests/drivers/r*
-tests/drivers/s*
-tests/drivers/t*
-tests/drivers/u*
-tests/drivers/v*
-tests/net/ieee802154_hal
-tests/periph/*
-tests/pkg/elk
-tests/pkg/uzlib
-tests/sys/cb_mux*
-tests/sys/congure_*
-tests/sys/prng_*
-tests/sys/trace
-tests/sys/xtimer_*
-tests/sys/ztimer_*
-"}
-
-# This list prevents boards from being tested by the TEST_KCONFIG_TEST_ALLOWLIST
-# This should only be used for boards that require a lot of work, such as,
-# requiring modelling of a clock tree.
-# As a rule of thumb, only add boards here if there are not differences in
-# modules or packages.
-# Eventually this list will be removed...
-#
-: ${TEST_KCONFIG_BOARD_BLOCKLIST:="
-"}
-
-# This list will force all boards that are not in the TEST_KCONFIG_BOARD_BLOCKLIST
-# to be tested on the apps. The purpose is to prevent new boards from skipping
-# the kconfig implementations.
-: ${TEST_KCONFIG_TEST_ALLOWLIST:="
-examples/hello-world
-tests/drivers/saul
-tests/drivers/mtd_mapper
-"}
-
 : ${TEST_WITH_CONFIG_SUPPORTED:="examples/suit_update tests/drivers/at86rf2xx_aes"}
 
 export RIOT_CI_BUILD=1
@@ -251,54 +132,6 @@ fi
 
 CFCR_ARGS="--upstreambranch ${CI_BASE_COMMIT}"
 
-get_supported_kconfig_board_app() {
-    local board=$1
-    local appdir=$2
-    if is_in_list "${board}" "${TEST_KCONFIG_BOARD_BLOCKLIST}"; then
-        return 1
-    fi
-
-    # On nightlies run all possible kconfig tests on all boards
-    # Normally we don't want to do this as it adds quite a bit to build time
-    # and the subset of boards we are testing for are pretty good at catching
-    # any bugs...
-    # This will be over one day, I promise.
-    if [ ${NIGHTLY} -eq 1 ]; then
-        if is_in_list "${appdir}" "${TEST_KCONFIG_ENFORCE_APP_GROUPS}"; then
-            return 0
-        fi
-        if [ -f "${appdir}/app.config.test" ]; then
-            return 0
-        fi
-    fi
-    if is_in_list "${appdir}" "${TEST_KCONFIG_TEST_ALLOWLIST}"; then
-        return 0
-    fi
-    if is_in_list "${board}" "${TEST_KCONFIG_BOARDS_AVAILABLE}"; then
-        if is_in_list "${appdir}" "${TEST_KCONFIG_ENFORCE_APP_GROUPS}"; then
-            return 0
-        fi
-        if [ -f "${appdir}/app.config.test" ]; then
-            return 0
-        fi
-    fi
-    return 1
-}
-
-kconfig_module_packages_diff() {
-    local board=$1
-    local appdir=$2
-
-    make clean --no-print-directory -C ${appdir} BOARD=${board}
-    mmp=$(make --no-print-directory info-modules info-packages -C ${appdir} BOARD=${board})
-
-    make clean --no-print-directory -C ${appdir} BOARD=${board}
-    kmp=$(TEST_KCONFIG=1 make --no-print-directory info-modules info-packages -C ${appdir} BOARD=${board})
-
-
-    bash -c "diff <(echo \"${mmp}\") <(echo \"${kmp}\")"
-}
-
 # if RUN_TESTS is unset (e.g., not passed from the outside),
 # set to 1 if NIGHTLY=1 or if the label "CI: run tests" is set,
 # otherwise set 0.
@@ -531,14 +364,12 @@ compile() {
     # reduces disk IO.
     export CCACHE_TEMPDIR="$(pwd)/.ccache/tmp"
 
-    # compile without Kconfig
     BOARD=${board} make -C${appdir} clean
     CCACHE_BASEDIR="$(pwd)" BOARD=$board TOOLCHAIN=$toolchain RIOT_CI_BUILD=1 \
         make -C${appdir} all test-input-hash -j${JOBS:-4}
     RES=$?
 
-    # test hash is used to cache test results, not for comparing binaries
-    # generated with and without KConfig
+    # test hash is used to cache test results
     test_hash=$(test_hash_calc "$BINDIR")
 
     # run tests

We want to remove Kconfig, so don't fail CI when the Kconfig build
no longer aligns with the classic make based build.
@benpicco benpicco force-pushed the murdock-drop_kconfig branch from 8cdb367 to ad70211 Compare January 3, 2024 10:32
Copy link
Contributor

@MrKevinWeiss MrKevinWeiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, lets see what happens! ACK!

@MrKevinWeiss MrKevinWeiss enabled auto-merge January 3, 2024 11:25
@MrKevinWeiss MrKevinWeiss added this pull request to the merge queue Jan 3, 2024
Merged via the queue into RIOT-OS:master with commit 0cf9e55 Jan 3, 2024
26 checks passed
@benpicco benpicco deleted the murdock-drop_kconfig branch January 3, 2024 21:19
@benpicco
Copy link
Contributor Author

benpicco commented Jan 3, 2024

Thank you for helping to bring the Kconfig migration to a close!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: CI Area: Continuous Integration of RIOT components CI: no fast fail don't abort PR build after first error CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants