Skip to content

Conversation

@StarrryNight
Copy link
Contributor

@StarrryNight StarrryNight commented Feb 9, 2026

Description

This PR resolves #3582, making sure full system binaries are only launched with flags compatible with the full system.

Testing Done

Tested with PR #3507. First launched latest full system (blue) vs old full system 3507 (yellow) on master branch. Failed because yellow bots failed and old full system crashed.
Then launched same teams on the current branch. Yellow bots didn't crash and plays normally.

Also tested helper function discover_supported_flags by logging the set of available flags of different binaries. It logged the correct available flags.

Resolved Issues

#3582

Length Justification and Key Files to Review

Review Checklist

It is the reviewers responsibility to also make sure every item here has been covered

  • Function & Class comments: All function definitions (usually in the .h file) should have a javadoc style comment at the start of them. For examples, see the functions defined in thunderbots/software/geom. Similarly, all classes should have an associated Javadoc comment explaining the purpose of the class.
  • Remove all commented out code
  • Remove extra print statements: for example, those just used for testing
  • Resolve all TODO's: All TODO (or similar) statements should either be completed or associated with a github issue

@StarrryNight StarrryNight marked this pull request as ready for review February 9, 2026 01:25
logging.debug("Binary support flags: {}".format(supported_flags))
else:
logging.warning(
"Could not discovery flags for path: '{}'. Continuing...".format(
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo here. Should be "discover".

try:
result = subprocess.run(
[path_to_binary, "--help"], capture_output=True, text=True, timeout=3
)
Copy link
Contributor

Choose a reason for hiding this comment

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

Would some binaries print --help to stderr (diagnostic output)? If so, we could merge stdout and stderr?

output = (result.stdout or "") + (result.stderr or "")
flags = re.findall(r"--(\w+)", output)

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.

Fullsystem Flag Compatibility

2 participants