Skip to content

Split default/config into base_config and config modules#158

Open
devin-ai-integration[bot] wants to merge 7 commits into
develfrom
devin/1780702894-split-base-config
Open

Split default/config into base_config and config modules#158
devin-ai-integration[bot] wants to merge 7 commits into
develfrom
devin/1780702894-split-base-config

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jun 5, 2026

Copy link
Copy Markdown
Related Issue(s) N/A
Has Unit Tests (y/n) n
Documentation Included (y/n) n
Generative AI was used in this contribution (y/n) AI

Change Description

Splits default/config into two modules:

  • default/base_config: Fw_Types-independent configuration (AcConstants.fpp, FpConfig.fpp, FpConfig.h, FpConfig.hpp, FPrimeNumericalConfig.h, FpConstants.fpp, OsCfg.fpp, PlatformCfg.fpp). Registered with BASE_CONFIG.
  • default/config: Component/port-level configuration that depends on default_base_config.

Also adds backward-compatibility forwarding headers at the old config/ paths (FpConfig.hpp, FpConfig.h, FPrimeNumericalConfig.h) so external projects continue to compile without changes.

Rationale

Breaks a circular dependency: base config must be independent of Fw_Types so components can depend on Fw_Types without circular deps. Some dependency orderings can cause a build of something before its dependent files exist. Migrated from the throw-away-cmake-hacks branch.

Testing/Review Recommendations

  • All in-repo CI checks pass (Build, UTs, CMake, Analyze, FppTest, Coverage, Integration Tests, Cross Compilation)
  • markdown-link-check failure is a Docker Hub connectivity timeout (infrastructure), unrelated to changes

Future Work

  • The FppConstantsAc.hpp split (auto-generated in both modules) may need further work for external projects that include constants from both modules via a single header

AI Usage (see policy)

Cherry-picked commit from throw-away-cmake-hacks branch and fixed include path issues, added backward-compat forwarding headers, and updated cmake test data for the new module. AI assisted with identifying broken includes, resolving CI failures, and adding forwarding headers.

IAMAI

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/fe00f7ee46834961a40301de75020375


Open in Devin Review

LeStarch and others added 4 commits June 5, 2026 23:41
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
@devin-ai-integration

Copy link
Copy Markdown
Author
Original prompt from michael.d.starch

In the lestarch branch, throw-away-cmake hacks, the default/config directory has been split into two modules. This change is not yet on fprime. Can you updated your branch from upstream nasa devel, and then make a PR that migrates those changes.

@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

devin-ai-integration[bot]

This comment was marked as resolved.

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Coverage report — base devel

No baseline branch coverage/devel found. This run becomes the seed once it lands on devel.

Overall (line): 81.23% (no baseline)
Regression threshold: 0.50% (line).

Regressions

(none over threshold)

Modules changed

(no measurable change)

New modules

Module Line Function Branch
CFDP/Checksum 71.15 57.14 44.44
Drv/AsyncByteStreamBufferAdapter 100.00 100.00 100.00
Drv/ByteStreamBufferAdapter 100.00 100.00 80.00
Drv/Ip 44.32 57.38 21.25
Drv/TcpClient 75.00 100.00 31.03
Drv/TcpServer 84.72 100.00 44.26
Drv/Udp 68.09 90.91 28.12
Fw/Buffer 81.25 89.47 43.75
Fw/DataStructures 98.12 97.14 57.03
Fw/Dp 94.83 96.67 47.92
Fw/FilePacket 75.24 89.06 41.43
Fw/Log 71.43 72.41 34.48
Fw/Logger 100.00 100.00 62.50
Fw/SerializableFile 90.00 100.00 44.44
Fw/Time 88.62 85.48 50.00
Fw/Tlm 53.76 60.00 24.29
Fw/Types 54.75 57.62 29.67
Os 18.08 19.52 12.01
Os/Generic 89.10 96.30 48.02
Os/Generic/Types 92.45 91.67 60.94
Os/Posix 62.67 84.21 40.99
Svc/ActiveRateGroup 100.00 100.00 60.87
Svc/ActiveTextLogger 79.05 90.00 53.85
Svc/AssertFatalAdapter 94.74 100.00 58.70
Svc/BufferAccumulator 88.00 94.12 54.79
Svc/BufferLogger 92.62 86.96 57.46
Svc/BufferManager 99.05 100.00 55.93
Svc/BufferRepeater 91.67 100.00 55.56
Svc/ChronoTime 100.00 100.00 50.00
Svc/CmdDispatcher 96.97 91.67 52.60
Svc/CmdSequencer 93.89 97.12 56.64
Svc/CmdSplitter 100.00 100.00 54.55
Svc/ComLogger 97.37 91.67 59.15
Svc/ComSplitter 100.00 100.00 66.67
Svc/ComStub 98.51 100.00 59.76
Svc/DpCatalog 78.00 100.00 42.92
Svc/DpManager 97.44 100.00 52.27
Svc/DpWriter 97.58 90.00 62.07
Svc/FileDownlink 84.15 90.91 45.29
Svc/FileManager 88.41 93.33 50.45
Svc/FileUplink 92.78 96.55 54.78
Svc/FileWorker 90.29 100.00 47.53
Svc/FprimeDeframer 100.00 100.00 58.04
Svc/FprimeFramer 100.00 100.00 42.19
Svc/FprimeRouter 88.89 100.00 48.65
Svc/FpySequencer 86.45 99.02 51.84
Svc/GenericHub 100.00 100.00 50.29
Svc/Health 100.00 100.00 60.00
Svc/LinuxTimer 97.06 100.00 47.06
Svc/OsTime 70.00 83.33 37.80
Svc/PassiveRateGroup 100.00 100.00 52.50
Svc/PolyDb 100.00 100.00 42.50
Svc/PosixTime 100.00 100.00 50.00
Svc/PrmDb 92.20 90.00 51.29
Svc/RateGroupDriver 100.00 100.00 62.50
Svc/SeqDispatcher 73.08 80.00 49.18
Svc/StaticMemory 100.00 100.00 55.00
Svc/SystemResources 98.63 100.00 55.00
Svc/TlmChan 82.40 85.71 48.57
Svc/TlmPacketizer 92.54 100.00 54.46
Svc/Version 96.10 100.00 54.91
Utils 19.93 26.44 14.53
Utils/Types 92.11 95.83 58.45

Modules without UTs

CFDP/Checksum/GTest, Drv/ByteStreamDriverModel, Drv/Interfaces, Drv/LinuxGpioDriver, Drv/LinuxI2cDriver, Drv/LinuxSpiDriver, Drv/LinuxUartDriver, Drv/Ports, Drv/Ports/DataTypes, FppTestProject/FppTest/interfaces, FppTestProject/FppTest/topology/async, FppTestProject/FppTest/topology/components/Comp, FppTestProject/FppTest/topology/components/Framework, FppTestProject/FppTest/topology/components/Receiver, FppTestProject/FppTest/topology/components/Sender, FppTestProject/FppTest/topology/guarded, FppTestProject/FppTest/topology/ports, FppTestProject/FppTest/topology/sync, FppTestProject/FppTest/topology/top_ports, FppTestProject/FppTest/topology/types, Fw/Cmd, Fw/Com, Fw/Comp, Fw/FilePacket/GTest, Fw/Fpy, Fw/Interfaces, Fw/Obj, Fw/Port, Fw/Ports/CompletionStatus, Fw/Ports/Ready, Fw/Ports/Signal, Fw/Ports/SuccessCondition, Fw/Prm, Fw/SerializableFile/test/TestSerializable, Fw/Sm, Fw/Test, Fw/Types/GTest, Os/Models, Svc/Cycle, Svc/DpPorts, Svc/Fatal, Svc/FatalHandler, Svc/FileDownlinkPorts, Svc/FprimeProtocol, Svc/Interfaces, Svc/PassiveConsoleTextLogger, Svc/Ping, Svc/PolyIf, Svc/Ports/CommsPorts, Svc/Ports/FilePorts, Svc/Ports/OsTimeEpoch, Svc/Ports/TlmPacketizerPorts, Svc/Ports/VersionPorts, Svc/Sched, Svc/Seq, Svc/Subtopologies/CdhCore, Svc/Subtopologies/ComCcsds, Svc/Subtopologies/ComFprime, Svc/Subtopologies/ComLoggerTee, Svc/Subtopologies/DataProducts, Svc/Subtopologies/FileHandling, Svc/Types/TlmPacketizerTypes, Svc/WatchDog, TestDeploymentsProject/Ref/PingReceiver, TestDeploymentsProject/Ref/RecvBuffApp, TestDeploymentsProject/Ref/SendBuffApp, TestDeploymentsProject/Ref/Top, TestDeploymentsProject/Ref/TypeDemo, Utils/Hash, cmake/test/data/TestDeployment/TestBuildAutocoder, cmake/test/data/TestDeployment/TestChainedAutocoder, cmake/test/data/TestDeployment/TestHeaderAutocoder, cmake/test/data/TestDeployment/TestTargetAutocoder, cmake/test/data/test-fprime-library/TestLibrary/TestComponent, cmake/test/data/test-fprime-library2/TestLibrary2/TestComponent

devin-ai-integration Bot and others added 3 commits June 6, 2026 00:14
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
- Add default_base_config to expected dependency list in test_recursion.cmake
- Add FwPacketDescriptorType to test config override FpConfig.fpp

Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Co-Authored-By: michael.d.starch <michael.d.starch@jpl.nasa.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant