-
Notifications
You must be signed in to change notification settings - Fork 22
Conversation
2b3fd8b
to
021a87e
Compare
I did some testing with this branch by modifying the entry points for a few packages. In cmake packages such as rclcpp_examples, the package does not build if the package.xml is removed outright (error from In python packages, if the package.xml is removed, the package builds. This behavior makes sense because the setup.py files capture the same metadata as the package.xml, while the CMakeLists.txt does not provide fields like license, author, maintainer, etc. Are there future plans to allow cmake packages without a package.xml and provide hooks in |
The build process does not needs any of the additional meta information (license, author, maintainer). Therefore I don't think The information only becomes necessary when releasing a package with bloom. I would think we don't need to allow releasing of packages without a manifest. |
I agree; I should ideally be able to build an ament_cmake package without a package.xml, since CMakeLists provides all the necessary information for building and installing the package. +1 |
The entry points have no deterministic order by default. Therefore package types need to declare their "dependencies" on other package types to ensure checking them in reasonable order ( |
It does sometimes. However, it's perfectly possible that you can implicitly depend on something that isn't called with I'd also say -0 to spending time a feature like this unless we have an immediate need for it. It's good to think about how we can do it and even prototype it, I just don't think we should spend a lot of effort improving |
The immediate use case is building the eProsima packages which don't have any manifest file but only a CMakeLists.txt. For those the current approach works ok: http://ci.ros2.org/job/ros2_batch_ci_linux/329/ I don't think we should skip doing any improvements for |
Like I said if we have a use case that's fine (it was not mentioned in the description of the pr), though I'd say this is still only a "nice to have", as we could have just dropped |
ddc52bc
to
33379c5
Compare
33379c5
to
9040c75
Compare
add package types entry points
This patch adds entry points for package types. In contrast to the build type which determines how a package is being processed the package type identifies a folder as a package and determines how the necessary meta information about a package is provided. The relevant information for processing packages with ament consist of the package
name
as well as the packagedependencies
.Until now only
package.xml
files have been considered. With this changeament
looks additionally for the following files:CMakeLists.txt
setup.py
For
CMakeLists.txt
files the name is extracted from theproject(..)
call. The dependencies are collected from allfind_package(..)
calls. Both happens without considering any CMake variable evaluation.For
setup.py
files the name is extracted from the keyword argumentname
to thesetup()
call. The dependencies are collected from the keyword argumentinstall_requires
.