Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use of --pre in requirements.txt breaks things in strange ways #242

Open
gforsyth opened this issue Feb 4, 2021 · 0 comments
Open

Use of --pre in requirements.txt breaks things in strange ways #242

gforsyth opened this issue Feb 4, 2021 · 0 comments

Comments

@gforsyth
Copy link

gforsyth commented Feb 4, 2021

I was just trying to cut a new release of xonsh and ran into this -- took me a while to track it down.

Someone added a --pre specifier to our requirements.txt, which, on any rever activity that requires building a docker container fails now with

EnvironmentLocationNotFound: Not a conda environment: /root/black

The command '/bin/sh -c wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh &&     /bin/bash ~/miniconda.sh -b -p /opt/conda &&     rm ~/miniconda.sh &&     /opt/conda/bin/conda clean -tipsy &&     ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh &&     echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc &&     echo "conda activate base" >> ~/.bashrc &&     conda config --set always_yes yes &&     conda config --add channels conda-forge &&     conda update --all &&     conda install         --pre black cloud_sptheme codecov coverage doctr flake8         flake8-docstrings livereload matplotlib mypy numpy numpydoc         pip pre-commit prompt_toolkit psutil py pygments pytest         pytest-cov pytest-timeout pyzmq runthis-sphinxext sphinx         tornado &&     conda clean --all &&     conda info' returned a non-zero code: 1
activity-error:pytest:activity failed with execption:
Traceback (most recent call last):
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/rever/activity.xsh", line 83, in __call__
    self.func(*args, **kwargs)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/rever/activities/pytest.xsh", line 27, in _func
    super()._func(code=command)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/rever/activity.xsh", line 401, in _func
    docker.ensure_images(force_base=force_base, force_install=force_install)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/rever/docker.xsh", line 284, in ensure_images
    build_image(base_file, base_image, make_base_dockerfile, **base_kwargs)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/rever/docker.xsh", line 262, in build_image
    ![docker build -t @(image) -f @(dockerfile) --no-cache .]
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/xonsh/__amalgam__.py", line 20791, in subproc_captured_hiddenobject
    return xonsh.procs.specs.run_subproc(cmds, captured="hiddenobject", envs=envs)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/xonsh/procs/__amalgam__.py", line 3494, in run_subproc
    command.end()
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/xonsh/procs/__amalgam__.py", line 907, in end
    self._end(tee_output=tee_output)
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/xonsh/procs/__amalgam__.py", line 926, in _end
    self._raise_subproc_error()
  File "/opt/miniconda3/envs/rever/lib/python3.8/site-packages/xonsh/procs/__amalgam__.py", line 1052, in _raise_subproc_error
    raise subprocess.CalledProcessError(rtn, spec.args, output=self.output)
subprocess.CalledProcessError: Command '['docker', 'build', '-t', 'xonsh/rever-base', '-f', 'rever/rever-base.dockerfile', '--no-cache', '.']' returned non-zero exit status 1.
rewinding to d3eda8e90bafe4edfc712c1038dec4b8267280e0

The --pre survives into the rever-base.dockerfile and ends up as

RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
    /bin/bash ~/miniconda.sh -b -p /opt/conda && \
    rm ~/miniconda.sh && \
    /opt/conda/bin/conda clean -tipsy && \
    ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
    echo "conda activate base" >> ~/.bashrc && \
    conda config --set always_yes yes && \
    conda config --add channels conda-forge && \
    conda update --all && \
    conda install \
        --pre black cloud_sptheme codecov coverage doctr flake8 \
        flake8-docstrings livereload matplotlib mypy numpy numpydoc \
        pip pre-commit prompt_toolkit psutil py pygments pytest \
        pytest-cov pytest-timeout pyzmq runthis-sphinxext sphinx \
        tornado && \
    conda clean --all && \
    conda info

Note the --pre in the conda install line. Clearly this does something weird that then breaks the build.

Workaround is to remove --pre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant