Skip to content
This repository was archived by the owner on Oct 23, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions xsd/package_format1.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,26 @@
<xs:element name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The package name must start with a letter and contain only
lowercase alphabetic, numeric, or underscore characters.
The package name should be unique within the ROS community.
It may differ from the folder name into which it is checked out,
but that is not recommended.
It must start with a lower-case letter and consist of only
lower-case letters, numbers and underscores.
It must not have two consecutive underscores.

The following recommended exemptions apply, which are optional
for implementations:
- Dashes may be permitted in package names. This is to support
maintaining a consistent dependency name when transitioning back
and forth between a system dependency and in-workspace package,
since many rosdep keys contain dashes (inherited from the
Debian/Ubuntu name).
- In support of some legacy packages, capital letters may also be
accepted in the package name, with a validation warning.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[a-z](_?[a-z0-9]+)*"/>
<xs:pattern value="[A-Za-z]([_-]?[0-9A-Za-z]+)*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Expand Down
17 changes: 13 additions & 4 deletions xsd/package_format2.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,26 @@
<xs:element name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The package name must start with a letter and contain only
lowercase alphabetic, numeric, or underscore characters.
The package name should be unique within the ROS community.
It may differ from the folder name into which it is checked out,
but that is not recommended.
It must start with a lower-case letter and consist of only
lower-case letters, numbers and underscores.
It must not have two consecutive underscores.

The following recommended exemptions apply, which are optional
for implementations:
- Dashes may be permitted in package names. This is to support
maintaining a consistent dependency name when transitioning back
and forth between a system dependency and in-workspace package,
since many rosdep keys contain dashes (inherited from the
Debian/Ubuntu name).
- In support of some legacy packages, capital letters may also be
accepted in the package name, with a validation warning.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[a-z](_?[a-z0-9]+)*"/>
<xs:pattern value="[A-Za-z]([_-]?[0-9A-Za-z]+)*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Expand Down
17 changes: 13 additions & 4 deletions xsd/package_format3.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,26 @@
<xs:element name="name" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The package name must start with a letter and contain only
lowercase alphabetic, numeric, or underscore characters.
The package name should be unique within the ROS community.
It may differ from the folder name into which it is checked out,
but that is not recommended.
It must start with a lower-case letter and consist of only
lower-case letters, numbers and underscores.
It must not have two consecutive underscores.

The following recommended exemptions apply, which are optional
for implementations:
- Dashes may be permitted in package names. This is to support
maintaining a consistent dependency name when transitioning back
and forth between a system dependency and in-workspace package,
since many rosdep keys contain dashes (inherited from the
Debian/Ubuntu name).
- In support of some legacy packages, capital letters may also be
accepted in the package name, with a validation warning.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[a-z](_?[a-z0-9]+)*"/>
<xs:pattern value="[a-zA-Z]([_-]?[0-9a-zA-Z]+)*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Expand Down