Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rosdep: Added ruby-dev as a separate key #18302

Merged
merged 2 commits into from
Sep 11, 2018
Merged

Conversation

meyerj
Copy link
Contributor

@meyerj meyerj commented Jun 28, 2018

For now it's a copy of key ruby, without the specializations for Ubuntu EOL distros.
In the future we would like to split ruby dependencies in run-time and build-time.

Furthermore some Orocos packages (e.g. typelib, see also orocos-toolchain/typelib#109) would require the ruby-dev key for compatibility with the AutoProj package set used by the Rock community. The manifest.xml file was originally supposed to be compatible to ROS/rosdep and AutoProj.

For now it's a copy of key `ruby`, without the specializations for Ubuntu EOL distros.
In the future we would like to split ruby dependencies in run-time and build-time.

Furthermore some Orocos packages would require the `ruby-dev` key for compatibility with
the AutoProj package set (https://github.com/rock-core/package_set) used by the
Rock community. The `manifest.xml` file was originally supposed to be compatible to ROS/rosdep
and AutoProj.
Copy link
Member

@tfoote tfoote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would make sense to split this out if the dependencies are noteably different.

We will need to have a fully planned out migration since there are likely a lot of packages currently relying on the build and runtime dependencies provided together.

rosdep/ruby.yaml Outdated
fedora: [ruby, ruby-devel, openssl-devel, rubygems]
gentoo: [dev-lang/ruby]
macports: [ruby]
ubuntu: [ruby, ruby-dev]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is to be a future only dev version should we not include the full ruby dependency here?

@meyerj
Copy link
Contributor Author

meyerj commented Jun 29, 2018

We will need to have a fully planned out migration since there are likely a lot of packages currently relying on the build and runtime dependencies provided together.

I did not change the ruby key yet and only added a new key ruby-dev, so no risk to break existing packages, no?

With ruby-dev defined packages can start to declare a build-dependency to ruby-dev and a run-time dependency to ruby. In a later step the development packages could be removed from ruby.

If this is to be a future only dev version should we not include the full ruby dependency here?

If I understand correctly you are asking to remove the full ruby dependency and only depend on ruby-dev? That's indeed possible and would work for typelib. At least for Ubuntu ruby-dev indirectly depends on ruby anyway and not only on libruby2.x, but that might have been different in the past.

@tfoote
Copy link
Member

tfoote commented Jul 6, 2018

We will need to have a fully planned out migration since there are likely a lot of packages currently relying on the build and runtime dependencies provided together.
I did not change the ruby key yet and only added a new key ruby-dev, so no risk to break existing packages, no?
With ruby-dev defined packages can start to declare a build-dependency to ruby-dev and a run-time dependency to ruby. In a later step the development packages could be removed from ruby.

Yes, this won't break anything in itself, but I'd like to have a general plan for how to make the future migration. If we don't plan it out we can back ourselves into a corner.

I think in this case since artful and bionic are not yet defined and artful is going EOL this month. We could take the opportunity to switch that platform over. However, Bionic is closed to stretch so we'd likely want to switch it over too. However stretch is already defined and being used for both Lunar and Melodic.

Luckily as we're strictly removing dependencies we could set the policy that on buster and newer ruby will resolve to runtime only. And for older platforms it will resolve to both. And for Melodic and newer if you want the development files use the rosdep ruby-dev.

Packages on stretch that depend on ruby will get ruby-dev included by default too.

So I'd suggest that in conjunction with adding the currently proposed ruby-dev We add for ubuntu '*': [ruby] that will effectively target all newer platforms than currently defined zesty.

And for Debian explicitly call out [ruby, ruby-dev] for jessie and stretch for backwards compatibility and user '*': [ruby-dev] to catch all newer platforms starting with buster.

This should allow all users to make the transition with the simple requirement that they make sure to use ruby-dev key as of Melodic. (It's defined back onto older platforms so it can be used in older releases and not require forking development.)

tfoote added a commit to ivandariojr/rosdistro that referenced this pull request Sep 10, 2018
Copy link
Member

@mikaelarguedas mikaelarguedas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants