Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.6 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | dashing-devel |
Last Updated | 2021-05-30 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Xacro (XML Macros)
Xacro is an XML macro language
With Xacro, you can construct shorter and more readable XML files by using macros that expand to larger XML expressions. Documentation can be found in the wiki: http://wiki.ros.org/xacro
Changelog for package xacro
2.0.6 (2021-05-30)
- [feature] Expose YamlDictWrapper as dotify() to allow dotted access to any dict (#274)
- [fix] Scoped macro evaluation (#272)
- Contributors: Robert Haschke
2.0.5 (2021-03-02)
- [fix] Report correct filename for XML errors (#268)
- [fix] Python3-compatible property Table (#266)
- [fix] Use outer-scope symbols to resolve include filename in xacro:include (#264)
- [fix] Append test directory to existing AMENT_PREFIX_PATH (#260)
- [fix] yaml loading: recursively wrap lists and dicts for dotted dict access (#258)
- [feature] Provide support for yaml constructors !degrees and !radians (#252)
- Contributors: Chen Bainian, Robert Haschke, G.A. vd. Hoorn
2.0.3 (2020-08-09)
- Merge improvements of melodic and noetic branches into dashing-devel: see 1.14.2 and 1.14.3 for details
- Contributors: Robert Haschke
2.0.2 (2020-03-29)
- Merge improvements of melodic and noetic branches into dashing-devel: see 1.14.1, 1.13.5 for details
- Contributors: Robert Haschke
2.0.1 (2019-10-06)
- Revert requiring that all xacro commands are prefixed with 'xacro:' namespace Although this is deprecated since #79, the corresponding deprecation warning wasn't actually issued. Thus, we will accept non-prefixed xacro tags until F-turtle.
- Install to both, bin/xacro and lib/xacro/xacro
- Contributors: Robert Haschke
2.0.0 (2019-09-28)
- PEP8 cleanup
- code simplifications
- avoid empty except
- sort imports
- format line breaks
- Code cleanup
- Removed deprecated options --legacy, --inorder, --check-order, --includes
- Require all xacro commands to be prefixed with 'xacro:'
- Added missing copyright notices
- Removed python2 stuff
- Adapt Travis config to use colcon
- Provide ROS2-based replacement for substition args
- Modified package structure as per ROS2 rules
- Using ament_cmake
- Moved source contents from "src/xacro" to "xacro"
- Modified package.xml and setup.py according to ROS2 requirements
- Configured completion hook
- Removed catkin artifacts from cmake extension
- Contributors: vandanamandlik, Jacob Perron, Robert Haschke
1.14.4 (2020-08-09)
- [fix] Rework YamlDictWrapper to restore dict properties (#250)
- [fix] Ignore underscores when parsing literal numeric values (#247)
- Contributors: Robert Haschke
1.14.3 (2020-07-05)
- [feature] Improve warnings
- Unify meaning of verbosity > 0 (to print file location)
- Provide file location on warning in check_attrs()
- Issue warning on child elements of <xacro:include> tag
- [feature] Allow dotted access to yaml-loaded dicts: d.key1.key2.key3 (#245)
- [maint] Travis: Update distro to Bionic
- Contributors: Robert Haschke, G.A. vd. Hoorn
1.14.2 (2020-05-21)
- [maintanence] Remove deprecated xacro.py (#239)
- Contributors: Shane Loretz
1.14.1 (2020-03-29)
- [feature] allow optional xacro includes (#234)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.6 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | dashing-devel |
Last Updated | 2021-05-30 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Xacro (XML Macros)
Xacro is an XML macro language
With Xacro, you can construct shorter and more readable XML files by using macros that expand to larger XML expressions. Documentation can be found in the wiki: http://wiki.ros.org/xacro
Changelog for package xacro
2.0.6 (2021-05-30)
- [feature] Expose YamlDictWrapper as dotify() to allow dotted access to any dict (#274)
- [fix] Scoped macro evaluation (#272)
- Contributors: Robert Haschke
2.0.5 (2021-03-02)
- [fix] Report correct filename for XML errors (#268)
- [fix] Python3-compatible property Table (#266)
- [fix] Use outer-scope symbols to resolve include filename in xacro:include (#264)
- [fix] Append test directory to existing AMENT_PREFIX_PATH (#260)
- [fix] yaml loading: recursively wrap lists and dicts for dotted dict access (#258)
- [feature] Provide support for yaml constructors !degrees and !radians (#252)
- Contributors: Chen Bainian, Robert Haschke, G.A. vd. Hoorn
2.0.3 (2020-08-09)
- Merge improvements of melodic and noetic branches into dashing-devel: see 1.14.2 and 1.14.3 for details
- Contributors: Robert Haschke
2.0.2 (2020-03-29)
- Merge improvements of melodic and noetic branches into dashing-devel: see 1.14.1, 1.13.5 for details
- Contributors: Robert Haschke
2.0.1 (2019-10-06)
- Revert requiring that all xacro commands are prefixed with 'xacro:' namespace Although this is deprecated since #79, the corresponding deprecation warning wasn't actually issued. Thus, we will accept non-prefixed xacro tags until F-turtle.
- Install to both, bin/xacro and lib/xacro/xacro
- Contributors: Robert Haschke
2.0.0 (2019-09-28)
- PEP8 cleanup
- code simplifications
- avoid empty except
- sort imports
- format line breaks
- Code cleanup
- Removed deprecated options --legacy, --inorder, --check-order, --includes
- Require all xacro commands to be prefixed with 'xacro:'
- Added missing copyright notices
- Removed python2 stuff
- Adapt Travis config to use colcon
- Provide ROS2-based replacement for substition args
- Modified package structure as per ROS2 rules
- Using ament_cmake
- Moved source contents from "src/xacro" to "xacro"
- Modified package.xml and setup.py according to ROS2 requirements
- Configured completion hook
- Removed catkin artifacts from cmake extension
- Contributors: vandanamandlik, Jacob Perron, Robert Haschke
1.14.4 (2020-08-09)
- [fix] Rework YamlDictWrapper to restore dict properties (#250)
- [fix] Ignore underscores when parsing literal numeric values (#247)
- Contributors: Robert Haschke
1.14.3 (2020-07-05)
- [feature] Improve warnings
- Unify meaning of verbosity > 0 (to print file location)
- Provide file location on warning in check_attrs()
- Issue warning on child elements of <xacro:include> tag
- [feature] Allow dotted access to yaml-loaded dicts: d.key1.key2.key3 (#245)
- [maint] Travis: Update distro to Bionic
- Contributors: Robert Haschke, G.A. vd. Hoorn
1.14.2 (2020-05-21)
- [maintanence] Remove deprecated xacro.py (#239)
- Contributors: Shane Loretz
1.14.1 (2020-03-29)
- [feature] allow optional xacro includes (#234)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
kobuki_description |
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.13 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-04-29 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
2.0.13 (2025-03-20)
- Pass AMENT_PREFIX_PATH to xacro (#359)
- Add Bazel build rules (#350)
- Contributors: Michael Carroll, Robert Haschke, Sean Fish
2.0.12 (2025-01-08)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- pyproject.toml: Automatically determine version from git
- Add function python.vars() (#348)
- Contributors: Robert Haschke
2.0.11 (2024-04-02)
- Allow substitution args without ROS (#340)
- Add more unit tags for yaml files (#331)
- Resolve $(find ...) as a result of a substitution argument (#339)
- Mark regexes as raw strings (#336)
- Add pyproject.toml for direct installation via pip (#329)
- Contributors: Adam Heins, Bruno-Pier, Carlo Rizzardo, Lukas Huber, Robert Haschke
2.0.10 (2024-01-25)
- Expose python.abs()
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Robert Haschke
2.0.9 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
2.0.8 (2022-10-22)
-
Install xacro using console_script entrypoint (#304)
-
Provide xacro.process() returning the processed file (#229)
-
Dotted YAML access from list iterator (#318)
-
Optionally allow comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Chen Bainian, Gonzalo de Pedro, Gonzo, Jacob Perron, Melvin Wang, Robert Haschke, vandanamandlik
2.0.7 (2021-09-04)
- Allow more builtin symbols: sorted, set
- Don't import hidden symbols from math package
- Fix eval security vulnerability
- safe_eval()
- unit tests validating the protection mechanism
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.12.2 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | lunar-devel |
Last Updated | 2018-05-03 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
1.12.2 (2018-05-03)
- fix parsing of quoted strings in default args for xacro params (#187)
- fix xacro-cmake test
- Contributors: Robert Haschke
1.12.1 (2018-03-28)
- #183: unicode support for python2 and python3
- #178: extend list of allowed python builtins: min, max, round
- #182: suppress xacro warnings when determining dependencies
- #151: fixes for #149 and #148
- #157: fix #156 access to undefined target_table
- #150: allow True/False literals in python expressions
- #159: load ROS-related packages on demand, thus becoming more independent from ROS
- #173: allow default values for properties
- #172: fix formatting of XacroException
- #171: fix dependency handling (--deps option)
- #163: full python 3 compatibility
- Contributors: Robert Haschke, Kartik Mohta, Morgan Quigley, Steven Peters
1.12.0 (2017-03-25)
1.11.2 (2017-02-27)
- Convert exception to string in a python2/3 compatible way.
- Use python2/3 independent check for file type.
- Contributors: Hans Gaiser, Maarten de Vries
1.11.1 (2016-06-22)
- workaround for xml.dom.minidom issue
- ensure non-empty error string
- Contributors: Robert Haschke
1.11.0 (2016-03-25)
- added short option -i as alternative to --inorder
- refactored main to fix #122, #107
- added xacro indicator to error message to fix #123
- moved banner generation to process_file()
- removed special (but obsolete) output handling for just_includes mode
- moved core processing pipeline into function process_file()
- improved documentation: more comments, input_file -> input_file_name
- fix #120: handle non-space whitespace characters in params string
- extended tests to handle non-space whitespace characters in params string
- always store macros with xacro: prefix in front: #118
- fix #115: enforce xacro namespace usage with --xacro-ns option
- apply correct checking for include tags, and extend testcase
- allow (one-level) nested expression/extension evaluation
- Contributors: Robert Haschke, Morgan Quigley
1.10.6 (2015-09-01)
- use correct catkin environment for cmake dependency checking
- fixed dependency definition for cmake usage
- Contributors: Robert Haschke
1.10.5 (2015-08-12)
- fix #108: evaluate property blocks recursively too
- improved macro parameter parsing
- use a regular expression to parse a param spec with forwarding and default
- allow for spaces in default string (within single quotes)
- forwarding macro arguments from outer scope
- switched to [\^|]{.title-ref} syntax
- use more compact [$|]{.title-ref} syntax
- moved parsing of argument defaults to grab_macro()
- explicit forwarding of properties to macro scope
- replace silent/implicit forwarding of properties from outer scope to macro scope by an explicit "call" to a [forward(<name>[,<default>])]{.title-ref} function.
- implicit forwarding of outer-scope properties to macro args (#100)
- property evaluation fixes
- suppress double evaluation of properties
- adapted unittest to cover the fixed issue
- fixed evaluation order for properties exported to parent or global scope
- Merge pull request #103 from ubi-agni/overwrite-check issue warning
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.10.7 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | jade-devel |
Last Updated | 2016-06-22 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
1.10.7 (2016-06-22)
- workaround for xml.dom.minidom issue
- ensure non-empty error string
- added short option -i as alternative to --inorder
- refactored main(), fix #122
- added xacro indicator to error message, fix #123
- moved banner generation to process_file()
- removed special (but obsolete) output handling for just_includes mode
- fixed unrelated typo
- moved core processing pipeline into function process_file()
- improved documentation: added more comments,input_file -> input_file_name
- fix #120: handle non-space whitespace characters in params string
- extended tests to handle non-space whitespace characters in params string
- always store macros with xacro: prefix in front for #118
- fix #115: enforce xacro namespace usage with --xacro-ns option
- apply correct checking for include tags too
- extended the testcase to include
- allow (one-level) nested expression/extension evaluation
- Contributors: Robert Haschke, Morgan Quigley
1.10.6 (2015-09-01)
- use correct catkin environment for cmake dependency checking
- fixed dependency definition for cmake usage
- Contributors: Robert Haschke
1.10.5 (2015-08-12)
- fix #108: evaluate property blocks recursively too
- improved macro parameter parsing
- use a regular expression to parse a param spec with forwarding and default
- allow for spaces in default string (within single quotes)
- forwarding macro arguments from outer scope
- switched to [\^|]{.title-ref} syntax
- use more compact [$|]{.title-ref} syntax
- moved parsing of argument defaults to grab_macro()
- explicit forwarding of properties to macro scope
- replace silent/implicit forwarding of properties from outer scope to macro scope by an explicit "call" to a [forward(<name>[,<default>])]{.title-ref} function.
- implicit forwarding of outer-scope properties to macro args (#100)
- property evaluation fixes
- suppress double evaluation of properties
- adapted unittest to cover the fixed issue
- fixed evaluation order for properties exported to parent or global scope
- Merge pull request #103 from ubi-agni/overwrite-check issue warning when attempting to overwrite existing global property
- fixed unittest: avoid overwrite warning
- warn when overwriting any globally defined variable
- Merge pull request #102 from ubi-agni/completion bash completion
- Merge pull request #99 from ubi-agni/jade-devel reworked macro resolution
- moved test_macro_name_with_colon() to class TestXacro should be tested both, in oldorder and inorder mode
- bash completion
- improved error message for failed $(find)
- reworked macro resolution python-eval-based macro resolution (introduced to enable namespaces) heavily restricted the set of possible macro names (only valid python identifiers were allowed) Particularly, xacro: prefixed macro names were forbidden.
- initial attempt to fix #97
- add failing test case with colon in the macro name
- Contributors: Robert Haschke
1.10.4 (2015-06-18)
- removed test_DEPRECATED_should_replace_before_macroexpand() duplicates test_should_replace_before_macroexpand()
- fixed evaluation order of macro arguments and body Macro arguments need to be evaluated and assigned to properties before body is evaluated. Otherwise, the evaluated value will be converted to str, i.e. loosing original type.
- Contributors: Robert Haschke
1.10.3 (2015-06-16)
- deprecate --oldorder processing
- added --check-order option to do a simple check for --inorder
compatibility
- Most probable incompatibility is redefining a property after its usage.
- tested and reported with file location of (first) redefinition after usage.
- moved command line processing to cli.py
- explain verbosity levels in usage string
- colorize errors during cli parsing
- log definition and usage of properties
- replaced debug option by verbosity options -q, -v
- fixed evaluation time of default macro params
- introduced Macro object to increase code readability
- parse a macro's parameter list once at declaration time (instead of every instantiation)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.9.5 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | indigo-devel |
Last Updated | 2017-09-15 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
Changelog for package xacro
1.9.5 (2015-11-09)
- optionally include latest improvements in xacro-jade into xacro-indigo
- Contributors: Morgan Quigley
1.9.4 (2015-04-01)
- Using xacro for launch files with <arg> tags would cause the <args> tags to get eaten. Removed "arg" and only look for "xacro:arg".
- Add test for eating launch parameter arguments
- updated pr2 gold standard to include all comments
- allow to ignore comments in nodes_match()
- fixed handling of non-element nodes in <include>, <if>, <macro>
- fixed writexml: text nodes were not printed when other siblings exist
- improved xml matching, add some new unit tests
- travis-ci: fixup running of tests
- fix pathnames used in test case
- Include CATKIN_ENV params at build time.
- use output filename flag instead of shell redirection
- create output file only if parsing is successful
- Contributors: Mike O'Driscoll, Morgan Quigley, Robert Haschke, William Woodall
1.9.3 (2015-01-14)
- merge test cases
- add a snapshot of the pr2 model to the test directory. add a test case which verifies that the pr2 model is parsed equal to a 'golden' parse of it.
- add more tests
- add default arg tests
- Allow default values for substitution args
- Fix up comments
- Allow xacro macros to have default parameters
- Contributors: Paul Bovbel, Morgan Quigley
1.9.2 (2014-07-11)
- add a few more tests to exercise the symbol table a bit more
- allow for recursive evaluation of properties in expressions
- add useful debugging information when parameters are not set
- stop test from failing the second time it is run
- unified if/unless handling, correctly handle floating point expressions
- floating point expressions not equal zero are now evaluated as True
- changed quotes to omit cmake warning
- Contributors: Robert Haschke, Mike Ferguson
1.9.1 (2014-06-21)
- fixup tests so they run
- export architecture_independent flag in package.xml
- installed relocatable fix
- Contributors: Michael Ferguson, Mike Purvis, Scott K Logan
1.9.0 (2014-03-28)
- Remove the roslint_python glob, use the default one.
- Add roslint target to xacro; two whitespace fixes so that it passes.
- fix evaluation of integers in if statements also added a unit test, fixes #15
- fix setting of _xacro_py CMake var, fixes #16
- Add support for globbing multiple files in a single <xacro:include>
- code cleanup and python3 support
- check for CATKIN_ENABLE_TESTING
1.8.4 (2013-08-06)
- Merge pull request #9 from davetcoleman/hydro-devel Xacro should not use plain 'include' tags but only namespaced ones.
- Fix for the fact that minidom creates text nodes which count as child nodes
- Removed <uri> checking and made it more general for any child element of an <include> tag
- Removed Groovy reference, only being applied to Hydro
- Created check for Gazebo's <uri> tabs only only shows deprecated warnings if not present.
- Small spelling fix
- Xacro should not use plain 'include' tags but only namespaced ones.
- Merge pull request #8 from piyushk/hydro-devel-conditional xacro conditional blocks
- using refined arguments instead of sys.argv for xml file location
- adding conditional blocks to xacro
1.8.3 (2013-04-22)
- bumped version to 1.8.3 for hydro release
- backwards compatilibity with rosbuild
- adding unit test for substitution args
- Adding supoprt for substitution_args 'arg' fields
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.8.6 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | hydro-devel |
Last Updated | 2014-06-22 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- William Woodall
Authors
- Stuart Glaser
Changelog for package xacro
1.8.6 (2014-06-21)
- fix tests file so they run properly
- Contributors: Michael Ferguson
1.8.5 (2014-04-29)
- Installed xacro relocatable fix.
- Remove the roslint_python glob, use the default one.
- Add roslint target to xacro; two whitespace fixes so that it passes.
- fix evaluation of integers in if statements also added a unit test, fixes #15
- fix setting of _xacro_py CMake var Fixes #16
- Add support for globbing multiple files in a single <xacro:include>
- code cleanup and python3 support
- check for CATKIN_ENABLE_TESTING
1.8.4 (2013-08-06)
- Merge pull request #9 from davetcoleman/hydro-devel Xacro should not use plain 'include' tags but only namespaced ones.
- Fix for the fact that minidom creates text nodes which count as child nodes
- Removed <uri> checking and made it more general for any child element of an <include> tag
- Removed Groovy reference, only being applied to Hydro
- Created check for Gazebo's <uri> tabs only only shows deprecated warnings if not present.
- Small spelling fix
- Xacro should not use plain 'include' tags but only namespaced ones.
- using refined arguments instead of sys.argv for xml file location
- adding conditional blocks to xacro
1.8.3 (2013-04-22)
- bumped version to 1.8.3 for hydro release
- backwards compatilibity with rosbuild
- adding unit test for substitution args
- Adding supoprt for substitution_args 'arg' fields
- Remove bin copy of xacro.py
- 1.7.3
- Install xacro.py as a program so it can be run
- 1.7.2
- fixed build issues introduced in catkinization
- 1.7.1
- PEP8, cleanup, and remove roslib
- Update copyright, self import guard, and catkinize
- Catkinize.
- Cleanup in preparation of catkinization.
- Added tag unstable for changeset 169c4bf30367
- Added tag xacro-1.6.1 for changeset fc45af7fdada
- 1.6.1 marker
- xacro: fuerte compat with sub args import
- Added tag unstable for changeset 2d3c8dbfa3c9
- Added tag xacro-1.6.0 for changeset e4a4455189bf
- 1.6.0
- converted to unary stack from common stack
- xacro: fixed inserting property blocks (ros-pkg #4561)
- xacro now uses XacroExceptions. String exceptions are not allowed in Python anymore. #4209
- Added Ubuntu platform tags to manifest
- Xacro now places comments below <?xml> tag (#3859)
- Xacro prints out cleaner xml. Elements are now often separated by a newline.
- xacro dependency on roslaunch removed #3451
- Xacro now adds a message mentioning that the file was autogenerated (#2775)
- Remove use of deprecated rosbuild macros
- Integers stay integers in xacro, fixing #3287
- Tests for r25868
- Added a flag for only evaluating include tags in xacro
- Allowing multiple blocks and multiple insert_blocks, fixing #3322 and #3323
- doc review completed for xacro
- adding mainpage for xacro doc review
- Added xacro.cmake file that exports new xacro_add_xacro_file() macro, #3020
- Namespaced "include" tag in xacro
- Marked xacro as api reviewed
- Xacro now correctly declares the namespaces of the included documents in the final
- Made xacro accept xml namespaces
- Xacro now errors hard when a property is used without being declared
- Xacro no longer allows you to create properties with "${}" in the name
- Added the ability to escape "${" in xacro
- Made the tests in xacro run again.
- Created xacro/src
- migration part 1
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.11.3 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2018-03-28 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
1.11.3 (2018-03-28)
- extend list of allowed python builtins: min, max, round
- #173: allow default values for properties
- #172: fix formatting of XacroException
- #182: suppress xacro warnings when determining dependencies
-
#171: fix dependency
handling (--deps option)
- allow to specify extra dependencies for xacro_add_xacro_file(s)
- consider yaml files loaded with load_yaml
- fixes for #148 and #149
- fix #156: avoid access to undefined variable target_table
- fix #148: silently ignore extra attributes that are namespace specifiers
- allow True/False literals in python expressions
- Contributors: Robert Haschke, Morgan Quigley, Steven Peters
1.11.2 (2017-02-27)
- Convert exception to string in a python2/3 compatible way.
- Use python2/3 independent check for file type.
- Contributors: Hans Gaiser, Maarten de Vries
1.11.1 (2016-06-22)
- workaround for xml.dom.minidom issue
- ensure non-empty error string
- Contributors: Robert Haschke
1.11.0 (2016-03-25)
- added short option -i as alternative to --inorder
- refactored main to fix #122, #107
- added xacro indicator to error message to fix #123
- moved banner generation to process_file()
- removed special (but obsolete) output handling for just_includes mode
- moved core processing pipeline into function process_file()
- improved documentation: more comments, input_file -> input_file_name
- fix #120: handle non-space whitespace characters in params string
- extended tests to handle non-space whitespace characters in params string
- always store macros with xacro: prefix in front: #118
- fix #115: enforce xacro namespace usage with --xacro-ns option
- apply correct checking for include tags, and extend testcase
- allow (one-level) nested expression/extension evaluation
- Contributors: Robert Haschke, Morgan Quigley
1.10.6 (2015-09-01)
- use correct catkin environment for cmake dependency checking
- fixed dependency definition for cmake usage
- Contributors: Robert Haschke
1.10.5 (2015-08-12)
- fix #108: evaluate property blocks recursively too
- improved macro parameter parsing
- use a regular expression to parse a param spec with forwarding and default
- allow for spaces in default string (within single quotes)
- forwarding macro arguments from outer scope
- switched to [\^|]{.title-ref} syntax
- use more compact [$|]{.title-ref} syntax
- moved parsing of argument defaults to grab_macro()
- explicit forwarding of properties to macro scope
- replace silent/implicit forwarding of properties from outer scope to macro scope by an explicit "call" to a [forward(<name>[,<default>])]{.title-ref} function.
- implicit forwarding of outer-scope properties to macro args (#100)
- property evaluation fixes
- suppress double evaluation of properties
- adapted unittest to cover the fixed issue
- fixed evaluation order for properties exported to parent or global scope
- Merge pull request #103 from ubi-agni/overwrite-check issue warning when attempting to overwrite existing global property
- fixed unittest: avoid overwrite warning
- warn when overwriting any globally defined variable
- Merge pull request #102 from ubi-agni/completion bash completion
- Merge pull request #99 from ubi-agni/jade-devel reworked macro resolution
- moved test_macro_name_with_colon() to class TestXacro should be tested both, in oldorder and inorder mode
- bash completion
- improved error message for failed $(find)
- reworked macro resolution python-eval-based macro resolution (introduced to enable namespaces) heavily restricted the set of possible macro names (only valid python identifiers were allowed) Particularly, xacro: prefixed macro names were forbidden.
- initial attempt to fix #97
- add failing test case with colon in the macro name
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.13.20 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | melodic-devel |
Last Updated | 2023-05-24 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Xacro (XML Macros)
Xacro is an XML macro language
With Xacro, you can construct shorter and more readable XML files by using macros that expand to larger XML expressions. Documentation can be found in the wiki: http://wiki.ros.org/xacro
Changelog for package xacro
1.13.20 (2023-05-24)
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Alec Tiefenthal
1.13.19 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Contributors: Robert Haschke
1.13.18 (2022-10-21)
- Dotted YAML access from list iterator (#318)
- Contributors: Robert Haschke
1.13.17 (2022-02-12)
-
Only optionally activate comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Robert Haschke
1.13.16 (2022-01-30)
- Issue a warning only for evaluation errors in comments
- Add LICENSE file
- Contributors: Robert Haschke
1.13.15 (2022-01-20)
-
Fix resolving of macros and properties declared and used in/from a namespace (#297, #306)
Macros and properties that are declared within a namespaced include shouldn't require the namespace prefix when used within the namespace.
-
Perform expression evaluation in comments (#300)
-
Expose xacro.arg() to facilitate access to substitution args
-
Contributors: Robert Haschke
1.13.14 (2021-10-02)
-
Allow property names to be evaluated from an expression This allows to turn macros into a function that can compute an arbitrary property:
<xacro:macro name="square" params="name args"> <!-- Perform some complex computation and set the property within the parent's scope --> <xacro:property name="${name}" value="${[float(x)**2 for x in args]}" scope="parent" /> </xacro:macro> <xacro:square name="result" args="${python.range(5)}" />
-
Fix error reporting for invalid symbols in NameSpaces
-
Allow removal of a property definition (#288)
<xacro:property name="prop" remove="true"/>
-
Allow greedy property evaluation (#284) This can be used,
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged xacro at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.14.20 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros/xacro.git |
VCS Type | git |
VCS Version | noetic-devel |
Last Updated | 2025-03-20 |
Dev Status | MAINTAINED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Robert Haschke
- Morgan Quigley
Authors
- Stuart Glaser
- William Woodall
- Robert Haschke
Changelog for package xacro
1.14.20 (2025-03-20)
- Handle new argument 'attr' in xml.dom.minidom._write_data() of Python 3.13 (#353)
- Contributors: Robert Haschke
1.14.19 (2024-12-20)
- Add function python.vars() (#348)
- Contributors: Robert Haschke
1.14.18 (2024-04-02)
- Add more unit tags for yaml files (#331)
- Mark regexes as raw strings (#336)
- Contributors: Adam Heins, Bruno-Pier
1.14.17 (2024-01-25)
- Expose python.abs()
- Contributors: Robert Haschke
1.14.16 (2023-05-24)
- Fix hasattr support of YamlDictWrapper (#324)
- Contributors: Alec Tiefenthal, Robert Haschke
1.14.15 (2023-02-27)
- Evaluate
arg
value as str/unicode (#322) - Remove obsolete options from completion
- Contributors: Robert Haschke
1.14.14 (2022-10-21)
- Dotted YAML access from list iterator (#318)
- Link to extended wiki
- Contributors: Robert Haschke
1.14.13 (2022-02-12)
-
Only optionally activate comment evaluation (#310)
Comment evaluation can be enabled with a special comment:
-
<!-- xacro:eval-comments -->
or <!-- xacro:eval-comments:on -->
It remains active for the following comments until:
- the current XML tag's scope is left (or a new tag entered)
- another tag or non-whitespace text is processed
- it becomes explicitly disabled via:
<!-- xacro:eval-comments:off -->
-
-
Fix property resolution with namespace usage (#308)
-
Allow access to properties in parent scopes again (fixes #305)
-
Pick correct scope when defining a property into the parent (fixes #307)
Setting a property within the parent scope may occur in two contexts:
- From within a macro. In that case, one wants to set the property in the caller's scope.
- From within the included file. In that case, one wants to set the property in the includer's scope.
-
-
Contributors: Robert Haschke
1.14.12 (2022-01-30)
- Issue a warning only for evaluation errors in comments
- Add LICENSE file
- Contributors: Robert Haschke
1.14.11 (2022-01-20)
-
Fix resolving of macros and properties declared and used in/from a namespace (#297, #306)
Macros and properties that are declared within a namespaced include shouldn't require the namespace prefix when used within the namespace.
-
Perform expression evaluation in comments
File truncated at 100 lines see the full file