Skip to content

fbuild: deduplicate enumerated build targets and sub-directories - #31

Closed
devin-ai-integration[bot] wants to merge 2 commits into
develfrom
devin/1791567374-dedupe-enumerated-targets
Closed

devin-ai-integration[bot] wants to merge 2 commits into
develfrom
devin/1791567374-dedupe-enumerated-targets

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Related Issue(s)
Has Unit Tests (y/n) y
Documentation Included (y/n) n

Change Description

MultiBuildTargetEnumerator and RecursiveMultiBuildTargetEnumerator now drop duplicate lines from build-targets.fprime-util / tests.fprime-util / sub-directories.fprime-util, keeping first-seen order (dict.fromkeys). Tests added with a duplicate-entry fixture.

Rationale

Older fprime versions re-append the root directory's metadata on every CMake re-configure, so fprime-util build runs ninja all (and the <Deployment>_dictionary install) once per duplicate. The root cause is fixed in fprime (JPL-Devin/fprime#277); this makes fprime-util tolerant of build caches generated by frameworks without that fix.

Testing/Review Recommendations

pytest test/fprime/fbuild/test_enumerators.py.

Future Work

None.


Devin Review

@devin-ai-integration

Copy link
Copy Markdown
Author

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

Original prompt from thomas.boyer.chammard

Sometimes when running a build, it'll kind of loop over the dicitonary install. See

ninja: no work to do.
[1/1] Running utility command for CaptureCarry_dictionary
-- Install configuration: ""
-- Up-to-date: /workspaces/ld-tsw-fc-capture-carry/build-artifacts/vxworks/CaptureCarry/dict/CaptureCarryTopologyDictionary.json
ninja: no work to do.
[1/1] Running utility command for CaptureCarry_dictionary
-- Install configuration: ""
-- Up-to-date: /workspaces/ld-tsw-fc-capture-carry/build-artifacts/vxworks/CaptureCarry/dict/CaptureCarryTopologyDictionary.json
ninja: no work to do.
[1/1] Running utility command for CaptureCarry_dictionary
-- Install configuration: ""
-- Up-to-date: /workspaces/ld-tsw-fc-capture-carry/build-artifacts/vxworks/CaptureCarry/dict/CaptureCarryTopologyDictionary.json
ninja: no work to do.
[1/1] Running utility command for CaptureCarry_dictionary
-- Install configuration: ""
-- Up-to-date: /workspaces/ld-tsw-fc-capture-carry/build-artifacts/vxworks/CaptureCarry/dict/CaptureCarryTopologyDictionary.json
ninja: no work to do.
[1/1] Running utility command for CaptureCarry_dictionary
-- Install configuration: ""
-- Up-to-date: /workspaces/ld-tsw-fc-capture-carry/build-artifacts/vxworks/CaptureCarry/dict/CaptureCarryTopologyDictionary.json

I think it happens more often when using VxWorks (fprime-vxworks library and platform), but I'm not sure. Can you try to reproduce and diagnose and fix?

devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration

Copy link
Copy Markdown
Author

Closing: the duplicate metadata entries are fixed at the source in JPL-Devin/fprime#277, so this consumer-side dedupe is not needed.

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