{"action":"closed","issue":{"url":"https://api.github.com/repos/ros/rosdistro/issues/7148","labels_url":"https://api.github.com/repos/ros/rosdistro/issues/7148/labels{/name}","comments_url":"https://api.github.com/repos/ros/rosdistro/issues/7148/comments","events_url":"https://api.github.com/repos/ros/rosdistro/issues/7148/events","html_url":"https://github.com/ros/rosdistro/issues/7148","id":57067976,"number":7148,"title":"Question: rosdep yaml consistency","user":{"login":"jbohren","id":1253450,"avatar_url":"https://avatars.githubusercontent.com/u/1253450?v=3","gravatar_id":"","url":"https://api.github.com/users/jbohren","html_url":"https://github.com/jbohren","followers_url":"https://api.github.com/users/jbohren/followers","following_url":"https://api.github.com/users/jbohren/following{/other_user}","gists_url":"https://api.github.com/users/jbohren/gists{/gist_id}","starred_url":"https://api.github.com/users/jbohren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbohren/subscriptions","organizations_url":"https://api.github.com/users/jbohren/orgs","repos_url":"https://api.github.com/users/jbohren/repos","events_url":"https://api.github.com/users/jbohren/events{/privacy}","received_events_url":"https://api.github.com/users/jbohren/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-02-09T18:12:40Z","updated_at":"2015-02-11T22:34:57Z","closed_at":"2015-02-11T22:34:57Z","body":"So I wanted to make it so [rosindex](rosindex.github.io) can **(1)** determine if a package dependency is a rosdep or if it's another ROS package. Additionally, I wanted to **(2)** show a page listing the details of that rosdep (i.e. which platforms it's available on and which distributions). In the future, this could be used to **(3)** automatically declare whether a given package is supported on a given platform.\r\n\r\n1. Is possible just by reading the identifiers in the rosdep yaml files, which is fine\r\n2. Creates some issues though, because of the variability in the way rosdep keys are listed. I've found that the following forms exist in the current yaml files:\r\n\r\n    ```yaml\r\n#### CASE A ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM: array-of-deps\r\n\r\n#### CASE B ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM:\r\n    VERSION: array-of-deps\r\n\r\n#### CASE C ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM:\r\n    VERSION:\r\n      MANAGER: array-of-deps\r\n\r\n#### CASE D ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM:\r\n    VERSION:\r\n      MANAGER:\r\n        packages: array-of-deps\r\n\r\n#### CASE E... ugh ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM:\r\n    MANAGER:\r\n      packages: array-of-deps\r\n\r\n#### CASE FFFF... ugh ####\r\n\r\nROSDEPKEY:\r\n  PLATFORM:\r\n    VERSION:\r\n      packages: array-of-deps \r\n```\r\n\r\n    Without knowing the names of the platforms, platform versions, and package managers a priori, case *E* and case *FFFF* are indistinguishable. Are such keys correct, or is one of these cases wrong? I understand that in most cases, the only rosdep keys you care about in a given instance are the ones needed by your OS, in which case you know what platform/version/etc you're looking for.\r\n\r\n3. Is further out but a good thing to have on the horizon, I think.  "}}