• Hunter Hansen's avatar
    Adds dependency installation procedure to `./orbit.sh` (#514) · 53262a98
    Hunter Hansen authored
    # Description
    
    ~Adds a new package `orbit_hooks` to `/orbit/docker/orbit_hooks`. This
    is a small library of `setuptools.Command` child classes, built at the
    beginning of `Dockerfile.base`. They can be referenced in the `setup.py`
    of extensions which want hooks, such as ROS or apt packages installed at
    Dockerfile build time.~
    
    ~The currently existing hooks are `InstallAptDeps` and `InstallRosDeps`.
    These will automatically perform certain installation processes:~
    
    ~`InstallAptDeps` looks in the extension's `extension.toml` for an
    `orbit_hooks` `apt_deps` list, which will be installed during the
    `Dockerfile.base` build procedure.~
    
    ~`InstallRosDeps` looks in the extension's `extension.toml` for an
    `orbit_hooks` `ros_ws` path. In building `Dockerfile.ros2`, we will
    perform a `rosdep` installation of any dependencies in ros packages
    beneath `ros_ws`.~
    
    ~Additionally, I have added the script `check_and_install_deps.py`,
    which scans all subdirs in `orbit/source/extensions` for the existence
    of certain setup.py cmdclasses (`install_apt_deps`,`install_ros_deps`)
    and calls them if they exist.~
    
    ~For an extension to make use of this optional install procedure, they
    will need to `import orbit_hooks` in their `setup.py` the relevant
    command class dict (`INSTALL_ALL_DEPS`, `INSTALL_APT_DEPS`,
    `INSTALL_ROS_DEPS`) and to have the corresponding values in their
    `extension.toml`. For an example, [this
    PR](https://github.com/bdaiinstitute/orbit.eval_sim/pull/36) has the
    related modifications to its `extension.toml` and its `setup.py`.~
    
    **Update**:
    Adds a new script `/tools/install_deps.py` which has commands for
    installing ros and apt dependencies in extensions via options set in the
    `extension.toml`.
    
    `install_apt_packages` looks in the extension's `extension.toml` for an
    `orbit_settings` `apt_deps` list, which will be installed during the
    `Dockerfile.base` build procedure.
    
    `install_rosdep_packages` looks in the extension's `extension.toml` for
    an `orbit_settings` `ros_ws` path. In building `Dockerfile.ros2`, we
    will perform a `rosdep` installation of any dependencies in ros packages
    beneath `ros_ws`.
    
    Added section about this in `developers.rst`, as well as reference to it
    in the this [draft
    PR](https://github.com/isaac-orbit/orbit.ext_template/pull/18) for
    `orbit.ext_template`
    
    ## Type of change
    
    - New feature (non-breaking change which adds functionality)
    
    ## Checklist
    
    - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
    `./orbit.sh --format`
    - [x] I have made corresponding changes to the documentation
    - [x] My changes generate no new warnings
    - [ ] I have added tests that prove my fix is effective or that my
    feature works
    - [ ] I have run all the tests with `./orbit.sh --test` and they pass
    - [ ] I have updated the changelog and the corresponding version in the
    extension's `config/extension.toml` file
    - [x] I have added my name to the `CONTRIBUTORS.md` or my name already
    exists there
    
    ---------
    Signed-off-by: 's avatarHunter Hansen <50837800+hhansen-bdai@users.noreply.github.com>
    53262a98
Name
Last commit
Last update
..
install_deps.py Loading commit data...
run_all_tests.py Loading commit data...
tests_to_skip.py Loading commit data...