API review
Proposer: Stu Glaser
Present at review:
- List reviewers
Question / concerns / comments
Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.
- Bhaskara
- The api is currently described by example. There should be an authoritative reference. Some specific questions I have:
- What's the behavior for nested macroexpansion?
- What happens when there are parameter name collisions (given nested macros)?
- What are the command line arguments and return value of the xacro executable?
- The api is currently described by example. There should be an authoritative reference. Some specific questions I have:
- John
- unit tests
- example error behavior
test2.xacro
<?xml version="1.0"?> <robot> hey <abc> </abc> </robot>
test.xacro
<?xml version="1.0"?> <robot name="pr2"> <include filename="test2.xacro" /> </robot>
rosrun xacro xacro.py test.xacro - parse successful, discards hey
<?xml version="1.0" ?><robot name="pr2"> <abc> </abc> </robot>
- example error behavior
- unit tests
Meeting agenda
To be filled out by proposer based on comments gathered during API review period
- Escaping ${ as $${
- Make sure you can't define parameters with any of {}$
undefined parameters should error out hard. #1176
- xacro: namespace or xacro_? Josh considers xacro: to be better. Depends on how well the python xml parser handles namespaces. xacro:macro sounds funny.
- It's difficult to tell what's getting replaced (particularly if you've never seen a xacro file before).
- Append _macro to all the macro names? Have xacro do it automatically?
Add recursive variable substitution #1497. Consider postponing until after 1.0
<xacro:macro pr2_base_macro ...> ... <
OR
<xacro:macro name="pr2_base" ... /> <xacro:pr2_base ... /> (BEST)
OR
<xacro_macro name="pr2_base[_macro]" ... /> (maybe just by convention) <pr2_base_macro ... />
OR
<macro name="pr2_base_macro" ... /> (by convention) <pr2_base_macro ... /> (Also support xacro_macro and xacro_parameter if namespaces don't work)
and also support xacro:macro
And if they use namespaces once, continue to expect them.
Conclusion
Package status change mark change manifest)
Action items that need to be taken.
Major issues that need to be resolved