Code Monkey home page Code Monkey logo

ros-get's Introduction

Rayman's stats

Hi, I'm Rayman

  • Robotics software engineer @nobleo
  • Master Control Systems Technology @ TU/e

ros-get's People

Contributors

alberth avatar jorritsmit avatar rayman avatar reinzor avatar rokusottervanger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ros-get's Issues

Feature request: Choose version of package.

For now we compile twist_mux from source (just an example).

It would be nice if we can choose between debian and source versions of packages (and that this choice is remembered over ros-get updates)

In future also convenient when you release debian files for whatever reason, you can then choose to develop or use a package.
Easy switching is key in this I think.

Logging too verbose

[INFO] ros_get.commands: found 'move_base_flex/mbf_costmap_core'
[INFO] ros_get.commands: found 'move_base_flex/mbf_abstract_core'
[INFO] ros_get.commands: found 'move_base_flex/mbf_abstract_nav'
[INFO] ros_get.commands: found 'move_base_flex/mbf_simple_nav'
[INFO] ros_get.commands: found 'move_base_flex/mbf_utility'
[INFO] ros_get.commands: found 'move_base_flex/mbf_costmap_nav'
[INFO] ros_get.commands: found 'move_base_flex/move_base_flex'
[INFO] ros_get.commands: found 'move_base_flex/mbf_msgs'
[INFO] root: symlink '../repos/move_base_flex/mbf_abstract_nav' => '/home/ruvu/ruvu/src/mbf_abstract_nav'
[INFO] root: symlink '../repos/common/utils/ruvu_teleop' => '/home/ruvu/ruvu/src/ruvu_teleop'
[INFO] root: symlink '../repos/elevation-mapping/elevation_mapping' => '/home/ruvu/ruvu/src/elevation_mapping'
[INFO] root: symlink '../repos/common/simulation/ruvu_gazebo_plugins' => '/home/ruvu/ruvu/src/ruvu_gazebo_plugins'
[INFO] root: symlink '../repos/move_base_flex/mbf_utility' => '/home/ruvu/ruvu/src/mbf_utility'
[INFO] root: symlink '../repos/project-exr1/exr1_description' => '/home/ruvu/ruvu/src/exr1_description'
[INFO] root: symlink '../repos/common/test/ruvu_rostest' => '/home/ruvu/ruvu/src/ruvu_rostest'
[INFO] root: symlink '../repos/move_base_flex/mbf_abstract_core' => '/home/ruvu/ruvu/src/mbf_abstract_core'
[INFO] root: symlink '../repos/common/bringup/ruvu_bringup' => '/home/ruvu/ruvu/src/ruvu_bringup'
[INFO] root: symlink '../repos/common/simulation/ruvu_sensor_descriptions' => '/home/ruvu/ruvu/src/ruvu_sensor_descriptions'
[INFO] root: symlink '../repos/move_base_flex/mbf_msgs' => '/home/ruvu/ruvu/src/mbf_msgs'
[INFO] root: symlink '../repos/move_base_flex/mbf_costmap_core' => '/home/ruvu/ruvu/src/mbf_costmap_core'
[INFO] root: symlink '../repos/kindr' => '/home/ruvu/ruvu/src/kindr'
[INFO] root: symlink '../repos/common/intelligence/ruvu_networkx' => '/home/ruvu/ruvu/src/ruvu_networkx'
[INFO] root: symlink '../repos/move_base_flex/mbf_costmap_nav' => '/home/ruvu/ruvu/src/mbf_costmap_nav'
[INFO] root: symlink '../repos/project-exr1/exr1_intelligence_bringup' => '/home/ruvu/ruvu/src/exr1_intelligence_bringup'
[INFO] root: symlink '../repos/project-exr1/exr1_hardware' => '/home/ruvu/ruvu/src/exr1_hardware'
[INFO] root: symlink '../repos/kindr-ros/kindr_ros' => '/home/ruvu/ruvu/src/kindr_ros'
[INFO] root: symlink '../repos/project-exr1/exr1_simulation_bringup' => '/home/ruvu/ruvu/src/exr1_simulation_bringup'
[INFO] root: symlink '../repos/project-exr1/exr1_hardware_bringup' => '/home/ruvu/ruvu/src/exr1_hardware_bringup'
[INFO] root: symlink '../repos/common/utils/ruvu_msg_converters' => '/home/ruvu/ruvu/src/ruvu_msg_converters'
[INFO] root: symlink '../repos/swiftnav_ros' => '/home/ruvu/ruvu/src/swiftnav_ros'

Maybe this can be debug logs

expand user ~

specifying a ros-distro-url with a tilde is not being expanded

Installation command failes if pip is not installed

user@lime2:~$ source <(wget -O- https://raw.githubusercontent.com/Rayman/ros-get/master/install)
--2016-10-24 15:45:04--  https://raw.githubusercontent.com/Rayman/ros-get/master/install
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.60.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.60.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 404 [text/plain]
Saving to: 'STDOUT'

-                             100%[================================================>]     404  --.-KB/s    in 0s      

2016-10-24 15:45:04 (875 KB/s) - written to stdout [404/404]

-bash: pip: command not found

add `ros-get help`

Many sub-command programs also have a sub-commmand 'help' to get a little guidance with the commands (usually a list of known commands). It's a bit more helpful than throwing a usage error what it currently answers:

usage: ros-get [-h] [-v]
               {install,update,list,remove,ws-create,ws-switch,ws-save,ws-list,ws-locate}
               ...
ros-get: error: invalid choice: 'help' (choose from 'install', 'update', 'list', 'remove', 'ws-create', 'ws-switch', 'ws-save', 'ws-list', 'ws-locate')

Installation commands not working

After the installation commands from the README.md on ubuntu 16.04 there is no ros-get command available. Probably because the .bashrc is not reloaded.

Upon opening a new terminal I get this error:
bash: /home/tim/catkin_ws/devel/setup.bash: No such file or directory

Installation unsuccesfull, binary not installed

Symptom on my pc:

[~/repos/ros-get] (master=)
tim@Precision $ cd repos/ros-get/

[~/repos/ros-get] (master=)
tim@Precision $ git pull
Already up-to-date.

[~/repos/ros-get] (master=)
tim@Precision $ pip install --user -e .
Obtaining file:///home/tim/repos/ros-get
Requirement already satisfied: argcomplete in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: catkin_pkg in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: catkin_tools in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: colorlog in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: future in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: mock in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: rosdep in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: rosdistro in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: rosinstall_generator in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: trollius in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: vcstool in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: xdg==1.0.7 in /home/tim/.local/lib/python2.7/site-packages (from ros-get==0.0.0)
Requirement already satisfied: argparse in /usr/lib/python2.7 (from catkin_pkg->ros-get==0.0.0)
Requirement already satisfied: python-dateutil in /home/tim/.local/lib/python2.7/site-packages (from catkin_pkg->ros-get==0.0.0)
Requirement already satisfied: docutils in /home/tim/.local/lib/python2.7/site-packages (from catkin_pkg->ros-get==0.0.0)
Requirement already satisfied: PyYAML in /home/tim/.local/lib/python2.7/site-packages (from catkin_tools->ros-get==0.0.0)
Requirement already satisfied: osrf-pycommon>0.1.1 in /home/tim/.local/lib/python2.7/site-packages (from catkin_tools->ros-get==0.0.0)
Requirement already satisfied: setuptools in /home/tim/.local/lib/python2.7/site-packages (from catkin_tools->ros-get==0.0.0)
Requirement already satisfied: six>=1.9 in /home/tim/.local/lib/python2.7/site-packages (from mock->ros-get==0.0.0)
Requirement already satisfied: funcsigs>=1; python_version < "3.3" in /home/tim/.local/lib/python2.7/site-packages (from mock->ros-get==0.0.0)
Requirement already satisfied: pbr>=0.11 in /home/tim/.local/lib/python2.7/site-packages (from mock->ros-get==0.0.0)
Requirement already satisfied: rospkg>=1.0.37 in /home/tim/.local/lib/python2.7/site-packages (from rosdep->ros-get==0.0.0)
Requirement already satisfied: futures in /home/tim/.local/lib/python2.7/site-packages (from trollius->ros-get==0.0.0)
Installing collected packages: ros-get
  Found existing installation: ros-get 0.0.0
    Uninstalling ros-get-0.0.0:
      Successfully uninstalled ros-get-0.0.0
  Running setup.py develop for ros-get
Successfully installed ros-get

[~/repos/ros-get] (master=)
tim@Precision $ ros-get help
ros-get: command not found

To reproduce:

docker run -it ubuntu:16.04
apt update && apt install git python-pip
git clone https://github.com/Rayman/ros-get.git
cd ros-get
pip install --user -e .
ros-get help
    bash: ros-get: command not found

ros-get update should be less spammy

The update command (but also install, and perhaps other commands as well), is quite spammy in its output. It would be useful if it doesn't report about things that are correct already (perhaps still allowing to get the information with eg a --verbose flag).

That way, you can more easily read what gets actually changed or updated without getting lost in all the output.

Obviously, the other way around (adding a flag to reduce the amount of output) would work too.

Error print could be more clear

```[ERROR] ros_get.commands: no repository updated, package could not be found```

We should also print what package is not found and maybe in what repo (rosdistro url).

Assert

Traceback (most recent call last):
  File "/home/rein/.local/bin/ros-get", line 11, in <module>
    load_entry_point('ros-get', 'console_scripts', 'ros-get')()
  File "/home/rein/.ros-get/src/ros_get/__main__.py", line 126, in main
    exit(func(**vars(args)))
  File "/home/rein/.ros-get/src/ros_get/commands.py", line 42, in update
    pkgs_done = recursive_update(pkgs, verbose)
  File "/home/rein/.ros-get/src/ros_get/commands.py", line 156, in recursive_update
    update_folder(target_path, {repo.name: repo}, verbose)
  File "/home/rein/.ros-get/src/ros_get/utils.py", line 85, in update_folder
    assert client.get_url() == url
AssertionError

TODO

Commands

  • ws-create
    • save ws under ~/.config/ros-get/
    • rosdistro url as argument
    • generate setup.sh
  • ws-save ?
  • ws-list
  • ws-switch
  • ws-locate
  • [ ] ws-cleanup (maybe do it as part of list?) Moved to #74
  • install (mark as installed & update)
    • recursive git clone
    • mark as installed
    • create symlinks from src to repos
    • recursive checkout bug
  • update
    • rosdistro pull
    • rosdep update
  • status
  • upgrade
  • remove
  • autoremove

Questions

  • create a new distro or overlay an existing one? (overlaying is a good solution and works fine)

Installation

  • [ ] installation should install /etc/ros/rosdep/sources.list.d/80*
  sudo sh -c "echo \"yaml file://$HOME/.ros/ros-get/rosdistro/rosdep/ros-rosdistro-kinetic.yaml kinetic\" > /etc/ros/rosdep/sources.list.d/90-ros-rosdistro-kinetic.list"
  rosdep update

pkg marked as installed even if installation fails

$ ros-get -v install foobar 
[DEBUG] ros_get.commands: marking for installation: foobar
[DEBUG] rosdistro: Load index from "https://raw.githubusercontent.com/ros/rosdistro/master/index.yaml"
[DEBUG] rosdistro: Load file from "https://raw.githubusercontent.com/ros/rosdistro/master/kinetic/distribution.yaml"
[DEBUG] ros_get.commands: Package 'foobar' can't be found in a repository
[ERROR] ros_get.commands: no repository updated, package could not be found
$ ls $(ros-get ws-locate)/.env/installed/foobar
/home/tim/catkin_ws/.env/installed/foobar

ros-get remove non existing package unexpected logging

[ERROR] ros_get.commands: unable to locate package: realsense2_camera
[WARNING] ros_get.commands: marked 1 package(s) for removal
[WARNING] ros_get.commands: please run the following command to update your workspace:

	ros-get update

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.