Unverified Commit 1387e410 authored by AutonomousHansen's avatar AutonomousHansen Committed by GitHub

Set TZ envar in Docker .bashrc to void babel generating error during docs compilation (#290)

# Description

Adds a `TZ` envar which corresponds to the timezone of the host
computer. This is in order to preempt an issue caused by behavior in the
babel function
[_get_localzone()](https://github.com/python-babel/babel/blob/a8505a4de1d365d7eac6313908cac6dda2708a05/babel/localtime/_unix.py#L24)
where the existence of an [empty `/etc/localtime` file
](https://github.com/isaac-orbit/orbit/blob/af6447c8fab3d551789272bfb94aad5c88a2ad51/docker/Dockerfile#L62)
causes our in-container docs compilation to choke with the following
error:

```
root@hhansen-1xl4-500gb:/workspace/orbit# orbit -d
[INFO] Building documentation...                                                                                                                        
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 21.2.1+nv1; however, version 23.3.1 is available.
You should consider upgrading via the '/isaac-sim/kit/python/bin/python3 -m pip install --upgrade pip' command.
Traceback (most recent call last):
  File "/isaac-sim/kit/python/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/isaac-sim/kit/python/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/sphinx/__main__.py", line 3, in <module>
    from sphinx.cmd.build import main
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/sphinx/cmd/build.py", line 20, in <module>
    from sphinx.application import Sphinx
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/sphinx/application.py", line 25, in <module>
    from sphinx.config import Config
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/sphinx/config.py", line 14, in <module>
    from sphinx.util.i18n import format_date
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/sphinx/util/i18n.py", line 12, in <module>
    import babel.dates
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/babel/dates.py", line 34, in <module>
    from babel import localtime
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/babel/localtime/__init__.py", line 41, in <module>
    LOCALTZ = get_localzone()
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/babel/localtime/__init__.py", line 37, in get_localzone
    return _get_localzone()
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/babel/localtime/_unix.py", line 96, in _get_localzone
    return _get_tzinfo_from_file(tzpath)
  File "/isaac-sim/kit/python/lib/python3.10/site-packages/babel/localtime/_helpers.py", line 41, in _get_tzinfo_from_file
    return pytz.tzfile.build_tzinfo('local', tzfile)
  File "/isaac-sim/kit/exts/omni.kit.pip_archive/pip_prebundle/pytz/tzfile.py", line 28, in build_tzinfo
    typecnt, charcnt) = unpack(head_fmt, fp.read(head_size))
struct.error: unpack requires a buffer of 44 bytes
There was an error running python
```
The relevant babel function prefers to read timezone information from
the envar `TZ`, and so setting it in a Docker user's session prevents
this issue.

## Type of change

- Bug fix (non-breaking change which fixes an issue)

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./orbit.sh --format`
- [ ] 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 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
parent af6447c8
......@@ -69,7 +69,8 @@ RUN echo "alias orbit=${ORBIT_PATH}/orbit.sh" >> ${HOME}/.bashrc && \
echo "alias python3=${ISAACSIM_PATH}/python.sh" >> ${HOME}/.bashrc && \
echo "alias pip='${ISAACSIM_PATH}/python.sh -m pip'" >> ${HOME}/.bashrc && \
echo "alias pip3='${ISAACSIM_PATH}/python.sh -m pip'" >> ${HOME}/.bashrc && \
echo "alias tensorboard='${ISAACSIM_PATH}/python.sh ${ISAACSIM_PATH}/tensorboard'" >> ${HOME}/.bashrc
echo "alias tensorboard='${ISAACSIM_PATH}/python.sh ${ISAACSIM_PATH}/tensorboard'" >> ${HOME}/.bashrc && \
echo "export TZ=$(date +%Z)" >> ${HOME}/.bashrc
# make working directory as the orbit directory
# this is the default directory when the container is run
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment