Skip to content

[SceneChecking] Introduce SceneCheckSpecialCharacters#6025

Open
alxbilger wants to merge 2 commits intosofa-framework:masterfrom
alxbilger:scenecheckingspecialcharacters
Open

[SceneChecking] Introduce SceneCheckSpecialCharacters#6025
alxbilger wants to merge 2 commits intosofa-framework:masterfrom
alxbilger:scenecheckingspecialcharacters

Conversation

@alxbilger
Copy link
Contributor

@alxbilger alxbilger commented Mar 17, 2026

Check if nodes and components have special characters that may lead to undefined behavior.

The main problem in this PR is with the RequiredPlugin component. It is design to read the plugin name in its component name, and this plugin name can contain a dot. Detecting a dot leads to spamming warnings:

For example:

[WARNING] [RequiredPlugin(Sofa.Component.AnimationLoop)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Collision.Detection.Algorithm)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Collision.Detection.Intersection)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Collision.Geometry)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Collision.Response.Contact)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Constraint.Lagrangian.Correction)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Constraint.Lagrangian.Solver)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.IO.Mesh)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.LinearSolver.Direct)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Mapping.Linear)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Mass)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.ODESolver.Backward)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.SolidMechanics.FEM.Elastic)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.StateContainer)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Topology.Container.Dynamic)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Topology.Container.Grid)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Topology.Mapping)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.Component.Visual)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.GL.Component.Rendering3D)] The component has the following special characters in its name: '.'
[WARNING] [RequiredPlugin(Sofa.GUI.Component)] The component has the following special characters in its name: '.'
[WARNING] [SceneCheckSpecialCharacters] Found 20 nodes or components with special characters in their names. This can lead to undefined behavior.

The dot in the name is really a problem in the current implementation of links reading. The implementation assumes that the last dot is the indication of a Data name. For RequiredPlugin, it's not the case. A solution is to fix the links reading (for example #5995). Another case is in Python. SOFA supports to access to a component using node.component_name. However, if component_name contains a dot, it will not work. So forbidding the dot is justified. For the special cases of the component RequiredPlugin, a solution is provided in #6026.

[with-all-tests]


By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


Reviewers will merge this pull-request only if

  • it builds with SUCCESS for all platforms on the CI.
  • it does not generate new warnings.
  • it does not generate new unit test failures.
  • it does not generate new scene test failures.
  • it does not break API compatibility.
  • it is more than 1 week old (or has fast-merge label).

@alxbilger alxbilger added pr: status to review To notify reviewers to review this pull-request pr: clean Cleaning the code topic for next dev-meeting PR to be discussed in sofa-dev meeting labels Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: clean Cleaning the code pr: status to review To notify reviewers to review this pull-request topic for next dev-meeting PR to be discussed in sofa-dev meeting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant