--
You received this message because you are subscribed to the Google Groups "ROS SIG NG ROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-ng-ro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi,
Oh Thank you for mentioning xylem, I wasn't aware of it and it looks very promising.
The main feature that would interest me in there (if I understood the design docs properly) is the ability to manage pip packages.
That would mean that we do not have to build a deb for a ros package and a deb for each of its dependencies, right ?
This is the main drawback to rosdep currently from my perspective, as it forces python coders to fork the original code and maintain a separate version of _each_ of their dependencies.
I agree completely with the goal of a ROS independent meta package manager and I might jump in in some of the discussions there.
Thanks again !
Hi,
Oh Thank you for mentioning xylem, I wasn't aware of it and it looks very promising.
The main feature that would interest me in there (if I understood the design docs properly) is the ability to manage pip packages.
That would mean that we do not have to build a deb for a ros package and a deb for each of its dependencies, right ?
This is the main drawback to rosdep currently from my perspective, as it forces python coders to fork the original code and maintain a separate version of _each_ of their dependencies.
I agree completely with the goal of a ROS independent meta package manager and I might jump in in some of the discussions there.
xylem does not aim to replace package managers or package software itself. While support for package-manager-less platforms can be achieved with installer plugins such as the source installer, it is not an objective of xylem to systematically maintain such installation scripts.
Thanks for the reply.
Maybe I got my hopes up too fast, and I didn't read it all in details yet, but I will try to be a bit more detailed about my understanding so far, answers inline...
On May 24, 2016 10:22 AM, "William Woodall" <wil...@osrfoundation.org> wrote:
>
> On Mon, May 23, 2016 at 5:55 PM, Asmodehn Shade <asmo...@gmail.com> wrote:
>>
>> Hi,
>>
>> Oh Thank you for mentioning xylem, I wasn't aware of it and it looks very promising.
>>
>> The main feature that would interest me in there (if I understood the design docs properly) is the ability to manage pip packages.
>
> It will offer no distinct advantage in managing pip over rosdep AFAIK.
Rosdep is not really a package manager, but more like a "dependency manager":
- rosdep user cannot install a ROS package ( only the dependencies of a package )
- rosdep user cannot remove a ROS package
I see rosdep more as an extra layer on top of the system package manager (apt), with a tentative approach to pip.
Since xylem aims to be an interface to many package managers, my understanding is that it will improve this situation (ref http://xylem.readthedocs.io/en/latest/design.html#commands)
We might need that remove command as well in xylem though...
Also managing package versions is an important part of a package manager, so I am glad xylem plans to address this : http://xylem.readthedocs.io/en/latest/design.html#versions-in-rules-files
So that makes already xylem awesome.
I just hope the awesomeness goes further :-)
>>
>> That would mean that we do not have to build a deb for a ros package and a deb for each of its dependencies, right ?
>
>
> No, that's a limitation of apt. No apt package (.deb) can depend implicitly on something that is not provided by another `.deb`.
ROS software is distributed via deb. Rosdep manages dependencies in deb.
But xylem promise to interface with multiple package manager.
From then I assume it means we can have some ROS software from pip, and some ROS software from deb, for example ?
If that is true it means that, when building a python (pip) package that has python (pip) dependencies, integrating them all in the ROS ecosystem, would be much simpler than currently.
Is that "ROS packages from pip" a correct assumption ? Or maybe that's where I got the wrong idea...
>
>>
>> This is the main drawback to rosdep currently from my perspective, as it forces python coders to fork the original code and maintain a separate version of _each_ of their dependencies.
>
>
> Sorry, I don't follow what you mean here. Python packages which are provided by apt, e.g. python-yaml, require no extra action from the Python developer.
"Which are provided by apt" is a big condition :
Pypi packages : 81191
apt-cache search python | wc -l
4080
>
>>
>> I agree completely with the goal of a ROS independent meta package manager and I might jump in in some of the discussions there.
>
>
> Sorry if I got your hopes up about a different path for packaging Python code alongside non-Python packages in apt. But I still think Xylem is awesome either way. It does, however, explicitly mention:
>
> From http://xylem.readthedocs.io/en/latest/design.html#anti-goals:
>
>> xylem does not aim to replace package managers or package software itself. While support for package-manager-less platforms can be achieved with installer plugins such as the source installer, it is not an objective of xylem to systematically maintain such installation scripts.
>
>
> Which I think covers your connection to an alternative way to depend on custom Python packages from apt packages.
I m actually more thinking the other way around :
- many ROS packages are written in python
- These packages could be released as pip packages
- xylem (bloom ?) would provide a way for these packages to depend on apt packages (from ROS or system).
Ideally I would like a ROS package to depend on some pip package and some deb package ( what rosdep is trying/tried to do, but not really working as far as I know...)
And both would be in the ROS ecosystem, one downloadable via xylem-pip plugin, the other one via xylem-apt plugin.
And I could build this package with bloom and release it, to have a complete ROS package release pipeline.
As a ROS developer, In the same way that now I can have a ROS package depending on another ROS package or a system package (via rosdep keys in package.xml), I could make a ROS package that depends on both a pip package and a deb package, via "rosdep->xylem" keys in the package.xml.
The trick here is what to allow/forbid in package dependencies provided by different package managers, so that we can guarantee that whatever works in source also works from installed (built) packages...
Thanks for letting me know what part is actually planned, and what part I am just dreaming about.
Cheers !
Thanks for the reply.
Maybe I got my hopes up too fast, and I didn't read it all in details yet, but I will try to be a bit more detailed about my understanding so far, answers inline...On May 24, 2016 10:22 AM, "William Woodall" <wil...@osrfoundation.org> wrote:
>
> On Mon, May 23, 2016 at 5:55 PM, Asmodehn Shade <asmo...@gmail.com> wrote:
>>
>> Hi,
>>
>> Oh Thank you for mentioning xylem, I wasn't aware of it and it looks very promising.
>>
>> The main feature that would interest me in there (if I understood the design docs properly) is the ability to manage pip packages.
>
> It will offer no distinct advantage in managing pip over rosdep AFAIK.Rosdep is not really a package manager, but more like a "dependency manager":
- rosdep user cannot install a ROS package ( only the dependencies of a package )
- rosdep user cannot remove a ROS package
I see rosdep more as an extra layer on top of the system package manager (apt), with a tentative approach to pip.
Since xylem aims to be an interface to many package managers, my understanding is that it will improve this situation (ref http://xylem.readthedocs.io/en/latest/design.html#commands)
We might need that remove command as well in xylem though...
Also managing package versions is an important part of a package manager, so I am glad xylem plans to address this : http://xylem.readthedocs.io/en/latest/design.html#versions-in-rules-files
So that makes already xylem awesome.
I just hope the awesomeness goes further :-)>>
>> That would mean that we do not have to build a deb for a ros package and a deb for each of its dependencies, right ?
>
>
> No, that's a limitation of apt. No apt package (.deb) can depend implicitly on something that is not provided by another `.deb`.ROS software is distributed via deb. Rosdep manages dependencies in deb.
But xylem promise to interface with multiple package manager.
From then I assume it means we can have some ROS software from pip, and some ROS software from deb, for example ?
If that is true it means that, when building a python (pip) package that has python (pip) dependencies, integrating them all in the ROS ecosystem, would be much simpler than currently.
Is that "ROS packages from pip" a correct assumption ? Or maybe that's where I got the wrong idea...>
>>
>> This is the main drawback to rosdep currently from my perspective, as it forces python coders to fork the original code and maintain a separate version of _each_ of their dependencies.
>
>
> Sorry, I don't follow what you mean here. Python packages which are provided by apt, e.g. python-yaml, require no extra action from the Python developer."Which are provided by apt" is a big condition :
Pypi packages : 81191apt-cache search python | wc -l
4080
>
>>
>> I agree completely with the goal of a ROS independent meta package manager and I might jump in in some of the discussions there.
>
>
> Sorry if I got your hopes up about a different path for packaging Python code alongside non-Python packages in apt. But I still think Xylem is awesome either way. It does, however, explicitly mention:
>
> From http://xylem.readthedocs.io/en/latest/design.html#anti-goals:
>
>> xylem does not aim to replace package managers or package software itself. While support for package-manager-less platforms can be achieved with installer plugins such as the source installer, it is not an objective of xylem to systematically maintain such installation scripts.
>
>
> Which I think covers your connection to an alternative way to depend on custom Python packages from apt packages.I m actually more thinking the other way around :
- many ROS packages are written in python
- These packages could be released as pip packages
- xylem (bloom ?) would provide a way for these packages to depend on apt packages (from ROS or system).
Ideally I would like a ROS package to depend on some pip package and some deb package ( what rosdep is trying/tried to do, but not really working as far as I know...)
And both would be in the ROS ecosystem, one downloadable via xylem-pip plugin, the other one via xylem-apt plugin.
And I could build this package with bloom and release it, to have a complete ROS package release pipeline.
As a ROS developer, In the same way that now I can have a ROS package depending on another ROS package or a system package (via rosdep keys in package.xml), I could make a ROS package that depends on both a pip package and a deb package, via "rosdep->xylem" keys in the package.xml.
The trick here is what to allow/forbid in package dependencies provided by different package managers, so that we can guarantee that whatever works in source also works from installed (built) packages...
Thanks for letting me know what part is actually planned, and what part I am just dreaming about.
Cheers !
--
You received this message because you are subscribed to the Google Groups "ROS SIG NG ROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-ng-ro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Ah I see... I agree about the orthogonality of the issue I was thinking about compared to xylem goal.
I am by now used to work from source in ROS with python, but I m still struggling to tackle the pip dependencies problem in binary packages...
I ll have to find another solution to that, so that my source and binary packages can use the same dependencies...
Thanks for taking the time to reply in details!
--
AlexV