Skip to content

Remove Kconfig dependency modelling#20438

Merged
maribu merged 13 commits intoRIOT-OS:masterfrom
MrKevinWeiss:pr/kconfig/dep/removal
Mar 28, 2024
Merged

Remove Kconfig dependency modelling#20438
maribu merged 13 commits intoRIOT-OS:masterfrom
MrKevinWeiss:pr/kconfig/dep/removal

Conversation

@MrKevinWeiss
Copy link
Copy Markdown
Contributor

@MrKevinWeiss MrKevinWeiss commented Feb 28, 2024

Contribution description

As discussed on the forum and agreed upon in the VMA among other forms of communications we are removing the dependency modelling of Kconfig. As it was never part of the "production" RIOT and only available as an experimental feature (TEST_KCONFIG=1) I do not think we need to deprecate it.

This PR should remove everything dependency related but preserve all "kconfig for configurations" aspects.

It is a step in the direction of having "one source of truth" for configurations, many configurations that were only exposed when TEST_KCONFIG=1 are now exposed in a regular build (ie, depends on MODULE_* -> depends on USEMODULE_). These configurations are still not being used by default (for any test that does not have an app.config file present) as to not slow down the CI before the release but will be switched very soon.

There are quite some things needed in order to do this right:

  • Remove all obvious files that only are related to dep modelling (ideally just a script)
  • Remove all MODULE_ and PACKAGE_ configs and symbol references within remaining files
  • Alter all implemented CONFIG_ that have been implemented under the dep modelling to use the make dep modelling (ie. MODULE_ -> USEMODULE_)
  • Do manual fixes and alterations as needed
  • Cleanup any source issues for files that might be removed
  • Clean up the make system to remove all unneeded logic
  • Update the documentation to indicate the current state
  • Inject all the HAS_CPU* type features

Testing procedure

Green murdock and a lot of looking through

Issues/PRs references

Needs #20497

@github-actions github-actions bot added Platform: native Platform: This PR/issue effects the native platform Platform: MSP Platform: This PR/issue effects MSP-based platforms Platform: ARM Platform: This PR/issue effects ARM-based platforms Area: network Area: Networking Area: tests Area: tests and testing framework Area: pkg Area: External package ports Platform: AVR Platform: This PR/issue effects AVR-based platforms Area: drivers Area: Device drivers Area: timers Area: timer subsystems Area: tools Area: Supplementary tools Area: arduino API Area: Arduino wrapper API Area: LoRa Area: LoRa radio support Area: boards Area: Board ports Area: SAUL Area: Sensor/Actuator Uber Layer Platform: ESP Platform: This PR/issue effects ESP-based platforms Platform: RISC-V Platform: This PR/issue effects RISC-V-based platforms labels Feb 28, 2024
Copy link
Copy Markdown
Contributor

@benpicco benpicco left a comment

Choose a reason for hiding this comment

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

You probably want so squash that

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

Some tests are still failing, ya I will squash it... I guess it would be near impossible to review.

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

@benpicco Ok, I squashed the best I could... Still not so easy to review but if all tests are passing I guess it should be OK 😉

@Teufelchen1 A bit after soft feature freeze but I hope it is OK. Keeping up with rebasing can be a bit of a challenge.

Copy link
Copy Markdown
Member

@maribu maribu left a comment

Choose a reason for hiding this comment

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

Thx for addressing this!

Set to enable code in RIOT that does safety checking which might not be
needed in a production environment but helps in the development
process.
comment "Ideally, make a PR to add them to the Kconfig."
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❤️

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

maybe we can jump the queue on this one...

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

rebased

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

oh boy am I sad... OK back at it.

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

Not only does the gcoap test fail, but also it seems like there are some issues with make info-boards-supported. Further investigation is needed... tomorrow.

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

hmmm, way less of a problem than I though... just a conflict in values for SDCARD_GENERIC_MTD_OFFSET, I guess generally it should be 1?

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

Hmmm the failed test builds on my machine. Maybe something to do with rust on a CI machine?

@maribu
Copy link
Copy Markdown
Member

maribu commented Mar 28, 2024

🎉 Thx!

@MrKevinWeiss
Copy link
Copy Markdown
Contributor Author

I didn't think I would make it. Nice that it is finally over. I will also prioritize any issues or bugs this may have causes.

@benpicco
Copy link
Copy Markdown
Contributor

Thank you for bringing the Kconfig transition to a close!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: arduino API Area: Arduino wrapper API Area: BLE Area: Bluetooth Low Energy support Area: boards Area: Board ports Area: build system Area: Build system Area: CoAP Area: Constrained Application Protocol implementations Area: core Area: RIOT kernel. Handle PRs marked with this with care! Area: cpu Area: CPU/MCU ports Area: doc Area: Documentation Area: drivers Area: Device drivers Area: examples Area: Example Applications Area: Kconfig Area: Kconfig integration Area: LoRa Area: LoRa radio support Area: network Area: Networking Area: pkg Area: External package ports Area: SAUL Area: Sensor/Actuator Uber Layer Area: sys Area: System Area: tests Area: tests and testing framework Area: timers Area: timer subsystems Area: tools Area: Supplementary tools Area: USB Area: Universal Serial Bus CI: high priority If set, builds of this PR will be queued before others CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms Platform: AVR Platform: This PR/issue effects AVR-based platforms Platform: ESP Platform: This PR/issue effects ESP-based platforms Platform: MSP Platform: This PR/issue effects MSP-based platforms Platform: native Platform: This PR/issue effects the native platform Platform: RISC-V Platform: This PR/issue effects RISC-V-based platforms

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants