• 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
..
licenses Loading commit data...
source Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
conf.py Loading commit data...
index.rst Loading commit data...
make.bat Loading commit data...
requirements.txt Loading commit data...