Skip to content

chore(deps): bump fprime-yamcs to 0.1.3 (and fprime-xtce to 0.1.2)#413

Open
yudataguy wants to merge 1 commit into
mainfrom
bump/fprime-yamcs-0.1.3
Open

chore(deps): bump fprime-yamcs to 0.1.3 (and fprime-xtce to 0.1.2)#413
yudataguy wants to merge 1 commit into
mainfrom
bump/fprime-yamcs-0.1.3

Conversation

@yudataguy
Copy link
Copy Markdown
Collaborator

@yudataguy yudataguy commented Jun 5, 2026

What

Bumps the fprime-yamcs-reference dependency to pick up its uplink/downlink work and the My*Fprime* class renames.

  • requirements.txt: fprime-yamcs 0.1.20.1.3, fprime-xtce 0.1.10.1.2 (matches the upstream reference pins).
  • tools/apply-yamcs-instance-config-fix.py: also match the renamed Fprime{Packet,Command}Pre/Postprocessor classes.

Why the patch-script change matters

The 0.1.3 template renamed its placeholder classes (MyPacketPreprocessorFprimePacketPreprocessor, MyCommandPostprocessorFprimeCommandPostprocessor) and added a new FprimeFilePacketService (file-downlink reassembly — the "downlink" piece).

Our apply-yamcs-instance-config-fix.py does exact-string .replace() on those class names. Against 0.1.3 those two replacements would silently no-op — and because the script's other edits (frame length, ProcessRunner removal, rootContainer) still fire, it would not hit its "no changes made" guard. It would quietly leave custom Java class names in the generated config. Both old and new spellings are now handled.

Compatibility verification (against the real 0.1.3 wheel)

  • __main__.py is byte-identical to 0.1.2 → patches/fprime-yamcs-noapp-path.patch still applies.
  • events/processor.py still contains the while True: pass busy-wait → apply-events-cpu-fix.py still applies.
  • ✅ Hardened apply-yamcs-instance-config-fix.py run against the 0.1.3 template produces CfsPacketPreprocessor + 248-byte frame/packet lengths + rootContainer, with no leftover custom class refs.

Runtime impact

None expected. The runtime YAMCS config is the vendored yamcs/yamcs-data/etc/ (passed via --yamcs-config-dir), which already uses the stock org.yamcs.tctm.cfs.CfsPacketPreprocessor over UDP CCSDS framing — insulated from the rename. The new FprimeFilePacketService lives only in the package template and is not wired into the vendored config (out of scope for this bump).

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 5, 2026

Review Change Stack

Warning

Review limit reached

@yudataguy, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 57 minutes and 47 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ed81f1c0-282f-4f8c-8ec1-d45eca76050e

📥 Commits

Reviewing files that changed from the base of the PR and between 847db72 and 43bb6a9.

📒 Files selected for processing (2)
  • requirements.txt
  • tools/apply-yamcs-instance-config-fix.py
📝 Walkthrough

Walkthrough

This PR updates fprime-yamcs and fprime-xtce to patch releases and extends the YAMCS instance config fix script to support renamed placeholder class names in the newer fprime-yamcs template structure.

Changes

fprime-yamcs dependency and config compatibility

Layer / File(s) Summary
Dependency version updates
requirements.txt
Patch versions pinned: fprime-xtce 0.1.1 → 0.1.2 and fprime-yamcs 0.1.2 → 0.1.3.
YAMCS config fix script placeholder compatibility
tools/apply-yamcs-instance-config-fix.py
Script updated to recognize and replace FprimePacketPreprocessor and FprimeCommandPostprocessor placeholder names with correct org.yamcs.tctm.cfs.CfsPacketPreprocessor configuration including useLocalGenerationTime: true, supporting both old and new placeholder spellings across fprime-yamcs versions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A rabbit hops through version trees,
Dependencies dance with such ease!
Scripts aligned with the latest release,
Placeholders renamed, templates at peace.
Config fixed, all is well—cheers! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and specifically describes the main change: bumping fprime-yamcs and fprime-xtce dependencies, which aligns with the primary file modification in requirements.txt.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request provides a comprehensive description with clear 'what', 'why', and verification details, but is missing the required checklist items and testing methodology from the template.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Bumps the fprime-yamcs-reference dependency to pick up its uplink/downlink
work (new FprimeFilePacketService for file-downlink reassembly) and the
My*->Fprime* preprocessor/postprocessor class renames.

- requirements.txt: fprime-yamcs 0.1.2 -> 0.1.3, fprime-xtce 0.1.1 -> 0.1.2
  to match the upstream reference pins.
- tools/apply-yamcs-instance-config-fix.py: also match the renamed
  Fprime{Packet,Command}Pre/Postprocessor classes. The 0.1.3 template
  renamed these from My*, which would have made the existing string
  replacements silently no-op (the script would not error because its
  other edits still fire), leaving custom Java class names in the
  generated config. Both old and new spellings are now handled.

Verified against the real 0.1.3 wheel:
- __main__.py is byte-identical to 0.1.2, so the noapp/path patch still applies.
- events/processor.py still has the busy-wait, so the CPU fix still applies.
- The hardened instance-config fix produces CfsPacketPreprocessor + 248-byte
  frame/packet lengths + rootContainer with no leftover custom class refs.

The runtime YAMCS config (vendored yamcs/yamcs-data/etc, used via
--yamcs-config-dir) already uses the stock CfsPacketPreprocessor over UDP
CCSDS framing, so behavior is unchanged.
@yudataguy yudataguy force-pushed the bump/fprime-yamcs-0.1.3 branch from 847db72 to 43bb6a9 Compare June 5, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant